aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/AsmPrinter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/AsmPrinter.cpp')
-rw-r--r--lib/CodeGen/AsmPrinter.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp
index 9450576a9a..dceaced12f 100644
--- a/lib/CodeGen/AsmPrinter.cpp
+++ b/lib/CodeGen/AsmPrinter.cpp
@@ -575,8 +575,10 @@ void AsmPrinter::printInlineAsm(const MachineInstr *MI) const {
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.