llvm-project/llvm/lib/Target/AVR
Dylan McKay c4b002bf5a [AVR] Fix displacement overflow for LDDW/STDW
In some cases, the code generator attempts to generate instructions such as:

lddw r24, Y+63

which expands to:

ldd r24, Y+63
ldd r25, Y+64 # Oops! This is actually ld r25, Y in the binary

This commit limits the first offset to 62, and thus the second to 63.
It also updates some asserts in AVRExpandPseudoInsts.cpp, including for
INW and OUTW, which appear to be unused.

Patch by Thomas Backman.

llvm-svn: 314890
2017-10-04 09:51:21 +00:00
..
AsmParser [AVR] Fix broken indentation 2017-07-13 08:40:59 +00:00
Disassembler Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
InstPrinter [AVR] Rename 'ZREGS' to 'ZREG' 2017-07-11 04:53:43 +00:00
MCTargetDesc [AVR] Remove the 'IsN64' argument to 'MCELFObjectWriter' 2017-09-22 06:32:23 +00:00
TargetInfo Move the global variables representing each Target behind accessor function 2016-10-09 23:00:34 +00:00
AVR.h [AVR] Remove the instrumentation pass 2017-07-23 23:39:11 +00:00
AVR.td [AVR] Split all of the AVR device definitions into a separate file 2016-10-05 10:28:45 +00:00
AVRAsmPrinter.cpp [AVR] Remove a few very old TODOs that don't have enough context to understand 2017-07-11 05:14:40 +00:00
AVRCallingConv.td [AVR] Remove a bunch of unused variables 2016-11-19 01:33:42 +00:00
AVRDevices.td [AVR] Rename 'AVRTiny' to 'Tiny' 2017-07-11 04:45:15 +00:00
AVRExpandPseudoInsts.cpp [AVR] Fix displacement overflow for LDDW/STDW 2017-10-04 09:51:21 +00:00
AVRFrameLowering.cpp Add "Restored" flag to CalleeSavedInfo 2017-08-10 16:17:32 +00:00
AVRFrameLowering.h Add "Restored" flag to CalleeSavedInfo 2017-08-10 16:17:32 +00:00
AVRISelDAGToDAG.cpp [AVR] Parenthesize a boolean expression 2017-01-07 00:55:28 +00:00
AVRISelLowering.cpp [AVR] Prefer BasicBlock::getIterator over Function::begin() 2017-09-26 01:37:53 +00:00
AVRISelLowering.h [AVR] Implement getCmpLibcallReturnType(). 2017-09-24 01:07:26 +00:00
AVRInstrFormats.td [AVR] Add the 'SoftFail' field to all instruction formats 2016-10-08 00:55:46 +00:00
AVRInstrInfo.cpp [AVR] Use the generic branch relaxer 2017-07-11 04:17:13 +00:00
AVRInstrInfo.h [AVR] Use the generic branch relaxer 2017-07-11 04:17:13 +00:00
AVRInstrInfo.td [AVR] Use the correct register classes for 16-bit atomic operations 2017-08-24 00:14:38 +00:00
AVRMCInstLower.cpp [AVR] Fix indirect calls to function pointers 2017-07-13 08:09:36 +00:00
AVRMCInstLower.h [AVR] Add the AVRMCInstLower class 2016-10-07 06:13:09 +00:00
AVRMachineFunctionInfo.h
AVRRegisterInfo.cpp [AVR] Fix displacement overflow for LDDW/STDW 2017-10-04 09:51:21 +00:00
AVRRegisterInfo.h [AVR] Add AVRRegisterInfo::splitReg function 2016-10-05 13:27:30 +00:00
AVRRegisterInfo.td [AVR] Remove a few very old TODOs that don't have enough context to understand 2017-07-11 05:14:40 +00:00
AVRRelaxMemOperations.cpp [AVR] Add an 'relax memory operation' pass 2016-12-13 05:53:14 +00:00
AVRSelectionDAGInfo.h
AVRSubtarget.cpp Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
AVRSubtarget.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
AVRTargetMachine.cpp [AVR] Use 1-byte alignment for all data types 2017-09-26 00:45:27 +00:00
AVRTargetMachine.h [AVR] Update target machine to use new constructor parameters 2017-08-04 05:48:20 +00:00
AVRTargetObjectFile.cpp Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
AVRTargetObjectFile.h Target: Change various section classifiers in TargetLoweringObjectFile to take a GlobalObject. 2016-10-24 19:23:39 +00:00
CMakeLists.txt [AVR] Remove the instrumentation pass 2017-07-23 23:39:11 +00:00
LLVMBuild.txt [AVR] Add the machine code disassembler 2016-10-22 23:57:59 +00:00
README.md [AVR] Add a stub README file 2016-12-10 12:08:19 +00:00
TODO.md

README.md

AVR backend

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