1 //===-- SystemZCallingConv.cpp - Calling conventions for SystemZ ----------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #include "SystemZCallingConv.h"
10 #include "SystemZRegisterInfo.h"
14 const MCPhysReg
SystemZ::ELFArgGPRs
[SystemZ::ELFNumArgGPRs
] = {
15 SystemZ::R2D
, SystemZ::R3D
, SystemZ::R4D
, SystemZ::R5D
, SystemZ::R6D
18 const MCPhysReg
SystemZ::ELFArgFPRs
[SystemZ::ELFNumArgFPRs
] = {
19 SystemZ::F0D
, SystemZ::F2D
, SystemZ::F4D
, SystemZ::F6D
22 // The XPLINK64 ABI-defined param passing general purpose registers
23 const MCPhysReg
SystemZ::XPLINK64ArgGPRs
[SystemZ::XPLINK64NumArgGPRs
] = {
24 SystemZ::R1D
, SystemZ::R2D
, SystemZ::R3D
27 // The XPLINK64 ABI-defined param passing floating point registers
28 const MCPhysReg
SystemZ::XPLINK64ArgFPRs
[SystemZ::XPLINK64NumArgFPRs
] = {
29 SystemZ::F0D
, SystemZ::F2D
, SystemZ::F4D
, SystemZ::F6D