LLVM
15.0.0git
|
Contains the AVR backend. More...
Namespaces | |
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. More... | |
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 64 of file AVR.h.
References assert(), and NumAddrSpaces.
Referenced by llvm::MachineIRBuilder::buildGlobalValue(), llvm::DataLayout::getIndexTypeSizeInBits(), llvm::DataLayout::getPointerTypeSizeInBits(), getProgramMemoryBank(), llvm::MachinePointerInfo::MachinePointerInfo(), and llvm::AVRTargetObjectFile::SelectSectionForGlobal().
Definition at line 84 of file AVR.h.
References assert(), getAddressSpace(), isProgramMemoryAddress(), N, ProgramMemory, and ProgramMemory5.
Referenced by llvm::AVRDAGToDAGISel::select< ISD::LOAD >().
Definition at line 73 of file AVR.h.
References isProgramMemoryAddress(), and N.
Referenced by llvm::AVRDAGToDAGISel::select< ISD::LOAD >(), llvm::AVRTargetLowering::getPostIndexedAddressParts(), and llvm::AVRTargetLowering::getPreIndexedAddressParts().
bool llvm::AVR::isProgramMemoryAddress | ( | T * | V | ) |
Checks if a given type is a pointer to program memory.
Definition at line 53 of file AVR.h.
References assert(), ProgramMemory, ProgramMemory1, ProgramMemory2, ProgramMemory3, ProgramMemory4, and ProgramMemory5.
Referenced by getProgramMemoryBank(), isProgramMemoryAccess(), and llvm::AVRTargetObjectFile::SelectSectionForGlobal().