Lines Matching defs:Fixup
98 // Fixup kinds from .reloc directive are like R_RISCV_NONE. They
115 const MCFixup &Fixup,
118 if (Fixup.getKind() >= FirstLiteralRelocationKind)
120 switch (Fixup.getTargetKind()) {
142 const MCAssembler &Asm, const MCFixup &Fixup, bool Resolved, uint64_t Value,
148 unsigned Kind = Fixup.getTargetKind();
231 std::pair<MCFixupKind, MCFixupKind> Fixup;
245 Fixup = RISCV::getRelocPairForSize(PtrSize);
250 Fixup = RISCV::getRelocPairForSize(2);
255 Fixups.push_back(MCFixup::create(Offset, MBE.getLHS(), std::get<0>(Fixup)));
256 Fixups.push_back(MCFixup::create(Offset, MBE.getRHS(), std::get<1>(Fixup)));
297 std::pair<unsigned, unsigned> Fixup) {
302 std::get<0>(Fixup))));
306 std::get<1>(Fixup))));
406 static uint64_t adjustFixupValue(const MCFixup &Fixup, uint64_t Value,
408 switch (Fixup.getTargetKind()) {
429 Ctx.reportError(Fixup.getLoc(),
444 Ctx.reportError(Fixup.getLoc(), "fixup value out of range");
446 Ctx.reportError(Fixup.getLoc(), "fixup value must be 2-byte aligned");
461 Ctx.reportError(Fixup.getLoc(), "fixup value out of range");
463 Ctx.reportError(Fixup.getLoc(), "fixup value must be 2-byte aligned");
488 Ctx.reportError(Fixup.getLoc(), "fixup value out of range");
504 Ctx.reportError(Fixup.getLoc(), "fixup value out of range");
520 const MCFixup &Fixup,
528 switch (Fixup.getTargetKind()) {
533 AUIPCFixup = &Fixup;
539 AUIPCFixup = cast<RISCVMCExpr>(Fixup.getValue())->getPCRelHiFixup(&AUIPCDF);
541 Asm.getContext().reportError(Fixup.getLoc(),
581 const MCFixup &Fixup,
586 switch (Fixup.getKind()) {
613 Fixup.getOffset(), nullptr,
616 Fixup.getOffset(), nullptr,
625 void RISCVAsmBackend::applyFixup(const MCAssembler &Asm, const MCFixup &Fixup,
630 MCFixupKind Kind = Fixup.getKind();
638 Value = adjustFixupValue(Fixup, Value, Ctx);
643 unsigned Offset = Fixup.getOffset();
699 MCFixup Fixup =
705 Asm.getWriter().recordRelocation(Asm, &AF, Fixup, NopBytes, FixedValue);