|
LLVM
4.0.0
|
X86_64 code that's common to all ABIs. More...
#include <OrcABISupport.h>
Public Types | |
| typedef GenericIndirectStubsInfo< 8 > | IndirectStubsInfo |
Static Public Member Functions | |
| 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 = 8 |
| static const unsigned | TrampolineSize = 8 |
X86_64 code that's common to all ABIs.
X86_64 supports lazy JITing.
Definition at line 146 of file OrcABISupport.h.
Definition at line 151 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 x86-64, 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 208 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(), Ptr, llvm::orc::GenericIndirectStubsInfo< StubSizeVal >::StubSize, and llvm::Error::success().
|
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 193 of file OrcABISupport.cpp.
References I, and TrampolineSize.
Definition at line 148 of file OrcABISupport.h.
Definition at line 149 of file OrcABISupport.h.
Referenced by writeTrampolines().
1.8.6