LLVM 22.0.0git
|
#include "llvm/ExecutionEngine/Orc/OrcABISupport.h"
Static Public Member Functions | |
static LLVM_ABI void | writeResolverCode (char *ResolverWorkingMem, ExecutorAddr ResolverTargetAddress, ExecutorAddr ReentryFnAddr, ExecutorAddr ReentryCtxAddr) |
Write the resolver code into the given memory. | |
static LLVM_ABI void | writeTrampolines (char *TrampolineBlockWorkingMem, ExecutorAddr TrampolineBlockTargetAddress, ExecutorAddr ResolverFnAddr, unsigned NumTrampolines) |
Write the requested number of trampolines into the given memory, which must be big enough to hold 1 pointer, plus NumTrampolines trampolines. | |
static LLVM_ABI void | writeIndirectStubsBlock (char *StubsBlockWorkingMem, ExecutorAddr StubsBlockTargetAddress, ExecutorAddr PointersBlockTargetAddress, unsigned NumStubs) |
Write NumStubs indirect stubs to working memory at StubsBlockWorkingMem. |
Static Public Attributes | |
static constexpr unsigned | PointerSize = 8 |
static constexpr unsigned | TrampolineSize = 16 |
static constexpr unsigned | StubSize = 16 |
static constexpr unsigned | StubToPointerMaxDisplacement = 1 << 31 |
static constexpr unsigned | ResolverCodeSize = 0xc8 |
Definition at line 377 of file OrcABISupport.h.
|
static |
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.
Definition at line 1190 of file OrcABISupport.cpp.
References assert(), llvm::dbgs(), llvm::formatv(), I, LLVM_DEBUG, PointerSize, stubAndPointerRangesOk(), and StubSize.
|
static |
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.
Definition at line 1087 of file OrcABISupport.cpp.
References llvm::dbgs(), llvm::formatv(), and LLVM_DEBUG.
|
static |
Write the requested number of trampolines into the given memory, which must be big enough to hold 1 pointer, plus NumTrampolines trampolines.
Definition at line 1160 of file OrcABISupport.cpp.
References llvm::alignTo(), llvm::dbgs(), llvm::formatv(), I, LLVM_DEBUG, and TrampolineSize.
|
staticconstexpr |
Definition at line 379 of file OrcABISupport.h.
Referenced by writeIndirectStubsBlock().
|
staticconstexpr |
Definition at line 383 of file OrcABISupport.h.
|
staticconstexpr |
Definition at line 381 of file OrcABISupport.h.
Referenced by writeIndirectStubsBlock().
|
staticconstexpr |
Definition at line 382 of file OrcABISupport.h.
|
staticconstexpr |
Definition at line 380 of file OrcABISupport.h.
Referenced by writeTrampolines().