From: Johnny Chen Date: Wed, 14 Apr 2010 22:04:45 +0000 (+0000) Subject: For t2BFI disassembly, apply the same error checking as in r101205. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2fd100a4cb6c7c013f9bf78fc06b655515b0851c;p=oota-llvm.git For t2BFI disassembly, apply the same error checking as in r101205. 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 --- diff --git a/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp b/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp index a8dbd9c1725..eb9c2cd7a2b 100644 --- a/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp +++ b/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp @@ -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; } diff --git a/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h b/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h index aac2d2b0fe4..4bc407095aa 100644 --- a/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h +++ b/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h @@ -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));