Change ARMInstPrinter::printPredicateOperand() so it will not abort if it
[oota-llvm.git] / lib / Target / ARM / InstPrinter / ARMInstPrinter.cpp
index a821192607af0814a0b8b60d918197566f85d7f0..b0b1dbbefa90df02f8a17ea5e98f149fc5987a4e 100644 (file)
@@ -692,7 +692,10 @@ void ARMInstPrinter::printMSRMaskOperand(const MCInst *MI, unsigned OpNum,
 void ARMInstPrinter::printPredicateOperand(const MCInst *MI, unsigned OpNum,
                                            raw_ostream &O) {
   ARMCC::CondCodes CC = (ARMCC::CondCodes)MI->getOperand(OpNum).getImm();
-  if (CC != ARMCC::AL)
+  // Handle the undefined 15 CC value here for printing so we don't abort().
+  if ((unsigned)CC == 15)
+    O << "<und>";
+  else if (CC != ARMCC::AL)
     O << ARMCondCodeToString(CC);
 }