From 16280308ac6f20d9da06eafcc19e4a6777f49750 Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Tue, 16 Aug 2011 23:45:44 +0000 Subject: Separate out Thumb1 instructions that need an S bit operand from those that do not, for the purposes of decoding them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137787 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/Disassembler/ARMDisassembler.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lib/Target/ARM/Disassembler/ARMDisassembler.cpp') diff --git a/lib/Target/ARM/Disassembler/ARMDisassembler.cpp b/lib/Target/ARM/Disassembler/ARMDisassembler.cpp index 28dd986..cb7a45a 100644 --- a/lib/Target/ARM/Disassembler/ARMDisassembler.cpp +++ b/lib/Target/ARM/Disassembler/ARMDisassembler.cpp @@ -417,6 +417,14 @@ bool ThumbDisassembler::getInstruction(MCInst &MI, uint64_t &Size, bool result = decodeThumbInstruction16(MI, insn16, Address, this); if (result) { Size = 2; + AddThumbPredicate(MI); + return true; + } + + MI.clear(); + result = decodeThumbSBitInstruction16(MI, insn16, Address, this); + if (result) { + Size = 2; bool InITBlock = !ITBlock.empty(); AddThumbPredicate(MI); AddThumb1SBit(MI, InITBlock); -- cgit v1.1