LLVM 20.0.0git
|
Contains the AVR backend. More...
Namespaces | |
namespace | fixups |
Enumerations | |
enum | AddressSpace { DataMemory , ProgramMemory , ProgramMemory1 , ProgramMemory2 , ProgramMemory3 , ProgramMemory4 , ProgramMemory5 , NumAddrSpaces } |
An integer that identifies all of the supported AVR address spaces. More... | |
enum | Fixups { fixup_32 = FirstTargetFixupKind , fixup_7_pcrel , fixup_13_pcrel , fixup_16 , fixup_16_pm , fixup_ldi , fixup_lo8_ldi , fixup_hi8_ldi , fixup_hh8_ldi , fixup_ms8_ldi , fixup_lo8_ldi_neg , fixup_hi8_ldi_neg , fixup_hh8_ldi_neg , fixup_ms8_ldi_neg , fixup_lo8_ldi_pm , fixup_hi8_ldi_pm , fixup_hh8_ldi_pm , fixup_lo8_ldi_pm_neg , fixup_hi8_ldi_pm_neg , fixup_hh8_ldi_pm_neg , fixup_call , fixup_6 , fixup_6_adiw , 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 , fixup_port5 , LastTargetFixupKind , NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind } |
The set of supported fixups. More... | |
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.
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.
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).
|
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 |
fixup_hi8_ldi | Replaces the immediate operand of a 16-bit |
fixup_hh8_ldi | Replaces the immediate operand of a 16-bit |
fixup_ms8_ldi | Replaces the immediate operand of a 16-bit |
fixup_lo8_ldi_neg | Replaces the immediate operand of a 16-bit |
fixup_hi8_ldi_neg | Replaces the immediate operand of a 16-bit |
fixup_hh8_ldi_neg | Replaces the immediate operand of a 16-bit |
fixup_ms8_ldi_neg | Replaces the immediate operand of a 16-bit |
fixup_lo8_ldi_pm | Replaces the immediate operand of a 16-bit |
fixup_hi8_ldi_pm | Replaces the immediate operand of a 16-bit |
fixup_hh8_ldi_pm | Replaces the immediate operand of a 16-bit |
fixup_lo8_ldi_pm_neg | Replaces the immediate operand of a 16-bit |
fixup_hi8_ldi_pm_neg | Replaces the immediate operand of a 16-bit |
fixup_hh8_ldi_pm_neg | Replaces the immediate operand of a 16-bit |
fixup_call | A 22-bit fixup for the target of a |
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 65 of file AVR.h.
References assert(), and NumAddrSpaces.
Referenced by getProgramMemoryBank(), and llvm::AVRTargetObjectFile::SelectSectionForGlobal().
Definition at line 85 of file AVR.h.
References assert(), getAddressSpace(), isProgramMemoryAddress(), N, ProgramMemory, and ProgramMemory5.
Referenced by AVRDAGToDAGISel::select< ISD::LOAD >().
Definition at line 74 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 54 of file AVR.h.
References assert(), ProgramMemory, ProgramMemory1, ProgramMemory2, ProgramMemory3, ProgramMemory4, and ProgramMemory5.
Referenced by getProgramMemoryBank(), isProgramMemoryAccess(), and llvm::AVRTargetObjectFile::SelectSectionForGlobal().