1 //=== PPCCallingConv.h - PPC Custom Calling Convention Routines -*- C++ -*-===//
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 // This file contains the custom routines for the PPC Calling Convention that
10 // aren't done by tablegen.
12 //===----------------------------------------------------------------------===//
14 #ifndef LLVM_LIB_TARGET_PPC_PPCCALLINGCONV_H
15 #define LLVM_LIB_TARGET_PPC_PPCCALLINGCONV_H
17 #include "llvm/CodeGen/CallingConvLower.h"
18 #include "llvm/IR/CallingConv.h"
22 bool RetCC_PPC(unsigned ValNo
, MVT ValVT
, MVT LocVT
,
23 CCValAssign::LocInfo LocInfo
, ISD::ArgFlagsTy ArgFlags
,
25 bool RetCC_PPC64_ELF_FIS(unsigned ValNo
, MVT ValVT
, MVT LocVT
,
26 CCValAssign::LocInfo LocInfo
, ISD::ArgFlagsTy ArgFlags
,
28 bool RetCC_PPC_Cold(unsigned ValNo
, MVT ValVT
, MVT LocVT
,
29 CCValAssign::LocInfo LocInfo
, ISD::ArgFlagsTy ArgFlags
,
31 bool CC_PPC32_SVR4(unsigned ValNo
, MVT ValVT
, MVT LocVT
,
32 CCValAssign::LocInfo LocInfo
, ISD::ArgFlagsTy ArgFlags
,
34 bool CC_PPC64_ELF(unsigned ValNo
, MVT ValVT
, MVT LocVT
,
35 CCValAssign::LocInfo LocInfo
, ISD::ArgFlagsTy ArgFlags
,
37 bool CC_PPC64_ELF_FIS(unsigned ValNo
, MVT ValVT
, MVT LocVT
,
38 CCValAssign::LocInfo LocInfo
, ISD::ArgFlagsTy ArgFlags
,
40 bool CC_PPC32_SVR4_ByVal(unsigned ValNo
, MVT ValVT
, MVT LocVT
,
41 CCValAssign::LocInfo LocInfo
, ISD::ArgFlagsTy ArgFlags
,
43 bool CC_PPC32_SVR4_VarArg(unsigned ValNo
, MVT ValVT
, MVT LocVT
,
44 CCValAssign::LocInfo LocInfo
,
45 ISD::ArgFlagsTy ArgFlags
, CCState
&State
);
47 } // End llvm namespace