class RuntimeDyldCOFFX86_64
Declaration
class RuntimeDyldCOFFX86_64 : public RuntimeDyldCOFF { /* full declaration omitted */ };
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:24
Inherits from: RuntimeDyldCOFF
Member Variables
- private SmallVector<llvm::RuntimeDyldImpl::SID, 2> UnregisteredEHFrameSections
- private SmallVector<llvm::RuntimeDyldImpl::SID, 2> RegisteredEHFrameSections
- private uint64_t ImageBase
Inherited from RuntimeDyldImpl:
- protected MemMgr
- protected Resolver
- protected Sections
- protected GlobalSymbolTable
- protected Relocations
- protected ExternalSymbolRelocations
- protected Arch
- protected IsTargetLittleEndian
- protected IsMipsO32ABI
- protected IsMipsN32ABI
- protected IsMipsN64ABI
- protected ProcessAllSections
- protected lock
- protected NotifyStubEmitted
- protected HasError
- protected ErrorStr
- protected static AbsoluteSymbolSection = ~0U
Method Overview
- public RuntimeDyldCOFFX86_64(RuntimeDyld::MemoryManager & MM, llvm::JITSymbolResolver & Resolver)
- public llvm::Error finalizeLoad(const object::ObjectFile & Obj, llvm::RuntimeDyldImpl::ObjSectionToIDMap & SectionMap)
- public std::tuple<uint64_t, uint64_t, uint64_t> generateRelocationStub(unsigned int SectionID, llvm::StringRef TargetName, uint64_t Offset, uint64_t RelType, uint64_t Addend, llvm::RuntimeDyldImpl::StubMap & Stubs)
- private uint64_t getImageBase()
- public unsigned int getMaxStubSize() const
- public unsigned int getStubAlignment()
- public Expected<object::relocation_iterator> processRelocationRef(unsigned int SectionID, object::relocation_iterator RelI, const object::ObjectFile & Obj, llvm::RuntimeDyldImpl::ObjSectionToIDMap & ObjSectionToID, llvm::RuntimeDyldImpl::StubMap & Stubs)
- public void registerEHFrames()
- public void resolveRelocation(const llvm::RelocationEntry & RE, uint64_t Value)
- private void write32BitOffset(uint8_t * Target, int64_t Addend, uint64_t Delta)
Inherited from RuntimeDyldCOFF:
- public create
- protected getDLLImportOffset
- protected getImportSymbolPrefix
- protected getSymbolOffset
- public isCompatibleFile
- public loadObject
Inherited from RuntimeDyldImpl:
- protected addRelocationForSection
- protected addRelocationForSymbol
- protected applyExternalSymbolRelocations
- public clearError
- protected computeGOTSize
- protected computeSectionStubBufSize
- protected computeTotalAllocSize
- protected createStubFunction
- public deregisterEHFrames
- protected emitCommonSymbols
- protected emitSection
- public finalizeAsync
- public finalizeLoad
- protected findOrEmitSection
- public getErrorString
- protected getGOTEntrySize
- protected getJITSymbolFlags
- protected getMaxStubSize
- public getSectionAddress
- public getSectionContent
- public getSectionLoadAddress
- protected getStubAlignment
- public getSymbol
- public getSymbolLocalAddress
- public getSymbolSectionID
- public getSymbolTable
- public hasError
- public isCompatibleFile
- public loadObject
- protected loadObjectImpl
- public mapSectionAddress
- protected modifyAddressBasedOnFlags
- protected processRelocationRef
- protected readBytesUnaligned
- public reassignSectionAddress
- public registerEHFrames
- protected relocationNeedsGot
- protected relocationNeedsStub
- protected resolveExternalSymbols
- public resolveLocalRelocations
- protected resolveRelocation
- protected resolveRelocationList
- public resolveRelocations
- protected setMipsABI
- public setNotifyStubEmitted
- public setProcessAllSections
- protected writeBytesUnaligned
- protected writeInt16BE
- protected writeInt32BE
- protected writeInt64BE
Methods
¶RuntimeDyldCOFFX86_64(
RuntimeDyld::MemoryManager& MM,
llvm::JITSymbolResolver& Resolver)
RuntimeDyldCOFFX86_64(
RuntimeDyld::MemoryManager& MM,
llvm::JITSymbolResolver& Resolver)
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:57
Parameters
- RuntimeDyld::MemoryManager& MM
- llvm::JITSymbolResolver& Resolver
¶llvm::Error finalizeLoad(
const object::ObjectFile& Obj,
llvm::RuntimeDyldImpl::ObjSectionToIDMap&
SectionMap)
llvm::Error finalizeLoad(
const object::ObjectFile& Obj,
llvm::RuntimeDyldImpl::ObjSectionToIDMap&
SectionMap)
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:292
Parameters
- const object::ObjectFile& Obj
- llvm::RuntimeDyldImpl::ObjSectionToIDMap& SectionMap
¶std::tuple<uint64_t, uint64_t, uint64_t>
generateRelocationStub(
unsigned int SectionID,
llvm::StringRef TargetName,
uint64_t Offset,
uint64_t RelType,
uint64_t Addend,
llvm::RuntimeDyldImpl::StubMap& Stubs)
std::tuple<uint64_t, uint64_t, uint64_t>
generateRelocationStub(
unsigned int SectionID,
llvm::StringRef TargetName,
uint64_t Offset,
uint64_t RelType,
uint64_t Addend,
llvm::RuntimeDyldImpl::StubMap& Stubs)
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:144
Parameters
- unsigned int SectionID
- llvm::StringRef TargetName
- uint64_t Offset
- uint64_t RelType
- uint64_t Addend
- llvm::RuntimeDyldImpl::StubMap& Stubs
¶uint64_t getImageBase()
uint64_t getImageBase()
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:35
¶unsigned int getMaxStubSize() const
unsigned int getMaxStubSize() const
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:65
¶unsigned int getStubAlignment()
unsigned int getStubAlignment()
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:62
¶Expected<object::relocation_iterator>
processRelocationRef(
unsigned int SectionID,
object::relocation_iterator RelI,
const object::ObjectFile& Obj,
llvm::RuntimeDyldImpl::ObjSectionToIDMap&
ObjSectionToID,
llvm::RuntimeDyldImpl::StubMap& Stubs)
Expected<object::relocation_iterator>
processRelocationRef(
unsigned int SectionID,
object::relocation_iterator RelI,
const object::ObjectFile& Obj,
llvm::RuntimeDyldImpl::ObjSectionToIDMap&
ObjSectionToID,
llvm::RuntimeDyldImpl::StubMap& Stubs)
Description
Parses one or more object file relocations (some object files use relocation pairs) and stores it to Relocations or SymbolRelocations (this depends on the object file type).
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:190
Parameters
- unsigned int SectionID
- object::relocation_iterator RelI
- const object::ObjectFile& Obj
- llvm::RuntimeDyldImpl::ObjSectionToIDMap& ObjSectionToID
- llvm::RuntimeDyldImpl::StubMap& Stubs
Returns
Iterator to the next relocation that needs to be parsed.
¶void registerEHFrames()
void registerEHFrames()
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:281
¶void resolveRelocation(
const llvm::RelocationEntry& RE,
uint64_t Value)
void resolveRelocation(
const llvm::RelocationEntry& RE,
uint64_t Value)
Description
A object file specific relocation resolver
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:87
Parameters
- const llvm::RelocationEntry& RE
- The relocation to be resolved
- uint64_t Value
- Target symbol address to apply the relocation action
¶void write32BitOffset(uint8_t* Target,
int64_t Addend,
uint64_t Delta)
void write32BitOffset(uint8_t* Target,
int64_t Addend,
uint64_t Delta)
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:50
Parameters
- uint8_t* Target
- int64_t Addend
- uint64_t Delta