Emit the lo/hi parts in the right order :)
authorChris Lattner <sabre@nondot.org>
Thu, 25 Aug 2005 23:36:49 +0000 (23:36 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 25 Aug 2005 23:36:49 +0000 (23:36 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23068 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCISelDAGToDAG.cpp

index b55dca3411926c46b697cb9d77f50fa1261cdc65..5e170de8da6546bf9463c5bafa3a7ef84378c997 100644 (file)
@@ -1153,7 +1153,6 @@ SDOperand PPC32DAGToDAGISel::Select(SDOperand Op) {
       CarryFromLo = CurDAG->getTargetNode(PPC::ADDC, MVT::i32, MVT::Flag,
                                           LHSL, Select(N->getOperand(2)));
     }
-    Result.push_back(CarryFromLo);
     CarryFromLo = CarryFromLo.getValue(1);
     
     // Codegen the high 32 bits, adding zero, minus one, or the full value
@@ -1167,6 +1166,7 @@ SDOperand PPC32DAGToDAGISel::Select(SDOperand Op) {
       ResultHi = CurDAG->getTargetNode(PPC::ADDE, MVT::i32, LHSH,
                                        Select(N->getOperand(3)), CarryFromLo);
     Result.push_back(ResultHi);
+    Result.push_back(CarryFromLo.getValue(0));
     CurDAG->ReplaceAllUsesWith(N, Result);
     return Result[Op.ResNo];
   }