aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--opcodes/ChangeLog4
-rw-r--r--opcodes/cr16-dis.c7
2 files changed, 10 insertions, 1 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index a20e120..6720456 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2008-05-21 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
+
+ * cr16-dis.c (build_mask): Adjust the mask for 32-bit bcond.
+
2008-05-14 Alan Modra <amodra@bigpond.net.au>
* Makefile.am: Run "make dep-am".
diff --git a/opcodes/cr16-dis.c b/opcodes/cr16-dis.c
index ad0c586..de3eb75 100644
--- a/opcodes/cr16-dis.c
+++ b/opcodes/cr16-dis.c
@@ -1,5 +1,5 @@
/* Disassembler code for CR16.
- Copyright 2007 Free Software Foundation, Inc.
+ Copyright 2007, 2008 Free Software Foundation, Inc.
Contributed by M R Swami Reddy (MR.Swami.Reddy@nsc.com).
This file is part of GAS, GDB and the GNU binutils.
@@ -307,6 +307,11 @@ static unsigned long
build_mask (void)
{
unsigned long mask = SBM (instruction->match_bits);
+
+ /* Adjust mask for bcond with 32-bit size instruction. */
+ if ((IS_INSN_MNEMONIC("b") && instruction->size == 2))
+ mask = 0xff0f0000;
+
return mask;
}