* mips-dis.c (print_insn_mips): Correct branch instruction type
authorMaciej W. Rozycki <macro@linux-mips.org>
Tue, 6 Jul 2010 00:06:04 +0000 (00:06 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Tue, 6 Jul 2010 00:06:04 +0000 (00:06 +0000)
determination.

opcodes/ChangeLog
opcodes/mips-dis.c

index 2832beb..db9f65e 100644 (file)
@@ -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
index 01e446c..c0cfed6 100644 (file)
@@ -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;