aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-02-14 05:21:04 +0000
committerMike Frysinger <vapier@gentoo.org>2011-02-14 05:21:04 +0000
commit298c1ec2a052b71bd60c244f2c3f8c6367214af1 (patch)
tree43de582ed87d2cca85289f455a0d7c059b6d558a /opcodes
parentd79fe0d64301cbe37e2ad0e25a051f8607f08807 (diff)
downloadfsf-binutils-gdb-298c1ec2a052b71bd60c244f2c3f8c6367214af1.zip
fsf-binutils-gdb-298c1ec2a052b71bd60c244f2c3f8c6367214af1.tar.gz
fsf-binutils-gdb-298c1ec2a052b71bd60c244f2c3f8c6367214af1.tar.bz2
opcodes: blackfin: catch invalid loopsetup insns
The LoopSetup insn is only valid when the reg field is 0-7, so don't go decoding it incorrectly when reg is 8-15. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog5
-rw-r--r--opcodes/bfin-dis.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 5dd4bb1..3c9fe72 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,8 @@
+2011-02-14 Mike Frysinger <vapier@gentoo.org>
+
+ * bfin-dis.c (decode_LoopSetup_0): Return when reg is greater
+ than 7.
+
2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* configure: Regenerate.
diff --git a/opcodes/bfin-dis.c b/opcodes/bfin-dis.c
index 3932762..312138a 100644
--- a/opcodes/bfin-dis.c
+++ b/opcodes/bfin-dis.c
@@ -2623,6 +2623,9 @@ decode_LoopSetup_0 (TIword iw0, TIword iw1, bfd_vma pc, disassemble_info *outf)
if (parallel)
return 0;
+ if (reg > 7)
+ return 0;
+
if (rop == 0)
{
OUTS (outf, "LSETUP");