[llvm-commits] [llvm] r101852 - /llvm/trunk/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h

Johnny Chen johnny.chen at apple.com
Mon Apr 19 18:01:57 PDT 2010


Author: johnny
Date: Mon Apr 19 20:01:57 2010
New Revision: 101852

URL: http://llvm.org/viewvc/llvm-project?rev=101852&view=rev
Log:
Better error-handling for DisassembleThumb2DPModImm() with 2-reg operands where
d==15 is considered illegal.  Return false instead of assert().

Modified:
    llvm/trunk/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h

Modified: llvm/trunk/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h?rev=101852&r1=101851&r2=101852&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h (original)
+++ llvm/trunk/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h Mon Apr 19 20:01:57 2010
@@ -1413,7 +1413,10 @@
   ++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;





More information about the llvm-commits mailing list