Author: lattner Date: Fri Aug 24 19:53:07 2007 New Revision: 41386 URL: http://llvm.org/viewvc/llvm-project?rev=41386&view=rev Log: Teach the dag scheduler to handle inline asm nodes with multi-value immediate operands.
Modified: llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp?rev=41386&r1=41385&r2=41386&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp Fri Aug 24 19:53:07 2007 @@ -753,15 +753,16 @@ } break; case 3: { // Immediate. - assert(NumVals == 1 && "Unknown immediate value!"); - if (ConstantSDNode *CS=dyn_cast<ConstantSDNode>(Node->getOperand(i))){ - MI->addImmOperand(CS->getValue()); - } else { - GlobalAddressSDNode *GA = - cast<GlobalAddressSDNode>(Node->getOperand(i)); - MI->addGlobalAddressOperand(GA->getGlobal(), GA->getOffset()); + for (; NumVals; --NumVals, ++i) { + if (ConstantSDNode *CS = + dyn_cast<ConstantSDNode>(Node->getOperand(i))) { + MI->addImmOperand(CS->getValue()); + } else { + GlobalAddressSDNode *GA = + cast<GlobalAddressSDNode>(Node->getOperand(i)); + MI->addGlobalAddressOperand(GA->getGlobal(), GA->getOffset()); + } } - ++i; break; } case 4: // Addressing mode. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits