1234353Sdim//=== ARMCallingConv.h - ARM Custom Calling Convention Routines -*- C++ -*-===//
2218885Sdim//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6218885Sdim//
7218885Sdim//===----------------------------------------------------------------------===//
8218885Sdim//
9353358Sdim// This file declares the entry points for ARM calling convention analysis.
10218885Sdim//
11218885Sdim//===----------------------------------------------------------------------===//
12218885Sdim
13280031Sdim#ifndef LLVM_LIB_TARGET_ARM_ARMCALLINGCONV_H
14280031Sdim#define LLVM_LIB_TARGET_ARM_ARMCALLINGCONV_H
15218885Sdim
16218885Sdim#include "llvm/CodeGen/CallingConvLower.h"
17218885Sdim
18218885Sdimnamespace llvm {
19218885Sdim
20353358Sdimbool CC_ARM_AAPCS(unsigned ValNo, MVT ValVT, MVT LocVT,
21353358Sdim                  CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
22353358Sdim                  CCState &State);
23353358Sdimbool CC_ARM_AAPCS_VFP(unsigned ValNo, MVT ValVT, MVT LocVT,
24353358Sdim                      CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
25353358Sdim                      CCState &State);
26353358Sdimbool CC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
27353358Sdim                 CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
28353358Sdim                 CCState &State);
29353358Sdimbool CC_ARM_APCS_GHC(unsigned ValNo, MVT ValVT, MVT LocVT,
30353358Sdim                     CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
31353358Sdim                     CCState &State);
32353358Sdimbool FastCC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
33353358Sdim                     CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
34353358Sdim                     CCState &State);
35360784Sdimbool CC_ARM_Win32_CFGuard_Check(unsigned ValNo, MVT ValVT, MVT LocVT,
36360784Sdim                                CCValAssign::LocInfo LocInfo,
37360784Sdim                                ISD::ArgFlagsTy ArgFlags, CCState &State);
38353358Sdimbool RetCC_ARM_AAPCS(unsigned ValNo, MVT ValVT, MVT LocVT,
39353358Sdim                     CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
40353358Sdim                     CCState &State);
41353358Sdimbool RetCC_ARM_AAPCS_VFP(unsigned ValNo, MVT ValVT, MVT LocVT,
42353358Sdim                         CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
43353358Sdim                         CCState &State);
44353358Sdimbool RetCC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
45353358Sdim                    CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
46353358Sdim                    CCState &State);
47353358Sdimbool RetFastCC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
48353358Sdim                        CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
49353358Sdim                        CCState &State);
50218885Sdim
51353358Sdim} // namespace llvm
52218885Sdim
53218885Sdim#endif
54