diff options
author | Hal Finkel <hfinkel@anl.gov> | 2013-07-09 06:34:51 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2013-07-09 06:34:51 +0000 |
commit | dbbf09b28ec72c5834d2b35ccddfaf99ef2671de (patch) | |
tree | 9e46e84413e1852db325adf8282113f80dbfdcbc /llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp | |
parent | c95407b0d51c84a511b0efc8a9a7a4e1b4574800 (diff) | |
download | bcm5719-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