summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/AVR/rust-avr-bug-99.ll
diff options
context:
space:
mode:
authorDylan McKay <me@dylanmckay.io>2019-01-18 11:27:38 +0000
committerDylan McKay <me@dylanmckay.io>2019-01-18 11:27:38 +0000
commit77364be497beba7caf7ba1c8dc94671655f757a0 (patch)
tree6773b7a650b7230a85490d6cd0b8fbc39e9645e6 /llvm/test/CodeGen/AVR/rust-avr-bug-99.ll
parent845d3295d4dd18c5027173a530b3ae4cf8b7807e (diff)
downloadbcm5719-llvm-77364be497beba7caf7ba1c8dc94671655f757a0.tar.gz
bcm5719-llvm-77364be497beba7caf7ba1c8dc94671655f757a0.zip
[AVR] Fix codegen bug in 16-bit loads
Prior to this patch, the AVR::LDWRdPtr instruction was always lowered to instructions of this pattern: ld $GPR8, [PTR:XYZ]+ ld $GPR8, [PTR]+1 This has a problem; the [PTR] is incremented in-place once, but never decremented. Future uses of the same pointer will use the now clobbered value, leading to the pointer being incorrect by an offset of one. This patch modifies the expansion code of the LDWRdPtr pseudo instruction so that the pointer variable is not silently clobbered in future uses in the same live range. Patch by Keshav Kini. llvm-svn: 351544
Diffstat (limited to 'llvm/test/CodeGen/AVR/rust-avr-bug-99.ll')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud