LLVM: llvm::orc::OrcI386 Class Reference (original) (raw)
I386 support. More...
#include "[llvm/ExecutionEngine/Orc/OrcABISupport.h](OrcABISupport%5F8h%5Fsource.html)"
| 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 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 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 = 4 |
| static constexpr unsigned | TrampolineSize = 8 |
| static constexpr unsigned | StubSize = 8 |
| static constexpr unsigned | StubToPointerMaxDisplacement = 1 << 31 |
| static constexpr unsigned | ResolverCodeSize = 0x4a |
I386 support.
I386 supports lazy JITing.
Definition at line 197 of file OrcABISupport.h.
◆ writeIndirectStubsBlock()
| void llvm::orc::OrcI386::writeIndirectStubsBlock ( char * StubsBlockWorkingMem, ExecutorAddr StubsBlockTargetAddress, ExecutorAddr PointersBlockTargetAddress, unsigned NumStubs ) | static |
|---|
◆ writeResolverCode()
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 405 of file OrcABISupport.cpp.
References assert(), and llvm::orc::ExecutorAddr::getValue().
◆ writeTrampolines()
| void llvm::orc::OrcI386::writeTrampolines ( char * TrampolineBlockWorkingMem, ExecutorAddr TrampolineBlockTargetAddress, ExecutorAddr ResolverAddr, unsigned NumTrampolines ) | static |
|---|
◆ PointerSize
| unsigned llvm::orc::OrcI386::PointerSize = 4 | staticconstexpr |
|---|
◆ ResolverCodeSize
| unsigned llvm::orc::OrcI386::ResolverCodeSize = 0x4a | staticconstexpr |
|---|
◆ StubSize
| unsigned llvm::orc::OrcI386::StubSize = 8 | staticconstexpr |
|---|
◆ StubToPointerMaxDisplacement
| unsigned llvm::orc::OrcI386::StubToPointerMaxDisplacement = 1 << 31 | staticconstexpr |
|---|
◆ TrampolineSize
| unsigned llvm::orc::OrcI386::TrampolineSize = 8 | staticconstexpr |
|---|
The documentation for this class was generated from the following files:
- include/llvm/ExecutionEngine/Orc/OrcABISupport.h
- lib/ExecutionEngine/Orc/OrcABISupport.cpp