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)
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)
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
unsigned int getMaxStubSize() const
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOI386.h:28
¶unsigned int getStubAlignment()
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)
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)
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)
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)
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