LLVM API Documentation
#include <RuntimeDyldMachOAArch64.h>
Public Types | |
typedef uint64_t | TargetPtrT |
Public Member Functions | |
RuntimeDyldMachOAArch64 (RTDyldMemoryManager *MM) | |
unsigned | getMaxStubSize () override |
unsigned | getStubAlignment () override |
int64_t | decodeAddend (const RelocationEntry &RE) const |
Extract the addend encoded in the instruction / memory location. | |
void | encodeAddend (uint8_t *LocalAddress, unsigned NumBytes, MachO::RelocationInfoType RelType, int64_t Addend) const |
Extract the addend encoded in the instruction. | |
relocation_iterator | processRelocationRef (unsigned SectionID, relocation_iterator RelI, ObjectImage &ObjImg, ObjSectionToIDMap &ObjSectionToID, const SymbolTableMap &Symbols, StubMap &Stubs) override |
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). | |
void | resolveRelocation (const RelocationEntry &RE, uint64_t Value) override |
A object file specific relocation resolver. | |
void | finalizeSection (ObjectImage &ObjImg, unsigned SectionID, const SectionRef &Section) |
Definition at line 20 of file RuntimeDyldMachOAArch64.h.
typedef uint64_t llvm::RuntimeDyldMachOAArch64::TargetPtrT |
Definition at line 24 of file RuntimeDyldMachOAArch64.h.
Definition at line 26 of file RuntimeDyldMachOAArch64.h.
int64_t llvm::RuntimeDyldMachOAArch64::decodeAddend | ( | const RelocationEntry & | RE | ) | const [inline] |
Extract the addend encoded in the instruction / memory location.
Definition at line 34 of file RuntimeDyldMachOAArch64.h.
References llvm::SectionEntry::Address, llvm::MachO::ARM64_RELOC_BRANCH26, llvm::MachO::ARM64_RELOC_GOT_LOAD_PAGE21, llvm::MachO::ARM64_RELOC_GOT_LOAD_PAGEOFF12, llvm::MachO::ARM64_RELOC_PAGE21, llvm::MachO::ARM64_RELOC_PAGEOFF12, llvm::MachO::ARM64_RELOC_UNSIGNED, llvm_unreachable, llvm::RelocationEntry::Offset, llvm::RelocationEntry::RelType, llvm::ARMBuildAttrs::Section, llvm::RelocationEntry::SectionID, llvm::RuntimeDyldImpl::Sections, llvm::SignExtend64(), and llvm::RelocationEntry::Size.
Referenced by processRelocationRef().
void llvm::RuntimeDyldMachOAArch64::encodeAddend | ( | uint8_t * | LocalAddress, |
unsigned | NumBytes, | ||
MachO::RelocationInfoType | RelType, | ||
int64_t | Addend | ||
) | const [inline] |
Extract the addend encoded in the instruction.
Definition at line 132 of file RuntimeDyldMachOAArch64.h.
References llvm::MachO::ARM64_RELOC_BRANCH26, llvm::MachO::ARM64_RELOC_GOT_LOAD_PAGE21, llvm::MachO::ARM64_RELOC_GOT_LOAD_PAGEOFF12, llvm::MachO::ARM64_RELOC_PAGE21, llvm::MachO::ARM64_RELOC_PAGEOFF12, llvm::MachO::ARM64_RELOC_UNSIGNED, and llvm_unreachable.
Referenced by resolveRelocation().
void llvm::RuntimeDyldMachOAArch64::finalizeSection | ( | ObjectImage & | ObjImg, |
unsigned | SectionID, | ||
const SectionRef & | Section | ||
) | [inline] |
Definition at line 362 of file RuntimeDyldMachOAArch64.h.
unsigned llvm::RuntimeDyldMachOAArch64::getMaxStubSize | ( | ) | [inline, override, virtual] |
Implements llvm::RuntimeDyldImpl.
Definition at line 29 of file RuntimeDyldMachOAArch64.h.
unsigned llvm::RuntimeDyldMachOAArch64::getStubAlignment | ( | ) | [inline, override, virtual] |
Implements llvm::RuntimeDyldImpl.
Definition at line 31 of file RuntimeDyldMachOAArch64.h.
relocation_iterator llvm::RuntimeDyldMachOAArch64::processRelocationRef | ( | unsigned | SectionID, |
relocation_iterator | RelI, | ||
ObjectImage & | Obj, | ||
ObjSectionToIDMap & | ObjSectionToID, | ||
const SymbolTableMap & | Symbols, | ||
StubMap & | Stubs | ||
) | [inline, override, virtual] |
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).
Implements llvm::RuntimeDyldImpl.
Definition at line 245 of file RuntimeDyldMachOAArch64.h.
References llvm::RelocationEntry::Addend, llvm::RuntimeDyldImpl::addRelocationForSection(), llvm::RuntimeDyldImpl::addRelocationForSymbol(), llvm::MachO::ARM64_RELOC_ADDEND, llvm::MachO::ARM64_RELOC_GOT_LOAD_PAGE21, llvm::MachO::ARM64_RELOC_GOT_LOAD_PAGEOFF12, decodeAddend(), llvm::object::MachOObjectFile::getAnyRelocationLength(), llvm::object::MachOObjectFile::getAnyRelocationPCRel(), llvm::object::MachOObjectFile::getAnyRelocationType(), llvm::ObjectImage::getObjectFile(), llvm::object::MachOObjectFile::getPlainRelocationExternal(), llvm::object::MachOObjectFile::getPlainRelocationSymbolNum(), llvm::object::MachOObjectFile::getRelocation(), llvm::RuntimeDyldMachO::getRelocationEntry(), llvm::RuntimeDyldMachO::getRelocationValueRef(), llvm::RelocationEntry::IsPCRel, llvm::object::MachOObjectFile::isRelocationScattered(), llvm::RuntimeDyldMachO::makeValueAddendPCRel(), llvm::RelocationValueRef::Offset, llvm::RelocationEntry::RelType, llvm::RelocationValueRef::SectionID, llvm::SignExtend64(), llvm::RelocationEntry::Size, and llvm::RelocationValueRef::SymbolName.
void llvm::RuntimeDyldMachOAArch64::resolveRelocation | ( | const RelocationEntry & | RE, |
uint64_t | Value | ||
) | [inline, override, virtual] |
A object file specific relocation resolver.
RE | The relocation to be resolved |
Value | Target symbol address to apply the relocation action |
Implements llvm::RuntimeDyldImpl.
Definition at line 302 of file RuntimeDyldMachOAArch64.h.
References llvm::RelocationEntry::Addend, llvm::SectionEntry::Address, llvm::MachO::ARM64_RELOC_ADDEND, llvm::MachO::ARM64_RELOC_BRANCH26, llvm::MachO::ARM64_RELOC_GOT_LOAD_PAGE21, llvm::MachO::ARM64_RELOC_GOT_LOAD_PAGEOFF12, llvm::MachO::ARM64_RELOC_PAGE21, llvm::MachO::ARM64_RELOC_PAGEOFF12, llvm::MachO::ARM64_RELOC_POINTER_TO_GOT, llvm::MachO::ARM64_RELOC_SUBTRACTOR, llvm::MachO::ARM64_RELOC_TLVP_LOAD_PAGE21, llvm::MachO::ARM64_RELOC_TLVP_LOAD_PAGEOFF12, llvm::MachO::ARM64_RELOC_UNSIGNED, DEBUG, llvm::RuntimeDyldMachO::dumpRelocationToResolve(), encodeAddend(), llvm::RelocationEntry::IsPCRel, llvm_unreachable, llvm::SectionEntry::LoadAddress, llvm::RelocationEntry::Offset, llvm::RelocationEntry::RelType, llvm::ARMBuildAttrs::Section, llvm::RelocationEntry::SectionID, llvm::RuntimeDyldImpl::Sections, and llvm::RelocationEntry::Size.