1 //=== AArch64CallingConvention.h - AArch64 CC entry points ------*- C++ -*-===// 2 // 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 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // This file declares the entry points for AArch64 calling convention analysis. 10 // 11 //===----------------------------------------------------------------------===// 12 13 #ifndef LLVM_LIB_TARGET_AARCH64_AARCH64CALLINGCONVENTION_H 14 #define LLVM_LIB_TARGET_AARCH64_AARCH64CALLINGCONVENTION_H 15 16 #include "llvm/CodeGen/CallingConvLower.h" 17 18 namespace llvm { 19 bool CC_AArch64_AAPCS(unsigned ValNo, MVT ValVT, MVT LocVT, 20 CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, 21 CCState &State); 22 bool CC_AArch64_Arm64EC_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT, 23 CCValAssign::LocInfo LocInfo, 24 ISD::ArgFlagsTy ArgFlags, CCState &State); 25 bool CC_AArch64_Arm64EC_Thunk(unsigned ValNo, MVT ValVT, MVT LocVT, 26 CCValAssign::LocInfo LocInfo, 27 ISD::ArgFlagsTy ArgFlags, CCState &State); 28 bool CC_AArch64_Arm64EC_Thunk_Native(unsigned ValNo, MVT ValVT, MVT LocVT, 29 CCValAssign::LocInfo LocInfo, 30 ISD::ArgFlagsTy ArgFlags, CCState &State); 31 bool CC_AArch64_DarwinPCS_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT, 32 CCValAssign::LocInfo LocInfo, 33 ISD::ArgFlagsTy ArgFlags, CCState &State); 34 bool CC_AArch64_DarwinPCS(unsigned ValNo, MVT ValVT, MVT LocVT, 35 CCValAssign::LocInfo LocInfo, 36 ISD::ArgFlagsTy ArgFlags, CCState &State); 37 bool CC_AArch64_DarwinPCS_ILP32_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT, 38 CCValAssign::LocInfo LocInfo, 39 ISD::ArgFlagsTy ArgFlags, CCState &State); 40 bool CC_AArch64_Win64PCS(unsigned ValNo, MVT ValVT, MVT LocVT, 41 CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, 42 CCState &State); 43 bool CC_AArch64_Win64_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT, 44 CCValAssign::LocInfo LocInfo, 45 ISD::ArgFlagsTy ArgFlags, CCState &State); 46 bool CC_AArch64_Win64_CFGuard_Check(unsigned ValNo, MVT ValVT, MVT LocVT, 47 CCValAssign::LocInfo LocInfo, 48 ISD::ArgFlagsTy ArgFlags, CCState &State); 49 bool CC_AArch64_Arm64EC_CFGuard_Check(unsigned ValNo, MVT ValVT, MVT LocVT, 50 CCValAssign::LocInfo LocInfo, 51 ISD::ArgFlagsTy ArgFlags, CCState &State); 52 bool CC_AArch64_GHC(unsigned ValNo, MVT ValVT, MVT LocVT, 53 CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, 54 CCState &State); 55 bool CC_AArch64_Preserve_None(unsigned ValNo, MVT ValVT, MVT LocVT, 56 CCValAssign::LocInfo LocInfo, 57 ISD::ArgFlagsTy ArgFlags, CCState &State); 58 bool RetCC_AArch64_AAPCS(unsigned ValNo, MVT ValVT, MVT LocVT, 59 CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, 60 CCState &State); 61 bool RetCC_AArch64_Arm64EC_Thunk(unsigned ValNo, MVT ValVT, MVT LocVT, 62 CCValAssign::LocInfo LocInfo, 63 ISD::ArgFlagsTy ArgFlags, CCState &State); 64 bool RetCC_AArch64_Arm64EC_CFGuard_Check(unsigned ValNo, MVT ValVT, MVT LocVT, 65 CCValAssign::LocInfo LocInfo, 66 ISD::ArgFlagsTy ArgFlags, 67 CCState &State); 68 } // namespace llvm 69 70 #endif 71