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

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

Inheritance diagram for llvm::orc::OrcMips32_Base:
Inheritance graph
[legend]
Collaboration diagram for llvm::orc::OrcMips32_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 writeResolverCode (char *ResolverBlockWorkingMem, JITTargetAddress ResolverBlockTargetAddress, JITTargetAddress ReentryFnAddr, JITTargetAddress ReentryCtxAddr, bool isBigEndian)
 Write the resolver code into the given memory. 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 = 4
 
static constexpr unsigned TrampolineSize = 20
 
static constexpr unsigned StubSize = 8
 
static constexpr unsigned StubToPointerMaxDisplacement = 1 << 31
 
static constexpr unsigned ResolverCodeSize = 0xfc
 

Detailed Description

Definition at line 235 of file OrcABISupport.h.

Member Function Documentation

◆ writeIndirectStubsBlock()

void llvm::orc::OrcMips32_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 640 of file OrcABISupport.cpp.

References assert(), and I.

◆ writeResolverCode()

void llvm::orc::OrcMips32_Base::writeResolverCode ( char *  ResolverBlockWorkingMem,
JITTargetAddress  ResolverBlockTargetAddress,
JITTargetAddress  ReentryFnAddr,
JITTargetAddress  ReentryCtxAddr,
bool  isBigEndian 
)
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 509 of file OrcABISupport.cpp.

References isBigEndian(), and memcpy().

Referenced by llvm::orc::OrcMips32Le::writeResolverCode(), and llvm::orc::OrcMips32Be::writeResolverCode().

◆ writeTrampolines()

void llvm::orc::OrcMips32_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 615 of file OrcABISupport.cpp.

References assert(), and I.

Member Data Documentation

◆ PointerSize

constexpr unsigned llvm::orc::OrcMips32_Base::PointerSize = 4
staticconstexpr

Definition at line 237 of file OrcABISupport.h.

◆ ResolverCodeSize

constexpr unsigned llvm::orc::OrcMips32_Base::ResolverCodeSize = 0xfc
staticconstexpr

Definition at line 241 of file OrcABISupport.h.

◆ StubSize

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

Definition at line 239 of file OrcABISupport.h.

◆ StubToPointerMaxDisplacement

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

Definition at line 240 of file OrcABISupport.h.

◆ TrampolineSize

constexpr unsigned llvm::orc::OrcMips32_Base::TrampolineSize = 20
staticconstexpr

Definition at line 238 of file OrcABISupport.h.


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