LLVM 22.0.0git
|
#include "ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h"
Static Public Member Functions | |
static void | finalizeAsync (std::unique_ptr< RuntimeDyldImpl > This, unique_function< void(object::OwningBinary< object::ObjectFile >, std::unique_ptr< RuntimeDyld::LoadedObjectInfo >, Error)> OnEmitted, object::OwningBinary< object::ObjectFile > O, std::unique_ptr< RuntimeDyld::LoadedObjectInfo > Info) |
Protected Types | |
typedef std::deque< SectionEntry > | SectionList |
typedef unsigned | SID |
typedef std::map< SectionRef, unsigned > | ObjSectionToIDMap |
typedef std::vector< SymbolRef > | CommonSymbolList |
typedef SmallVector< RelocationEntry, 64 > | RelocationList |
typedef std::map< RelocationValueRef, uintptr_t > | StubMap |
using | NotifyStubEmittedFunction |
Protected Member Functions | |
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 |
Static Protected Attributes | |
static const unsigned | AbsoluteSymbolSection = ~0U |
Friends | |
class | RuntimeDyld::LoadedObjectInfo |
Definition at line 233 of file RuntimeDyldImpl.h.
|
protected |
Definition at line 262 of file RuntimeDyldImpl.h.
|
protected |
Definition at line 305 of file RuntimeDyldImpl.h.
|
protected |
Definition at line 256 of file RuntimeDyldImpl.h.
|
protected |
Definition at line 269 of file RuntimeDyldImpl.h.
|
protected |
Definition at line 248 of file RuntimeDyldImpl.h.
|
protected |
Definition at line 251 of file RuntimeDyldImpl.h.
|
protected |
Definition at line 281 of file RuntimeDyldImpl.h.
|
inline |
Definition at line 464 of file RuntimeDyldImpl.h.
References HasError, MemMgr, ProcessAllSections, and Resolver.
Referenced by llvm::RuntimeDyldCOFF::RuntimeDyldCOFF(), llvm::RuntimeDyldELF::RuntimeDyldELF(), and llvm::RuntimeDyldMachO::RuntimeDyldMachO().
|
virtualdefault |
|
protected |
Definition at line 949 of file RuntimeDyld.cpp.
References Relocations.
Referenced by llvm::RuntimeDyldCOFFAArch64::processRelocationRef(), llvm::RuntimeDyldCOFFI386::processRelocationRef(), llvm::RuntimeDyldCOFFThumb::processRelocationRef(), llvm::RuntimeDyldCOFFX86_64::processRelocationRef(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::RuntimeDyldMachOAArch64::processRelocationRef(), llvm::RuntimeDyldMachOARM::processRelocationRef(), llvm::RuntimeDyldMachOI386::processRelocationRef(), llvm::RuntimeDyldMachOX86_64::processRelocationRef(), and llvm::RuntimeDyldMachO::processScatteredVANILLA().
|
protected |
Definition at line 954 of file RuntimeDyld.cpp.
References llvm::RelocationEntry::Addend, assert(), ExternalSymbolRelocations, GlobalSymbolTable, and Relocations.
Referenced by llvm::RuntimeDyldCOFF::getDLLImportOffset(), llvm::RuntimeDyldMachO::populateIndirectSymbolPointersSection(), llvm::RuntimeDyldCOFFAArch64::processRelocationRef(), llvm::RuntimeDyldCOFFI386::processRelocationRef(), llvm::RuntimeDyldCOFFThumb::processRelocationRef(), llvm::RuntimeDyldCOFFX86_64::processRelocationRef(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::RuntimeDyldMachOAArch64::processRelocationRef(), llvm::RuntimeDyldMachOARM::processRelocationRef(), llvm::RuntimeDyldMachOI386::processRelocationRef(), and llvm::RuntimeDyldMachOX86_64::processRelocationRef().
|
protected |
Definition at line 1124 of file RuntimeDyld.cpp.
References assert(), llvm::dbgs(), llvm::StringMap< ValueTy, AllocatorTy >::end(), ExternalSymbolRelocations, llvm::StringMap< ValueTy, AllocatorTy >::find(), llvm::format(), getSectionLoadAddress(), GlobalSymbolTable, LLVM_DEBUG, modifyAddressBasedOnFlags(), llvm::report_fatal_error(), Resolver, resolveRelocationList(), and UINT64_MAX.
Referenced by resolveExternalSymbols().
|
inline |
Definition at line 576 of file RuntimeDyldImpl.h.
References HasError.
|
protected |
Definition at line 650 of file RuntimeDyld.cpp.
References getGOTEntrySize(), relocationNeedsGot(), llvm::object::ObjectFile::section_begin(), and llvm::object::ObjectFile::section_end().
Referenced by computeTotalAllocSize().
|
protected |
Definition at line 668 of file RuntimeDyld.cpp.
References llvm::commonAlignment(), llvm::DataSize, getMaxStubSize(), getStubAlignment(), MemMgr, relocationNeedsDLLImportStub(), relocationNeedsStub(), llvm::report_fatal_error(), llvm::object::ObjectFile::section_begin(), llvm::object::ObjectFile::section_end(), sizeAfterAddingDLLImportStub(), llvm::Expected< T >::takeError(), llvm::toString(), and llvm::Align::value().
Referenced by computeTotalAllocSize(), and emitSection().
|
protected |
Definition at line 535 of file RuntimeDyld.cpp.
References llvm::alignTo(), CodeSize, llvm::computeAllocationSizeForSections(), computeGOTSize(), computeSectionStubBufSize(), llvm::DataSize, getGOTEntrySize(), getStubAlignment(), I, llvm::isReadOnlyData(), llvm::isRequiredForExecution(), llvm::isTLS(), ProcessAllSections, llvm::object::ObjectFile::section_begin(), llvm::object::ObjectFile::section_end(), llvm::object::BasicSymbolRef::SF_Common, Size, llvm::Error::success(), llvm::object::SymbolicFile::symbol_begin(), llvm::object::SymbolicFile::symbol_end(), llvm::Expected< T >::takeError(), and llvm::Align::value().
Referenced by loadObjectImpl().
|
protected |
Emits long jump instruction to Addr.
Definition at line 973 of file RuntimeDyld.cpp.
References llvm::Triple::aarch64, llvm::Triple::aarch64_32, llvm::Triple::aarch64_be, Arch, llvm::Triple::arm, llvm::Triple::armeb, llvm::ELF::EF_MIPS_ARCH, llvm::ELF::EF_MIPS_ARCH_32R6, llvm::ELF::EF_MIPS_ARCH_64R6, IsMipsN32ABI, IsMipsN64ABI, IsMipsO32ABI, llvm::Triple::loongarch64, llvm::Triple::ppc64, llvm::Triple::ppc64le, llvm::Triple::systemz, writeBytesUnaligned(), writeInt16BE(), writeInt32BE(), llvm::Triple::x86, and llvm::Triple::x86_64.
Referenced by llvm::RuntimeDyldCOFFAArch64::generateRelocationStub(), llvm::RuntimeDyldCOFFX86_64::generateRelocationStub(), and llvm::RuntimeDyldELF::processRelocationRef().
void llvm::RuntimeDyldImpl::deregisterEHFrames | ( | ) |
Definition at line 76 of file RuntimeDyld.cpp.
References MemMgr.
|
protected |
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.
Definition at line 748 of file RuntimeDyld.cpp.
References llvm::dbgs(), llvm::format(), getJITSymbolFlags(), GlobalSymbolTable, LLVM_DEBUG, MemMgr, llvm::Offset, llvm::offsetToAlignment(), llvm::report_fatal_error(), Sections, Size, and llvm::Error::success().
Referenced by loadObjectImpl().
|
protected |
Emits section data from the object file to the MemoryManager.
IsCode | if it's true then allocateCodeSection() will be used for emits, else allocateDataSection() will be used. |
Definition at line 804 of file RuntimeDyld.cpp.
References computeSectionStubBufSize(), data, llvm::DataSize, llvm::dbgs(), llvm::format(), getStubAlignment(), llvm::isReadOnlyData(), llvm::isRequiredForExecution(), llvm::isTLS(), llvm::isZeroInit(), LLVM_DEBUG, MemMgr, ProcessAllSections, llvm::report_fatal_error(), Sections, llvm::Expected< T >::takeError(), and llvm::Align::value().
Referenced by findOrEmitSection().
|
static |
Copy the result into a StringMap, where the keys are held by value.
Definition at line 1231 of file RuntimeDyld.cpp.
References assert(), llvm::inconvertibleErrorCode(), llvm::make_error(), and llvm::Error::success().
Referenced by llvm::jitLinkForORC().
|
inlinevirtual |
Reimplemented in llvm::RuntimeDyldCOFFX86_64, llvm::RuntimeDyldELF, llvm::RuntimeDyldMachOCRTPBase< Impl >, llvm::RuntimeDyldMachOCRTPBase< RuntimeDyldMachOAArch64 >, llvm::RuntimeDyldMachOCRTPBase< RuntimeDyldMachOARM >, llvm::RuntimeDyldMachOCRTPBase< RuntimeDyldMachOI386 >, and llvm::RuntimeDyldMachOCRTPBase< RuntimeDyldMachOX86_64 >.
Definition at line 591 of file RuntimeDyldImpl.h.
References llvm::Error::success().
Referenced by loadObjectImpl().
|
protected |
Find Section in LocalSections.
If the secton is not found - emit it and store in LocalSections.
IsCode | if it's true then allocateCodeSection() will be used for emmits, else allocateDataSection() will be used. |
Definition at line 930 of file RuntimeDyld.cpp.
References emitSection().
Referenced by llvm::RuntimeDyldMachOCRTPBase< Impl >::finalizeLoad(), llvm::RuntimeDyldMachO::getRelocationValueRef(), loadObjectImpl(), llvm::RuntimeDyldCOFFAArch64::processRelocationRef(), llvm::RuntimeDyldCOFFI386::processRelocationRef(), llvm::RuntimeDyldCOFFThumb::processRelocationRef(), llvm::RuntimeDyldCOFFX86_64::processRelocationRef(), llvm::RuntimeDyldELF::processRelocationRef(), and llvm::RuntimeDyldMachO::processScatteredVANILLA().
|
inline |
Definition at line 579 of file RuntimeDyldImpl.h.
References ErrorStr.
|
inlineprotectedvirtual |
Reimplemented in llvm::RuntimeDyldELF.
Definition at line 437 of file RuntimeDyldImpl.h.
Referenced by computeGOTSize(), and computeTotalAllocSize().
|
protectedvirtual |
Generate JITSymbolFlags from a libObject symbol.
Reimplemented in llvm::RuntimeDyldCOFFThumb, and llvm::RuntimeDyldMachOARM.
Definition at line 744 of file RuntimeDyld.cpp.
References llvm::JITSymbolFlags::fromObjectSymbol().
Referenced by emitCommonSymbols(), llvm::RuntimeDyldCOFFThumb::getJITSymbolFlags(), llvm::RuntimeDyldMachOARM::getJITSymbolFlags(), and loadObjectImpl().
|
protectedpure virtual |
Implemented in llvm::RuntimeDyldCOFFAArch64, llvm::RuntimeDyldCOFFI386, llvm::RuntimeDyldCOFFThumb, llvm::RuntimeDyldCOFFX86_64, llvm::RuntimeDyldMachOAArch64, llvm::RuntimeDyldMachOARM, llvm::RuntimeDyldMachOI386, and llvm::RuntimeDyldMachOX86_64.
Referenced by computeSectionStubBufSize(), getSectionContent(), and llvm::RuntimeDyldELF::processRelocationRef().
Definition at line 486 of file RuntimeDyldImpl.h.
References AbsoluteSymbolSection, and Sections.
Referenced by getSymbolLocalAddress().
Definition at line 493 of file RuntimeDyldImpl.h.
References AbsoluteSymbolSection, getMaxStubSize(), and Sections.
Definition at line 479 of file RuntimeDyldImpl.h.
References AbsoluteSymbolSection, and Sections.
Referenced by applyExternalSymbolRelocations(), getSymbol(), getSymbolTable(), and resolveLocalRelocations().
|
protectedpure virtual |
Implemented in llvm::RuntimeDyldCOFFAArch64, llvm::RuntimeDyldCOFFI386, llvm::RuntimeDyldCOFFThumb, llvm::RuntimeDyldCOFFX86_64, llvm::RuntimeDyldMachOAArch64, llvm::RuntimeDyldMachOARM, llvm::RuntimeDyldMachOI386, and llvm::RuntimeDyldMachOX86_64.
Referenced by computeSectionStubBufSize(), computeTotalAllocSize(), and emitSection().
|
inline |
Definition at line 522 of file RuntimeDyldImpl.h.
References AbsoluteSymbolSection, getSectionLoadAddress(), GlobalSymbolTable, and modifyAddressBasedOnFlags().
Definition at line 502 of file RuntimeDyldImpl.h.
References AbsoluteSymbolSection, getSectionAddress(), and GlobalSymbolTable.
Definition at line 515 of file RuntimeDyldImpl.h.
References GlobalSymbolTable.
|
inline |
Definition at line 542 of file RuntimeDyldImpl.h.
References getSectionLoadAddress(), and GlobalSymbolTable.
|
inline |
Definition at line 573 of file RuntimeDyldImpl.h.
References HasError.
|
pure virtual |
Implemented in llvm::RuntimeDyldCOFF, llvm::RuntimeDyldELF, and llvm::RuntimeDyldMachO.
|
pure virtual |
Implemented in llvm::RuntimeDyldCOFF, llvm::RuntimeDyldELF, and llvm::RuntimeDyldMachO.
|
protected |
Definition at line 182 of file RuntimeDyld.cpp.
References AbsoluteSymbolSection, llvm::alignTo(), Arch, CodeSize, computeTotalAllocSize(), llvm::dbgs(), emitCommonSymbols(), finalizeLoad(), findOrEmitSection(), llvm::format(), llvm::object::ObjectFile::getArch(), llvm::object::Binary::getFileName(), getJITSymbolFlags(), llvm::getOffset(), GlobalSymbolTable, I, llvm::object::Binary::isLittleEndian(), IsTargetLittleEndian, llvm::object::SectionRef::isText(), LLVM_DEBUG, lock, MemMgr, NotifyStubEmitted, ProcessAllSections, processNewSymbol(), processRelocationRef(), Resolver, llvm::object::ObjectFile::section_begin(), llvm::object::ObjectFile::section_end(), Sections, setMipsABI(), llvm::object::BasicSymbolRef::SF_Absolute, llvm::object::BasicSymbolRef::SF_Common, llvm::object::BasicSymbolRef::SF_Undefined, llvm::object::BasicSymbolRef::SF_Weak, Size, llvm::object::SymbolRef::ST_Data, llvm::object::SymbolRef::ST_File, llvm::object::SymbolRef::ST_Function, llvm::object::SymbolRef::ST_Other, llvm::object::SymbolRef::ST_Unknown, llvm::object::SymbolicFile::symbol_begin(), llvm::object::SymbolicFile::symbol_end(), llvm::object::ObjectFile::symbols(), and llvm::Expected< T >::takeError().
Referenced by llvm::RuntimeDyldCOFF::loadObject(), llvm::RuntimeDyldELF::loadObject(), and llvm::RuntimeDyldMachO::loadObject().
Definition at line 160 of file RuntimeDyld.cpp.
References llvm_unreachable, lock, reassignSectionAddress(), and Sections.
|
inlineprotectedvirtual |
Modify the given target address based on the given symbol flags.
This can be used by subclasses to tweak addresses based on symbol flags, For example: the MachO/ARM target uses it to set the low bit if the target is a thumb symbol.
Reimplemented in llvm::RuntimeDyldMachOARM.
Definition at line 356 of file RuntimeDyldImpl.h.
Referenced by applyExternalSymbolRelocations(), and getSymbol().
|
inlineprotectedvirtual |
Definition at line 441 of file RuntimeDyldImpl.h.
Referenced by loadObjectImpl().
|
protectedpure 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).
Implemented in llvm::RuntimeDyldCOFFAArch64, llvm::RuntimeDyldCOFFI386, llvm::RuntimeDyldCOFFThumb, llvm::RuntimeDyldCOFFX86_64, llvm::RuntimeDyldELF, llvm::RuntimeDyldMachOAArch64, llvm::RuntimeDyldMachOARM, llvm::RuntimeDyldMachOI386, and llvm::RuntimeDyldMachOX86_64.
References CodeSize.
Referenced by loadObjectImpl().
Endian-aware read Read the least significant Size bytes from Src.
Definition at line 713 of file RuntimeDyld.cpp.
References IsTargetLittleEndian, and Size.
Referenced by llvm::RuntimeDyldMachOARM::decodeAddend(), llvm::RuntimeDyldMachO::memcpyAddend(), llvm::RuntimeDyldCOFFI386::processRelocationRef(), llvm::RuntimeDyldCOFFThumb::processRelocationRef(), llvm::RuntimeDyldCOFFX86_64::processRelocationRef(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::RuntimeDyldMachO::processScatteredVANILLA(), and llvm::RuntimeDyldMachOARM::resolveRelocation().
Definition at line 1093 of file RuntimeDyld.cpp.
References llvm::dbgs(), llvm::format(), getName(), LLVM_DEBUG, and Sections.
Referenced by mapSectionAddress().
|
virtual |
Reimplemented in llvm::RuntimeDyldCOFFAArch64, llvm::RuntimeDyldCOFFI386, llvm::RuntimeDyldCOFFThumb, llvm::RuntimeDyldCOFFX86_64, llvm::RuntimeDyldELF, llvm::RuntimeDyldMachOCRTPBase< Impl >, llvm::RuntimeDyldMachOCRTPBase< RuntimeDyldMachOAArch64 >, llvm::RuntimeDyldMachOCRTPBase< RuntimeDyldMachOARM >, llvm::RuntimeDyldMachOCRTPBase< RuntimeDyldMachOI386 >, and llvm::RuntimeDyldMachOCRTPBase< RuntimeDyldMachOX86_64 >.
Definition at line 74 of file RuntimeDyld.cpp.
|
inlineprotectedvirtual |
Reimplemented in llvm::RuntimeDyldCOFF.
Definition at line 454 of file RuntimeDyldImpl.h.
Referenced by computeSectionStubBufSize().
|
inlineprotectedvirtual |
Definition at line 444 of file RuntimeDyldImpl.h.
Referenced by computeGOTSize().
|
inlineprotectedvirtual |
Definition at line 449 of file RuntimeDyldImpl.h.
Referenced by computeSectionStubBufSize().
|
protected |
Resolve relocations to external symbols.
Definition at line 1175 of file RuntimeDyld.cpp.
References applyExternalSymbolRelocations(), assert(), ExternalSymbolRelocations, GlobalSymbolTable, llvm::StringMap< ValueTy, AllocatorTy >::insert(), Resolver, and llvm::Error::success().
Referenced by resolveRelocations().
void llvm::RuntimeDyldImpl::resolveLocalRelocations | ( | ) |
Definition at line 145 of file RuntimeDyld.cpp.
References llvm::dbgs(), llvm::format(), getSectionLoadAddress(), LLVM_DEBUG, Relocations, and resolveRelocationList().
Referenced by resolveRelocations().
|
protectedpure virtual |
A object file specific relocation resolver.
RE | The relocation to be resolved |
Value | Target symbol address to apply the relocation action |
Implemented in llvm::RuntimeDyldCOFFAArch64, llvm::RuntimeDyldCOFFI386, llvm::RuntimeDyldCOFFThumb, llvm::RuntimeDyldCOFFX86_64, llvm::RuntimeDyldELF, llvm::RuntimeDyldELFMips, llvm::RuntimeDyldMachOAArch64, llvm::RuntimeDyldMachOARM, llvm::RuntimeDyldMachOI386, and llvm::RuntimeDyldMachOX86_64.
Referenced by resolveRelocationList().
|
protected |
Resolves relocations from Relocs list with address from Value.
Definition at line 1113 of file RuntimeDyld.cpp.
References AbsoluteSymbolSection, resolveRelocation(), and Sections.
Referenced by applyExternalSymbolRelocations(), and resolveLocalRelocations().
void llvm::RuntimeDyldImpl::resolveRelocations | ( | ) |
Definition at line 121 of file RuntimeDyld.cpp.
References llvm::dumpSectionMemory(), ErrorStr, HasError, LLVM_DEBUG, lock, resolveExternalSymbols(), resolveLocalRelocations(), Sections, and llvm::toString().
|
inlineprotectedvirtual |
Definition at line 336 of file RuntimeDyldImpl.h.
References IsMipsN32ABI, IsMipsN64ABI, and IsMipsO32ABI.
Referenced by loadObjectImpl().
|
inline |
Definition at line 583 of file RuntimeDyldImpl.h.
References NotifyStubEmitted.
|
inline |
Definition at line 472 of file RuntimeDyldImpl.h.
References ProcessAllSections.
|
inlineprotectedvirtual |
Reimplemented in llvm::RuntimeDyldCOFF.
Definition at line 459 of file RuntimeDyldImpl.h.
References Size.
Referenced by computeSectionStubBufSize().
|
protected |
Endian-aware write.
Write the least significant Size bytes from Value to Dst.
Definition at line 727 of file RuntimeDyld.cpp.
References IsTargetLittleEndian, and Size.
Referenced by createStubFunction(), llvm::RuntimeDyldCOFFI386::resolveRelocation(), llvm::RuntimeDyldCOFFThumb::resolveRelocation(), llvm::RuntimeDyldCOFFX86_64::resolveRelocation(), llvm::RuntimeDyldMachOAArch64::resolveRelocation(), llvm::RuntimeDyldMachOARM::resolveRelocation(), llvm::RuntimeDyldMachOI386::resolveRelocation(), and llvm::RuntimeDyldMachOX86_64::resolveRelocation().
Definition at line 315 of file RuntimeDyldImpl.h.
References llvm::big, IsTargetLittleEndian, llvm::little, and llvm::support::endian::write().
Referenced by createStubFunction().
Definition at line 322 of file RuntimeDyldImpl.h.
References llvm::big, IsTargetLittleEndian, llvm::little, and llvm::support::endian::write().
Referenced by createStubFunction(), and llvm::RuntimeDyldELF::processRelocationRef().
Definition at line 329 of file RuntimeDyldImpl.h.
References llvm::big, IsTargetLittleEndian, llvm::little, and llvm::support::endian::write().
|
friend |
Definition at line 234 of file RuntimeDyldImpl.h.
Definition at line 236 of file RuntimeDyldImpl.h.
Referenced by getSectionAddress(), getSectionContent(), getSectionLoadAddress(), getSymbol(), getSymbolLocalAddress(), loadObjectImpl(), and resolveRelocationList().
|
protected |
Definition at line 283 of file RuntimeDyldImpl.h.
Referenced by llvm::RuntimeDyldCOFF::create(), llvm::RuntimeDyldELF::create(), llvm::RuntimeDyldMachO::create(), createStubFunction(), llvm::RuntimeDyldELF::getGOTEntrySize(), loadObjectImpl(), llvm::RuntimeDyldELF::processRelocationRef(), and llvm::RuntimeDyldELF::~RuntimeDyldELF().
|
protected |
Definition at line 313 of file RuntimeDyldImpl.h.
Referenced by getErrorString(), llvm::RuntimeDyldCOFF::loadObject(), llvm::RuntimeDyldELF::loadObject(), llvm::RuntimeDyldMachO::loadObject(), and resolveRelocations().
|
protected |
Definition at line 278 of file RuntimeDyldImpl.h.
Referenced by addRelocationForSymbol(), applyExternalSymbolRelocations(), and resolveExternalSymbols().
|
protected |
Definition at line 259 of file RuntimeDyldImpl.h.
Referenced by addRelocationForSymbol(), applyExternalSymbolRelocations(), emitCommonSymbols(), llvm::RuntimeDyldMachO::getRelocationValueRef(), getSymbol(), getSymbolLocalAddress(), getSymbolSectionID(), getSymbolTable(), llvm::RuntimeDyldMachOARM::isAddrTargetThumb(), loadObjectImpl(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::RuntimeDyldMachOARM::processRelocationRef(), and resolveExternalSymbols().
|
protected |
Definition at line 312 of file RuntimeDyldImpl.h.
Referenced by clearError(), hasError(), llvm::RuntimeDyldCOFF::loadObject(), llvm::RuntimeDyldELF::loadObject(), llvm::RuntimeDyldMachO::loadObject(), resolveRelocations(), and RuntimeDyldImpl().
|
protected |
Definition at line 286 of file RuntimeDyldImpl.h.
Referenced by createStubFunction(), llvm::RuntimeDyldELF::finalizeLoad(), llvm::RuntimeDyldELF::getGOTEntrySize(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::RuntimeDyldELFMips::resolveRelocation(), and setMipsABI().
|
protected |
Definition at line 287 of file RuntimeDyldImpl.h.
Referenced by createStubFunction(), llvm::RuntimeDyldELF::finalizeLoad(), llvm::RuntimeDyldELF::getGOTEntrySize(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::RuntimeDyldELFMips::resolveRelocation(), and setMipsABI().
|
protected |
Definition at line 285 of file RuntimeDyldImpl.h.
Referenced by createStubFunction(), llvm::RuntimeDyldELF::finalizeLoad(), llvm::RuntimeDyldELF::getGOTEntrySize(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::RuntimeDyldELFMips::resolveRelocation(), and setMipsABI().
|
protected |
Definition at line 284 of file RuntimeDyldImpl.h.
Referenced by loadObjectImpl(), llvm::RuntimeDyldELF::processRelocationRef(), readBytesUnaligned(), writeBytesUnaligned(), writeInt16BE(), writeInt32BE(), and writeInt64BE().
|
protected |
Definition at line 303 of file RuntimeDyldImpl.h.
Referenced by loadObjectImpl(), mapSectionAddress(), and resolveRelocations().
|
protected |
Definition at line 239 of file RuntimeDyldImpl.h.
Referenced by computeSectionStubBufSize(), llvm::RuntimeDyldCOFF::create(), llvm::RuntimeDyldELF::create(), llvm::RuntimeDyldMachO::create(), deregisterEHFrames(), emitCommonSymbols(), emitSection(), llvm::RuntimeDyldELF::finalizeLoad(), loadObjectImpl(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::RuntimeDyldCOFFX86_64::registerEHFrames(), llvm::RuntimeDyldELF::registerEHFrames(), llvm::RuntimeDyldMachOCRTPBase< Impl >::registerEHFrames(), llvm::RuntimeDyldCOFF::RuntimeDyldCOFF(), llvm::RuntimeDyldELF::RuntimeDyldELF(), RuntimeDyldImpl(), llvm::RuntimeDyldMachO::RuntimeDyldMachO(), llvm::RuntimeDyldMachOCRTPBase< RuntimeDyldMachOARM >::RuntimeDyldMachOCRTPBase(), and llvm::RuntimeDyldELF::~RuntimeDyldELF().
|
protected |
Definition at line 307 of file RuntimeDyldImpl.h.
Referenced by loadObjectImpl(), and setNotifyStubEmitted().
|
protected |
Definition at line 291 of file RuntimeDyldImpl.h.
Referenced by computeTotalAllocSize(), emitSection(), loadObjectImpl(), RuntimeDyldImpl(), and setProcessAllSections().
|
protected |
Definition at line 273 of file RuntimeDyldImpl.h.
Referenced by addRelocationForSection(), addRelocationForSymbol(), and resolveLocalRelocations().
|
protected |
Definition at line 242 of file RuntimeDyldImpl.h.
Referenced by applyExternalSymbolRelocations(), llvm::RuntimeDyldCOFF::create(), llvm::RuntimeDyldELF::create(), llvm::RuntimeDyldMachO::create(), loadObjectImpl(), resolveExternalSymbols(), llvm::RuntimeDyldCOFF::RuntimeDyldCOFF(), llvm::RuntimeDyldELF::RuntimeDyldELF(), RuntimeDyldImpl(), llvm::RuntimeDyldMachO::RuntimeDyldMachO(), and llvm::RuntimeDyldELF::~RuntimeDyldELF().
|
protected |
Definition at line 249 of file RuntimeDyldImpl.h.
Referenced by llvm::RuntimeDyldMachOAArch64::decodeAddend(), llvm::RuntimeDyldMachOARM::decodeAddend(), llvm::RuntimeDyldMachO::dumpRelocationToResolve(), emitCommonSymbols(), emitSection(), llvm::RuntimeDyldELF::finalizeLoad(), llvm::RuntimeDyldCOFFAArch64::generateRelocationStub(), llvm::RuntimeDyldCOFFX86_64::generateRelocationStub(), llvm::RuntimeDyldCOFF::getDLLImportOffset(), llvm::RuntimeDyldMachO::getSection(), getSectionAddress(), getSectionContent(), getSectionLoadAddress(), llvm::RuntimeDyldMachOARM::isAddrTargetThumb(), loadObjectImpl(), mapSectionAddress(), llvm::RuntimeDyldMachO::memcpyAddend(), llvm::RuntimeDyldMachO::populateIndirectSymbolPointersSection(), llvm::RuntimeDyldCOFFAArch64::processRelocationRef(), llvm::RuntimeDyldCOFFI386::processRelocationRef(), llvm::RuntimeDyldCOFFThumb::processRelocationRef(), llvm::RuntimeDyldCOFFX86_64::processRelocationRef(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::RuntimeDyldMachO::processScatteredVANILLA(), reassignSectionAddress(), llvm::RuntimeDyldCOFFX86_64::registerEHFrames(), llvm::RuntimeDyldELF::registerEHFrames(), llvm::RuntimeDyldMachOCRTPBase< Impl >::registerEHFrames(), llvm::RuntimeDyldCOFFAArch64::resolveRelocation(), llvm::RuntimeDyldCOFFI386::resolveRelocation(), llvm::RuntimeDyldCOFFThumb::resolveRelocation(), llvm::RuntimeDyldCOFFX86_64::resolveRelocation(), llvm::RuntimeDyldELF::resolveRelocation(), llvm::RuntimeDyldELFMips::resolveRelocation(), llvm::RuntimeDyldMachOAArch64::resolveRelocation(), llvm::RuntimeDyldMachOARM::resolveRelocation(), llvm::RuntimeDyldMachOI386::resolveRelocation(), llvm::RuntimeDyldMachOX86_64::resolveRelocation(), resolveRelocationList(), and resolveRelocations().