class RuntimeDyldMachOX86_64

Declaration

class RuntimeDyldMachOX86_64 : public RuntimeDyldMachOCRTPBase { /* full declaration omitted */ };

Description

RuntimeDyldMachOTarget - Templated base class for generic MachO linker algorithms and data structures. Concrete, target specific sub-classes can be accessed via the impl() methods. (i.e. the RuntimeDyldMachO hierarchy uses the Curiously Recurring Template Idiom). Concrete subclasses for each target can be found in ./Targets.

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h:18

Inherits from: RuntimeDyldMachOCRTPBase

Method Overview

  • public RuntimeDyldMachOX86_64(RuntimeDyld::MemoryManager & MM, llvm::JITSymbolResolver & Resolver)
  • public llvm::Error finalizeSection(const llvm::object::ObjectFile & Obj, unsigned int SectionID, const llvm::object::SectionRef & Section)
  • public unsigned int getMaxStubSize() const
  • public unsigned int getStubAlignment()
  • private void processGOTRelocation(const llvm::RelocationEntry & RE, llvm::RelocationValueRef & Value, llvm::RuntimeDyldImpl::StubMap & Stubs)
  • public Expected<llvm::object::relocation_iterator> processRelocationRef(unsigned int SectionID, llvm::object::relocation_iterator RelI, const llvm::object::ObjectFile & BaseObjT, llvm::RuntimeDyldImpl::ObjSectionToIDMap & ObjSectionToID, llvm::RuntimeDyldImpl::StubMap & Stubs)
  • private Expected<llvm::object::relocation_iterator> processSubtractRelocation(unsigned int SectionID, llvm::object::relocation_iterator RelI, const llvm::object::MachOObjectFile & BaseObj, llvm::RuntimeDyldImpl::ObjSectionToIDMap & ObjSectionToID)
  • public void resolveRelocation(const llvm::RelocationEntry & RE, uint64_t Value)

Methods

RuntimeDyldMachOX86_64(
    RuntimeDyld::MemoryManager& MM,
    llvm::JITSymbolResolver& Resolver)

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h:24

Parameters

RuntimeDyld::MemoryManager& MM
llvm::JITSymbolResolver& Resolver

llvm::Error finalizeSection(
    const llvm::object::ObjectFile& Obj,
    unsigned int SectionID,
    const llvm::object::SectionRef& Section)

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h:122

Parameters

const llvm::object::ObjectFile& Obj
unsigned int SectionID
const llvm::object::SectionRef& Section

unsigned int getMaxStubSize() const

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h:28

unsigned int getStubAlignment()

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h:30

void processGOTRelocation(
    const llvm::RelocationEntry& RE,
    llvm::RelocationValueRef& Value,
    llvm::RuntimeDyldImpl::StubMap& Stubs)

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h:128

Parameters

const llvm::RelocationEntry& RE
llvm::RelocationValueRef& Value
llvm::RuntimeDyldImpl::StubMap& Stubs

Expected<llvm::object::relocation_iterator>
processRelocationRef(
    unsigned int SectionID,
    llvm::object::relocation_iterator RelI,
    const llvm::object::ObjectFile& BaseObjT,
    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/RuntimeDyldMachOX86_64.h:33

Parameters

unsigned int SectionID
llvm::object::relocation_iterator RelI
const llvm::object::ObjectFile& BaseObjT
llvm::RuntimeDyldImpl::ObjSectionToIDMap& ObjSectionToID
llvm::RuntimeDyldImpl::StubMap& Stubs

Returns

Iterator to the next relocation that needs to be parsed.

Expected<llvm::object::relocation_iterator>
processSubtractRelocation(
    unsigned int SectionID,
    llvm::object::relocation_iterator RelI,
    const llvm::object::MachOObjectFile& BaseObj,
    llvm::RuntimeDyldImpl::ObjSectionToIDMap&
        ObjSectionToID)

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h:157

Parameters

unsigned int SectionID
llvm::object::relocation_iterator RelI
const llvm::object::MachOObjectFile& BaseObj
llvm::RuntimeDyldImpl::ObjSectionToIDMap& ObjSectionToID

void resolveRelocation(
    const llvm::RelocationEntry& RE,
    uint64_t Value)

Description

A object file specific relocation resolver

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h:85

Parameters

const llvm::RelocationEntry& RE
The relocation to be resolved
uint64_t Value
Target symbol address to apply the relocation action