LLVM 22.0.0git
SFrame.cpp
Go to the documentation of this file.
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-exception
6//
7//===----------------------------------------------------------------------===//
8
11
12using namespace llvm;
13
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
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
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
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
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
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
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
73 static constexpr EnumEntry<sframe::BaseReg> BaseRegs[] = {
74 {"FP", sframe::BaseReg::FP},
75 {"SP", sframe::BaseReg::SP},
76 };
77 return ArrayRef(BaseRegs);
78}
This file contains data-structure definitions and constants to support unwinding based on ....
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition: ArrayRef.h:41
LLVM_ABI ArrayRef< EnumEntry< ABI > > getABIs()
Definition: SFrame.cpp:31
LLVM_ABI ArrayRef< EnumEntry< BaseReg > > getBaseRegisters()
Definition: SFrame.cpp:72
LLVM_ABI ArrayRef< EnumEntry< FREOffset > > getFREOffsets()
Definition: SFrame.cpp:64
LLVM_ABI ArrayRef< EnumEntry< FDEType > > getFDETypes()
Definition: SFrame.cpp:47
LLVM_ABI ArrayRef< EnumEntry< Flags > > getFlags()
Definition: SFrame.cpp:23
LLVM_ABI ArrayRef< EnumEntry< AArch64PAuthKey > > getAArch64PAuthKeys()
Definition: SFrame.cpp:55
LLVM_ABI ArrayRef< EnumEntry< FREType > > getFRETypes()
Definition: SFrame.cpp:39
LLVM_ABI ArrayRef< EnumEntry< Version > > getVersions()
Definition: SFrame.cpp:14
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18