Fix an itanium call lowering bug for duraid
authorChris Lattner <sabre@nondot.org>
Thu, 12 Jan 2006 01:33:08 +0000 (01:33 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 12 Jan 2006 01:33:08 +0000 (01:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25235 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/IA64/IA64ISelLowering.cpp

index 256d3ef36693852506fb38672a8055b9833afce5..c1bae3f6db00c3253eacea0dd8f675860d747887 100644 (file)
@@ -376,14 +376,14 @@ IA64TargetLowering::LowerCallTo(SDOperand Chain,
   
   // save the current GP, SP and RP : FIXME: do we need to do all 3 always?
   SDOperand GPBeforeCall = DAG.getCopyFromReg(Chain, IA64::r1, MVT::i64, InFlag);
-  Chain = GPBeforeCall;
-  InFlag = Chain.getValue(1);
+  Chain = GPBeforeCall.getValue(1);
+  InFlag = Chain.getValue(2);
   SDOperand SPBeforeCall = DAG.getCopyFromReg(Chain, IA64::r12, MVT::i64, InFlag);
-  Chain = SPBeforeCall;
-  InFlag = Chain.getValue(1);
+  Chain = SPBeforeCall.getValue(1);
+  InFlag = Chain.getValue(2);
   SDOperand RPBeforeCall = DAG.getCopyFromReg(Chain, IA64::rp, MVT::i64, InFlag);
-  Chain = RPBeforeCall;
-  InFlag = Chain.getValue(1);
+  Chain = RPBeforeCall.getValue(1);
+  InFlag = Chain.getValue(2);
 
   // Build a sequence of copy-to-reg nodes chained together with token chain
   // and flag operands which copy the outgoing integer args into regs out[0-7]