Dead FP arguments still use an incoming FP reg. This fixes
authorChris Lattner <sabre@nondot.org>
Wed, 11 Jan 2006 18:21:25 +0000 (18:21 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 11 Jan 2006 18:21:25 +0000 (18:21 +0000)
Regression/CodeGen/PowerPC/2006-01-11-darwin-fp-argument.ll, which was
distilled from a miscompilation in 252.eon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25217 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCISelLowering.cpp

index 75be67021ab3ddf2833a5658d288f7904b6195c6..976f80fafa95f88e455db4adba0ee5cff664ff32 100644 (file)
@@ -509,7 +509,13 @@ PPCTargetLowering::LowerArguments(Function &F, SelectionDAG &DAG) {
     case MVT::f32:
     case MVT::f64:
       ObjSize = (ObjectVT == MVT::f64) ? 8 : 4;
-      if (!ArgLive) break;
+      if (!ArgLive) {
+        if (FPR_remaining > 0) {
+          --FPR_remaining;
+          ++FPR_idx;
+        }        
+        break;
+      }
       if (FPR_remaining > 0) {
         unsigned VReg;
         if (ObjectVT == MVT::f32)