LLVM 24.0.0git
mips.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::mips::EdgeKind_mips : Edge::Kind {
  llvm::jitlink::mips::Pointer32 = Edge::FirstRelocation , llvm::jitlink::mips::Pointer64 , llvm::jitlink::mips::PagePointer32 , llvm::jitlink::mips::PagePointer64 ,
  llvm::jitlink::mips::Delta32 , llvm::jitlink::mips::Delta64 , llvm::jitlink::mips::NegDelta32 , llvm::jitlink::mips::Abs16 ,
  llvm::jitlink::mips::Hi16 , llvm::jitlink::mips::Lo16 , llvm::jitlink::mips::Higher16 , llvm::jitlink::mips::Highest16 ,
  llvm::jitlink::mips::Jump26 , llvm::jitlink::mips::PC16 , llvm::jitlink::mips::PC32 , llvm::jitlink::mips::PC18S3 ,
  llvm::jitlink::mips::PC19S2 , llvm::jitlink::mips::PC21S2 , llvm::jitlink::mips::PC26S2 , llvm::jitlink::mips::PCHi16 ,
  llvm::jitlink::mips::PCLo16 , llvm::jitlink::mips::GPDispHi16 , llvm::jitlink::mips::GPDispLo16 , llvm::jitlink::mips::GPRel16 ,
  llvm::jitlink::mips::GPRel32 , llvm::jitlink::mips::GPRel64 , llvm::jitlink::mips::GOTOffset16 , llvm::jitlink::mips::GOTOffsetHi16 ,
  llvm::jitlink::mips::GOTOffsetLo16 , llvm::jitlink::mips::GOTPageOffset16 , llvm::jitlink::mips::DTPRelHi16 , llvm::jitlink::mips::DTPRelLo16 ,
  llvm::jitlink::mips::DTPRel32 , llvm::jitlink::mips::DTPRel64 , llvm::jitlink::mips::NegGPRelHi16 , llvm::jitlink::mips::NegGPRelLo16 ,
  llvm::jitlink::mips::RequestGOTAndTransformToOffset16 , llvm::jitlink::mips::RequestGOTPageAndTransformToOffset16 , llvm::jitlink::mips::RequestGOTAndTransformToOffsetHi16 , llvm::jitlink::mips::RequestGOTAndTransformToOffsetLo16 ,
  llvm::jitlink::mips::RequestTLSGDAndTransformToOffset16 , llvm::jitlink::mips::RequestTLSLDMAndTransformToOffset16
}
 MIPS fixup and table-request edge kinds. More...

Functions

LLVM_ABI const char * llvm::jitlink::mips::getEdgeKindName (Edge::Kind K)
LLVM_ABI bool llvm::jitlink::mips::isR6 (const LinkGraph &G)
 Returns true if G uses the MIPS release-6 ISA.
LLVM_ABI Edge::Kind llvm::jitlink::mips::getPointerEdgeKind (const LinkGraph &G)
 Returns Pointer32 or Pointer64, according to G's pointer ABI.
uint16_t llvm::jitlink::mips::getLo16 (uint64_t Value)
uint16_t llvm::jitlink::mips::getHi16 (uint64_t Value)
uint16_t llvm::jitlink::mips::getHigher16 (uint64_t Value)
uint16_t llvm::jitlink::mips::getHighest16 (uint64_t Value)
uint64_t llvm::jitlink::mips::getGOTPage (uint64_t Value)
PCRelEncoding llvm::jitlink::mips::getPCRelEncoding (Edge::Kind Kind)
bool llvm::jitlink::mips::needsGP (Edge::Kind K)
void llvm::jitlink::mips::writeMaskedInstruction32 (char *Fixup, uint32_t Mask, uint32_t Value, endianness Endianness)
void llvm::jitlink::mips::writeImmediate16 (char *Fixup, uint16_t Value, endianness Endianness)
void llvm::jitlink::mips::writeImmediate26 (char *Fixup, uint32_t Value, endianness Endianness)
Error llvm::jitlink::mips::applyFixup (LinkGraph &G, Block &B, const Edge &E, const Symbol *GPSymbol, const Symbol *TLSBaseSymbol)
 Apply fixup expression for edge to block content.
LLVM_ABI ArrayRef< char > llvm::jitlink::mips::getPointerBlockContent (const LinkGraph &G)
 Returns zero-filled pointer contents in the graph's pointer width.
LLVM_ABI Symbol & llvm::jitlink::mips::createAnonymousPointer (LinkGraph &G, Section &PointerSection, Symbol *InitialTarget=nullptr, Edge::AddendT InitialAddend=0)
 Creates an anonymous pointer, optionally initialized to InitialTarget.
LLVM_ABI Symbol & llvm::jitlink::mips::createAnonymousPointerJumpStub (LinkGraph &G, Section &StubSection, Symbol &PointerSymbol)
 Creates a stub that materializes PointerSymbol, loads its value into $t9, and jumps to $t9.

Variables

constexpr unsigned llvm::jitlink::mips::InstructionSize = sizeof(uint32_t)
constexpr unsigned llvm::jitlink::mips::GOTPageBits = 16
constexpr uint64_t llvm::jitlink::mips::GOTPageSize = UINT64_C(1) << GOTPageBits
constexpr uint64_t llvm::jitlink::mips::GOTPageMask = GOTPageSize - 1
constexpr uint64_t llvm::jitlink::mips::GOTPageBias = GOTPageSize / 2
constexpr unsigned llvm::jitlink::mips::JumpRegionBits = 28
constexpr uint64_t llvm::jitlink::mips::JumpRegionMask = ~maskTrailingOnes<uint64_t>(JumpRegionBits)
constexpr uint32_t llvm::jitlink::mips::InstructionImm16Mask = 0x0000ffffU
constexpr uint32_t llvm::jitlink::mips::InstructionImm26Mask = 0x03ffffffU