Fix PR10755 by checking for invalid predicate codes from UNPREDICTABLE t2IT instructi...
authorOwen Anderson <resistor@mac.com>
Fri, 26 Aug 2011 06:19:51 +0000 (06:19 +0000)
committerOwen Anderson <resistor@mac.com>
Fri, 26 Aug 2011 06:19:51 +0000 (06:19 +0000)
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.

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

lib/Target/ARM/Disassembler/ARMDisassembler.cpp

index 0d945fdf59195f12d9f7d45c06e439aeaf6d5de2..f1c5ce8bc52ed0c96b7d313dd1860e7348b47d6a 100644 (file)
@@ -376,6 +376,8 @@ void ThumbDisassembler::AddThumbPredicate(MCInst &MI) const {
   unsigned CC;
   if (!ITBlock.empty()) {
     CC = ITBlock.back();
+    if (CC == 0xF)
+      CC = ARMCC::AL;
     ITBlock.pop_back();
   } else
     CC = ARMCC::AL;