LLVM: llvm::AVR Namespace Reference (original) (raw)
The set of supported fixups.
Although most of the current fixup types reflect a unique relocation one can have multiple fixup types for a given relocation and thus need to be uniquely named.
Note
This table must be in the same order of MCFixupKindInfo Infos[AVR::NumTargetFixupKinds] in AVRAsmBackend.cpp.
| Enumerator | |
|---|---|
| fixup_32 | A 32-bit AVR fixup. |
| fixup_7_pcrel | A 7-bit PC-relative fixup for the family of conditional branches which take 7-bit targets (BRNE,BRGT,etc). |
| fixup_13_pcrel | A 12-bit PC-relative fixup for the family of branches which take 12-bit targets (RJMP,RCALL,etc). NoteAlthough the fixup is labelled as 13 bits, it is actually only encoded in 12. The reason for The nonmenclature is that AVR branch targets are rightshifted by 1, because instructions are always aligned to 2 bytes, so the 0'th bit is always 0. This way there is 13-bits of precision. |
| fixup_16 | A 16-bit address. |
| fixup_16_pm | A 16-bit program memory address. |
| fixup_ldi | Replaces the 8-bit immediate with another value. |
| fixup_lo8_ldi | Replaces the immediate operand of a 16-bit Rd, K instruction with the lower 8 bits of a 16-bit value (bits 0-7). |
| fixup_hi8_ldi | Replaces the immediate operand of a 16-bit Rd, K instruction with the upper 8 bits of a 16-bit value (bits 8-15). |
| fixup_hh8_ldi | Replaces the immediate operand of a 16-bit Rd, K instruction with the upper 8 bits of a 24-bit value (bits 16-23). |
| fixup_ms8_ldi | Replaces the immediate operand of a 16-bit Rd, K instruction with the upper 8 bits of a 32-bit value (bits 24-31). |
| fixup_lo8_ldi_neg | Replaces the immediate operand of a 16-bit Rd, K instruction with the lower 8 bits of a negated 16-bit value (bits 0-7). |
| fixup_hi8_ldi_neg | Replaces the immediate operand of a 16-bit Rd, K instruction with the upper 8 bits of a negated 16-bit value (bits 8-15). |
| fixup_hh8_ldi_neg | Replaces the immediate operand of a 16-bit Rd, K instruction with the upper 8 bits of a negated 24-bit value (bits 16-23). |
| fixup_ms8_ldi_neg | Replaces the immediate operand of a 16-bit Rd, K instruction with the upper 8 bits of a negated 32-bit value (bits 24-31). |
| fixup_lo8_ldi_pm | Replaces the immediate operand of a 16-bit Rd, K instruction with the lower 8 bits of a 16-bit program memory address value (bits 0-7). |
| fixup_hi8_ldi_pm | Replaces the immediate operand of a 16-bit Rd, K instruction with the upper 8 bits of a 16-bit program memory address value (bits 8-15). |
| fixup_hh8_ldi_pm | Replaces the immediate operand of a 16-bit Rd, K instruction with the upper 8 bits of a 24-bit program memory address value (bits 16-23). |
| fixup_lo8_ldi_pm_neg | Replaces the immediate operand of a 16-bit Rd, K instruction with the lower 8 bits of a negated 16-bit program memory address value (bits 0-7). |
| fixup_hi8_ldi_pm_neg | Replaces the immediate operand of a 16-bit Rd, K instruction with the upper 8 bits of a negated 16-bit program memory address value (bits 8-15). |
| fixup_hh8_ldi_pm_neg | Replaces the immediate operand of a 16-bit Rd, K instruction with the upper 8 bits of a negated 24-bit program memory address value (bits 16-23). |
| fixup_call | A 22-bit fixup for the target of a CALL k or JMP k instruction. |
| fixup_6 | |
| fixup_6_adiw | A symbol+addr fixup for the `LDD +, " family of instructions. |
| fixup_lo8_ldi_gs | |
| fixup_hi8_ldi_gs | |
| fixup_8 | |
| fixup_8_lo8 | |
| fixup_8_hi8 | |
| fixup_8_hlo8 | |
| fixup_diff8 | |
| fixup_diff16 | |
| fixup_diff32 | |
| fixup_lds_sts_16 | |
| fixup_port6 | A 6-bit port address. |
| fixup_port5 | A 5-bit port address. |
| LastTargetFixupKind | |
| NumTargetFixupKinds |
Definition at line 26 of file AVRFixupKinds.h.