Home | History | Annotate | Download | only in MCTargetDesc

Lines Matching refs:Fixup

39                   const MCFixup &Fixup, MCContext *Ctx = nullptr) {
50 Ctx->reportFatalError(Fixup.getLoc(), Diagnostic);
58 const MCFixup &Fixup, MCContext *Ctx = nullptr) {
68 Ctx->reportFatalError(Fixup.getLoc(), Diagnostic);
75 /// Adjusts the value of a branch target before fixup application.
76 void adjustBranch(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
80 unsigned_width(Size + 1, Value, std::string("branch target"), Fixup, Ctx);
86 /// Adjusts the value of a relative branch target before fixup application.
87 void adjustRelativeBranch(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
91 signed_width(Size + 1, Value, std::string("branch target"), Fixup, Ctx);
99 /// 22-bit absolute fixup.
105 void fixup_call(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
107 adjustBranch(Size, Fixup, Value, Ctx);
116 /// 7-bit PC-relative fixup.
121 void fixup_7_pcrel(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
123 adjustRelativeBranch(Size, Fixup, Value, Ctx);
129 /// 12-bit PC-relative fixup.
130 /// Yes, the fixup is 12 bits even though the name says otherwise.
135 void fixup_13_pcrel(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
137 adjustRelativeBranch(Size, Fixup, Value, Ctx);
143 /// 6-bit fixup for the immediate operand of the ADIW family of
148 void fixup_6_adiw(const MCFixup &Fixup, uint64_t &Value,
150 unsigned_width(6, Value, std::string("immediate"), Fixup, Ctx);
155 /// 5-bit port number fixup on the SBIC family of instructions.
159 void fixup_port5(const MCFixup &Fixup, uint64_t &Value,
161 unsigned_width(5, Value, std::string("port number"), Fixup, Ctx);
168 /// 6-bit port number fixup on the `IN` family of instructions.
172 void fixup_port6(const MCFixup &Fixup, uint64_t &Value,
174 unsigned_width(6, Value, std::string("port number"), Fixup, Ctx);
193 void fixup(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
203 void lo8(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
206 ldi::fixup(Size, Fixup, Value, Ctx);
209 void hi8(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
212 ldi::fixup(Size, Fixup, Value, Ctx);
215 void hh8(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
218 ldi::fixup(Size, Fixup, Value, Ctx);
221 void ms8(unsigned Size, const MCFixup &Fixup, uint64_t &Value,
224 ldi::fixup(Size, Fixup, Value, Ctx);
233 void AVRAsmBackend::adjustFixupValue(const MCFixup &Fixup,
237 // The size of the fixup in bits.
238 uint64_t Size = AVRAsmBackend::getFixupKindInfo(Fixup.getKind()).TargetSize;
240 unsigned Kind = Fixup.getKind();
254 llvm_unreachable("unhandled fixup");
256 adjust::fixup_7_pcrel(Size, Fixup, Value, Ctx);
259 adjust::fixup_13_pcrel(Size, Fixup, Value, Ctx);
262 adjust::fixup_call(Size, Fixup, Value, Ctx);
265 adjust::ldi::fixup(Size, Fixup, Value, Ctx);
268 adjust::ldi::lo8(Size, Fixup, Value, Ctx);
273 adjust::ldi::lo8(Size, Fixup, Value, Ctx);
276 adjust::ldi::hi8(Size, Fixup, Value, Ctx);
281 adjust::ldi::hi8(Size, Fixup, Value, Ctx);
287 adjust::ldi::hh8(Size, Fixup, Value, Ctx);
290 adjust::ldi::ms8(Size, Fixup, Value, Ctx);
298 adjust::ldi::lo8(Size, Fixup, Value, Ctx);
305 adjust::ldi::hi8(Size, Fixup, Value, Ctx);
312 adjust::ldi::hh8(Size, Fixup, Value, Ctx);
316 adjust::ldi::ms8(Size, Fixup, Value, Ctx);
319 adjust::unsigned_width(16, Value, std::string("port number"), Fixup, Ctx);
325 adjust::unsigned_width(16, Value, std::string("port number"), Fixup, Ctx);
331 adjust::fixup_6_adiw(Fixup, Value, Ctx);
335 adjust::fixup_port5(Fixup, Value, Ctx);
339 adjust::fixup_port6(Fixup, Value, Ctx);
350 llvm_unreachable("don't know how to adjust this fixup");
360 void AVRAsmBackend::applyFixup(const MCAssembler &Asm, const MCFixup &Fixup,
365 adjustFixupValue(Fixup, Target, Value, &Asm.getContext());
369 MCFixupKindInfo Info = getFixupKindInfo(Fixup.getKind());
371 // The number of bits in the fixup mask
378 unsigned Offset = Fixup.getOffset();
379 assert(Offset + NumBytes <= Data.size() && "Invalid fixup offset!");
381 // For each byte of the fragment that the fixup touches, mask in the
382 // bits from the fixup value.
391 // this by saying that the fixup is the size of the entire instruction.
468 const MCFixup &Fixup,
470 switch ((unsigned) Fixup.getKind()) {