* mips-dis.c (print_insn_args): Force mips16 to odd addresses.
(print_mips16_insn_arg): Force mips16 to odd addresses.
This commit is contained in:
parent
b48c61bccb
commit
022fac6d2a
|
@ -1,3 +1,10 @@
|
||||||
|
2006-05-02 Thiemo Seufer <ths@mips.com>
|
||||||
|
Nigel Stephens <nigel@mips.com>
|
||||||
|
David Ung <davidu@mips.com>
|
||||||
|
|
||||||
|
* mips-dis.c (print_insn_args): Force mips16 to odd addresses.
|
||||||
|
(print_mips16_insn_arg): Force mips16 to odd addresses.
|
||||||
|
|
||||||
2006-04-30 Thiemo Seufer <ths@mips.com>
|
2006-04-30 Thiemo Seufer <ths@mips.com>
|
||||||
David Ung <davidu@mips.com>
|
David Ung <davidu@mips.com>
|
||||||
|
|
||||||
|
|
|
@ -984,6 +984,10 @@ print_insn_args (const char *d,
|
||||||
case 'a':
|
case 'a':
|
||||||
info->target = (((pc + 4) & ~(bfd_vma) 0x0fffffff)
|
info->target = (((pc + 4) & ~(bfd_vma) 0x0fffffff)
|
||||||
| (((l >> OP_SH_TARGET) & OP_MASK_TARGET) << 2));
|
| (((l >> OP_SH_TARGET) & OP_MASK_TARGET) << 2));
|
||||||
|
/* For gdb disassembler, force odd address on jalx. */
|
||||||
|
if (info->flavour == bfd_target_unknown_flavour
|
||||||
|
&& strcmp (opp->name, "jalx") == 0)
|
||||||
|
info->target |= 1;
|
||||||
(*info->print_address_func) (info->target, info);
|
(*info->print_address_func) (info->target, info);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1632,15 +1636,26 @@ print_mips16_insn_arg (char type,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
info->target = (baseaddr & ~((1 << shift) - 1)) + immed;
|
info->target = (baseaddr & ~((1 << shift) - 1)) + immed;
|
||||||
|
if (pcrel && branch
|
||||||
|
&& info->flavour == bfd_target_unknown_flavour)
|
||||||
|
/* For gdb disassembler, maintain odd address. */
|
||||||
|
info->target |= 1;
|
||||||
(*info->print_address_func) (info->target, info);
|
(*info->print_address_func) (info->target, info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'a':
|
case 'a':
|
||||||
if (! use_extend)
|
{
|
||||||
extend = 0;
|
int jalx = l & 0x400;
|
||||||
l = ((l & 0x1f) << 23) | ((l & 0x3e0) << 13) | (extend << 2);
|
|
||||||
|
if (! use_extend)
|
||||||
|
extend = 0;
|
||||||
|
l = ((l & 0x1f) << 23) | ((l & 0x3e0) << 13) | (extend << 2);
|
||||||
|
if (!jalx && info->flavour == bfd_target_unknown_flavour)
|
||||||
|
/* For gdb disassembler, maintain odd address. */
|
||||||
|
l |= 1;
|
||||||
|
}
|
||||||
info->target = ((memaddr + 4) & ~(bfd_vma) 0x0fffffff) | l;
|
info->target = ((memaddr + 4) & ~(bfd_vma) 0x0fffffff) | l;
|
||||||
(*info->print_address_func) (info->target, info);
|
(*info->print_address_func) (info->target, info);
|
||||||
info->insn_type = dis_jsr;
|
info->insn_type = dis_jsr;
|
||||||
|
|
Loading…
Reference in New Issue