LLVM  16.0.0git
Classes | Enumerations | Functions | Variables
llvm::jitlink::aarch64 Namespace Reference

Classes

class  GOTTableManager
 Global Offset Table Builder. More...
 
class  PLTTableManager
 Procedure Linkage Table Builder. More...
 

Enumerations

enum  EdgeKind_aarch64 : Edge::Kind {
  Branch26 = Edge::FirstRelocation, Pointer32, Pointer64, Pointer64Anon,
  Page21, PageOffset12, MoveWide16, GOTPage21,
  GOTPageOffset12, TLVPage21, TLVPageOffset12, TLSDescPage21,
  TLSDescPageOffset12, Delta32ToGOT, PairedAddend, LDRLiteral19,
  Delta32, Delta64, NegDelta32, NegDelta64
}
 

Functions

const char * getEdgeKindName (Edge::Kind K)
 Returns a string name for the given aarch64 edge. More...
 
bool isLoadStoreImm12 (uint32_t Instr)
 
unsigned getPageOffset12Shift (uint32_t Instr)
 
bool isMoveWideImm16 (uint32_t Instr)
 
unsigned getMoveWide16Shift (uint32_t Instr)
 
Error applyFixup (LinkGraph &G, Block &B, const Edge &E)
 Apply fixup expression for edge to block content. More...
 

Variables

constexpr uint64_t PointerSize = 8
 aarch64 pointer size. More...
 
const uint8_t NullGOTEntryContent [PointerSize]
 AArch64 null pointer content. More...
 
const uint8_t StubContent [8]
 AArch64 PLT stub content. More...
 

Enumeration Type Documentation

◆ EdgeKind_aarch64

Enumerator
Branch26 
Pointer32 
Pointer64 
Pointer64Anon 
Page21 
PageOffset12 
MoveWide16 
GOTPage21 
GOTPageOffset12 
TLVPage21 
TLVPageOffset12 
TLSDescPage21 
TLSDescPageOffset12 
Delta32ToGOT 
PairedAddend 
LDRLiteral19 
Delta32 
Delta64 
NegDelta32 
NegDelta64 

Definition at line 24 of file aarch64.h.

Function Documentation

◆ applyFixup()

Error llvm::jitlink::aarch64::applyFixup ( LinkGraph G,
Block B,
const Edge E 
)
inline

◆ getEdgeKindName()

const char * llvm::jitlink::aarch64::getEdgeKindName ( Edge::Kind  K)

◆ getMoveWide16Shift()

unsigned llvm::jitlink::aarch64::getMoveWide16Shift ( uint32_t  Instr)
inline

Definition at line 88 of file aarch64.h.

References isMoveWideImm16().

Referenced by applyFixup().

◆ getPageOffset12Shift()

unsigned llvm::jitlink::aarch64::getPageOffset12Shift ( uint32_t  Instr)
inline

Definition at line 63 of file aarch64.h.

References isLoadStoreImm12().

Referenced by applyFixup().

◆ isLoadStoreImm12()

bool llvm::jitlink::aarch64::isLoadStoreImm12 ( uint32_t  Instr)
inline

Definition at line 52 of file aarch64.h.

Referenced by getPageOffset12Shift().

◆ isMoveWideImm16()

bool llvm::jitlink::aarch64::isMoveWideImm16 ( uint32_t  Instr)
inline

Definition at line 79 of file aarch64.h.

Referenced by applyFixup(), and getMoveWide16Shift().

Variable Documentation

◆ NullGOTEntryContent

const uint8_t llvm::jitlink::aarch64::NullGOTEntryContent
Initial value:
= {0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}

AArch64 null pointer content.

Definition at line 21 of file aarch64.cpp.

◆ PointerSize

constexpr uint64_t llvm::jitlink::aarch64::PointerSize = 8
constexpr

◆ StubContent

const uint8_t llvm::jitlink::aarch64::StubContent
Initial value:
= {
0x10, 0x00, 0x00, 0x58,
0x00, 0x02, 0x1f, 0xd6
}

AArch64 PLT stub content.

Definition at line 24 of file aarch64.cpp.

Referenced by llvm::jitlink::aarch64::PLTTableManager::getStubBlockContent().