LLVM
8.0.1
|
#include "llvm/ExecutionEngine/Orc/OrcABISupport.h"
Public Types | |
using | IndirectStubsInfo = GenericIndirectStubsInfo< 32 > |
using | JITReentryFn = JITTargetAddress(*)(void *CallbackMgr, void *TrampolineId) |
Static Public Member Functions | |
static void | writeResolverCode (uint8_t *ResolveMem, JITReentryFn Reentry, void *CallbackMgr) |
Write the resolver code into the given memory. More... | |
static void | writeTrampolines (uint8_t *TrampolineMem, void *ResolverAddr, unsigned NumTrampolines) |
Write the requsted number of trampolines into the given memory, which must be big enough to hold 1 pointer, plus NumTrampolines trampolines. More... | |
static Error | emitIndirectStubsBlock (IndirectStubsInfo &StubsInfo, unsigned MinStubs, void *InitialPtrVal) |
Emit at least MinStubs worth of indirect call stubs, rounded out to the nearest page size. More... | |
Static Public Attributes | |
static const unsigned | PointerSize = 8 |
static const unsigned | TrampolineSize = 40 |
static const unsigned | ResolverCodeSize = 0x120 |
Definition at line 286 of file OrcABISupport.h.
Definition at line 292 of file OrcABISupport.h.
using llvm::orc::OrcMips64::JITReentryFn = JITTargetAddress (*)(void *CallbackMgr, void *TrampolineId) |
Definition at line 294 of file OrcABISupport.h.
|
static |
Emit at least MinStubs worth of indirect call stubs, rounded out to the nearest page size.
E.g. Asking for 4 stubs on Mips64, where stubs are 8-bytes, with 4k pages will return a block of 512 stubs (4096 / 8 = 512). Asking for 513 will return a block of 1024 (2-pages worth).
Definition at line 900 of file OrcABISupport.cpp.
References llvm::sys::Memory::allocateMappedMemory(), llvm::errorCodeToError(), llvm::sys::Process::getPageSize(), I, llvm::sys::Memory::MF_EXEC, llvm::sys::Memory::MF_READ, llvm::sys::Memory::MF_WRITE, PageSize, llvm::sys::Memory::protectMappedMemory(), llvm::orc::GenericIndirectStubsInfo< StubSizeVal >::StubSize, and llvm::Error::success().
|
static |
Write the resolver code into the given memory.
The user is be responsible for allocating the memory and setting permissions.
Definition at line 733 of file OrcABISupport.cpp.
References llvm::Intrinsic::memcpy.
|
static |
Write the requsted number of trampolines into the given memory, which must be big enough to hold 1 pointer, plus NumTrampolines trampolines.
Definition at line 876 of file OrcABISupport.cpp.
References I.
Definition at line 288 of file OrcABISupport.h.
Definition at line 290 of file OrcABISupport.h.
Definition at line 289 of file OrcABISupport.h.