14 #ifndef LLVM_LIB_EXECUTIONENGINE_RUNTIMEDYLD_RUNTIMEDYLDMACHO_H
15 #define LLVM_LIB_EXECUTIONENGINE_RUNTIMEDYLD_RUNTIMEDYLDMACHO_H
21 #define DEBUG_TYPE "dyld"
24 using namespace llvm::object;
41 : EHFrameSID(EH), TextSID(T), ExceptTabSID(Ex) {}
75 uint64_t
Offset = RI->getOffset();
98 getRelocationValueRef(
const ObjectFile &BaseTObj,
101 ObjSectionToIDMap &ObjSectionToID);
106 unsigned OffsetToNextPC);
119 unsigned PTSectionID);
124 static std::unique_ptr<RuntimeDyldMachO>
129 std::unique_ptr<RuntimeDyld::LoadedObjectInfo>
144 template <
typename Impl>
147 Impl &
impl() {
return static_cast<Impl &
>(*this); }
148 const Impl &
impl()
const {
return static_cast<const Impl &
>(*this); }
150 unsigned char *processFDE(uint8_t *
P, int64_t DeltaForText,
159 ObjSectionToIDMap &SectionMap)
override;
160 void registerEHFrames()
override;
RelocationEntry - used to represent relocations internally in the dynamic linker. ...
unsigned getAnyRelocationType(const MachO::any_relocation_info &RE) const
This class is the base class for all object file types.
RelocationEntry getRelocationEntry(unsigned SectionID, const ObjectFile &BaseTObj, const relocation_iterator &RI) const
Given a relocation_iterator for a non-scattered relocation, construct a RelocationEntry and fill in t...
Tagged union holding either a T or a Error.
place backedge safepoints impl
SectionEntry & getSection(unsigned SectionID)
RuntimeDyldMachOTarget - Templated base class for generic MachO linker algorithms and data structures...
RuntimeDyldMachO(RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver)
MachO::any_relocation_info getRelocation(DataRefImpl Rel) const
unsigned getAnyRelocationPCRel(const MachO::any_relocation_info &RE) const
unsigned getAnyRelocationLength(const MachO::any_relocation_info &RE) const
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
#define RTDYLD_INVALID_SECTION_ID
std::map< SectionRef, unsigned > ObjSectionToIDMap
SmallVector< EHFrameRelatedSections, 2 > UnregisteredEHFrameSections
RuntimeDyldMachOCRTPBase(RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver)
SectionEntry - represents a section emitted into memory by the dynamic linker.
LLVM Value Representation.
Lightweight error class with error context and mandatory checking.
This is a value type class that represents a single section in the list of sections in the object fil...