LLVM 20.0.0git
|
X86_64 support for SysV ABI (Linux, MacOSX). More...
#include "llvm/ExecutionEngine/Orc/OrcABISupport.h"
Static Public Member Functions | |
static void | writeResolverCode (char *ResolverWorkingMem, ExecutorAddr ResolverTargetAddress, ExecutorAddr ReentryFnAddr, ExecutorAddr ReentryCtxAddr) |
Write the resolver code into the given memory. | |
Static Public Member Functions inherited from llvm::orc::OrcX86_64_Base | |
static void | writeTrampolines (char *TrampolineBlockWorkingMem, ExecutorAddr TrampolineBlockTargetAddress, ExecutorAddr ResolverAddr, 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 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 | ResolverCodeSize = 0x6C |
Static Public Attributes inherited from llvm::orc::OrcX86_64_Base | |
static constexpr unsigned | PointerSize = 8 |
static constexpr unsigned | TrampolineSize = 8 |
static constexpr unsigned | StubSize = 8 |
static constexpr unsigned | StubToPointerMaxDisplacement = 1 << 31 |
X86_64 support for SysV ABI (Linux, MacOSX).
X86_64_SysV supports lazy JITing.
Definition at line 158 of file OrcABISupport.h.
|
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 253 of file OrcABISupport.cpp.
References llvm::dbgs(), llvm::formatv(), and LLVM_DEBUG.
|
staticconstexpr |
Definition at line 160 of file OrcABISupport.h.