class RuntimeDyldMachOI386

Declaration

class RuntimeDyldMachOI386 : 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/RuntimeDyldMachOI386.h:18

Inherits from: RuntimeDyldMachOCRTPBase

Method Overview

  • public RuntimeDyldMachOI386(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 llvm::Error populateJumpTable(const llvm::object::MachOObjectFile & Obj, const llvm::object::SectionRef & JTSection, unsigned int JTSectionID)
  • 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> processSECTDIFFRelocation(unsigned int SectionID, llvm::object::relocation_iterator RelI, const llvm::object::ObjectFile & BaseObjT, llvm::RuntimeDyldImpl::ObjSectionToIDMap & ObjSectionToID)
  • public void resolveRelocation(const llvm::RelocationEntry & RE, uint64_t Value)

Methods

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

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOI386.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/RuntimeDyldMachOI386.h:127

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/RuntimeDyldMachOI386.h:28

unsigned int getStubAlignment()

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

llvm::Error populateJumpTable(
    const llvm::object::MachOObjectFile& Obj,
    const llvm::object::SectionRef& JTSection,
    unsigned int JTSectionID)

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOI386.h:211

Parameters

const llvm::object::MachOObjectFile& Obj
const llvm::object::SectionRef& JTSection
unsigned int JTSectionID

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/RuntimeDyldMachOI386.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>
processSECTDIFFRelocation(
    unsigned int SectionID,
    llvm::object::relocation_iterator RelI,
    const llvm::object::ObjectFile& BaseObjT,
    llvm::RuntimeDyldImpl::ObjSectionToIDMap&
        ObjSectionToID)

Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOI386.h:145

Parameters

unsigned int SectionID
llvm::object::relocation_iterator RelI
const llvm::object::ObjectFile& BaseObjT
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/RuntimeDyldMachOI386.h:97

Parameters

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