nasty paste-o, calls passing more than 8 arguments along were having
authorDuraid Madina <duraid@octopus.com.au>
Tue, 27 Dec 2005 10:17:03 +0000 (10:17 +0000)
committerDuraid Madina <duraid@octopus.com.au>
Tue, 27 Dec 2005 10:17:03 +0000 (10:17 +0000)
args >8 put into the wrong place

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

lib/Target/IA64/IA64ISelLowering.cpp

index 54ba3ef0d3c9df0d29bbd2a16f06c462245783ed..d63157fb444b32b63f0096bb3c218370da32825f 100644 (file)
@@ -347,12 +347,12 @@ IA64TargetLowering::LowerCallTo(SDOperand Chain,
         PtrOff = DAG.getNode(ISD::ADD, MVT::i64, StackPtr, PtrOff);
         Stores.push_back(DAG.getNode(ISD::STORE, MVT::Other, Chain,
                                      ValToStore, PtrOff, NullSV));
+        ArgOffset += ObjSize;
       }
 
       if(ValToConvert.Val) {
        Converts.push_back(DAG.getNode(IA64ISD::GETFD, MVT::i64, ValToConvert)); 
       }
-      ArgOffset += ObjSize;
     }
 
   // Emit all stores, make sure they occur before any copies into physregs.
@@ -397,7 +397,7 @@ IA64TargetLowering::LowerCallTo(SDOperand Chain,
     }
   }
 
-  // next copy args into the usual places
+  // next copy args into the usual places, these are flagged
   unsigned usedFPArgs = 0;
   for (unsigned i = 0, e = RegValuesToPass.size(); i != e; ++i) {
     Chain = DAG.getCopyToReg(Chain,