9#ifndef LLVM_OBJECT_SFRAME_H
10#define LLVM_OBJECT_SFRAME_H
35 return getHeader().ABIArch == sframe::ABI::AMD64EndianLittle;
74 : Data(Data), SectionAddress(SectionAddress), Header(Header) {}
77 return sizeof(Header) + Header.AuxHdrLen + Header.FDEOff;
102 return LHS.Idx ==
RHS.Idx;
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
#define LLVM_TEMPLATE_ABI
Returns the sub type a function will return at a given Idx Should correspond to the result type of an ExtractValue instruction executed with just that one unsigned Idx
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),...
Lightweight error class with error context and mandatory checking.
Tagged union holding either a T or a Error.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
A wrapper class for fallible iterators.
A range adaptor for a pair of iterators.
const FrameRowEntry & operator*() const
FallibleFREIterator(ArrayRef< uint8_t > Data, sframe::FREType FREType, uint32_t Idx, uint32_t Size, uint64_t Offset)
friend bool operator==(const FallibleFREIterator &LHS, const FallibleFREIterator &RHS)
Expected< ArrayRef< uint8_t > > getAuxHeader() const
std::optional< int32_t > getRAOffset(const FrameRowEntry &FRE) const
static Expected< SFrameParser > create(ArrayRef< uint8_t > Contents, uint64_t SectionAddress)
bool usesFixedFPOffset() const
bool usesFixedRAOffset() const
const sframe::Preamble< E > & getPreamble() const
std::optional< int32_t > getCFAOffset(const FrameRowEntry &FRE) const
iterator_range< fre_iterator > fres(const sframe::FuncDescEntry< E > &FDE, Error &Err) const
std::optional< int32_t > getFPOffset(const FrameRowEntry &FRE) const
const sframe::Header< E > & getHeader() const
uint64_t offsetOf(typename FDERange::iterator FDE) const
ArrayRef< int32_t > getExtraOffsets(const FrameRowEntry &FRE) const
uint64_t getAbsoluteStartAddress(typename FDERange::iterator FDE) const
Expected< FDERange > fdes() const
FREType
SFrame FRE Types. Bits 0-3 of FuncDescEntry.Info.
This is an optimization pass for GlobalISel generic memory operations.
SmallVector< int32_t, 3 > Offsets
sframe::FREInfo< endianness::native > Info