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