14#ifndef LLVM_OBJECT_GOFFOBJECTFILE_H
15#define LLVM_OBJECT_GOFFOBJECTFILE_H
43 return Rld[1] + (Rld[2] << 8) + (Rld[4] << 16) + (Rld[5] << 24);
60 return static_cast<uint8_t>((RelType >> 16) & 0x000000FF);
63 return static_cast<uint8_t>((RelType >> (24 + 5)) & 0x00000007);
66 return static_cast<uint8_t>((RelType >> 24) & 0x00000007);
90 Error createFlattenedData();
99 void setRelocationData(
const uint8_t *RldRecord);
105 return FlattenedData;
131 void moveSymbolNext(
DataRefImpl &Symb)
const override;
159 void moveSectionNext(
DataRefImpl &Sec)
const override;
164 getSectionContents(
DataRefImpl Sec)
const override;
166 uint64_t getSectionAlignment(DataRefImpl Sec)
const override;
167 bool isSectionCompressed(DataRefImpl Sec)
const override {
return false; }
168 bool isSectionText(DataRefImpl Sec)
const override;
169 bool isSectionData(DataRefImpl Sec)
const override;
170 bool isSectionBSS(DataRefImpl Sec)
const override {
return false; }
171 bool isSectionVirtual(DataRefImpl Sec)
const override {
return false; }
175 const uint8_t *getSectionEdEsdRecord(DataRefImpl &Sec)
const;
176 const uint8_t *getSectionPrEsdRecord(DataRefImpl &Sec)
const;
177 const uint8_t *getSectionEdEsdRecord(uint32_t SectionIndex)
const;
178 const uint8_t *getSectionPrEsdRecord(uint32_t SectionIndex)
const;
179 uint32_t getSectionDefEsdId(DataRefImpl &Sec)
const;
182 void moveRelocationNext(DataRefImpl &Rel)
const override;
183 uint64_t getRelocationOffset(DataRefImpl Rel)
const override;
184 symbol_iterator getRelocationSymbol(DataRefImpl Rel)
const override;
185 uint64_t getRelocationType(DataRefImpl Rel)
const override;
186 void getRelocationTypeName(DataRefImpl Rel,
187 SmallVectorImpl<char> &Result)
const override;
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
This file provides utility functions for converting between EBCDIC-1047 and UTF-8.
This file defines the DenseMap class.
This file implements an indexed map.
static std::unique_ptr< PDBSymbol > getSymbolType(const PDBSymbol &Symbol)
Lightweight error class with error context and mandatory checking.
Tagged union holding either a T or a Error.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Represent a constant reference to a string, i.e.
Manages the enabling and disabling of subtarget specific features.
const SymbolicFile * getObject() const
DataRefImpl getRawDataRefImpl() const
Triple::ArchType getArch() const override
Expected< SubtargetFeatures > getFeatures() const override
uint8_t getBytesInAddress() const override
The number of bytes used to represent an address in this object file format.
GOFFObjectFile(MemoryBufferRef Object, Error &Err)
const SmallVector< std::pair< GOFF::RecordType, SmallVector< uint8_t > > > & getFlattenedData() const
static bool classof(const Binary *V)
bool is64Bit() const override
StringRef getFileFormatName() const override
friend class GOFFSymbolRef
bool isRelocatableObject() const override
True if this is a relocatable object (.o/.obj).
GOFFSymbolRef(const SymbolRef &B)
Expected< SymbolRef::Type > getSymbolGOFFType() const
Expected< uint32_t > getSymbolGOFFFlags() const
const GOFFObjectFile * getObject() const
ObjectFile(unsigned int Type, MemoryBufferRef Source)
Represents a GOFF physical record.
This is a value type class that represents a single symbol in the list of symbols in the object file.
const ObjectFile * getObject() const
static constexpr const StringLiteral & getSectionName(DebugSectionKind SectionKind)
Return the name of the section.
uint8_t getRLDTargetLength(uint64_t RelType)
content_iterator< SectionRef > section_iterator
uint8_t getRLDBitLength(uint64_t RelType)
content_iterator< BasicSymbolRef > basic_symbol_iterator
uint64_t getRldType(const uint8_t *Rld)
GOFF::RLDReferentType getRLDReferentType(uint64_t RelType)
GOFF::RLDReferenceType getRLDReferenceType(uint64_t RelType)
uint8_t getRLDBitOffset(uint64_t RelType)
GOFF::RLDFetchStore getRLDFetchStore(uint64_t RelType)
GOFF::RLDAction getRLDAction(uint64_t RelType)
content_iterator< RelocationRef > relocation_iterator
This is an optimization pass for GlobalISel generic memory operations.
bool isa(const From &Val)
isa<X> - Return true if the parameter to the template is an instance of one of the template type argu...
decltype(auto) cast(const From &Val)
cast<X> - Return the argument parameter cast to the specified type.
struct llvm::object::DataRefImpl::@005117267142344013370254144343227032034000327225 d