Changes in directory llvm/lib/CodeGen/SelectionDAG:
LegalizeDAG.cpp updated: 1.339 -> 1.340 --- Log message: Fix legalization of intrinsics with chain and result values --- Diffs of the changes: (+13 -2) LegalizeDAG.cpp | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-) Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.339 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.340 --- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.339 Sun Mar 26 03:12:51 2006 +++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Mon Mar 27 14:28:29 2006 @@ -564,8 +564,19 @@ TargetLowering::Custom) { Tmp3 = TLI.LowerOperation(Result, DAG); if (Tmp3.Val) Result = Tmp3; - } - break; + } + + if (Result.Val->getNumValues() == 1) break; + + // Must have return value and chain result. + assert(Result.Val->getNumValues() == 2 && + "Cannot return more than two values!"); + + // Since loads produce two values, make sure to remember that we + // legalized both of them. + AddLegalizedOperand(SDOperand(Node, 0), Result.getValue(0)); + AddLegalizedOperand(SDOperand(Node, 1), Result.getValue(1)); + return Result.getValue(Op.ResNo); } case ISD::LOCATION: _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits