[llvm-commits] [llvm] r138625 - /llvm/trunk/lib/Target/ARM/Disassembler/ARMDisassembler.cpp

Owen Anderson resistor at mac.com
Thu Aug 25 23:19:51 PDT 2011


Author: resistor
Date: Fri Aug 26 01:19:51 2011
New Revision: 138625

URL: http://llvm.org/viewvc/llvm-project?rev=138625&view=rev
Log:
Fix PR10755 by checking for invalid predicate codes from UNPREDICTABLE t2IT instructions when decoding their successors.
This is the last disassembly crash detected by exhaustive Thumb2 instruction space.  Major thanks to Chandler Carruth for making this kind of exhaustive testing possible.

Modified:
    llvm/trunk/lib/Target/ARM/Disassembler/ARMDisassembler.cpp

Modified: llvm/trunk/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/Disassembler/ARMDisassembler.cpp?rev=138625&r1=138624&r2=138625&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/Disassembler/ARMDisassembler.cpp (original)
+++ llvm/trunk/lib/Target/ARM/Disassembler/ARMDisassembler.cpp Fri Aug 26 01:19:51 2011
@@ -376,6 +376,8 @@
   unsigned CC;
   if (!ITBlock.empty()) {
     CC = ITBlock.back();
+    if (CC == 0xF)
+      CC = ARMCC::AL;
     ITBlock.pop_back();
   } else
     CC = ARMCC::AL;





More information about the llvm-commits mailing list