class RuntimeDyldMachOAArch64
Declaration
class RuntimeDyldMachOAArch64 : 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/RuntimeDyldMachOAArch64.h:19
Inherits from: RuntimeDyldMachOCRTPBase
Method Overview
- public RuntimeDyldMachOAArch64(RuntimeDyld::MemoryManager & MM, llvm::JITSymbolResolver & Resolver)
- public Expected<int64_t> decodeAddend(const llvm::RelocationEntry & RE) const
- public void encodeAddend(uint8_t * LocalAddress, unsigned int NumBytes, MachO::RelocationInfoType RelType, int64_t Addend) const
- public llvm::Error finalizeSection(const llvm::object::ObjectFile & Obj, unsigned int SectionID, const llvm::object::SectionRef & Section)
- public unsigned int getMaxStubSize() const
- private static const char * getRelocName(uint32_t RelocType)
- 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::ObjectFile & BaseObjT, llvm::RuntimeDyldImpl::ObjSectionToIDMap & ObjSectionToID)
- public void resolveRelocation(const llvm::RelocationEntry & RE, uint64_t Value)
Methods
¶RuntimeDyldMachOAArch64(
RuntimeDyld::MemoryManager& MM,
llvm::JITSymbolResolver& Resolver)
RuntimeDyldMachOAArch64(
RuntimeDyld::MemoryManager& MM,
llvm::JITSymbolResolver& Resolver)
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h:25
Parameters
- RuntimeDyld::MemoryManager& MM
- llvm::JITSymbolResolver& Resolver
¶Expected<int64_t> decodeAddend(
const llvm::RelocationEntry& RE) const
Expected<int64_t> decodeAddend(
const llvm::RelocationEntry& RE) const
Description
Extract the addend encoded in the instruction / memory location.
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h:34
Parameters
- const llvm::RelocationEntry& RE
¶void encodeAddend(
uint8_t* LocalAddress,
unsigned int NumBytes,
MachO::RelocationInfoType RelType,
int64_t Addend) const
void encodeAddend(
uint8_t* LocalAddress,
unsigned int NumBytes,
MachO::RelocationInfoType RelType,
int64_t Addend) const
Description
Extract the addend encoded in the instruction.
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h:155
Parameters
- uint8_t* LocalAddress
- unsigned int NumBytes
- MachO::RelocationInfoType RelType
- int64_t Addend
¶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/RuntimeDyldMachOAArch64.h:436
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/RuntimeDyldMachOAArch64.h:29
¶static const char* getRelocName(
uint32_t RelocType)
static const char* getRelocName(
uint32_t RelocType)
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h:519
Parameters
- uint32_t RelocType
¶unsigned int getStubAlignment()
unsigned int getStubAlignment()
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h:31
¶void processGOTRelocation(
const llvm::RelocationEntry& RE,
llvm::RelocationValueRef& Value,
llvm::RuntimeDyldImpl::StubMap& Stubs)
void processGOTRelocation(
const llvm::RelocationEntry& RE,
llvm::RelocationValueRef& Value,
llvm::RuntimeDyldImpl::StubMap& Stubs)
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h:442
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)
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/RuntimeDyldMachOAArch64.h:273
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::ObjectFile& BaseObjT,
llvm::RuntimeDyldImpl::ObjSectionToIDMap&
ObjSectionToID)
Expected<llvm::object::relocation_iterator>
processSubtractRelocation(
unsigned int SectionID,
llvm::object::relocation_iterator RelI,
const llvm::object::ObjectFile& BaseObjT,
llvm::RuntimeDyldImpl::ObjSectionToIDMap&
ObjSectionToID)
Declared at: llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h:480
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/RuntimeDyldMachOAArch64.h:355
Parameters
- const llvm::RelocationEntry& RE
- The relocation to be resolved
- uint64_t Value
- Target symbol address to apply the relocation action