xref: /freebsd/contrib/llvm-project/llvm/lib/Target/ARM/ARMCallingConv.h (revision 5b27928474e6a4103d65b347544705c40c9618fd)
10b57cec5SDimitry Andric //=== ARMCallingConv.h - ARM Custom Calling Convention Routines -*- C++ -*-===//
20b57cec5SDimitry Andric //
30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric //
70b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric //
90b57cec5SDimitry Andric // This file declares the entry points for ARM calling convention analysis.
100b57cec5SDimitry Andric //
110b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
120b57cec5SDimitry Andric 
130b57cec5SDimitry Andric #ifndef LLVM_LIB_TARGET_ARM_ARMCALLINGCONV_H
140b57cec5SDimitry Andric #define LLVM_LIB_TARGET_ARM_ARMCALLINGCONV_H
150b57cec5SDimitry Andric 
160b57cec5SDimitry Andric #include "llvm/CodeGen/CallingConvLower.h"
170b57cec5SDimitry Andric 
180b57cec5SDimitry Andric namespace llvm {
190b57cec5SDimitry Andric 
200b57cec5SDimitry Andric bool CC_ARM_AAPCS(unsigned ValNo, MVT ValVT, MVT LocVT,
210b57cec5SDimitry Andric                   CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
220b57cec5SDimitry Andric                   CCState &State);
230b57cec5SDimitry Andric bool CC_ARM_AAPCS_VFP(unsigned ValNo, MVT ValVT, MVT LocVT,
240b57cec5SDimitry Andric                       CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
250b57cec5SDimitry Andric                       CCState &State);
260b57cec5SDimitry Andric bool CC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
270b57cec5SDimitry Andric                  CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
280b57cec5SDimitry Andric                  CCState &State);
290b57cec5SDimitry Andric bool CC_ARM_APCS_GHC(unsigned ValNo, MVT ValVT, MVT LocVT,
300b57cec5SDimitry Andric                      CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
310b57cec5SDimitry Andric                      CCState &State);
320b57cec5SDimitry Andric bool FastCC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
330b57cec5SDimitry Andric                      CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
340b57cec5SDimitry Andric                      CCState &State);
35*480093f4SDimitry Andric bool CC_ARM_Win32_CFGuard_Check(unsigned ValNo, MVT ValVT, MVT LocVT,
36*480093f4SDimitry Andric                                 CCValAssign::LocInfo LocInfo,
37*480093f4SDimitry Andric                                 ISD::ArgFlagsTy ArgFlags, CCState &State);
380b57cec5SDimitry Andric bool RetCC_ARM_AAPCS(unsigned ValNo, MVT ValVT, MVT LocVT,
390b57cec5SDimitry Andric                      CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
400b57cec5SDimitry Andric                      CCState &State);
410b57cec5SDimitry Andric bool RetCC_ARM_AAPCS_VFP(unsigned ValNo, MVT ValVT, MVT LocVT,
420b57cec5SDimitry Andric                          CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
430b57cec5SDimitry Andric                          CCState &State);
440b57cec5SDimitry Andric bool RetCC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
450b57cec5SDimitry Andric                     CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
460b57cec5SDimitry Andric                     CCState &State);
470b57cec5SDimitry Andric bool RetFastCC_ARM_APCS(unsigned ValNo, MVT ValVT, MVT LocVT,
480b57cec5SDimitry Andric                         CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
490b57cec5SDimitry Andric                         CCState &State);
500b57cec5SDimitry Andric 
510b57cec5SDimitry Andric } // namespace llvm
520b57cec5SDimitry Andric 
530b57cec5SDimitry Andric #endif
54