Pass all the flags to the asm printer, not just the # operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26362 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp
index 9450576..dceaced 100644
--- a/lib/CodeGen/AsmPrinter.cpp
+++ b/lib/CodeGen/AsmPrinter.cpp
@@ -575,8 +575,10 @@
         unsigned OpNo = 1;
         
         // Scan to find the machine operand number for the operand.
-        for (; Val; --Val)
-          OpNo += MI->getOperand(OpNo).getImmedValue()+1;
+        for (; Val; --Val) {
+          unsigned OpFlags = MI->getOperand(OpNo).getImmedValue();
+          OpNo += (OpFlags >> 3) + 1;
+        }
         
         ++OpNo;  // Skip over the ID number.
         
diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
index b7c7ec3..9bc168f 100644
--- a/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
+++ b/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
@@ -328,7 +328,7 @@
         unsigned Flags = cast<ConstantSDNode>(Node->getOperand(i))->getValue();
         unsigned NumVals = Flags >> 3;
         
-        MI->addZeroExtImm64Operand(NumVals);
+        MI->addZeroExtImm64Operand(Flags);
         ++i;  // Skip the ID value.
         
         switch (Flags & 7) {