Better error-handling for DisassembleThumb2DPModImm() with 2-reg operands where
[oota-llvm.git] / lib / Target / ARM / Disassembler / ThumbDisassemblerCore.h
index 001d0c6dff5a368fd414930afb9961b4eaae7137..a3d7ffe52e4ba05fe8af1f2021ed762d7b27d08c 100644 (file)
@@ -1413,7 +1413,10 @@ static bool DisassembleThumb2DPModImm(MCInst &MI, unsigned Opcode,
   ++OpIdx;
 
   if (TwoReg) {
-    assert(!NoDstReg && "Internal error");
+    if (NoDstReg) {
+      DEBUG(errs() << "Thumb encoding error: d==15 for DPModImm 2-reg instr.\n");
+      return false;
+    }
     MI.addOperand(MCOperand::CreateReg(getRegisterEnum(B, ARM::GPRRegClassID,
                                                        decodeRn(insn))));
     ++OpIdx;