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

X86_64 support for SysV ABI (Linux, MacOSX). More...

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

Inheritance diagram for llvm::orc::OrcX86_64_SysV:
Inheritance graph

Static Public Member Functions

static void writeResolverCode (char *ResolverWorkingMem, ExecutorAddr ResolverTargetAddress, ExecutorAddr ReentryFnAddr, ExecutorAddr ReentryCtxAddr)
 Write the resolver code into the given memory.
- Static Public Member Functions inherited from llvm::orc::OrcX86_64_Base
static 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 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 ResolverCodeSize = 0x6C
- Static Public Attributes inherited from llvm::orc::OrcX86_64_Base
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 support for SysV ABI (Linux, MacOSX).

X86_64_SysV supports lazy JITing.

Definition at line 158 of file OrcABISupport.h.

Member Function Documentation

◆ writeResolverCode()

void llvm::orc::OrcX86_64_SysV::writeResolverCode ( char ResolverWorkingMem,
ExecutorAddr  ResolverTargetAddress,
ExecutorAddr  ReentryFnAddr,
ExecutorAddr  ReentryCtxAddr 

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 254 of file OrcABISupport.cpp.

References llvm::dbgs(), llvm::formatv(), and LLVM_DEBUG.

Member Data Documentation

◆ ResolverCodeSize

constexpr unsigned llvm::orc::OrcX86_64_SysV::ResolverCodeSize = 0x6C

Definition at line 160 of file OrcABISupport.h.

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