LLVM 22.0.0git
ppc64.h File Reference

Go to the source code of this file.

Classes

Namespaces

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

Enumerations

enum  llvm::jitlink::ppc64::EdgeKind_ppc64 : Edge::Kind {
  llvm::jitlink::ppc64::Pointer64 = Edge::FirstRelocation , llvm::jitlink::ppc64::Pointer32 , llvm::jitlink::ppc64::Pointer16 , llvm::jitlink::ppc64::Pointer16DS ,
  llvm::jitlink::ppc64::Pointer16HA , llvm::jitlink::ppc64::Pointer16HI , llvm::jitlink::ppc64::Pointer16HIGH , llvm::jitlink::ppc64::Pointer16HIGHA ,
  llvm::jitlink::ppc64::Pointer16HIGHER , llvm::jitlink::ppc64::Pointer16HIGHERA , llvm::jitlink::ppc64::Pointer16HIGHEST , llvm::jitlink::ppc64::Pointer16HIGHESTA ,
  llvm::jitlink::ppc64::Pointer16LO , llvm::jitlink::ppc64::Pointer16LODS , llvm::jitlink::ppc64::Pointer14 , llvm::jitlink::ppc64::Delta64 ,
  llvm::jitlink::ppc64::Delta34 , llvm::jitlink::ppc64::Delta32 , llvm::jitlink::ppc64::NegDelta32 , llvm::jitlink::ppc64::Delta16 ,
  llvm::jitlink::ppc64::Delta16HA , llvm::jitlink::ppc64::Delta16HI , llvm::jitlink::ppc64::Delta16LO , llvm::jitlink::ppc64::TOC ,
  llvm::jitlink::ppc64::TOCDelta16 , llvm::jitlink::ppc64::TOCDelta16DS , llvm::jitlink::ppc64::TOCDelta16HA , llvm::jitlink::ppc64::TOCDelta16HI ,
  llvm::jitlink::ppc64::TOCDelta16LO , llvm::jitlink::ppc64::TOCDelta16LODS , llvm::jitlink::ppc64::RequestGOTAndTransformToDelta34 , llvm::jitlink::ppc64::CallBranchDelta ,
  llvm::jitlink::ppc64::CallBranchDeltaRestoreTOC , llvm::jitlink::ppc64::RequestCall , llvm::jitlink::ppc64::RequestCallNoTOC , llvm::jitlink::ppc64::RequestTLSDescInGOTAndTransformToTOCDelta16HA ,
  llvm::jitlink::ppc64::RequestTLSDescInGOTAndTransformToTOCDelta16LO , llvm::jitlink::ppc64::RequestTLSDescInGOTAndTransformToDelta34
}
 Represents ppc64 fixups and other ppc64-specific edge kinds. More...
enum  llvm::jitlink::ppc64::PLTCallStubKind { llvm::jitlink::ppc64::LongBranch , llvm::jitlink::ppc64::LongBranchSaveR2 , llvm::jitlink::ppc64::LongBranchNoTOC }

Functions

template<llvm::endianness Endianness>
PLTCallStubInfo llvm::jitlink::ppc64::pickStub (PLTCallStubKind StubKind)
Symbolllvm::jitlink::ppc64::createAnonymousPointer (LinkGraph &G, Section &PointerSection, Symbol *InitialTarget=nullptr, uint64_t InitialAddend=0)
template<llvm::endianness Endianness>
Symbolllvm::jitlink::ppc64::createAnonymousPointerJumpStub (LinkGraph &G, Section &StubSection, Symbol &PointerSymbol, PLTCallStubKind StubKind)
LLVM_ABI const charllvm::jitlink::ppc64::getEdgeKindName (Edge::Kind K)
 Returns a string name for the given ppc64 edge.
static uint16_t llvm::jitlink::ppc64::ha (uint64_t x)
static uint64_t llvm::jitlink::ppc64::lo (uint64_t x)
static uint16_t llvm::jitlink::ppc64::hi (uint64_t x)
static uint64_t llvm::jitlink::ppc64::high (uint64_t x)
static uint64_t llvm::jitlink::ppc64::higha (uint64_t x)
static uint64_t llvm::jitlink::ppc64::higher (uint64_t x)
static uint64_t llvm::jitlink::ppc64::highera (uint64_t x)
static uint16_t llvm::jitlink::ppc64::highest (uint64_t x)
static uint16_t llvm::jitlink::ppc64::highesta (uint64_t x)
template<llvm::endianness Endianness>
static uint64_t llvm::jitlink::ppc64::readPrefixedInstruction (const char *Loc)
template<llvm::endianness Endianness>
static void llvm::jitlink::ppc64::writePrefixedInstruction (char *Loc, uint64_t Inst)
template<llvm::endianness Endianness>
Error llvm::jitlink::ppc64::relocateHalf16 (char *FixupPtr, int64_t Value, Edge::Kind K)
template<llvm::endianness Endianness>
Error llvm::jitlink::ppc64::applyFixup (LinkGraph &G, Block &B, const Edge &E, const Symbol *TOCSymbol)
 Apply fixup expression for edge to block content.

Variables

LLVM_ABI const char llvm::jitlink::ppc64::NullPointerContent [8]
LLVM_ABI const char llvm::jitlink::ppc64::PointerJumpStubContent_big [20]
LLVM_ABI const char llvm::jitlink::ppc64::PointerJumpStubContent_little [20]
LLVM_ABI const char llvm::jitlink::ppc64::PointerJumpStubNoTOCContent_big [32]
LLVM_ABI const char llvm::jitlink::ppc64::PointerJumpStubNoTOCContent_little [32]