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