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::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.
 

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]