LLVM 19.0.0git
Classes | Namespaces | Enumerations | Functions | Variables
ppc64.h File Reference
#include "llvm/ExecutionEngine/JITLink/JITLink.h"
#include "llvm/ExecutionEngine/JITLink/TableManager.h"
#include "llvm/Support/Endian.h"

Go to the source code of this file.

Classes

struct  llvm::jitlink::ppc64::PLTCallStubReloc
 
struct  llvm::jitlink::ppc64::PLTCallStubInfo
 
class  llvm::jitlink::ppc64::TOCTableManager< Endianness >
 
class  llvm::jitlink::ppc64::PLTTableManager< Endianness >
 

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)
 
Symbol & llvm::jitlink::ppc64::createAnonymousPointer (LinkGraph &G, Section &PointerSection, Symbol *InitialTarget=nullptr, uint64_t InitialAddend=0)
 
template<llvm::endianness Endianness>
Symbol & llvm::jitlink::ppc64::createAnonymousPointerJumpStub (LinkGraph &G, Section &StubSection, Symbol &PointerSymbol, PLTCallStubKind StubKind)
 
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

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