AArch64CallingConvention.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //=== AArch64CallingConvention.h - AArch64 CC entry points ------*- 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 AArch64 calling convention analysis.
  10. //
  11. //===----------------------------------------------------------------------===//
  12. #ifndef LLVM_LIB_TARGET_AARCH64_AARCH64CALLINGCONVENTION_H
  13. #define LLVM_LIB_TARGET_AARCH64_AARCH64CALLINGCONVENTION_H
  14. #include "llvm/CodeGen/CallingConvLower.h"
  15. namespace llvm {
  16. bool CC_AArch64_AAPCS(unsigned ValNo, MVT ValVT, MVT LocVT,
  17. CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
  18. CCState &State);
  19. bool CC_AArch64_Arm64EC_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT,
  20. CCValAssign::LocInfo LocInfo,
  21. ISD::ArgFlagsTy ArgFlags, CCState &State);
  22. bool CC_AArch64_DarwinPCS_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT,
  23. CCValAssign::LocInfo LocInfo,
  24. ISD::ArgFlagsTy ArgFlags, CCState &State);
  25. bool CC_AArch64_DarwinPCS(unsigned ValNo, MVT ValVT, MVT LocVT,
  26. CCValAssign::LocInfo LocInfo,
  27. ISD::ArgFlagsTy ArgFlags, CCState &State);
  28. bool CC_AArch64_DarwinPCS_ILP32_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT,
  29. CCValAssign::LocInfo LocInfo,
  30. ISD::ArgFlagsTy ArgFlags, CCState &State);
  31. bool CC_AArch64_Win64_VarArg(unsigned ValNo, MVT ValVT, MVT LocVT,
  32. CCValAssign::LocInfo LocInfo,
  33. ISD::ArgFlagsTy ArgFlags, CCState &State);
  34. bool CC_AArch64_Win64_CFGuard_Check(unsigned ValNo, MVT ValVT, MVT LocVT,
  35. CCValAssign::LocInfo LocInfo,
  36. ISD::ArgFlagsTy ArgFlags, CCState &State);
  37. bool CC_AArch64_WebKit_JS(unsigned ValNo, MVT ValVT, MVT LocVT,
  38. CCValAssign::LocInfo LocInfo,
  39. ISD::ArgFlagsTy ArgFlags, CCState &State);
  40. bool CC_AArch64_GHC(unsigned ValNo, MVT ValVT, MVT LocVT,
  41. CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
  42. CCState &State);
  43. bool RetCC_AArch64_AAPCS(unsigned ValNo, MVT ValVT, MVT LocVT,
  44. CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
  45. CCState &State);
  46. bool RetCC_AArch64_WebKit_JS(unsigned ValNo, MVT ValVT, MVT LocVT,
  47. CCValAssign::LocInfo LocInfo,
  48. ISD::ArgFlagsTy ArgFlags, CCState &State);
  49. } // namespace llvm
  50. #endif