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 
18 namespace llvm {
19 
20 bool CC_ARM_AAPCS(unsigned ValNo, MVT ValVT, MVT LocVT,
21                   CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
22                   CCState &State);
23 bool CC_ARM_AAPCS_VFP(unsigned ValNo, MVT ValVT, MVT LocVT,
24                       CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
25                       CCState &State);
26 bool CC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
27                  CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
28                  CCState &State);
29 bool CC_ARM_APCS_GHC(unsigned ValNo, MVT ValVT, MVT LocVT,
30                      CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
31                      CCState &State);
32 bool FastCC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
33                      CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
34                      CCState &State);
35 bool CC_ARM_Win32_CFGuard_Check(unsigned ValNo, MVT ValVT, MVT LocVT,
36                                 CCValAssign::LocInfo LocInfo,
37                                 ISD::ArgFlagsTy ArgFlags, CCState &State);
38 bool RetCC_ARM_AAPCS(unsigned ValNo, MVT ValVT, MVT LocVT,
39                      CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
40                      CCState &State);
41 bool RetCC_ARM_AAPCS_VFP(unsigned ValNo, MVT ValVT, MVT LocVT,
42                          CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
43                          CCState &State);
44 bool RetCC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
45                     CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
46                     CCState &State);
47 bool 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