LLVM 22.0.0git
AArch64CallingConvention.h
Go to the documentation of this file.
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
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,
24 ISD::ArgFlagsTy ArgFlags, Type *OrigTy,
25 CCState &State);
26bool CC_AArch64_Arm64EC_Thunk(unsigned ValNo, MVT ValVT, MVT LocVT,
28 ISD::ArgFlagsTy ArgFlags, Type *OrigTy,
29 CCState &State);
30bool CC_AArch64_Arm64EC_Thunk_Native(unsigned ValNo, MVT ValVT, MVT LocVT,
32 ISD::ArgFlagsTy ArgFlags, Type *OrigTy,
33 CCState &State);
34bool CC_AArch64_DarwinPCS_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT,
36 ISD::ArgFlagsTy ArgFlags, Type *OrigTy,
37 CCState &State);
38bool CC_AArch64_DarwinPCS(unsigned ValNo, MVT ValVT, MVT LocVT,
40 ISD::ArgFlagsTy ArgFlags, Type *OrigTy,
41 CCState &State);
42bool CC_AArch64_DarwinPCS_ILP32_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT,
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,
51 ISD::ArgFlagsTy ArgFlags, Type *OrigTy,
52 CCState &State);
53bool CC_AArch64_Win64_CFGuard_Check(unsigned ValNo, MVT ValVT, MVT LocVT,
55 ISD::ArgFlagsTy ArgFlags, Type *OrigTy,
56 CCState &State);
57bool CC_AArch64_Arm64EC_CFGuard_Check(unsigned ValNo, MVT ValVT, MVT LocVT,
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,
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,
73 ISD::ArgFlagsTy ArgFlags, Type *OrigTy,
74 CCState &State);
75bool RetCC_AArch64_Arm64EC_CFGuard_Check(unsigned ValNo, MVT ValVT, MVT LocVT,
77 ISD::ArgFlagsTy ArgFlags, Type *OrigTy,
78 CCState &State);
79} // namespace llvm
80
81#endif
CCState - This class holds information needed while lowering arguments and return values.
Machine Value Type.
The instances of the Type class are immutable: once they are created, they are never changed.
Definition Type.h:45
This is an optimization pass for GlobalISel generic memory operations.
bool CC_AArch64_Arm64EC_CFGuard_Check(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Win64PCS(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_DarwinPCS(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Arm64EC_Thunk(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool RetCC_AArch64_Arm64EC_Thunk(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Arm64EC_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_AAPCS(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_DarwinPCS_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_GHC(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Win64_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool RetCC_AArch64_AAPCS(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_DarwinPCS_ILP32_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Arm64EC_Thunk_Native(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Win64_CFGuard_Check(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool RetCC_AArch64_Arm64EC_CFGuard_Check(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Preserve_None(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)