[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