summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2010-07-06 00:06:04 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2010-07-06 00:06:04 +0000
commitc680e7f672a30b81ccffb8e2d1bcd01bca659c55 (patch)
treead1e93da2757bb095578edcbd23dd9130ced36db
parent9a2c7088871654be1a94ea4d721fb9c76b4a3162 (diff)
downloadbinutils-gdb-c680e7f672a30b81ccffb8e2d1bcd01bca659c55.tar.gz
* mips-dis.c (print_insn_mips): Correct branch instruction type
determination.
-rw-r--r--opcodes/ChangeLog5
-rw-r--r--opcodes/mips-dis.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 2832bebe9ad..db9f65e8e7a 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,10 @@
2010-07-06 Maciej W. Rozycki <macro@codesourcery.com>
+ * mips-dis.c (print_insn_mips): Correct branch instruction type
+ determination.
+
+2010-07-06 Maciej W. Rozycki <macro@codesourcery.com>
+
* mips-dis.c (print_mips16_insn_arg): Remove branch instruction
type and delay slot determination.
(print_insn_mips16): Extend branch instruction type and delay
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
index 01e446c56aa..c0cfed671ed 100644
--- a/opcodes/mips-dis.c
+++ b/opcodes/mips-dis.c
@@ -1404,7 +1404,8 @@ print_insn_mips (bfd_vma memaddr,
/* Figure out instruction type and branch delay information. */
if ((op->pinfo & INSN_UNCOND_BRANCH_DELAY) != 0)
{
- if ((info->insn_type & INSN_WRITE_GPR_31) != 0)
+ if ((op->pinfo & (INSN_WRITE_GPR_31
+ | INSN_WRITE_GPR_D)) != 0)
info->insn_type = dis_jsr;
else
info->insn_type = dis_branch;
@@ -1413,7 +1414,7 @@ print_insn_mips (bfd_vma memaddr,
else if ((op->pinfo & (INSN_COND_BRANCH_DELAY
| INSN_COND_BRANCH_LIKELY)) != 0)
{
- if ((info->insn_type & INSN_WRITE_GPR_31) != 0)
+ if ((op->pinfo & INSN_WRITE_GPR_31) != 0)
info->insn_type = dis_condjsr;
else
info->insn_type = dis_condbranch;