Lines Matching refs:G
239 Error makeUnexpectedOpcodeError(const LinkGraph &G, const ThumbRelocation &R, in makeUnexpectedOpcodeError() argument
244 G.getEdgeKindName(Kind))); in makeUnexpectedOpcodeError()
247 Error makeUnexpectedOpcodeError(const LinkGraph &G, const ArmRelocation &R, in makeUnexpectedOpcodeError() argument
251 static_cast<uint32_t>(R.Wd), G.getEdgeKindName(Kind))); in makeUnexpectedOpcodeError()
315 static Error checkOpcode(LinkGraph &G, const ArmRelocation &R, in checkOpcode() argument
323 return makeUnexpectedOpcodeError(G, R, Kind); in checkOpcode()
328 static Error checkOpcode(LinkGraph &G, const ThumbRelocation &R, in checkOpcode() argument
336 return makeUnexpectedOpcodeError(G, R, Kind); in checkOpcode()
390 Expected<int64_t> readAddendData(LinkGraph &G, Block &B, Edge::OffsetT Offset, in readAddendData() argument
392 endianness Endian = G.getEndianness(); in readAddendData()
405 "In graph " + G.getName() + ", section " + B.getSection().getName() + in readAddendData()
407 G.getEdgeKindName(Kind)); in readAddendData()
411 Expected<int64_t> readAddendArm(LinkGraph &G, Block &B, Edge::OffsetT Offset, in readAddendArm() argument
414 if (Error Err = checkOpcode(G, R, Kind)) in readAddendArm()
428 "In graph " + G.getName() + ", section " + B.getSection().getName() + in readAddendArm()
430 G.getEdgeKindName(Kind)); in readAddendArm()
434 Expected<int64_t> readAddendThumb(LinkGraph &G, Block &B, Edge::OffsetT Offset, in readAddendThumb() argument
437 if (Error Err = checkOpcode(G, R, Kind)) in readAddendThumb()
459 "In graph " + G.getName() + ", section " + B.getSection().getName() + in readAddendThumb()
461 G.getEdgeKindName(Kind)); in readAddendThumb()
465 Error applyFixupData(LinkGraph &G, Block &B, const Edge &E) { in applyFixupData() argument
483 return makeTargetOutOfRangeError(G, B, E); in applyFixupData()
484 if (LLVM_LIKELY(G.getEndianness() == endianness::little)) in applyFixupData()
493 return makeTargetOutOfRangeError(G, B, E); in applyFixupData()
494 if (LLVM_LIKELY(G.getEndianness() == endianness::little)) in applyFixupData()
503 return makeTargetOutOfRangeError(G, B, E); in applyFixupData()
504 if (LLVM_LIKELY(G.getEndianness() == endianness::little)) { in applyFixupData()
517 "In graph " + G.getName() + ", section " + B.getSection().getName() + in applyFixupData()
519 G.getEdgeKindName(E.getKind())); in applyFixupData()
523 Error applyFixupArm(LinkGraph &G, Block &B, const Edge &E) { in applyFixupArm() argument
526 if (Error Err = checkOpcode(G, R, Kind)) in applyFixupArm()
539 StringRef(G.getEdgeKindName(Kind))); in applyFixupArm()
544 return makeTargetOutOfRangeError(G, B, E); in applyFixupArm()
554 StringRef(G.getEdgeKindName(Kind))); in applyFixupArm()
574 return makeTargetOutOfRangeError(G, B, E); in applyFixupArm()
591 "In graph " + G.getName() + ", section " + B.getSection().getName() + in applyFixupArm()
593 G.getEdgeKindName(E.getKind())); in applyFixupArm()
597 Error applyFixupThumb(LinkGraph &G, Block &B, const Edge &E, in applyFixupThumb() argument
602 if (Error Err = checkOpcode(G, R, Kind)) in applyFixupThumb()
615 StringRef(G.getEdgeKindName(Kind))); in applyFixupThumb()
620 return makeTargetOutOfRangeError(G, B, E); in applyFixupThumb()
624 return makeTargetOutOfRangeError(G, B, E); in applyFixupThumb()
653 return makeTargetOutOfRangeError(G, B, E); in applyFixupThumb()
657 return makeTargetOutOfRangeError(G, B, E); in applyFixupThumb()
690 "In graph " + G.getName() + ", section " + B.getSection().getName() + in applyFixupThumb()
692 G.getEdgeKindName(E.getKind())); in applyFixupThumb()
705 static Block &allocPointer(LinkGraph &G, Section &S, in allocPointer() argument
710 return G.createContentBlock(S, Init, orc::ExecutorAddr(), Alignment, 0); in allocPointer()
713 Symbol &GOTBuilder::createEntry(LinkGraph &G, Symbol &Target) { in createEntry() argument
715 GOTSection = &G.createSection(getSectionName(), orc::MemProt::Read); in createEntry()
716 Block &B = allocPointer(G, *GOTSection, GOTEntryInit); in createEntry()
719 return G.addAnonymousSymbol(B, 0, B.getSize(), false, false); in createEntry()
722 bool GOTBuilder::visitEdge(LinkGraph &G, Block *B, Edge &E) { in visitEdge() argument
732 LLVM_DEBUG(dbgs() << " Transforming " << G.getEdgeKindName(E.getKind()) in visitEdge()
736 << G.getEdgeKindName(KindToSet) << "\n"); in visitEdge()
738 E.setTarget(getEntryForTarget(G, E.getTarget())); in visitEdge()
763 static Block &allocStub(LinkGraph &G, Section &S, const uint8_t (&Code)[Size]) { in allocStub() argument
766 return G.createContentBlock(S, Template, orc::ExecutorAddr(), Alignment, 0); in allocStub()
769 static Block &createStubPrev7(LinkGraph &G, Section &S, Symbol &Target) { in createStubPrev7() argument
770 Block &B = allocStub(G, S, ArmThumbv5LdrPc); in createStubPrev7()
775 static Block &createStubThumbv7(LinkGraph &G, Section &S, Symbol &Target) { in createStubThumbv7() argument
776 Block &B = allocStub(G, S, Thumbv7ABS); in createStubThumbv7()
788 static Block &createStubArmv7(LinkGraph &G, Section &S, Symbol &Target) { in createStubArmv7() argument
789 Block &B = allocStub(G, S, Armv7ABS); in createStubArmv7()
835 Symbol *StubsManager_prev7::getOrCreateSlotEntrypoint(LinkGraph &G, in getOrCreateSlotEntrypoint() argument
842 &G.addAnonymousSymbol(*Slot.B, ThumbEntrypointOffset, 4, true, false); in getOrCreateSlotEntrypoint()
847 &G.addAnonymousSymbol(*Slot.B, ArmEntrypointOffset, 8, true, false); in getOrCreateSlotEntrypoint()
851 bool StubsManager_prev7::visitEdge(LinkGraph &G, Block *B, Edge &E) { in visitEdge() argument
861 StubsSection = &G.createSection(getSectionName(), in visitEdge()
867 Slot->B = &createStubPrev7(G, *StubsSection, Target); in visitEdge()
874 Symbol *StubEntrypoint = getOrCreateSlotEntrypoint(G, *Slot, UseThumb); in visitEdge()
886 bool StubsManager_v7::visitEdge(LinkGraph &G, Block *B, Edge &E) { in visitEdge() argument
894 << " stub for " << G.getEdgeKindName(E.getKind()) in visitEdge()
905 StubsSection = &G.createSection(getSectionName(), in visitEdge()
907 Block &B = MakeThumb ? createStubThumbv7(G, *StubsSection, Target) in visitEdge()
908 : createStubArmv7(G, *StubsSection, Target); in visitEdge()
909 StubSymbol = &G.addAnonymousSymbol(B, 0, B.getSize(), true, false); in visitEdge()