summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2013-07-09 06:34:51 +0000
committerHal Finkel <hfinkel@anl.gov>2013-07-09 06:34:51 +0000
commitdbbf09b28ec72c5834d2b35ccddfaf99ef2671de (patch)
tree9e46e84413e1852db325adf8282113f80dbfdcbc /llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
parentc95407b0d51c84a511b0efc8a9a7a4e1b4574800 (diff)
downloadbcm5719-llvm-dbbf09b28ec72c5834d2b35ccddfaf99ef2671de.tar.gz
bcm5719-llvm-dbbf09b28ec72c5834d2b35ccddfaf99ef2671de.zip
PPC: Allocate RS spill slot for unaligned i64 load/store
This fixes another bug found by llvm-stress! If we happen to be doing an i64 load or store into a stack slot that has less than a 4-byte alignment, then the frame-index elimination may need to use an indexed load or store instruction (because the offset may not be a multiple of 4, a requirement of the STD/LD instructions). The extra register needed to hold the offset comes from the register scavenger, and it is possible that the scavenger will need to use an emergency spill slot. As a result, we need to make sure that a spill slot is allocated when doing an i64 load/store into a less-than-4-byte-aligned stack slot. Because test cases for things like this tend to be fairly fragile, I've concatenated a few small bugpoint-reduced test cases together to form the regression test. llvm-svn: 185907
Diffstat (limited to 'llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud