ARMCallingConv.h revision 360784
1//=== ARMCallingConv.h - ARM Custom Calling Convention Routines -*- 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 ARM calling convention analysis.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_LIB_TARGET_ARM_ARMCALLINGCONV_H
14#define LLVM_LIB_TARGET_ARM_ARMCALLINGCONV_H
15
16#include "llvm/CodeGen/CallingConvLower.h"
17
18namespace llvm {
19
20bool CC_ARM_AAPCS(unsigned ValNo, MVT ValVT, MVT LocVT,
21                  CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
22                  CCState &State);
23bool CC_ARM_AAPCS_VFP(unsigned ValNo, MVT ValVT, MVT LocVT,
24                      CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
25                      CCState &State);
26bool CC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
27                 CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
28                 CCState &State);
29bool CC_ARM_APCS_GHC(unsigned ValNo, MVT ValVT, MVT LocVT,
30                     CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
31                     CCState &State);
32bool FastCC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
33                     CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
34                     CCState &State);
35bool CC_ARM_Win32_CFGuard_Check(unsigned ValNo, MVT ValVT, MVT LocVT,
36                                CCValAssign::LocInfo LocInfo,
37                                ISD::ArgFlagsTy ArgFlags, CCState &State);
38bool RetCC_ARM_AAPCS(unsigned ValNo, MVT ValVT, MVT LocVT,
39                     CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
40                     CCState &State);
41bool RetCC_ARM_AAPCS_VFP(unsigned ValNo, MVT ValVT, MVT LocVT,
42                         CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
43                         CCState &State);
44bool RetCC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
45                    CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
46                    CCState &State);
47bool RetFastCC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
48                        CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
49                        CCState &State);
50
51} // namespace llvm
52
53#endif
54