This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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);

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]