[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCISelLowering.cpp
Chris Lattner
lattner at cs.uiuc.edu
Fri Aug 11 09:47:47 PDT 2006
Changes in directory llvm/lib/Target/PowerPC:
PPCISelLowering.cpp updated: 1.200 -> 1.201
---
Log message:
Fix miscompilation of float vector returns. Compile code to this:
_func:
vsldoi v2, v3, v2, 12
vsldoi v2, v2, v2, 4
blr
instead of:
_func:
vsldoi v2, v3, v2, 12
vsldoi v2, v2, v2, 4
*** vor f1, v2, v2
blr
---
Diffs of the changes: (+4 -4)
PPCISelLowering.cpp | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
Index: llvm/lib/Target/PowerPC/PPCISelLowering.cpp
diff -u llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.200 llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.201
--- llvm/lib/Target/PowerPC/PPCISelLowering.cpp:1.200 Fri Jul 28 11:45:47 2006
+++ llvm/lib/Target/PowerPC/PPCISelLowering.cpp Fri Aug 11 11:47:32 2006
@@ -1238,11 +1238,11 @@
ArgReg = PPC::R3;
} else if (ArgVT == MVT::i64) {
ArgReg = PPC::X3;
- } else if (MVT::isFloatingPoint(ArgVT)) {
- ArgReg = PPC::F1;
- } else {
- assert(MVT::isVector(ArgVT));
+ } else if (MVT::isVector(ArgVT)) {
ArgReg = PPC::V2;
+ } else {
+ assert(MVT::isFloatingPoint(ArgVT));
+ ArgReg = PPC::F1;
}
Copy = DAG.getCopyToReg(Op.getOperand(0), ArgReg, Op.getOperand(1),
More information about the llvm-commits
mailing list