//===-- SFrame.cpp -----------------------------------------------*- C++-*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "llvm/BinaryFormat/SFrame.h" #include "llvm/Support/ScopedPrinter.h" using namespace llvm; ArrayRef> sframe::getVersions() { static constexpr EnumEntry Versions[] = { #define HANDLE_SFRAME_VERSION(CODE, NAME) {#NAME, sframe::Version::NAME}, #include "llvm/BinaryFormat/SFrameConstants.def" }; return ArrayRef(Versions); } ArrayRef> sframe::getFlags() { static constexpr EnumEntry Flags[] = { #define HANDLE_SFRAME_FLAG(CODE, NAME) {#NAME, sframe::Flags::NAME}, #include "llvm/BinaryFormat/SFrameConstants.def" }; return ArrayRef(Flags); } ArrayRef> sframe::getABIs() { static constexpr EnumEntry ABIs[] = { #define HANDLE_SFRAME_ABI(CODE, NAME) {#NAME, sframe::ABI::NAME}, #include "llvm/BinaryFormat/SFrameConstants.def" }; return ArrayRef(ABIs); } ArrayRef> sframe::getFRETypes() { static constexpr EnumEntry FRETypes[] = { #define HANDLE_SFRAME_FRE_TYPE(CODE, NAME) {#NAME, sframe::FREType::NAME}, #include "llvm/BinaryFormat/SFrameConstants.def" }; return ArrayRef(FRETypes); } ArrayRef> sframe::getFDETypes() { static constexpr EnumEntry FDETypes[] = { #define HANDLE_SFRAME_FDE_TYPE(CODE, NAME) {#NAME, sframe::FDEType::NAME}, #include "llvm/BinaryFormat/SFrameConstants.def" }; return ArrayRef(FDETypes); } ArrayRef> sframe::getAArch64PAuthKeys() { static constexpr EnumEntry AArch64PAuthKeys[] = { #define HANDLE_SFRAME_AARCH64_PAUTH_KEY(CODE, NAME) \ {#NAME, sframe::AArch64PAuthKey::NAME}, #include "llvm/BinaryFormat/SFrameConstants.def" }; return ArrayRef(AArch64PAuthKeys); } ArrayRef> sframe::getFREOffsets() { static constexpr EnumEntry FREOffsets[] = { #define HANDLE_SFRAME_FRE_OFFSET(CODE, NAME) {#NAME, sframe::FREOffset::NAME}, #include "llvm/BinaryFormat/SFrameConstants.def" }; return ArrayRef(FREOffsets); } ArrayRef> sframe::getBaseRegisters() { static constexpr EnumEntry BaseRegs[] = { {"FP", sframe::BaseReg::FP}, {"SP", sframe::BaseReg::SP}, }; return ArrayRef(BaseRegs); }