For t2BFI disassembly, apply the same error checking as in r101205.
authorJohnny Chen <johnny.chen@apple.com>
Wed, 14 Apr 2010 22:04:45 +0000 (22:04 +0000)
committerJohnny Chen <johnny.chen@apple.com>
Wed, 14 Apr 2010 22:04:45 +0000 (22:04 +0000)
Change the error msg to read "Encoding error: msb < lsb".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101293 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h

index a8dbd9c1725a4ffa7ea5208a345afe83b6c11b91..eb9c2cd7a2bd6cf0470a0dd986e896ccc8a85ce7 100644 (file)
@@ -892,8 +892,8 @@ static inline bool getBFCInvMask(uint32_t insn, uint32_t &mask) {
   uint32_t lsb = slice(insn, 11, 7);
   uint32_t msb = slice(insn, 20, 16);
   uint32_t Val = 0;
-  if (lsb > msb) {
-    errs() << "Encoding error: lsb > msb\n";
+  if (msb < lsb) {
+    errs() << "Encoding error: msb < lsb\n";
     return false;
   }
 
index aac2d2b0fe477d3dbfcbaa0ab6998515b0b8d822..4bc407095aa4ecfd42ab2839cd194264b5a4e4fb 100644 (file)
@@ -1552,7 +1552,10 @@ static bool DisassembleThumb2DPBinImm(MCInst &MI, unsigned Opcode,
             Opcode == ARM::t2BFI) && "Invalid opcode");
     MI.addOperand(MCOperand::CreateImm(getLsb(insn)));
     if (Opcode == ARM::t2BFI) {
-      assert(getMsb(insn) >= getLsb(insn) && "Encoding error");
+      if (getMsb(insn) < getLsb(insn)) {
+        errs() << "Encoding error: msb < lsb\n";
+        return false;
+      }
       MI.addOperand(MCOperand::CreateImm(getMsb(insn) - getLsb(insn) + 1));
     } else
       MI.addOperand(MCOperand::CreateImm(getWidthMinus1(insn) + 1));