LLVM: llvm::jitlink::ppc64 Namespace Reference (original) (raw)
| Enumerations | |
|---|---|
| enum | EdgeKind_ppc64 : Edge::Kind { Pointer64 = Edge::FirstRelocation , Pointer32, Pointer16, Pointer16DS, Pointer16HA, Pointer16HI, Pointer16HIGH, Pointer16HIGHA, Pointer16HIGHER, Pointer16HIGHERA, Pointer16HIGHEST, Pointer16HIGHESTA, Pointer16LO, Pointer16LODS, Pointer14, Delta64, Delta34, Delta32, NegDelta32, Delta16, Delta16HA, Delta16HI, Delta16LO, TOC, TOCDelta16, TOCDelta16DS, TOCDelta16HA, TOCDelta16HI, TOCDelta16LO, TOCDelta16LODS, RequestGOTAndTransformToDelta34, CallBranchDelta, CallBranchDeltaRestoreTOC, RequestCall, RequestCallNoTOC, RequestTLSDescInGOTAndTransformToTOCDelta16HA, RequestTLSDescInGOTAndTransformToTOCDelta16LO, RequestTLSDescInGOTAndTransformToDelta34 } |
| Represents ppc64 fixups and other ppc64-specific edge kinds. More... | |
| enum | PLTCallStubKind { LongBranch, LongBranchSaveR2, LongBranchNoTOC } |
◆ EdgeKind_ppc64
enum llvm::jitlink::ppc64::EdgeKind_ppc64 : Edge::Kind
Represents ppc64 fixups and other ppc64-specific edge kinds.
| Enumerator |
|---|
| Pointer64 |
| Pointer32 |
| Pointer16 |
| Pointer16DS |
| Pointer16HA |
| Pointer16HI |
| Pointer16HIGH |
| Pointer16HIGHA |
| Pointer16HIGHER |
| Pointer16HIGHERA |
| Pointer16HIGHEST |
| Pointer16HIGHESTA |
| Pointer16LO |
| Pointer16LODS |
| Pointer14 |
| Delta64 |
| Delta34 |
| Delta32 |
| NegDelta32 |
| Delta16 |
| Delta16HA |
| Delta16HI |
| Delta16LO |
| TOC |
| TOCDelta16 |
| TOCDelta16DS |
| TOCDelta16HA |
| TOCDelta16HI |
| TOCDelta16LO |
| TOCDelta16LODS |
| RequestGOTAndTransformToDelta34 |
| CallBranchDelta |
| CallBranchDeltaRestoreTOC |
| RequestCall |
| RequestCallNoTOC |
| RequestTLSDescInGOTAndTransformToTOCDelta16HA |
| RequestTLSDescInGOTAndTransformToTOCDelta16LO |
| RequestTLSDescInGOTAndTransformToDelta34 |
Definition at line 24 of file ppc64.h.
◆ PLTCallStubKind
| Enumerator |
|---|
| LongBranch |
| LongBranchSaveR2 |
| LongBranchNoTOC |
Definition at line 68 of file ppc64.h.
◆ applyFixup()
Apply fixup expression for edge to block content.
Definition at line 358 of file ppc64.h.
References A(), assert(), B(), CallBranchDelta, CallBranchDeltaRestoreTOC, llvm::dbgs(), DEBUG_WITH_TYPE, Delta16, Delta16HA, Delta16HI, Delta16LO, Delta32, Delta34, Delta64, E(), llvm::formatv(), G, llvm::jitlink::Symbol::getAddress(), getEdgeKindName(), llvm::orc::ExecutorAddr::getValue(), llvm::isInt(), LLVM_UNLIKELY, llvm::make_error(), llvm::jitlink::makeTargetOutOfRangeError(), NegDelta32, P, Pointer14, Pointer16, Pointer16DS, Pointer16HA, Pointer16HI, Pointer16HIGH, Pointer16HIGHA, Pointer16HIGHER, Pointer16HIGHERA, Pointer16HIGHEST, Pointer16HIGHESTA, Pointer16LO, Pointer16LODS, Pointer64, llvm::support::endian::read32(), readPrefixedInstruction(), relocateHalf16(), llvm::Error::success(), TOC, TOCDelta16, TOCDelta16DS, TOCDelta16HA, TOCDelta16HI, TOCDelta16LO, TOCDelta16LODS, llvm::support::endian::write32(), llvm::support::endian::write64(), and writePrefixedInstruction().
Referenced by llvm::jitlink::XCOFFJITLinker_ppc64::applyFixup().
◆ createAnonymousPointer()
◆ createAnonymousPointerJumpStub()
◆ getEdgeKindName()
| const char * llvm::jitlink::ppc64::getEdgeKindName | ( | Edge::Kind | K | ) |
|---|
Returns a string name for the given ppc64 edge.
For debugging purposes only.
Definition at line 61 of file ppc64.cpp.
References CallBranchDelta, CallBranchDeltaRestoreTOC, Delta16, Delta16HA, Delta16HI, Delta16LO, Delta32, Delta34, Delta64, llvm::jitlink::getGenericEdgeKindName(), NegDelta32, Pointer14, Pointer16, Pointer16DS, Pointer16HA, Pointer16HI, Pointer16HIGH, Pointer16HIGHA, Pointer16HIGHER, Pointer16HIGHERA, Pointer16HIGHEST, Pointer16HIGHESTA, Pointer16LO, Pointer16LODS, Pointer32, Pointer64, RequestCall, RequestCallNoTOC, RequestGOTAndTransformToDelta34, RequestTLSDescInGOTAndTransformToDelta34, RequestTLSDescInGOTAndTransformToTOCDelta16HA, RequestTLSDescInGOTAndTransformToTOCDelta16LO, TOC, TOCDelta16, TOCDelta16DS, TOCDelta16HA, TOCDelta16HI, TOCDelta16LO, and TOCDelta16LODS.
Referenced by applyFixup(), llvm::jitlink::XCOFFJITLinker_ppc64::applyFixup(), llvm::jitlink::createLinkGraphFromXCOFFObject_ppc64(), and relocateHalf16().
◆ ha()
◆ hi()
◆ high()
◆ higha()
◆ higher()
◆ highera()
◆ highest()
◆ highesta()
◆ lo()
◆ pickStub()
Definition at line 95 of file ppc64.h.
References Delta16HA, Delta16LO, llvm::little, llvm_unreachable, LongBranch, LongBranchNoTOC, LongBranchSaveR2, llvm::Offset, PointerJumpStubContent_big, PointerJumpStubContent_little, PointerJumpStubNoTOCContent_big, PointerJumpStubNoTOCContent_little, llvm::ArrayRef< T >::slice(), TOCDelta16HA, and TOCDelta16LO.
Referenced by createAnonymousPointerJumpStub().
◆ readPrefixedInstruction()
| uint64_t llvm::jitlink::ppc64::readPrefixedInstruction ( const char * Loc) | inlinestatic |
|---|
◆ relocateHalf16()
| Error llvm::jitlink::ppc64::relocateHalf16 ( char * FixupPtr, int64_t Value, Edge::Kind K ) | inline |
|---|
Definition at line 300 of file ppc64.h.
References Delta16, Delta16HA, Delta16HI, Delta16LO, getEdgeKindName(), ha(), hi(), high(), higha(), higher(), highera(), highest(), highesta(), lo(), llvm::make_error(), Pointer16, Pointer16DS, Pointer16HA, Pointer16HI, Pointer16HIGH, Pointer16HIGHA, Pointer16HIGHER, Pointer16HIGHERA, Pointer16HIGHEST, Pointer16HIGHESTA, Pointer16LO, Pointer16LODS, llvm::Error::success(), TOCDelta16, TOCDelta16DS, TOCDelta16HA, TOCDelta16HI, TOCDelta16LO, TOCDelta16LODS, and llvm::support::endian::write16().
Referenced by applyFixup().
◆ writePrefixedInstruction()
| void llvm::jitlink::ppc64::writePrefixedInstruction ( char * Loc, uint64_t Inst ) | inlinestatic |
|---|
◆ NullPointerContent
const char llvm::jitlink::ppc64::NullPointerContent
◆ PointerJumpStubContent_big
const char llvm::jitlink::ppc64::PointerJumpStubContent_big
Initial value:
= {
(char)0xf8, 0x41, 0x00, 0x18,
0x3d, (char)0x82, 0x00, 0x00,
(char)0xe9, (char)0x8c, 0x00, 0x00,
0x7d, (char)0x89, 0x03, (char)0xa6,
0x4e, (char)0x80, 0x04, 0x20,
}
Definition at line 30 of file ppc64.cpp.
Referenced by pickStub().
◆ PointerJumpStubContent_little
const char llvm::jitlink::ppc64::PointerJumpStubContent_little
Initial value:
= {
0x18, 0x00, 0x41, (char)0xf8,
0x00, 0x00, (char)0x82, 0x3d,
0x00, 0x00, (char)0x8c, (char)0xe9,
(char)0xa6, 0x03, (char)0x89, 0x7d,
0x20, 0x04, (char)0x80, 0x4e,
}
Definition at line 22 of file ppc64.cpp.
Referenced by pickStub().
◆ PointerJumpStubNoTOCContent_big
const char llvm::jitlink::ppc64::PointerJumpStubNoTOCContent_big
Initial value:
= {
0x7d, (char)0x88, 0x02, (char)0xa6,
0x42, (char)0x9f, 0x00, 0x05,
0x7d, 0x68, 0x02, (char)0xa6,
0x7d, (char)0x88, 0x03, (char)0xa6,
0x3d, (char)0x8b, 0x00, 0x00,
(char)0xe9, (char)0x8c, 0x00, 0x00,
0x7d, (char)0x89, 0x03, (char)0xa6,
0x4e, (char)0x80, 0x04, 0x20,
}
Definition at line 50 of file ppc64.cpp.
Referenced by pickStub().
◆ PointerJumpStubNoTOCContent_little
const char llvm::jitlink::ppc64::PointerJumpStubNoTOCContent_little
Initial value:
= {
(char)0xa6, 0x02, (char)0x88, 0x7d,
0x05, (char)0x00, (char)0x9f, 0x42,
(char)0xa6, 0x02, 0x68, 0x7d,
(char)0xa6, 0x03, (char)0x88, 0x7d,
0x00, 0x00, (char)0x8b, 0x3d,
0x00, 0x00, (char)0x8c, (char)0xe9,
(char)0xa6, 0x03, (char)0x89, 0x7d,
0x20, 0x04, (char)0x80, 0x4e,
}
Definition at line 39 of file ppc64.cpp.
Referenced by pickStub().