class EPCIndirectionUtils::ABISupport

Declaration

class EPCIndirectionUtils::ABISupport { /* full declaration omitted */ };

Description

ABI support base class. Used to write resolver, stub, and trampoline blocks.

Declared at: llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h:36

Member Variables

private unsigned int PointerSize = 0
private unsigned int TrampolineSize = 0
private unsigned int StubSize = 0
private unsigned int StubToPointerMaxDisplacement = 0
private unsigned int ResolverCodeSize = 0

Method Overview

  • protected ABISupport(unsigned int PointerSize, unsigned int TrampolineSize, unsigned int StubSize, unsigned int StubToPointerMaxDisplacement, unsigned int ResolverCodeSize)
  • public unsigned int getPointerSize() const
  • public unsigned int getResolverCodeSize() const
  • public unsigned int getStubSize() const
  • public unsigned int getStubToPointerMaxDisplacement() const
  • public unsigned int getTrampolineSize() const
  • public virtual void writeIndirectStubsBlock(char * StubsBlockWorkingMem, llvm::JITTargetAddress StubsBlockTargetAddress, llvm::JITTargetAddress PointersBlockTargetAddress, unsigned int NumStubs) const
  • public virtual void writeResolverCode(char * ResolverWorkingMem, llvm::JITTargetAddress ResolverTargetAddr, llvm::JITTargetAddress ReentryFnAddr, llvm::JITTargetAddress ReentryCtxAddr) const
  • public virtual void writeTrampolines(char * TrampolineBlockWorkingMem, llvm::JITTargetAddress TrampolineBlockTragetAddr, llvm::JITTargetAddress ResolverAddr, unsigned int NumTrampolines) const
  • public virtual ~ABISupport()

Methods

ABISupport(
    unsigned int PointerSize,
    unsigned int TrampolineSize,
    unsigned int StubSize,
    unsigned int StubToPointerMaxDisplacement,
    unsigned int ResolverCodeSize)

Declared at: llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h:38

Parameters

unsigned int PointerSize
unsigned int TrampolineSize
unsigned int StubSize
unsigned int StubToPointerMaxDisplacement
unsigned int ResolverCodeSize

unsigned int getPointerSize() const

Declared at: llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h:48

unsigned int getResolverCodeSize() const

Declared at: llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h:54

unsigned int getStubSize() const

Declared at: llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h:50

unsigned int getStubToPointerMaxDisplacement()
    const

Declared at: llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h:51

unsigned int getTrampolineSize() const

Declared at: llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h:49

virtual void writeIndirectStubsBlock(
    char* StubsBlockWorkingMem,
    llvm::JITTargetAddress
        StubsBlockTargetAddress,
    llvm::JITTargetAddress
        PointersBlockTargetAddress,
    unsigned int NumStubs) const

Declared at: llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h:67

Parameters

char* StubsBlockWorkingMem
llvm::JITTargetAddress StubsBlockTargetAddress
llvm::JITTargetAddress PointersBlockTargetAddress
unsigned int NumStubs

virtual void writeResolverCode(
    char* ResolverWorkingMem,
    llvm::JITTargetAddress ResolverTargetAddr,
    llvm::JITTargetAddress ReentryFnAddr,
    llvm::JITTargetAddress ReentryCtxAddr) const

Declared at: llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h:56

Parameters

char* ResolverWorkingMem
llvm::JITTargetAddress ResolverTargetAddr
llvm::JITTargetAddress ReentryFnAddr
llvm::JITTargetAddress ReentryCtxAddr

virtual void writeTrampolines(
    char* TrampolineBlockWorkingMem,
    llvm::JITTargetAddress
        TrampolineBlockTragetAddr,
    llvm::JITTargetAddress ResolverAddr,
    unsigned int NumTrampolines) const

Declared at: llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h:61

Parameters

char* TrampolineBlockWorkingMem
llvm::JITTargetAddress TrampolineBlockTragetAddr
llvm::JITTargetAddress ResolverAddr
unsigned int NumTrampolines

virtual ~ABISupport()

Declared at: llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h:46