This is the mail archive of the gdb-patches@sourceware.org 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]

[rfc] [01/15] Add gdbarch to register_name callback (prep)


Hi,

this patch adds gdbarch parameter for register_name call in gdbarch.{sh,c,h}

Is this ok to commit?

ChangeLog:


* gdbarch.sh (register_name): Add gdbarch parameter. * gdbarch.{c,h}: Regenerate





--
Markus Deuling
GNU Toolchain for Linux on Cell BE
deuling@de.ibm.com





diff -urpN src/gdb/gdbarch.c dev/gdb/gdbarch.c
--- src/gdb/gdbarch.c	2007-10-19 14:26:33.000000000 +0200
+++ dev/gdb/gdbarch.c	2007-10-30 11:05:56.000000000 +0100
@@ -527,6 +527,7 @@ verify_gdbarch (struct gdbarch *current_
   /* Skip verify of dwarf_reg_to_regnum, invalid_p == 0 */
   /* Skip verify of sdb_reg_to_regnum, invalid_p == 0 */
   /* Skip verify of dwarf2_reg_to_regnum, invalid_p == 0 */
+  /* Skip verify of register_name, has predicate */
   /* Skip verify of register_type, has predicate */
   /* Skip verify of unwind_dummy_id, has predicate */
   /* Skip verify of deprecated_fp_regnum, invalid_p == 0 */
@@ -912,6 +913,9 @@ gdbarch_dump (struct gdbarch *current_gd
                       "gdbarch_dump: read_pc = <0x%lx>\n",
                       (long) current_gdbarch->read_pc);
   fprintf_unfiltered (file,
+                      "gdbarch_dump: gdbarch_register_name_p() = %d\n",
+                      gdbarch_register_name_p (current_gdbarch));
+  fprintf_unfiltered (file,
                       "gdbarch_dump: register_name = <0x%lx>\n",
                       (long) current_gdbarch->register_name);
   fprintf_unfiltered (file,
@@ -1610,6 +1614,13 @@ set_gdbarch_dwarf2_reg_to_regnum (struct
   gdbarch->dwarf2_reg_to_regnum = dwarf2_reg_to_regnum;
 }
 
+int
+gdbarch_register_name_p (struct gdbarch *gdbarch)
+{
+  gdb_assert (gdbarch != NULL);
+  return gdbarch->register_name != NULL;
+}
+
 const char *
 gdbarch_register_name (struct gdbarch *gdbarch, int regnr)
 {
@@ -1617,7 +1628,7 @@ gdbarch_register_name (struct gdbarch *g
   gdb_assert (gdbarch->register_name != NULL);
   if (gdbarch_debug >= 2)
     fprintf_unfiltered (gdb_stdlog, "gdbarch_register_name called\n");
-  return gdbarch->register_name (regnr);
+  return gdbarch->register_name (gdbarch, regnr);
 }
 
 void
diff -urpN src/gdb/gdbarch.h dev/gdb/gdbarch.h
--- src/gdb/gdbarch.h	2007-10-19 14:26:33.000000000 +0200
+++ dev/gdb/gdbarch.h	2007-10-30 11:05:47.000000000 +0100
@@ -232,7 +232,9 @@ typedef int (gdbarch_dwarf2_reg_to_regnu
 extern int gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, int dwarf2_regnr);
 extern void set_gdbarch_dwarf2_reg_to_regnum (struct gdbarch *gdbarch, gdbarch_dwarf2_reg_to_regnum_ftype *dwarf2_reg_to_regnum);
 
-typedef const char * (gdbarch_register_name_ftype) (int regnr);
+extern int gdbarch_register_name_p (struct gdbarch *gdbarch);
+
+typedef const char * (gdbarch_register_name_ftype) (struct gdbarch *gdbarch, int regnr);
 extern const char * gdbarch_register_name (struct gdbarch *gdbarch, int regnr);
 extern void set_gdbarch_register_name (struct gdbarch *gdbarch, gdbarch_register_name_ftype *register_name);
 
diff -urpN src/gdb/gdbarch.sh dev/gdb/gdbarch.sh
--- src/gdb/gdbarch.sh	2007-10-19 14:34:38.000000000 +0200
+++ dev/gdb/gdbarch.sh	2007-10-30 11:05:09.000000000 +0100
@@ -421,7 +421,7 @@ f:int:dwarf_reg_to_regnum:int dwarf_regn
 # Convert from an sdb register number to an internal gdb register number.
 f:int:sdb_reg_to_regnum:int sdb_regnr:sdb_regnr::no_op_reg_to_regnum::0
 f:int:dwarf2_reg_to_regnum:int dwarf2_regnr:dwarf2_regnr::no_op_reg_to_regnum::0
-f:const char *:register_name:int regnr:regnr
+M:const char *:register_name:int regnr:regnr
 
 # Return the type of a register specified by the architecture.  Only
 # the register cache should call this function directly; others should




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