aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2011-09-08 22:48:37 +0000
committerOwen Anderson <resistor@mac.com>2011-09-08 22:48:37 +0000
commit441462f9328cc7fb86af74c9568a7f70b7bd1fbc (patch)
tree24c3b8071f0427ad312bea365e2cee9aabee44b2 /lib/Target/ARM/Disassembler/ARMDisassembler.cpp
parentd2fc31b3f75700dc89305cb161f3bca7f1a39bef (diff)
All conditional branches are disallowed in IT blocks, not just CBZ/CBNZ.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139329 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/Disassembler/ARMDisassembler.cpp')
-rw-r--r--lib/Target/ARM/Disassembler/ARMDisassembler.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Target/ARM/Disassembler/ARMDisassembler.cpp b/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
index d361a6006f..2791350b73 100644
--- a/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
+++ b/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
@@ -429,12 +429,13 @@ ThumbDisassembler::AddThumbPredicate(MCInst &MI) const {
switch (MI.getOpcode()) {
case ARM::tBcc:
case ARM::t2Bcc:
- return Success;
case ARM::tCBZ:
case ARM::tCBNZ:
- // Some instructions are not allowed in IT blocks.
+ // Some instructions (mostly conditional branches) are not
+ // allowed in IT blocks.
if (!ITBlock.empty())
return SoftFail;
+ return Success;
break;
default:
break;