summaryrefslogtreecommitdiffstats
path: root/llvm/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
commit33d39536e6a5a61eb651beab997819566e031273 (patch)
treeca3d4241b91cb73a8400ccfda7d5ad5d189b85fa /llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
parent2fefa427d5af32ecb3188a77833a1ac70afc3a56 (diff)
downloadbcm5719-llvm-33d39536e6a5a61eb651beab997819566e031273.tar.gz
bcm5719-llvm-33d39536e6a5a61eb651beab997819566e031273.zip
All conditional branches are disallowed in IT blocks, not just CBZ/CBNZ.
llvm-svn: 139329
Diffstat (limited to 'llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp')
-rw-r--r--llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
index d361a6006f3..2791350b733 100644
--- a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
+++ b/llvm/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;
OpenPOWER on IntegriCloud