LLVM  14.0.0git
Namespaces | Enumerations | Functions | Variables
x86_64.h File Reference
#include "llvm/ExecutionEngine/JITLink/JITLink.h"
#include <limits>
Include dependency graph for x86_64.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 llvm
 ---------------------— PointerInfo ------------------------------------—
 
 
 

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::Delta64,
  llvm::jitlink::x86_64::Delta32, llvm::jitlink::x86_64::NegDelta64, llvm::jitlink::x86_64::NegDelta32, llvm::jitlink::x86_64::Delta64FromGOT,
  llvm::jitlink::x86_64::BranchPCRel32, 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
}
 Represents x86-64 fixups and other x86-64-specific edge kinds. More...
 

Functions

const char * llvm::jitlink::x86_64::getEdgeKindName (Edge::Kind K)
 Returns a string name for the given x86-64 edge. More...
 
Error llvm::jitlink::x86_64::optimize_x86_64_GOTAndStubs (LinkGraph &G)
 Optimize the GOT and Stub relocations if the edge target address is in range. More...
 
bool llvm::jitlink::x86_64::isInRangeForImmU32 (uint64_t Value)
 Returns true if the given uint64_t value is in range for a uint32_t. More...
 
bool llvm::jitlink::x86_64::isInRangeForImmS32 (int64_t Value)
 Returns true if the given int64_t value is in range for an int32_t. More...
 
Error llvm::jitlink::x86_64::applyFixup (LinkGraph &G, Block &B, const Edge &E, const Symbol *GOTSymbol)
 Apply fixup expression for edge to block content. More...
 
Symbol & llvm::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. More...
 
Block & llvm::jitlink::x86_64::createPointerJumpStubBlock (LinkGraph &G, Section &StubSection, Symbol &PointerSymbol)
 Create a jump stub block that jumps via the pointer at the given symbol. More...
 
Symbol & llvm::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. More...
 

Variables

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