LLVM 20.0.0git
|
#include "ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.h"
Public Types | |
typedef uint64_t | TargetPtrT |
Protected Member Functions | |
void | resolveMIPSO32Relocation (const SectionEntry &Section, uint64_t Offset, uint32_t Value, uint32_t Type, int32_t Addend) |
void | resolveMIPSN32Relocation (const SectionEntry &Section, uint64_t Offset, uint64_t Value, uint32_t Type, int64_t Addend, uint64_t SymOffset, SID SectionID) |
void | resolveMIPSN64Relocation (const SectionEntry &Section, uint64_t Offset, uint64_t Value, uint32_t Type, int64_t Addend, uint64_t SymOffset, SID SectionID) |
Protected Member Functions inherited from llvm::RuntimeDyldELF | |
size_t | getGOTEntrySize () override |
Protected Member Functions inherited from llvm::RuntimeDyldImpl | |
virtual unsigned | getMaxStubSize () const =0 |
virtual Align | getStubAlignment ()=0 |
void | writeInt16BE (uint8_t *Addr, uint16_t Value) |
void | writeInt32BE (uint8_t *Addr, uint32_t Value) |
void | writeInt64BE (uint8_t *Addr, uint64_t Value) |
virtual void | setMipsABI (const ObjectFile &Obj) |
uint64_t | readBytesUnaligned (uint8_t *Src, unsigned Size) const |
Endian-aware read Read the least significant Size bytes from Src. | |
void | writeBytesUnaligned (uint64_t Value, uint8_t *Dst, unsigned Size) const |
Endian-aware write. | |
virtual Expected< JITSymbolFlags > | getJITSymbolFlags (const SymbolRef &Sym) |
Generate JITSymbolFlags from a libObject symbol. | |
virtual uint64_t | modifyAddressBasedOnFlags (uint64_t Addr, JITSymbolFlags Flags) const |
Modify the given target address based on the given symbol flags. | |
Error | emitCommonSymbols (const ObjectFile &Obj, CommonSymbolList &CommonSymbols, uint64_t CommonSize, uint32_t CommonAlign) |
Given the common symbols discovered in the object file, emit a new section for them and update the symbol mappings in the object and symbol table. | |
Expected< unsigned > | emitSection (const ObjectFile &Obj, const SectionRef &Section, bool IsCode) |
Emits section data from the object file to the MemoryManager. | |
Expected< unsigned > | findOrEmitSection (const ObjectFile &Obj, const SectionRef &Section, bool IsCode, ObjSectionToIDMap &LocalSections) |
Find Section in LocalSections. | |
void | addRelocationForSection (const RelocationEntry &RE, unsigned SectionID) |
void | addRelocationForSymbol (const RelocationEntry &RE, StringRef SymbolName) |
uint8_t * | createStubFunction (uint8_t *Addr, unsigned AbiVariant=0) |
Emits long jump instruction to Addr. | |
void | resolveRelocationList (const RelocationList &Relocs, uint64_t Value) |
Resolves relocations from Relocs list with address from Value. | |
virtual void | resolveRelocation (const RelocationEntry &RE, uint64_t Value)=0 |
A object file specific relocation resolver. | |
virtual Expected< relocation_iterator > | processRelocationRef (unsigned SectionID, relocation_iterator RelI, const ObjectFile &Obj, ObjSectionToIDMap &ObjSectionToID, StubMap &Stubs)=0 |
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 | applyExternalSymbolRelocations (const StringMap< JITEvaluatedSymbol > ExternalSymbolMap) |
Error | resolveExternalSymbols () |
Resolve relocations to external symbols. | |
Error | computeTotalAllocSize (const ObjectFile &Obj, uint64_t &CodeSize, Align &CodeAlign, uint64_t &RODataSize, Align &RODataAlign, uint64_t &RWDataSize, Align &RWDataAlign) |
unsigned | computeGOTSize (const ObjectFile &Obj) |
unsigned | computeSectionStubBufSize (const ObjectFile &Obj, const SectionRef &Section) |
Expected< ObjSectionToIDMap > | loadObjectImpl (const object::ObjectFile &Obj) |
virtual size_t | getGOTEntrySize () |
virtual void | processNewSymbol (const SymbolRef &ObjSymbol, SymbolTableEntry &Entry) |
virtual bool | relocationNeedsGot (const RelocationRef &R) const |
virtual bool | relocationNeedsStub (const RelocationRef &R) const |
virtual bool | relocationNeedsDLLImportStub (const RelocationRef &R) const |
virtual unsigned | sizeAfterAddingDLLImportStub (unsigned Size) const |
Definition at line 18 of file RuntimeDyldELFMips.h.
Definition at line 21 of file RuntimeDyldELFMips.h.
|
inline |
Definition at line 23 of file RuntimeDyldELFMips.h.
|
protected |
Definition at line 265 of file RuntimeDyldELFMips.cpp.
References llvm::Offset.
Referenced by resolveRelocation().
|
protected |
Definition at line 274 of file RuntimeDyldELFMips.cpp.
References llvm::Offset.
Referenced by resolveRelocation().
|
protected |
Definition at line 303 of file RuntimeDyldELFMips.cpp.
References llvm::dbgs(), llvm::format(), LLVM_DEBUG, and llvm::Offset.
Referenced by resolveRelocation().
|
overridevirtual |
A object file specific relocation resolver.
RE | The relocation to be resolved |
Value | Target symbol address to apply the relocation action |
Reimplemented from llvm::RuntimeDyldELF.
Definition at line 14 of file RuntimeDyldELFMips.cpp.
References llvm::RelocationEntry::Addend, llvm::RuntimeDyldImpl::IsMipsN32ABI, llvm::RuntimeDyldImpl::IsMipsN64ABI, llvm::RuntimeDyldImpl::IsMipsO32ABI, llvm_unreachable, llvm::RelocationEntry::Offset, llvm::RelocationEntry::RelType, resolveMIPSN32Relocation(), resolveMIPSN64Relocation(), resolveMIPSO32Relocation(), llvm::RelocationEntry::SectionID, llvm::RuntimeDyldImpl::Sections, and llvm::RelocationEntry::SymOffset.