llvm-project/llvm/lib/Target/AVR
Nico Weber 4f9a5c2a14 [asm] Remove explicit branch for modifier 'l'
No intended behavior change.

EmitGCCInlineAsmStr() used to explicitly check for modifier 'l'
after handling block address and machine basic block operands.
This prevented passing a MachineOperand with 'l' modifier to
PrintAsmMemoryOperand(). Conceptually that seems kind of nice,
but in practice the overrides of PrintAsmMemoryOperand() in all (*)
AsmPrinter subclasses already reject modifiers they don't know about,
and none of them don't know about 'l'. So removing this doesn't have
a behavior difference, is less code, and it makes EmitGCCInlineAsmStr()
and EmitMSInlineAsmStr() more similar, to prepare for merging them later.

(Why not _add_ the branch to EmitMSInlineAsmStr() instead? Because that
always works with X86AsmPrinter I think, and
X86AsmPrinter::PrintAsmMemoryOperand() very decisively rejects the 'l'
modifier, so it's hard to motivate adding that branch.)

*: The one exception was AVRAsmPrinter, which had an llvm_unreachable instead
of returning true. So this commit changes that, so that the AVR target keeps
emitting an error instead of crashing when passing a mem operand with a :l
modifier to it. All the other targets already don't crash on this.

Differential Revision: https://reviews.llvm.org/D114216
2021-11-19 09:19:53 -05:00
..
AsmParser Move TargetRegistry.(h|cpp) from Support to MC 2021-10-08 14:51:48 -07:00
Disassembler Move TargetRegistry.(h|cpp) from Support to MC 2021-10-08 14:51:48 -07:00
MCTargetDesc Move TargetRegistry.(h|cpp) from Support to MC 2021-10-08 14:51:48 -07:00
TargetInfo Fix shlib builds for all lib/Target/*/TargetInfo libs 2021-10-08 15:21:13 -07:00
AVR.h [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVR.td [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRAsmPrinter.cpp [asm] Remove explicit branch for modifier 'l' 2021-11-19 09:19:53 -05:00
AVRCallingConv.td [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRDevices.td [AVR] Add support for the tinyAVR 0-series and tinyAVR 1-series 2021-09-08 02:35:26 +00:00
AVRExpandPseudoInsts.cpp [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRFrameLowering.cpp [Target] Use make_early_inc_range (NFC) 2021-11-05 09:14:32 -07:00
AVRFrameLowering.h
AVRISelDAGToDAG.cpp [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRISelLowering.cpp [NFC][llvm] Inclusive language: reword and remove uses of sanity in llvm/lib/Target 2021-11-17 21:59:00 -05:00
AVRISelLowering.h [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRInstrFormats.td [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRInstrInfo.cpp [amdgpu] Handle the case where there is no scavenged register. 2021-10-27 18:37:27 -04:00
AVRInstrInfo.h [amdgpu] Handle the case where there is no scavenged register. 2021-10-27 18:37:27 -04:00
AVRInstrInfo.td [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRMCInstLower.cpp [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRMCInstLower.h [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRMachineFunctionInfo.h [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRRegisterInfo.cpp [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRRegisterInfo.h [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRRegisterInfo.td [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRRelaxMemOperations.cpp [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRSelectionDAGInfo.h
AVRShiftExpand.cpp [AVR] Expand large shifts early in IR 2021-07-24 14:03:26 +02:00
AVRSubtarget.cpp Move TargetRegistry.(h|cpp) from Support to MC 2021-10-08 14:51:48 -07:00
AVRSubtarget.h [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRTargetMachine.cpp Move TargetRegistry.(h|cpp) from Support to MC 2021-10-08 14:51:48 -07:00
AVRTargetMachine.h [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRTargetObjectFile.cpp [NFC] Run clang-format on llvm/lib/Trget/AVR/ 2021-09-04 20:05:15 +05:30
AVRTargetObjectFile.h
CMakeLists.txt [AVR] Expand large shifts early in IR 2021-07-24 14:03:26 +02:00
README.md
TODO.md

README.md

AVR backend

This experimental backend is for the 8-bit Atmel AVR microcontroller.