LLVM
8.0.1
|
I386 support. More...
#include "llvm/ExecutionEngine/Orc/OrcABISupport.h"
Public Types | |
using | IndirectStubsInfo = GenericIndirectStubsInfo< 8 > |
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 = 4 |
static const unsigned | TrampolineSize = 8 |
static const unsigned | ResolverCodeSize = 0x4a |
Definition at line 215 of file OrcABISupport.h.
using llvm::orc::OrcI386::JITReentryFn = JITTargetAddress (*)(void *CallbackMgr, void *TrampolineId) |
Definition at line 218 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 i386, 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 476 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 416 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 463 of file OrcABISupport.cpp.
References I, and llvm::orc::OrcAArch64::TrampolineSize.
Definition at line 211 of file OrcABISupport.h.
Definition at line 213 of file OrcABISupport.h.
Definition at line 212 of file OrcABISupport.h.