LLVM 20.0.0git
Classes | Namespaces | Enumerations | Functions | Variables
aarch64.h File Reference
#include "TableManager.h"
#include "llvm/ExecutionEngine/JITLink/JITLink.h"
#include "llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h"

Go to the source code of this file.

Classes

class  llvm::jitlink::aarch64::GOTTableManager
 Global Offset Table Builder. More...
 
class  llvm::jitlink::aarch64::PLTTableManager
 Procedure Linkage Table Builder. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
 
 

Enumerations

enum  llvm::jitlink::aarch64::EdgeKind_aarch64 : Edge::Kind {
  llvm::jitlink::aarch64::Pointer64 = Edge::FirstRelocation , llvm::jitlink::aarch64::Pointer64Authenticated , llvm::jitlink::aarch64::Pointer32 , llvm::jitlink::aarch64::Delta64 ,
  llvm::jitlink::aarch64::Delta32 , llvm::jitlink::aarch64::NegDelta64 , llvm::jitlink::aarch64::NegDelta32 , llvm::jitlink::aarch64::Branch26PCRel ,
  llvm::jitlink::aarch64::TestAndBranch14PCRel , llvm::jitlink::aarch64::CondBranch19PCRel , llvm::jitlink::aarch64::MoveWide16 , llvm::jitlink::aarch64::LDRLiteral19 ,
  llvm::jitlink::aarch64::ADRLiteral21 , llvm::jitlink::aarch64::Page21 , llvm::jitlink::aarch64::PageOffset12 , llvm::jitlink::aarch64::GotPageOffset15 ,
  llvm::jitlink::aarch64::RequestGOTAndTransformToPage21 , llvm::jitlink::aarch64::RequestGOTAndTransformToPageOffset12 , llvm::jitlink::aarch64::RequestGOTAndTransformToPageOffset15 , llvm::jitlink::aarch64::RequestGOTAndTransformToDelta32 ,
  llvm::jitlink::aarch64::RequestTLVPAndTransformToPage21 , llvm::jitlink::aarch64::RequestTLVPAndTransformToPageOffset12 , llvm::jitlink::aarch64::RequestTLSDescEntryAndTransformToPage21 , llvm::jitlink::aarch64::RequestTLSDescEntryAndTransformToPageOffset12
}
 Represents aarch64 fixups and other aarch64-specific edge kinds. More...
 

Functions

const charllvm::jitlink::aarch64::getEdgeKindName (Edge::Kind K)
 Returns a string name for the given aarch64 edge.
 
bool llvm::jitlink::aarch64::isLoadStoreImm12 (uint32_t Instr)
 
bool llvm::jitlink::aarch64::isTestAndBranchImm14 (uint32_t Instr)
 
bool llvm::jitlink::aarch64::isCondBranchImm19 (uint32_t Instr)
 
bool llvm::jitlink::aarch64::isCompAndBranchImm19 (uint32_t Instr)
 
bool llvm::jitlink::aarch64::isADR (uint32_t Instr)
 
bool llvm::jitlink::aarch64::isLDRLiteral (uint32_t Instr)
 
unsigned llvm::jitlink::aarch64::getPageOffset12Shift (uint32_t Instr)
 
bool llvm::jitlink::aarch64::isMoveWideImm16 (uint32_t Instr)
 
unsigned llvm::jitlink::aarch64::getMoveWide16Shift (uint32_t Instr)
 
Error llvm::jitlink::aarch64::applyFixup (LinkGraph &G, Block &B, const Edge &E, const Symbol *GOTSymbol)
 Apply fixup expression for edge to block content.
 
Symbol & llvm::jitlink::aarch64::createAnonymousPointer (LinkGraph &G, Section &PointerSection, Symbol *InitialTarget=nullptr, uint64_t InitialAddend=0)
 Creates a new pointer block in the given section and returns an Anonymous symbol pointing to it.
 
Block & llvm::jitlink::aarch64::createPointerJumpStubBlock (LinkGraph &G, Section &StubSection, Symbol &PointerSymbol)
 Create a jump stub block that jumps via the pointer at the given symbol.
 
Symbol & llvm::jitlink::aarch64::createAnonymousPointerJumpStub (LinkGraph &G, Section &StubSection, Symbol &PointerSymbol)
 Create a jump stub that jumps via the pointer at the given symbol and an anonymous symbol pointing to it.
 
Block & llvm::jitlink::aarch64::createReentryTrampolineBlock (LinkGraph &G, Section &TrampolineSection, Symbol &ReentrySymbol)
 Create a block of N reentry trampolines.
 
Symbol & llvm::jitlink::aarch64::createAnonymousReentryTrampoline (LinkGraph &G, Section &TrampolineSection, Symbol &ReentrySymbol)
 
const charllvm::jitlink::aarch64::getPointerSigningFunctionSectionName ()
 Returns the name of the pointer signing function section.
 
Error llvm::jitlink::aarch64::createEmptyPointerSigningFunction (LinkGraph &G)
 Creates a pointer signing function section, block, and symbol to reserve space for a signing function for this LinkGraph.
 
Error llvm::jitlink::aarch64::lowerPointer64AuthEdgesToSigningFunction (LinkGraph &G)
 Given a LinkGraph containing Pointer64Authenticated edges, transform those edges to Pointer64 and add signing code to the pointer signing function (which must already have been created by the createEmptyPointerSigningFunction pass above).
 

Variables

constexpr uint64_t llvm::jitlink::aarch64::PointerSize = 8
 aarch64 pointer size.
 
const char llvm::jitlink::aarch64::NullPointerContent [PointerSize]
 AArch64 null pointer content.
 
const char llvm::jitlink::aarch64::PointerJumpStubContent [12]
 
const char llvm::jitlink::aarch64::ReentryTrampolineContent [8]
 AArch64 reentry trampoline.