class OrcI386
Declaration
class OrcI386 { /* full declaration omitted */ };
Description
I386 support. I386 supports lazy JITing.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h:195
Member Variables
- public static const unsigned int PointerSize = 4
- public static const unsigned int TrampolineSize = 8
- public static const unsigned int StubSize = 8
- public static const unsigned int StubToPointerMaxDisplacement = 1 << 31
- public static const unsigned int ResolverCodeSize = 74
Method Overview
- public static void writeIndirectStubsBlock(char * StubsBlockWorkingMem, llvm::JITTargetAddress StubsBlockTargetAddress, llvm::JITTargetAddress PointersBlockTargetAddress, unsigned int NumStubs)
- public static void writeResolverCode(char * ResolverWorkingMem, llvm::JITTargetAddress ResolverTargetAddress, llvm::JITTargetAddress ReentryFnAddr, llvm::JITTargetAddress ReentryCtxAddr)
- public static void writeTrampolines(char * TrampolineBlockWorkingMem, llvm::JITTargetAddress TrampolineBlockTargetAddress, llvm::JITTargetAddress ResolverAddr, unsigned int NumTrampolines)
Methods
¶static void writeIndirectStubsBlock(
char* StubsBlockWorkingMem,
llvm::JITTargetAddress
StubsBlockTargetAddress,
llvm::JITTargetAddress
PointersBlockTargetAddress,
unsigned int NumStubs)
static void writeIndirectStubsBlock(
char* StubsBlockWorkingMem,
llvm::JITTargetAddress
StubsBlockTargetAddress,
llvm::JITTargetAddress
PointersBlockTargetAddress,
unsigned int NumStubs)
Description
Write NumStubs indirect stubs to working memory at StubsBlockWorkingMem. Stubs will be written as if linked at StubsBlockTargetAddress, with the Nth stub using the Nth pointer in memory starting at PointersBlockTargetAddress.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h:227
Parameters
- char* StubsBlockWorkingMem
- llvm::JITTargetAddress StubsBlockTargetAddress
- llvm::JITTargetAddress PointersBlockTargetAddress
- unsigned int NumStubs
¶static void writeResolverCode(
char* ResolverWorkingMem,
llvm::JITTargetAddress ResolverTargetAddress,
llvm::JITTargetAddress ReentryFnAddr,
llvm::JITTargetAddress ReentryCtxAddr)
static void writeResolverCode(
char* ResolverWorkingMem,
llvm::JITTargetAddress ResolverTargetAddress,
llvm::JITTargetAddress ReentryFnAddr,
llvm::JITTargetAddress ReentryCtxAddr)
Description
Write the resolver code into the given memory. The user is responsible for allocating the memory and setting permissions. ReentryFnAddr should be the address of a function whose signature matches void* (*)(void *TrampolineAddr, void *ReentryCtxAddr). The ReentryCtxAddr argument of writeResolverCode will be passed as the second argument to the function at ReentryFnAddr.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h:210
Parameters
- char* ResolverWorkingMem
- llvm::JITTargetAddress ResolverTargetAddress
- llvm::JITTargetAddress ReentryFnAddr
- llvm::JITTargetAddress ReentryCtxAddr
¶static void writeTrampolines(
char* TrampolineBlockWorkingMem,
llvm::JITTargetAddress
TrampolineBlockTargetAddress,
llvm::JITTargetAddress ResolverAddr,
unsigned int NumTrampolines)
static void writeTrampolines(
char* TrampolineBlockWorkingMem,
llvm::JITTargetAddress
TrampolineBlockTargetAddress,
llvm::JITTargetAddress ResolverAddr,
unsigned int NumTrampolines)
Description
Write the requested number of trampolines into the given memory, which must be big enough to hold 1 pointer, plus NumTrampolines trampolines.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h:218
Parameters
- char* TrampolineBlockWorkingMem
- llvm::JITTargetAddress TrampolineBlockTargetAddress
- llvm::JITTargetAddress ResolverAddr
- unsigned int NumTrampolines