|
LLVM 24.0.0git
|
#include "ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h"
Static Public Member Functions | |
| static bool | isAddImmediate (uint32_t Inst) |
| ADD (immediate, no shift): the second half of the ADRP+ADD idiom. | |
| Static Public Member Functions inherited from llvm::RuntimeDyldCOFF | |
| static std::unique_ptr< RuntimeDyldCOFF > | create (Triple::ArchType Arch, RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver) |
| Static Public Member Functions inherited from llvm::RuntimeDyldImpl | |
| 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) |
Definition at line 95 of file RuntimeDyldCOFFAArch64.h.
|
inline |
Definition at line 122 of file RuntimeDyldCOFFAArch64.h.
References llvm::RuntimeDyldCOFF::RuntimeDyldCOFF().
|
inline |
Definition at line 174 of file RuntimeDyldCOFFAArch64.h.
References llvm::RelocationValueRef::Addend, llvm::RuntimeDyldImpl::createStubFunction(), llvm::StringRef::data(), llvm::dbgs(), getMaxStubSize(), llvm::INTERNAL_REL_ARM64_LONG_BRANCH26, LLVM_DEBUG, llvm::Offset, llvm::RelocationValueRef::Offset, resolveRelocation(), llvm::RelocationValueRef::SectionID, llvm::RuntimeDyldImpl::Sections, and llvm::RelocationValueRef::SymbolName.
Referenced by processRelocationRef().
|
inline |
GOT slot in this section's stub area holding the address of Name, so an ADRP can reach external symbols (e.g.
DLL exports) beyond +/-4 GiB. computeSectionStubBufSize reserves getMaxStubSize() per relocation, which covers the 8 bytes.
Definition at line 135 of file RuntimeDyldCOFFAArch64.h.
References llvm::RuntimeDyldImpl::addRelocationForSymbol(), llvm::SectionEntry::advanceStubOffset(), llvm::alignTo(), llvm::dbgs(), llvm::SectionEntry::getStubOffset(), llvm::COFF::IMAGE_REL_ARM64_ADDR64, llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, LLVM_DEBUG, llvm::Log2_64(), and llvm::RuntimeDyldImpl::Sections.
Referenced by processRelocationRef().
|
inlineoverridevirtual |
Implements llvm::RuntimeDyldImpl.
Definition at line 129 of file RuntimeDyldCOFFAArch64.h.
Referenced by generateRelocationStub().
|
inlineoverridevirtual |
Implements llvm::RuntimeDyldImpl.
Definition at line 127 of file RuntimeDyldCOFFAArch64.h.
ADD (immediate, no shift): the second half of the ADRP+ADD idiom.
Definition at line 168 of file RuntimeDyldCOFFAArch64.h.
Referenced by processRelocationRef().
|
inlineoverridevirtual |
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 216 of file RuntimeDyldCOFFAArch64.h.
References llvm::RuntimeDyldImpl::addRelocationForSection(), llvm::RuntimeDyldImpl::addRelocationForSymbol(), llvm::dbgs(), llvm::RuntimeDyldImpl::findOrEmitSection(), generateRelocationStub(), llvm::SectionEntry::getAddressWithOffset(), llvm::RuntimeDyldCOFF::getDLLImportOffset(), getGOTEntryOffset(), llvm::RuntimeDyldCOFF::getImportSymbolPrefix(), llvm::SectionEntry::getObjAddress(), llvm::object::RelocationRef::getOffset(), llvm::object::RelocationRef::getSymbol(), llvm::RuntimeDyldCOFF::getSymbolOffset(), llvm::object::RelocationRef::getType(), llvm::object::RelocationRef::getTypeName(), llvm::COFF::IMAGE_REL_ARM64_ADDR32, llvm::COFF::IMAGE_REL_ARM64_ADDR32NB, llvm::COFF::IMAGE_REL_ARM64_ADDR64, llvm::COFF::IMAGE_REL_ARM64_BRANCH14, llvm::COFF::IMAGE_REL_ARM64_BRANCH19, llvm::COFF::IMAGE_REL_ARM64_BRANCH26, llvm::COFF::IMAGE_REL_ARM64_PAGEBASE_REL21, llvm::COFF::IMAGE_REL_ARM64_PAGEOFFSET_12A, llvm::COFF::IMAGE_REL_ARM64_PAGEOFFSET_12L, llvm::COFF::IMAGE_REL_ARM64_REL21, llvm::COFF::IMAGE_REL_ARM64_REL32, llvm::COFF::IMAGE_REL_ARM64_SECREL, isAddImmediate(), LLVM_DEBUG, llvm::Offset, llvm::read32AArch64LdrAddend(), llvm::support::endian::read32le(), llvm::support::endian::read64le(), llvm::report_fatal_error(), llvm::RuntimeDyldImpl::Sections, llvm::StringRef::starts_with(), llvm::Expected< T >::takeError(), uint64_t, and write32le().
|
inlineoverridevirtual |
Reimplemented from llvm::RuntimeDyldImpl.
Definition at line 493 of file RuntimeDyldCOFFAArch64.h.
|
inlineoverridevirtual |
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 376 of file RuntimeDyldCOFFAArch64.h.
References llvm::add16(), llvm::RelocationEntry::Addend, assert(), llvm::COFF::IMAGE_REL_ARM64_ABSOLUTE, llvm::COFF::IMAGE_REL_ARM64_ADDR32, llvm::COFF::IMAGE_REL_ARM64_ADDR32NB, llvm::COFF::IMAGE_REL_ARM64_ADDR64, llvm::COFF::IMAGE_REL_ARM64_BRANCH14, llvm::COFF::IMAGE_REL_ARM64_BRANCH19, llvm::COFF::IMAGE_REL_ARM64_BRANCH26, llvm::COFF::IMAGE_REL_ARM64_PAGEBASE_REL21, llvm::COFF::IMAGE_REL_ARM64_PAGEOFFSET_12A, llvm::COFF::IMAGE_REL_ARM64_PAGEOFFSET_12L, llvm::COFF::IMAGE_REL_ARM64_REL21, llvm::COFF::IMAGE_REL_ARM64_REL32, llvm::COFF::IMAGE_REL_ARM64_SECREL, llvm::COFF::IMAGE_REL_ARM64_SECTION, llvm::INTERNAL_REL_ARM64_LONG_BRANCH26, llvm::isInt(), llvm_unreachable, llvm::RelocationEntry::Offset, llvm::or32le(), llvm::support::endian::read32le(), llvm::RelocationEntry::RelType, llvm::RelocationEntry::SectionID, llvm::RuntimeDyldImpl::Sections, llvm::write32AArch64Addr(), llvm::write32AArch64Imm(), llvm::write32AArch64Ldr(), write32le(), and llvm::support::endian::write64le().
Referenced by generateRelocationStub().