LLVM  3.7.0
Public Types | Public Member Functions | List of all members
llvm::RuntimeDyldMachOARM Class Reference

#include <RuntimeDyldMachOARM.h>

Inheritance diagram for llvm::RuntimeDyldMachOARM:
[legend]
Collaboration diagram for llvm::RuntimeDyldMachOARM:
[legend]

Public Types

typedef uint32_t TargetPtrT
 

Public Member Functions

 RuntimeDyldMachOARM (RuntimeDyld::MemoryManager &MM, RuntimeDyld::SymbolResolver &Resolver)
 
unsigned getMaxStubSize () override
 
unsigned getStubAlignment () override
 
int64_t decodeAddend (const RelocationEntry &RE) const
 
relocation_iterator processRelocationRef (unsigned SectionID, relocation_iterator RelI, const ObjectFile &BaseObjT, ObjSectionToIDMap &ObjSectionToID, 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). More...
 
void resolveRelocation (const RelocationEntry &RE, uint64_t Value) override
 A object file specific relocation resolver. More...
 
void finalizeSection (const ObjectFile &Obj, unsigned SectionID, const SectionRef &Section)
 
- Public Member Functions inherited from llvm::RuntimeDyldMachOCRTPBase< RuntimeDyldMachOARM >
 RuntimeDyldMachOCRTPBase (RuntimeDyld::MemoryManager &MemMgr, RuntimeDyld::SymbolResolver &Resolver)
 
void finalizeLoad (const ObjectFile &Obj, ObjSectionToIDMap &SectionMap) override
 
void registerEHFrames () override
 
- Public Member Functions inherited from llvm::RuntimeDyldMachO
std::unique_ptr
< RuntimeDyld::LoadedObjectInfo
loadObject (const object::ObjectFile &O) override
 
SectionEntrygetSection (unsigned SectionID)
 
bool isCompatibleFile (const object::ObjectFile &Obj) const override
 
- Public Member Functions inherited from llvm::RuntimeDyldImpl
 RuntimeDyldImpl (RuntimeDyld::MemoryManager &MemMgr, RuntimeDyld::SymbolResolver &Resolver)
 
virtual ~RuntimeDyldImpl ()
 
void setProcessAllSections (bool ProcessAllSections)
 
void setRuntimeDyldChecker (RuntimeDyldCheckerImpl *Checker)
 
uint8_t * getSymbolLocalAddress (StringRef Name) const
 
RuntimeDyld::SymbolInfo getSymbol (StringRef Name) const
 
void resolveRelocations ()
 
void reassignSectionAddress (unsigned SectionID, uint64_t Addr)
 
void mapSectionAddress (const void *LocalAddress, uint64_t TargetAddress)
 
bool hasError ()
 
void clearError ()
 
StringRef getErrorString ()
 
virtual void deregisterEHFrames ()
 

Additional Inherited Members

- Static Public Member Functions inherited from llvm::RuntimeDyldMachO
static std::unique_ptr
< RuntimeDyldMachO
create (Triple::ArchType Arch, RuntimeDyld::MemoryManager &MemMgr, RuntimeDyld::SymbolResolver &Resolver)
 Create a RuntimeDyldMachO instance for the given target architecture. More...
 
- Protected Types inherited from llvm::RuntimeDyldImpl
typedef SmallVector
< SectionEntry, 64 > 
SectionList
 
typedef unsigned SID
 
typedef std::map< SectionRef,
unsigned
ObjSectionToIDMap
 
typedef std::vector< SymbolRefCommonSymbolList
 
typedef SmallVector
< RelocationEntry, 64 > 
RelocationList
 
typedef std::map
< RelocationValueRef,
uintptr_t > 
StubMap
 
- Protected Member Functions inherited from llvm::RuntimeDyldMachO
 RuntimeDyldMachO (RuntimeDyld::MemoryManager &MemMgr, RuntimeDyld::SymbolResolver &Resolver)
 
int64_t memcpyAddend (const RelocationEntry &RE) const
 This convenience method uses memcpy to extract a contiguous addend (the addend size and offset are taken from the corresponding fields of the RE). More...
 
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 the common fields. More...
 
RelocationValueRef getRelocationValueRef (const ObjectFile &BaseTObj, const relocation_iterator &RI, const RelocationEntry &RE, ObjSectionToIDMap &ObjSectionToID)
 Construct a RelocationValueRef representing the relocation target. More...
 
void makeValueAddendPCRel (RelocationValueRef &Value, const relocation_iterator &RI, unsigned OffsetToNextPC)
 Make the RelocationValueRef addend PC-relative. More...
 
void dumpRelocationToResolve (const RelocationEntry &RE, uint64_t Value) const
 Dump information about the relocation entry (RE) and resolved value. More...
 
void populateIndirectSymbolPointersSection (const MachOObjectFile &Obj, const SectionRef &PTSection, unsigned PTSectionID)
 
- Protected Member Functions inherited from llvm::RuntimeDyldImpl
bool Error (const Twine &Msg)
 
uint64_t getSectionLoadAddress (unsigned SectionID) const
 
uint8_t * getSectionAddress (unsigned SectionID) const
 
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. More...
 
void writeBytesUnaligned (uint64_t Value, uint8_t *Dst, unsigned Size) const
 Endian-aware write. More...
 
void emitCommonSymbols (const ObjectFile &Obj, CommonSymbolList &CommonSymbols)
 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. More...
 
unsigned emitSection (const ObjectFile &Obj, const SectionRef &Section, bool IsCode)
 Emits section data from the object file to the MemoryManager. More...
 
unsigned findOrEmitSection (const ObjectFile &Obj, const SectionRef &Section, bool IsCode, ObjSectionToIDMap &LocalSections)
 Find Section in LocalSections. More...
 
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. More...
 
void resolveRelocationList (const RelocationList &Relocs, uint64_t Value)
 Resolves relocations from Relocs list with address from Value. More...
 
void resolveExternalSymbols ()
 Resolve relocations to external symbols. More...
 
void computeTotalAllocSize (const ObjectFile &Obj, uint64_t &CodeSize, uint64_t &DataSizeRO, uint64_t &DataSizeRW)
 
unsigned computeSectionStubBufSize (const ObjectFile &Obj, const SectionRef &Section)
 
std::pair< unsigned, unsignedloadObjectImpl (const object::ObjectFile &Obj)
 
- Static Protected Member Functions inherited from llvm::RuntimeDyldMachO
static section_iterator getSectionByAddress (const MachOObjectFile &Obj, uint64_t Addr)
 
- Protected Attributes inherited from llvm::RuntimeDyldMachO
SmallVector
< EHFrameRelatedSections, 2 > 
UnregisteredEHFrameSections
 
- Protected Attributes inherited from llvm::RuntimeDyldImpl
RuntimeDyld::MemoryManagerMemMgr
 
RuntimeDyld::SymbolResolverResolver
 
RuntimeDyldCheckerImplChecker
 
SectionList Sections
 
RTDyldSymbolTable GlobalSymbolTable
 
DenseMap< unsigned,
RelocationList
Relocations
 
StringMap< RelocationListExternalSymbolRelocations
 
Triple::ArchType Arch
 
bool IsTargetLittleEndian
 
bool IsMipsO32ABI
 
bool IsMipsN64ABI
 
bool ProcessAllSections
 
sys::Mutex lock
 
bool HasError
 
std::string ErrorStr
 

Detailed Description

Definition at line 19 of file RuntimeDyldMachOARM.h.

Member Typedef Documentation

Definition at line 26 of file RuntimeDyldMachOARM.h.

Constructor & Destructor Documentation

llvm::RuntimeDyldMachOARM::RuntimeDyldMachOARM ( RuntimeDyld::MemoryManager MM,
RuntimeDyld::SymbolResolver Resolver 
)
inline

Definition at line 28 of file RuntimeDyldMachOARM.h.

Member Function Documentation

int64_t llvm::RuntimeDyldMachOARM::decodeAddend ( const RelocationEntry RE) const
inline
void llvm::RuntimeDyldMachOARM::finalizeSection ( const ObjectFile Obj,
unsigned  SectionID,
const SectionRef Section 
)
inline
unsigned llvm::RuntimeDyldMachOARM::getMaxStubSize ( )
inlineoverridevirtual

Implements llvm::RuntimeDyldImpl.

Definition at line 32 of file RuntimeDyldMachOARM.h.

unsigned llvm::RuntimeDyldMachOARM::getStubAlignment ( )
inlineoverridevirtual

Implements llvm::RuntimeDyldImpl.

Definition at line 34 of file RuntimeDyldMachOARM.h.

relocation_iterator llvm::RuntimeDyldMachOARM::processRelocationRef ( unsigned  SectionID,
relocation_iterator  RelI,
const ObjectFile Obj,
ObjSectionToIDMap ObjSectionToID,
StubMap Stubs 
)
inlineoverridevirtual
void llvm::RuntimeDyldMachOARM::resolveRelocation ( const RelocationEntry RE,
uint64_t  Value 
)
inlineoverridevirtual

The documentation for this class was generated from the following file: