Lines Matching defs:Fixup

99   // Fixup kinds from .reloc directive are like R_RISCV_NONE. They
116 const MCFixup &Fixup,
120 if (Fixup.getKind() >= FirstLiteralRelocationKind)
122 switch (Fixup.getTargetKind()) {
144 const MCAssembler &Asm, const MCFixup &Fixup, bool Resolved, uint64_t Value,
150 unsigned Kind = Fixup.getTargetKind();
233 std::pair<MCFixupKind, MCFixupKind> Fixup;
247 Fixup = RISCV::getRelocPairForSize(PtrSize);
252 Fixup = RISCV::getRelocPairForSize(2);
257 Fixups.push_back(MCFixup::create(Offset, MBE.getLHS(), std::get<0>(Fixup)));
258 Fixups.push_back(MCFixup::create(Offset, MBE.getRHS(), std::get<1>(Fixup)));
299 std::pair<unsigned, unsigned> Fixup) {
304 std::get<0>(Fixup))));
308 std::get<1>(Fixup))));
408 static uint64_t adjustFixupValue(const MCFixup &Fixup, uint64_t Value,
410 switch (Fixup.getTargetKind()) {
431 Ctx.reportError(Fixup.getLoc(),
446 Ctx.reportError(Fixup.getLoc(), "fixup value out of range");
448 Ctx.reportError(Fixup.getLoc(), "fixup value must be 2-byte aligned");
463 Ctx.reportError(Fixup.getLoc(), "fixup value out of range");
465 Ctx.reportError(Fixup.getLoc(), "fixup value must be 2-byte aligned");
490 Ctx.reportError(Fixup.getLoc(), "fixup value out of range");
506 Ctx.reportError(Fixup.getLoc(), "fixup value out of range");
522 const MCFixup &Fixup,
530 switch (Fixup.getTargetKind()) {
535 AUIPCFixup = &Fixup;
541 AUIPCFixup = cast<RISCVMCExpr>(Fixup.getValue())->getPCRelHiFixup(&AUIPCDF);
543 Asm.getContext().reportError(Fixup.getLoc(),
584 const MCFixup &Fixup,
589 switch (Fixup.getKind()) {
616 Fixup.getOffset(), nullptr,
619 Fixup.getOffset(), nullptr,
628 void RISCVAsmBackend::applyFixup(const MCAssembler &Asm, const MCFixup &Fixup,
633 MCFixupKind Kind = Fixup.getKind();
641 Value = adjustFixupValue(Fixup, Value, Ctx);
646 unsigned Offset = Fixup.getOffset();
702 MCFixup Fixup =
708 Asm.getWriter().recordRelocation(Asm, &AF, Fixup, NopBytes, FixedValue);