This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[commit/mips] Simplify print_insn
- From: Andrew Cagney <cagney at gnu dot org>
- To: gdb-patches at sources dot redhat dot com
- Date: Sat, 30 Oct 2004 15:00:58 -0400
- Subject: [commit/mips] Simplify print_insn
This simplifies the MIPS print-insn code, removing the mips16 proc-desc
hack. Instead the minsymtab is always used. Note that, per my comment
in the file, this should all be handled by opcodes/ and not gdb.
committed,
Andrew
2004-10-30 Andrew Cagney <cagney@gnu.org>
* mips-tdep.c (gdb_print_insn_mips): Simplify.
(make_mips16_addr): Delete.
Index: mips-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mips-tdep.c,v
retrieving revision 1.345
diff -p -u -r1.345 mips-tdep.c
--- mips-tdep.c 30 Oct 2004 19:06:50 -0000 1.345
+++ mips-tdep.c 30 Oct 2004 19:56:14 -0000
@@ -206,12 +206,6 @@ is_mips16_addr (CORE_ADDR addr)
}
static CORE_ADDR
-make_mips16_addr (CORE_ADDR addr)
-{
- return ((addr) | 1);
-}
-
-static CORE_ADDR
unmake_mips16_addr (CORE_ADDR addr)
{
return ((addr) & ~1);
@@ -4842,34 +4836,13 @@ static int
gdb_print_insn_mips (bfd_vma memaddr, struct disassemble_info *info)
{
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
disassembler needs to be able to locally determine the ISA, and
not rely on GDB. Otherwize the stand-alone 'objdump -d' will not
work. */
- if (proc_desc)
- {
- 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;
- }
+ if (mips_pc_is_mips16 (memaddr))
+ info->mach = bfd_mach_mips16;
/* Round down the instruction address to the appropriate boundary. */
memaddr &= (info->mach == bfd_mach_mips16 ? ~1 : ~3);