2004-10-30 Andrew Cagney <cagney@gnu.org>

* mips-tdep.c (gdb_print_insn_mips): Simplify.
	(make_mips16_addr): Delete.
This commit is contained in:
Andrew Cagney 2004-10-30 19:58:11 +00:00
parent 6b16acab09
commit ec4045ea2e
2 changed files with 7 additions and 29 deletions

View File

@ -1,3 +1,8 @@
2004-10-30 Andrew Cagney <cagney@gnu.org>
* mips-tdep.c (gdb_print_insn_mips): Simplify.
(make_mips16_addr): Delete.
2004-10-30 Mark Kettenis <kettenis@gnu.org> 2004-10-30 Mark Kettenis <kettenis@gnu.org>
* i386-sol2-nat.c: New file. * i386-sol2-nat.c: New file.

View File

@ -205,12 +205,6 @@ is_mips16_addr (CORE_ADDR addr)
return ((addr) & 1); return ((addr) & 1);
} }
static CORE_ADDR
make_mips16_addr (CORE_ADDR addr)
{
return ((addr) | 1);
}
static CORE_ADDR static CORE_ADDR
unmake_mips16_addr (CORE_ADDR addr) unmake_mips16_addr (CORE_ADDR addr)
{ {
@ -4842,34 +4836,13 @@ static int
gdb_print_insn_mips (bfd_vma memaddr, struct disassemble_info *info) gdb_print_insn_mips (bfd_vma memaddr, struct disassemble_info *info)
{ {
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
mips_extra_func_info_t proc_desc;
/* Search for the function containing this address. Set the low bit
of the address when searching, in case we were given an even address
that is the start of a 16-bit function. If we didn't do this,
the search would fail because the symbol table says the function
starts at an odd address, i.e. 1 byte past the given address. */
memaddr = ADDR_BITS_REMOVE (memaddr);
proc_desc = non_heuristic_proc_desc (make_mips16_addr (memaddr), NULL);
/* Make an attempt to determine if this is a 16-bit function. If
the procedure descriptor exists and the address therein is odd,
it's definitely a 16-bit function. Otherwise, we have to just
guess that if the address passed in is odd, it's 16-bits. */
/* FIXME: cagney/2003-06-26: Is this even necessary? The /* FIXME: cagney/2003-06-26: Is this even necessary? The
disassembler needs to be able to locally determine the ISA, and disassembler needs to be able to locally determine the ISA, and
not rely on GDB. Otherwize the stand-alone 'objdump -d' will not not rely on GDB. Otherwize the stand-alone 'objdump -d' will not
work. */ work. */
if (proc_desc) if (mips_pc_is_mips16 (memaddr))
{ info->mach = bfd_mach_mips16;
if (mips_pc_is_mips16 (PROC_LOW_ADDR (proc_desc)))
info->mach = bfd_mach_mips16;
}
else
{
if (mips_pc_is_mips16 (memaddr))
info->mach = bfd_mach_mips16;
}
/* Round down the instruction address to the appropriate boundary. */ /* Round down the instruction address to the appropriate boundary. */
memaddr &= (info->mach == bfd_mach_mips16 ? ~1 : ~3); memaddr &= (info->mach == bfd_mach_mips16 ? ~1 : ~3);