diff options
author | Nick Clifton <nickc@redhat.com> | 2001-02-11 23:11:41 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2001-02-11 23:11:41 +0000 |
commit | 9117d2197e67b24a86d8a48e489e4463a6151220 (patch) | |
tree | 984a5f1150362383bbbff3ef3ea8d8b261f9ad56 /opcodes | |
parent | ecd0338944f6ad0220384419202f9ef1bd7f4b1d (diff) | |
download | gdb-9117d2197e67b24a86d8a48e489e4463a6151220.zip gdb-9117d2197e67b24a86d8a48e489e4463a6151220.tar.gz gdb-9117d2197e67b24a86d8a48e489e4463a6151220.tar.bz2 |
Apply several patches from Maciej W. Rozycki
Diffstat (limited to 'opcodes')
-rw-r--r-- | opcodes/ChangeLog | 7 | ||||
-rw-r--r-- | opcodes/mips-dis.c | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 6c93aa7..dfca2e9 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,10 @@ +2001-02-11 Maciej W. Rozycki <macro@ds2.pg.gda.pl> + + * mips-dis.c (print_insn_arg): Use top four bits of the address of + the following instruction not of the jump itself for the jump + target. + (print_mips16_insn_arg): Likewise. + 2001-02-11 Michael Sokolov <msokolov@ivan.Harhan.ORG> * Makefile.am (stamp-lib): ranlib the libopcodes.a in the build diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c index a75dc89..849f9f2 100644 --- a/opcodes/mips-dis.c +++ b/opcodes/mips-dis.c @@ -137,7 +137,7 @@ print_insn_arg (d, l, pc, info) case 'a': (*info->print_address_func) - (((pc & ~ (bfd_vma) 0x0fffffff) + ((((pc + 4) & ~ (bfd_vma) 0x0fffffff) | (((l >> OP_SH_TARGET) & OP_MASK_TARGET) << 2)), info); break; @@ -1038,9 +1038,9 @@ print_mips16_insn_arg (type, op, l, use_extend, extend, memaddr, info) if (! use_extend) extend = 0; l = ((l & 0x1f) << 23) | ((l & 0x3e0) << 13) | (extend << 2); - (*info->print_address_func) ((memaddr & 0xf0000000) | l, info); + (*info->print_address_func) (((memaddr + 4) & 0xf0000000) | l, info); info->insn_type = dis_jsr; - info->target = (memaddr & 0xf0000000) | l; + info->target = ((memaddr + 4) & 0xf0000000) | l; info->branch_delay_insns = 1; break; |