LLVM  14.0.0git
Static Public Member Functions | Static Public Attributes | List of all members
llvm::orc::OrcX86_64_Base Class Reference

X86_64 code that's common to all ABIs. More...

#include "llvm/ExecutionEngine/Orc/OrcABISupport.h"

Inheritance diagram for llvm::orc::OrcX86_64_Base:
Inheritance graph
[legend]
Collaboration diagram for llvm::orc::OrcX86_64_Base:
Collaboration graph
[legend]

Static Public Member Functions

static void writeTrampolines (char *TrampolineBlockWorkingMem, JITTargetAddress TrampolineBlockTargetAddress, JITTargetAddress 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. More...
 
static void writeIndirectStubsBlock (char *StubsBlockWorkingMem, JITTargetAddress StubsBlockTargetAddress, JITTargetAddress PointersBlockTargetAddress, unsigned NumStubs)
 Write NumStubs indirect stubs to working memory at StubsBlockWorkingMem. More...
 

Static Public Attributes

static constexpr unsigned PointerSize = 8
 
static constexpr unsigned TrampolineSize = 8
 
static constexpr unsigned StubSize = 8
 
static constexpr unsigned StubToPointerMaxDisplacement = 1 << 31
 

Detailed Description

X86_64 code that's common to all ABIs.

X86_64 supports lazy JITing.

Definition at line 128 of file OrcABISupport.h.

Member Function Documentation

◆ writeIndirectStubsBlock()

void llvm::orc::OrcX86_64_Base::writeIndirectStubsBlock ( char *  StubsBlockWorkingMem,
JITTargetAddress  StubsBlockTargetAddress,
JITTargetAddress  PointersBlockTargetAddress,
unsigned  NumStubs 
)
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 216 of file OrcABISupport.cpp.

References assert(), I, PointerSize, and StubSize.

◆ writeTrampolines()

void llvm::orc::OrcX86_64_Base::writeTrampolines ( char *  TrampolineBlockWorkingMem,
JITTargetAddress  TrampolineBlockTargetAddress,
JITTargetAddress  ResolverAddr,
unsigned  NumTrampolines 
)
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 198 of file OrcABISupport.cpp.

References I, memcpy(), and TrampolineSize.

Member Data Documentation

◆ PointerSize

constexpr unsigned llvm::orc::OrcX86_64_Base::PointerSize = 8
staticconstexpr

Definition at line 130 of file OrcABISupport.h.

Referenced by writeIndirectStubsBlock().

◆ StubSize

constexpr unsigned llvm::orc::OrcX86_64_Base::StubSize = 8
staticconstexpr

Definition at line 132 of file OrcABISupport.h.

Referenced by writeIndirectStubsBlock().

◆ StubToPointerMaxDisplacement

constexpr unsigned llvm::orc::OrcX86_64_Base::StubToPointerMaxDisplacement = 1 << 31
staticconstexpr

Definition at line 133 of file OrcABISupport.h.

◆ TrampolineSize

constexpr unsigned llvm::orc::OrcX86_64_Base::TrampolineSize = 8
staticconstexpr

Definition at line 131 of file OrcABISupport.h.

Referenced by writeTrampolines().


The documentation for this class was generated from the following files: