summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-06-29 23:11:39 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-06-29 23:11:39 +0000
commit9f4cc4645b566fb87f1345f9a1b2d061225710ad (patch)
tree3999732aa1fb87f94804f58d0715d401a524eff5 /llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
parentecdd6e4c67bdfffd6ef7ff07e2ac3e36785b7118 (diff)
downloadbcm5719-llvm-9f4cc4645b566fb87f1345f9a1b2d061225710ad.tar.gz
bcm5719-llvm-9f4cc4645b566fb87f1345f9a1b2d061225710ad.zip
Always adjust the stack pointer immediately after the call.
Some x86-32 calls pop values off the stack, and we need to readjust the stack pointer after the call. This happens when ADJCALLSTACKUP is eliminated. It could happen that spill code was inserted between the CALL and ADJCALLSTACKUP instructions, and we would compute wrong stack pointer offsets for those frame index references. Fix this by inserting the stack pointer adjustment immediately after the call instead of where the ADJCALLSTACKUP instruction was erased. I don't have a test case since we don't currently insert code in that position. We will soon, though. I am testing a regalloc patch that didn't work on Linux because of this. llvm-svn: 134113
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/FastISel.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud