LLVM 22.0.0git
|
Contains the AVR backend. More...
Namespaces | |
namespace | fixups |
Typedefs | |
using | Specifier = uint16_t |
Functions | |
template<typename T> | |
bool | isProgramMemoryAddress (T *V) |
Checks if a given type is a pointer to program memory. | |
template<typename T> | |
AddressSpace | getAddressSpace (T *V) |
bool | isProgramMemoryAccess (MemSDNode const *N) |
int | getProgramMemoryBank (MemSDNode const *N) |
Contains the AVR backend.
using llvm::AVR::Specifier = uint16_t |
Definition at line 35 of file AVRMCAsmInfo.h.
anonymous enum |
Definition at line 36 of file AVRMCAsmInfo.h.
enum llvm::AVR::Fixups |
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.
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).
|
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 <x>+<n>, <r>" 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.
AddressSpace llvm::AVR::getAddressSpace | ( | T * | V | ) |
Definition at line 66 of file AVR.h.
References assert(), llvm::cast(), NumAddrSpaces, and T.
Referenced by getProgramMemoryBank(), and llvm::AVRTargetObjectFile::SelectSectionForGlobal().
Definition at line 86 of file AVR.h.
References assert(), getAddressSpace(), isProgramMemoryAddress(), N, ProgramMemory, and ProgramMemory5.
Referenced by AVRDAGToDAGISel::select< ISD::LOAD >().
Definition at line 75 of file AVR.h.
References isProgramMemoryAddress(), and N.
Referenced by AVRDAGToDAGISel::select< ISD::LOAD >(), llvm::AVRTargetLowering::getPostIndexedAddressParts(), and llvm::AVRTargetLowering::getPreIndexedAddressParts().
Checks if a given type is a pointer to program memory.
Definition at line 55 of file AVR.h.
References assert(), llvm::cast(), ProgramMemory, ProgramMemory1, ProgramMemory2, ProgramMemory3, ProgramMemory4, ProgramMemory5, and T.
Referenced by getProgramMemoryBank(), isProgramMemoryAccess(), and llvm::AVRTargetObjectFile::SelectSectionForGlobal().