15f613dfdSUlrich Weigand //===-- SystemZCallingConv.cpp - Calling conventions for SystemZ ----------===//
25f613dfdSUlrich Weigand //
32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
65f613dfdSUlrich Weigand //
75f613dfdSUlrich Weigand //===----------------------------------------------------------------------===//
85f613dfdSUlrich Weigand 
95f613dfdSUlrich Weigand #include "SystemZCallingConv.h"
105f613dfdSUlrich Weigand #include "SystemZRegisterInfo.h"
115f613dfdSUlrich Weigand 
125f613dfdSUlrich Weigand using namespace llvm;
135f613dfdSUlrich Weigand 
14023b5c1eSYusra Syeda const MCPhysReg SystemZ::ELFArgGPRs[SystemZ::ELFNumArgGPRs] = {
155f613dfdSUlrich Weigand   SystemZ::R2D, SystemZ::R3D, SystemZ::R4D, SystemZ::R5D, SystemZ::R6D
165f613dfdSUlrich Weigand };
175f613dfdSUlrich Weigand 
18023b5c1eSYusra Syeda const MCPhysReg SystemZ::ELFArgFPRs[SystemZ::ELFNumArgFPRs] = {
195f613dfdSUlrich Weigand   SystemZ::F0D, SystemZ::F2D, SystemZ::F4D, SystemZ::F6D
205f613dfdSUlrich Weigand };
21*ec4706beSNeumann Hon 
22*ec4706beSNeumann Hon // The XPLINK64 ABI-defined param passing general purpose registers
23*ec4706beSNeumann Hon const MCPhysReg SystemZ::XPLINK64ArgGPRs[SystemZ::XPLINK64NumArgGPRs] = {
24*ec4706beSNeumann Hon     SystemZ::R1D, SystemZ::R2D, SystemZ::R3D
25*ec4706beSNeumann Hon };
26*ec4706beSNeumann Hon 
27*ec4706beSNeumann Hon // The XPLINK64 ABI-defined param passing floating point registers
28*ec4706beSNeumann Hon const MCPhysReg SystemZ::XPLINK64ArgFPRs[SystemZ::XPLINK64NumArgFPRs] = {
29*ec4706beSNeumann Hon     SystemZ::F0D, SystemZ::F2D, SystemZ::F4D, SystemZ::F6D
30*ec4706beSNeumann Hon };
31