LLVM 22.0.0git
x86_64.h File Reference

Go to the source code of this file.

Classes

 Global Offset Table Builder. More...
 Procedure Linkage Table Builder. More...

Namespaces

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

Enumerations

enum  llvm::jitlink::x86_64::EdgeKind_x86_64 : Edge::Kind {
  llvm::jitlink::x86_64::Pointer64 = Edge::FirstRelocation , llvm::jitlink::x86_64::Pointer32 , llvm::jitlink::x86_64::Pointer32Signed , llvm::jitlink::x86_64::Pointer16 ,
  llvm::jitlink::x86_64::Pointer8 , llvm::jitlink::x86_64::Delta64 , llvm::jitlink::x86_64::Delta32 , llvm::jitlink::x86_64::Delta16 ,
  llvm::jitlink::x86_64::Delta8 , llvm::jitlink::x86_64::NegDelta64 , llvm::jitlink::x86_64::NegDelta32 , llvm::jitlink::x86_64::Size64 ,
  llvm::jitlink::x86_64::Size32 , llvm::jitlink::x86_64::Delta64FromGOT , llvm::jitlink::x86_64::BranchPCRel32 , llvm::jitlink::x86_64::PCRel32 ,
  llvm::jitlink::x86_64::BranchPCRel32ToPtrJumpStub , llvm::jitlink::x86_64::BranchPCRel32ToPtrJumpStubBypassable , llvm::jitlink::x86_64::RequestGOTAndTransformToDelta32 , llvm::jitlink::x86_64::RequestGOTAndTransformToDelta64 ,
  llvm::jitlink::x86_64::RequestGOTAndTransformToDelta64FromGOT , llvm::jitlink::x86_64::PCRel32GOTLoadRelaxable , llvm::jitlink::x86_64::PCRel32GOTLoadREXRelaxable , llvm::jitlink::x86_64::RequestGOTAndTransformToPCRel32GOTLoadREXRelaxable ,
  llvm::jitlink::x86_64::RequestGOTAndTransformToPCRel32GOTLoadRelaxable , llvm::jitlink::x86_64::PCRel32TLVPLoadREXRelaxable , llvm::jitlink::x86_64::RequestTLSDescInGOTAndTransformToDelta32 , llvm::jitlink::x86_64::RequestTLVPAndTransformToPCRel32TLVPLoadREXRelaxable ,
  llvm::jitlink::x86_64::FirstPlatformRelocation
}
 Represents x86-64 fixups and other x86-64-specific edge kinds. More...

Functions

LLVM_ABI const charllvm::jitlink::x86_64::getEdgeKindName (Edge::Kind K)
 Returns a string name for the given x86-64 edge.
Error llvm::jitlink::x86_64::applyFixup (LinkGraph &G, Block &B, const Edge &E, const Symbol *GOTSymbol)
 Apply fixup expression for edge to block content.
Symbolllvm::jitlink::x86_64::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.
Blockllvm::jitlink::x86_64::createPointerJumpStubBlock (LinkGraph &G, Section &StubSection, Symbol &PointerSymbol)
 Create a jump stub block that jumps via the pointer at the given symbol.
Symbolllvm::jitlink::x86_64::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.
Blockllvm::jitlink::x86_64::createReentryTrampolineBlock (LinkGraph &G, Section &TrampolineSection, Symbol &ReentrySymbol)
 Create a block of N reentry trampolines.
Symbolllvm::jitlink::x86_64::createAnonymousReentryTrampoline (LinkGraph &G, Section &TrampolineSection, Symbol &ReentrySymbol)
LLVM_ABI Error llvm::jitlink::x86_64::optimizeGOTAndStubAccesses (LinkGraph &G)
 Optimize the GOT and Stub relocations if the edge target address is in range.

Variables

constexpr uint64_t llvm::jitlink::x86_64::PointerSize = 8
 x86_64 pointer size.
LLVM_ABI const char llvm::jitlink::x86_64::NullPointerContent [PointerSize]
 x86-64 null pointer content.
LLVM_ABI const char llvm::jitlink::x86_64::PointerJumpStubContent [6]
 x86-64 pointer jump stub content.
LLVM_ABI const char llvm::jitlink::x86_64::ReentryTrampolineContent [5]
 x86-64 reentry trampoline.