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:

Inherited from RuntimeDyldImpl:

Methods

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)

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)

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()

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:35

unsigned int getMaxStubSize() const

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:65

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)

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()

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:281

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)

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h:50

Parameters

uint8_t* Target
int64_t Addend
uint64_t Delta