[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPC32RegisterInfo.cpp
Chris Lattner
lattner at cs.uiuc.edu
Fri Sep 9 14:59:55 PDT 2005
Changes in directory llvm/lib/Target/PowerPC:
PPC32RegisterInfo.cpp updated: 1.22 -> 1.23
---
Log message:
I forgot that we always spill fp values as 64-bits. Implement spill folding
for FP as well. This triggers a couple dozen times on 177.mesa (for example).
---
Diffs of the changes: (+10 -3)
PPC32RegisterInfo.cpp | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
Index: llvm/lib/Target/PowerPC/PPC32RegisterInfo.cpp
diff -u llvm/lib/Target/PowerPC/PPC32RegisterInfo.cpp:1.22 llvm/lib/Target/PowerPC/PPC32RegisterInfo.cpp:1.23
--- llvm/lib/Target/PowerPC/PPC32RegisterInfo.cpp:1.22 Fri Sep 9 16:46:49 2005
+++ llvm/lib/Target/PowerPC/PPC32RegisterInfo.cpp Fri Sep 9 16:59:44 2005
@@ -149,14 +149,21 @@
unsigned InReg = MI->getOperand(1).getReg();
return addFrameReference(BuildMI(PPC::STW,
3).addReg(InReg), FrameIndex);
- } else {
+ } else { // move -> load
unsigned OutReg = MI->getOperand(0).getReg();
return addFrameReference(BuildMI(PPC::LWZ, 2, OutReg), FrameIndex);
}
} else if (Opc == PPC::FMR) {
- // FIXME: We would be able to fold this, but we don't know whether to use a
- // 32- or 64-bit load/store :(.
+ // We currently always spill FP values as doubles. :(
+ if (OpNum == 0) { // move -> store
+ unsigned InReg = MI->getOperand(1).getReg();
+ return addFrameReference(BuildMI(PPC::STFD,
+ 3).addReg(InReg), FrameIndex);
+ } else { // move -> load
+ unsigned OutReg = MI->getOperand(0).getReg();
+ return addFrameReference(BuildMI(PPC::LFD, 2, OutReg), FrameIndex);
+ }
}
return 0;
}
More information about the llvm-commits
mailing list