brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · 8076a26 Raw
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