79 lines · cpp
1//===-- SFrame.cpp -----------------------------------------------*- 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-exception6//7//===----------------------------------------------------------------------===//8 9#include "llvm/BinaryFormat/SFrame.h"10#include "llvm/Support/ScopedPrinter.h"11 12using namespace llvm;13 14ArrayRef<EnumEntry<sframe::Version>> sframe::getVersions() {15 static constexpr EnumEntry<Version> Versions[] = {16#define HANDLE_SFRAME_VERSION(CODE, NAME) {#NAME, sframe::Version::NAME},17#include "llvm/BinaryFormat/SFrameConstants.def"18 };19 20 return ArrayRef(Versions);21}22 23ArrayRef<EnumEntry<sframe::Flags>> sframe::getFlags() {24 static constexpr EnumEntry<sframe::Flags> Flags[] = {25#define HANDLE_SFRAME_FLAG(CODE, NAME) {#NAME, sframe::Flags::NAME},26#include "llvm/BinaryFormat/SFrameConstants.def"27 };28 return ArrayRef(Flags);29}30 31ArrayRef<EnumEntry<sframe::ABI>> sframe::getABIs() {32 static constexpr EnumEntry<sframe::ABI> ABIs[] = {33#define HANDLE_SFRAME_ABI(CODE, NAME) {#NAME, sframe::ABI::NAME},34#include "llvm/BinaryFormat/SFrameConstants.def"35 };36 return ArrayRef(ABIs);37}38 39ArrayRef<EnumEntry<sframe::FREType>> sframe::getFRETypes() {40 static constexpr EnumEntry<sframe::FREType> FRETypes[] = {41#define HANDLE_SFRAME_FRE_TYPE(CODE, NAME) {#NAME, sframe::FREType::NAME},42#include "llvm/BinaryFormat/SFrameConstants.def"43 };44 return ArrayRef(FRETypes);45}46 47ArrayRef<EnumEntry<sframe::FDEType>> sframe::getFDETypes() {48 static constexpr EnumEntry<sframe::FDEType> FDETypes[] = {49#define HANDLE_SFRAME_FDE_TYPE(CODE, NAME) {#NAME, sframe::FDEType::NAME},50#include "llvm/BinaryFormat/SFrameConstants.def"51 };52 return ArrayRef(FDETypes);53}54 55ArrayRef<EnumEntry<sframe::AArch64PAuthKey>> sframe::getAArch64PAuthKeys() {56 static constexpr EnumEntry<sframe::AArch64PAuthKey> AArch64PAuthKeys[] = {57#define HANDLE_SFRAME_AARCH64_PAUTH_KEY(CODE, NAME) \58 {#NAME, sframe::AArch64PAuthKey::NAME},59#include "llvm/BinaryFormat/SFrameConstants.def"60 };61 return ArrayRef(AArch64PAuthKeys);62}63 64ArrayRef<EnumEntry<sframe::FREOffset>> sframe::getFREOffsets() {65 static constexpr EnumEntry<sframe::FREOffset> FREOffsets[] = {66#define HANDLE_SFRAME_FRE_OFFSET(CODE, NAME) {#NAME, sframe::FREOffset::NAME},67#include "llvm/BinaryFormat/SFrameConstants.def"68 };69 return ArrayRef(FREOffsets);70}71 72ArrayRef<EnumEntry<sframe::BaseReg>> sframe::getBaseRegisters() {73 static constexpr EnumEntry<sframe::BaseReg> BaseRegs[] = {74 {"FP", sframe::BaseReg::FP},75 {"SP", sframe::BaseReg::SP},76 };77 return ArrayRef(BaseRegs);78}79