14#ifndef LLVM_OBJECT_GOFF_H
15#define LLVM_OBJECT_GOFF_H
43 uint8_t IsContinuation;
45 return IsContinuation;
58 static void getBits(
const uint8_t *Bytes, uint8_t ByteIndex, uint8_t BitIndex,
61 assert(BitIndex < 8 &&
"Bit index out of bounds!");
62 assert(
Length + BitIndex <= 8 &&
"Bit length too long!");
64 get<uint8_t>(Bytes, ByteIndex,
Value);
69 static void get(
const uint8_t *Bytes, uint8_t ByteIndex,
T &
Value) {
71 "Byte index out of bounds!");
72 Value = support::endian::read<T, llvm::endianness::big>(&Bytes[ByteIndex]);
84 get<uint32_t>(
Record, 4, EsdId);
132 get<uint32_t>(
Record, 4, EsdId);
136 get<uint32_t>(
Record, 8, EsdId);
178 get<uint8_t>(
Record, 42, Fill);
182 get<uint32_t>(
Record, 44, EsdId);
186 get<uint32_t>(
Record, 48, Priority);
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
This file defines the SmallString class.
This file defines the SmallVector class.
Lightweight error class with error context and mandatory checking.
SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better...
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM Value Representation.
static Error getData(const uint8_t *Record, SmallString< 256 > &CompleteData)
static uint16_t getNameLength(const uint8_t *Record)
static void getIndirectReference(const uint8_t *Record, bool &Indirect)
static void getBindingStrength(const uint8_t *Record, GOFF::ESDBindingStrength &Strength)
static void getOffset(const uint8_t *Record, uint32_t &Offset)
static void getDuplicateSeverity(const uint8_t *Record, GOFF::ESDDuplicateSymbolSeverity &DSS)
static void getEsdId(const uint8_t *Record, uint32_t &EsdId)
static void getLoadingBehavior(const uint8_t *Record, GOFF::ESDLoadingBehavior &Behavior)
static Error getData(const uint8_t *Record, SmallString< 256 > &CompleteData)
static void getNameMangled(const uint8_t *Record, bool &Mangled)
static void getTaskingBehavior(const uint8_t *Record, GOFF::ESDTaskingBehavior &TaskingBehavior)
static void getFillBytePresent(const uint8_t *Record, bool &Present)
static void getLength(const uint8_t *Record, uint32_t &Length)
static void getAdaEsdId(const uint8_t *Record, uint32_t &EsdId)
static void getBindingAlgorithm(const uint8_t *Record, GOFF::ESDBindingAlgorithm &Algorithm)
static void getAmode(const uint8_t *Record, GOFF::ESDAmode &Amode)
static const uint16_t MaxNameLength
Maximum name length for ESD records and continuations.
static void getReadOnly(const uint8_t *Record, bool &ReadOnly)
static void getRmode(const uint8_t *Record, GOFF::ESDRmode &Rmode)
static void getSortPriority(const uint8_t *Record, uint32_t &Priority)
static void getParentEsdId(const uint8_t *Record, uint32_t &EsdId)
static void getFillByteValue(const uint8_t *Record, uint8_t &Fill)
static void getSymbolType(const uint8_t *Record, GOFF::ESDSymbolType &SymbolType)
static void getTextStyle(const uint8_t *Record, GOFF::ESDTextStyle &Style)
static void getAlignment(const uint8_t *Record, GOFF::ESDAlignment &Alignment)
static void getLinkageType(const uint8_t *Record, GOFF::ESDLinkageType &Type)
static const uint8_t ESDMaxUncontinuedNameLength
Number of bytes for name; any more must go in continuation.
static uint16_t getNameLength(const uint8_t *Record)
static void getExecutable(const uint8_t *Record, GOFF::ESDExecutable &Executable)
static void getBindingScope(const uint8_t *Record, GOFF::ESDBindingScope &Scope)
static void getNameSpaceId(const uint8_t *Record, GOFF::ESDNameSpaceId &Id)
static void getRemovable(const uint8_t *Record, bool &Removable)
static void getRenamable(const uint8_t *Record, bool &Renamable)
static Error getData(const uint8_t *Record, SmallString< 256 > &CompleteData)
static uint16_t getPropertyModuleLength(const uint8_t *Record)
Represents a GOFF physical record.
static void getBits(const uint8_t *Bytes, uint8_t ByteIndex, uint8_t BitIndex, uint8_t Length, uint8_t &Value)
Get bit field of specified byte.
static bool isContinued(const uint8_t *Record)
static Error getContinuousData(const uint8_t *Record, uint16_t DataLength, int DataIndex, SmallString< 256 > &CompleteData)
static void get(const uint8_t *Bytes, uint8_t ByteIndex, T &Value)
static bool isContinuation(const uint8_t *Record)
static void getElementEsdId(const uint8_t *Record, uint32_t &EsdId)
static const uint8_t TXTMaxDataLength
Maximum length of data; any more must go in continuation.
static void getDataLength(const uint8_t *Record, uint16_t &Length)
static Error getData(const uint8_t *Record, SmallString< 256 > &CompleteData)
static void getOffset(const uint8_t *Record, uint32_t &Offset)
ESDDuplicateSymbolSeverity
constexpr uint8_t RecordLength
Length of the parts of a physical GOFF record.
This is an optimization pass for GlobalISel generic memory operations.