Lines Matching defs:Fixup
35 std::string Description, const MCFixup &Fixup,
45 Ctx->reportError(Fixup.getLoc(), Diagnostic);
50 static void adjustBranch(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
54 unsigned_width(Size + 1, Value, std::string("branch target"), Fixup, Ctx);
61 static bool adjustRelativeBranch(unsigned Size, const MCFixup &Fixup,
100 static void fixup_call(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
102 adjustBranch(Size, Fixup, Value, Ctx);
116 static void fixup_7_pcrel(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
118 if (!adjustRelativeBranch(Size, Fixup, Value, Ctx->getSubtargetInfo())) {
132 static void fixup_13_pcrel(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
134 if (!adjustRelativeBranch(Size, Fixup, Value, Ctx->getSubtargetInfo())) {
147 static void fixup_6(const MCFixup &Fixup, uint64_t &Value, MCContext *Ctx) {
148 unsigned_width(6, Value, std::string("immediate"), Fixup, Ctx);
158 static void fixup_6_adiw(const MCFixup &Fixup, uint64_t &Value,
160 unsigned_width(6, Value, std::string("immediate"), Fixup, Ctx);
169 static void fixup_port5(const MCFixup &Fixup, uint64_t &Value, MCContext *Ctx) {
170 unsigned_width(5, Value, std::string("port number"), Fixup, Ctx);
181 static void fixup_port6(const MCFixup &Fixup, uint64_t &Value, MCContext *Ctx) {
182 unsigned_width(6, Value, std::string("port number"), Fixup, Ctx);
191 static void fixup_lds_sts_16(const MCFixup &Fixup, uint64_t &Value,
193 unsigned_width(7, Value, std::string("immediate"), Fixup, Ctx);
209 static void fixup(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
219 static void lo8(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
222 ldi::fixup(Size, Fixup, Value, Ctx);
225 static void hi8(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
228 ldi::fixup(Size, Fixup, Value, Ctx);
231 static void hh8(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
234 ldi::fixup(Size, Fixup, Value, Ctx);
237 static void ms8(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
240 ldi::fixup(Size, Fixup, Value, Ctx);
249 void AVRAsmBackend::adjustFixupValue(const MCFixup &Fixup,
253 uint64_t Size = AVRAsmBackend::getFixupKindInfo(Fixup.getKind()).TargetSize;
255 unsigned Kind = Fixup.getKind();
260 adjust::fixup_7_pcrel(Size, Fixup, Value, Ctx);
263 adjust::fixup_13_pcrel(Size, Fixup, Value, Ctx);
266 adjust::fixup_call(Size, Fixup, Value, Ctx);
269 adjust::ldi::fixup(Size, Fixup, Value, Ctx);
272 adjust::ldi::lo8(Size, Fixup, Value, Ctx);
277 adjust::ldi::lo8(Size, Fixup, Value, Ctx);
280 adjust::ldi::hi8(Size, Fixup, Value, Ctx);
285 adjust::ldi::hi8(Size, Fixup, Value, Ctx);
292 adjust::ldi::hh8(Size, Fixup, Value, Ctx);
295 adjust::ldi::ms8(Size, Fixup, Value, Ctx);
304 adjust::ldi::lo8(Size, Fixup, Value, Ctx);
312 adjust::ldi::hi8(Size, Fixup, Value, Ctx);
320 adjust::ldi::hh8(Size, Fixup, Value, Ctx);
324 adjust::ldi::ms8(Size, Fixup, Value, Ctx);
327 adjust::unsigned_width(16, Value, std::string("port number"), Fixup, Ctx);
333 adjust::unsigned_width(16, Value, std::string("port number"), Fixup, Ctx);
339 adjust::fixup_6(Fixup, Value, Ctx);
342 adjust::fixup_6_adiw(Fixup, Value, Ctx);
346 adjust::fixup_port5(Fixup, Value, Ctx);
350 adjust::fixup_port6(Fixup, Value, Ctx);
354 adjust::fixup_lds_sts_16(Fixup, Value, Ctx);
375 void AVRAsmBackend::applyFixup(const MCAssembler &Asm, const MCFixup &Fixup,
380 if (Fixup.getKind() >= FirstLiteralRelocationKind)
382 adjustFixupValue(Fixup, Target, Value, &Asm.getContext());
386 MCFixupKindInfo Info = getFixupKindInfo(Fixup.getKind());
395 unsigned Offset = Fixup.getOffset();
480 // Fixup kinds from .reloc directive are like R_AVR_NONE. They do not require
506 const MCFixup &Fixup,
510 switch ((unsigned)Fixup.getKind()) {
512 return Fixup.getKind() >= FirstLiteralRelocationKind;
517 uint64_t Size = AVRAsmBackend::getFixupKindInfo(Fixup.getKind()).TargetSize;
524 return !adjust::adjustRelativeBranch(Size, Fixup, ValueEx, STI);