summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2011-08-24 21:35:46 +0000
committerOwen Anderson <resistor@mac.com>2011-08-24 21:35:46 +0000
commit216cfaa808dd3b24dce2d0d1d8ea2ab697f71bba (patch)
tree470ed5791e7453d26417c7d275927914beb0de5a /llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
parent1257f97003a394abace18d1028bae747f8efe06a (diff)
downloadbcm5719-llvm-216cfaa808dd3b24dce2d0d1d8ea2ab697f71bba.tar.gz
bcm5719-llvm-216cfaa808dd3b24dce2d0d1d8ea2ab697f71bba.zip
Be careful not to walk off the end of the operand info list while updating VFP predicates.
llvm-svn: 138492
Diffstat (limited to 'llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp')
-rw-r--r--llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
index 1ce330a4e36..e22126956e7 100644
--- a/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
+++ b/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
@@ -417,7 +417,8 @@ void ThumbDisassembler::UpdateThumbVFPPredicate(MCInst &MI) const {
const MCOperandInfo *OpInfo = ARMInsts[MI.getOpcode()].OpInfo;
MCInst::iterator I = MI.begin();
- for (unsigned i = 0, e = MI.size(); i < e; ++i, ++I) {
+ unsigned short NumOps = ARMInsts[MI.getOpcode()].NumOperands;
+ for (unsigned i = 0; i < NumOps; ++i, ++I) {
if (OpInfo[i].isPredicate() ) {
I->setImm(CC);
++I;
OpenPOWER on IntegriCloud