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]

Re: [rfc] [5/6] Remove macro CANNOT_FETCH / STORE_REGISTERS


Jim Blandy wrote:
Markus Deuling <deuling@de.ibm.com> writes:
ChangeLog:

	* gdbarch.sh (CANNOT_FETCH_REGISTER): Replace by
	gdbarch_cannot_fetch_register.
	* alpha-nat.c (fetch_osf_core_registers): Likewise.
	* hppa-linux-nat.c (fetch_register): Likewise.
	* inf-ptrace.c (inf_ptrace_fetch_register): Likewise.
	* m68klinux-nat.c (fetch_register): Likewise.
	* mipsnbsd-tdep.c (mipsnbsd_supply_reg,mipsnbsd_supply_fpreg): Likewise:
	* gdbarch.sh (CANNOT_STORE_REGISTER): Replace by
gdbarch_cannot_store_register.
	* hppa-linux-nat.c (store_register): Likewise.
	* inf-ptrace.c (inf_ptrace_store_register): Likewise.
	* regcache.c (regcache_raw_write): Likewise.
	* m68klinux-nat.c (store_register): Likewise.
	* mipsnbsd-tdep.c (mipsnbsd_fill_reg, mipsnbsd_fill_fpreg): Likewise.
	* gdbarch.c, gdbarch.h: Regenerate.


Is this ok to commit?

Yes, once the copyright assignment issues are sorted out, and the minor issue noted below is fixed.

diff -urN src/gdb/inf-ptrace.c dev/gdb/inf-ptrace.c
--- src/gdb/inf-ptrace.c 2007-05-11 14:04:57.000000000 +0200
+++ dev/gdb/inf-ptrace.c 2007-05-18 12:41:38.000000000 +0200
@@ -626,7 +626,8 @@
/* This isn't really an address, but ptrace thinks of it as one. */
addr = inf_ptrace_register_u_offset (current_gdbarch, regnum, 0);
- if (addr == (CORE_ADDR)-1 || CANNOT_FETCH_REGISTER (regnum))
+ if (addr == (CORE_ADDR)-1 + || gdbarch_cannot_fetch_register (current_gdbarch ,regnum))

The comma should come immediately after current_gdbarch.



Again thank you very much for your review. I attached a corrected version of the patch.


Ulrich, could you please commit? Thanks in advance.


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


diff -urN src/gdb/alpha-nat.c dev/gdb/alpha-nat.c
--- src/gdb/alpha-nat.c	2007-05-14 05:45:00.000000000 +0200
+++ dev/gdb/alpha-nat.c	2007-05-18 12:34:55.000000000 +0200
@@ -89,7 +89,7 @@
 
   for (regno = 0; regno < ALPHA_NUM_REGS; regno++)
     {
-      if (CANNOT_FETCH_REGISTER (regno))
+      if (gdbarch_cannot_fetch_register (current_gdbarch, regno))
 	{
 	  regcache_raw_supply (regcache, regno, NULL);
 	  continue;
diff -urN src/gdb/gdbarch.c dev/gdb/gdbarch.c
--- src/gdb/gdbarch.c	2007-05-15 05:41:29.000000000 +0200
+++ dev/gdb/gdbarch.c	2007-05-18 12:30:35.000000000 +0200
@@ -767,12 +767,6 @@
   fprintf_unfiltered (file,
                       "gdbarch_dump: call_dummy_location = %s\n",
                       paddr_d (current_gdbarch->call_dummy_location));
-#ifdef CANNOT_FETCH_REGISTER
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: %s # %s\n",
-                      "CANNOT_FETCH_REGISTER(regnum)",
-                      XSTRING (CANNOT_FETCH_REGISTER (regnum)));
-#endif
   fprintf_unfiltered (file,
                       "gdbarch_dump: cannot_fetch_register = <0x%lx>\n",
                       (long) current_gdbarch->cannot_fetch_register);
@@ -784,12 +778,6 @@
   fprintf_unfiltered (file,
                       "gdbarch_dump: cannot_step_breakpoint = %s\n",
                       paddr_d (current_gdbarch->cannot_step_breakpoint));
-#ifdef CANNOT_STORE_REGISTER
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: %s # %s\n",
-                      "CANNOT_STORE_REGISTER(regnum)",
-                      XSTRING (CANNOT_STORE_REGISTER (regnum)));
-#endif
   fprintf_unfiltered (file,
                       "gdbarch_dump: cannot_store_register = <0x%lx>\n",
                       (long) current_gdbarch->cannot_store_register);
diff -urN src/gdb/gdbarch.h dev/gdb/gdbarch.h
--- src/gdb/gdbarch.h	2007-05-15 05:41:29.000000000 +0200
+++ dev/gdb/gdbarch.h	2007-05-18 12:30:24.000000000 +0200
@@ -566,22 +566,10 @@
 typedef int (gdbarch_cannot_fetch_register_ftype) (int regnum);
 extern int gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, int regnum);
 extern void set_gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, gdbarch_cannot_fetch_register_ftype *cannot_fetch_register);
-#if !defined (GDB_TM_FILE) && defined (CANNOT_FETCH_REGISTER)
-#error "Non multi-arch definition of CANNOT_FETCH_REGISTER"
-#endif
-#if !defined (CANNOT_FETCH_REGISTER)
-#define CANNOT_FETCH_REGISTER(regnum) (gdbarch_cannot_fetch_register (current_gdbarch, regnum))
-#endif
 
 typedef int (gdbarch_cannot_store_register_ftype) (int regnum);
 extern int gdbarch_cannot_store_register (struct gdbarch *gdbarch, int regnum);
 extern void set_gdbarch_cannot_store_register (struct gdbarch *gdbarch, gdbarch_cannot_store_register_ftype *cannot_store_register);
-#if !defined (GDB_TM_FILE) && defined (CANNOT_STORE_REGISTER)
-#error "Non multi-arch definition of CANNOT_STORE_REGISTER"
-#endif
-#if !defined (CANNOT_STORE_REGISTER)
-#define CANNOT_STORE_REGISTER(regnum) (gdbarch_cannot_store_register (current_gdbarch, regnum))
-#endif
 
 /* setjmp/longjmp support. */
 
diff -urN src/gdb/gdbarch.sh dev/gdb/gdbarch.sh
--- src/gdb/gdbarch.sh	2007-05-15 05:41:29.000000000 +0200
+++ dev/gdb/gdbarch.sh	2007-05-18 12:30:11.000000000 +0200
@@ -480,8 +480,8 @@
 # also include/...-sim.h.
 f:=:int:register_sim_regno:int reg_nr:reg_nr::legacy_register_sim_regno::0
 F:=:int:register_bytes_ok:long nr_bytes:nr_bytes
-f:=:int:cannot_fetch_register:int regnum:regnum::cannot_register_not::0
-f:=:int:cannot_store_register:int regnum:regnum::cannot_register_not::0
+f::int:cannot_fetch_register:int regnum:regnum::cannot_register_not::0
+f::int:cannot_store_register:int regnum:regnum::cannot_register_not::0
 # setjmp/longjmp support.
 F:=:int:get_longjmp_target:CORE_ADDR *pc:pc
 #
diff -urN src/gdb/hppa-linux-nat.c dev/gdb/hppa-linux-nat.c
--- src/gdb/hppa-linux-nat.c	2007-05-07 13:21:04.000000000 +0200
+++ dev/gdb/hppa-linux-nat.c	2007-05-18 12:40:40.000000000 +0200
@@ -221,7 +221,7 @@
   int tid;
   int val;
 
-  if (CANNOT_FETCH_REGISTER (regno))
+  if (gdbarch_cannot_fetch_register (current_gdbarch, regno))
     {
       regcache_raw_supply (regcache, regno, NULL);
       return;
@@ -249,7 +249,7 @@
   int tid;
   int val;
 
-  if (CANNOT_STORE_REGISTER (regno))
+  if (gdbarch_cannot_store_register (current_gdbarch, regno))
     return;
 
   /* GNU/Linux LWP ID's are process ID's.  */
diff -urN src/gdb/inf-ptrace.c dev/gdb/inf-ptrace.c
--- src/gdb/inf-ptrace.c	2007-05-11 14:04:57.000000000 +0200
+++ dev/gdb/inf-ptrace.c	2007-05-18 12:41:38.000000000 +0200
@@ -626,7 +626,8 @@
 
   /* This isn't really an address, but ptrace thinks of it as one.  */
   addr = inf_ptrace_register_u_offset (current_gdbarch, regnum, 0);
-  if (addr == (CORE_ADDR)-1 || CANNOT_FETCH_REGISTER (regnum))
+  if (addr == (CORE_ADDR)-1
+      || gdbarch_cannot_fetch_register (current_gdbarch, regnum))
     {
       regcache_raw_supply (regcache, regnum, NULL);
       return;
@@ -681,7 +682,8 @@
 
   /* This isn't really an address, but ptrace thinks of it as one.  */
   addr = inf_ptrace_register_u_offset (current_gdbarch, regnum, 1);
-  if (addr == (CORE_ADDR)-1 || CANNOT_STORE_REGISTER (regnum))
+  if (addr == (CORE_ADDR)-1 
+      || gdbarch_cannot_store_register (current_gdbarch, regnum))
     return;
 
   /* Cater for systems like GNU/Linux, that implement threads as
diff -urN src/gdb/m68klinux-nat.c dev/gdb/m68klinux-nat.c
--- src/gdb/m68klinux-nat.c	2007-05-07 13:21:04.000000000 +0200
+++ dev/gdb/m68klinux-nat.c	2007-05-18 12:43:16.000000000 +0200
@@ -123,7 +123,7 @@
   char buf[MAX_REGISTER_SIZE];
   int tid;
 
-  if (CANNOT_FETCH_REGISTER (regno))
+  if (gdbarch_cannot_fetch_register (current_gdbarch, regno))
     {
       memset (buf, '\0', register_size (current_gdbarch, regno));	/* Supply zeroes */
       regcache_raw_supply (regcache, regno, buf);
@@ -185,10 +185,8 @@
   int tid;
   char buf[MAX_REGISTER_SIZE];
 
-  if (CANNOT_STORE_REGISTER (regno))
-    {
-      return;
-    }
+  if (gdbarch_cannot_store_register (current_gdbarch, regno))
+    return;
 
   /* Overload thread id onto process id */
   tid = TIDGET (inferior_ptid);
diff -urN src/gdb/mipsnbsd-tdep.c dev/gdb/mipsnbsd-tdep.c
--- src/gdb/mipsnbsd-tdep.c	2007-05-11 14:04:57.000000000 +0200
+++ dev/gdb/mipsnbsd-tdep.c	2007-05-18 12:44:58.000000000 +0200
@@ -150,7 +150,7 @@
     {
       if (regno == i || regno == -1)
 	{
-	  if (CANNOT_FETCH_REGISTER (i))
+	  if (gdbarch_cannot_fetch_register (current_gdbarch, i))
 	    regcache_raw_supply (regcache, i, NULL);
 	  else
             regcache_raw_supply (regcache, i,
@@ -165,7 +165,8 @@
   int i;
 
   for (i = 0; i <= PC_REGNUM; i++)
-    if ((regno == i || regno == -1) && ! CANNOT_STORE_REGISTER (i))
+    if ((regno == i || regno == -1)
+	&& ! gdbarch_cannot_store_register (current_gdbarch, i))
       regcache_raw_collect (regcache, i,
 			    regs + (i * mips_isa_regsize (current_gdbarch)));
 }
@@ -181,7 +182,7 @@
     {
       if (regno == i || regno == -1)
 	{
-	  if (CANNOT_FETCH_REGISTER (i))
+	  if (gdbarch_cannot_fetch_register (current_gdbarch, i))
 	    regcache_raw_supply (regcache, i, NULL);
 	  else
             regcache_raw_supply (regcache, i,
@@ -197,7 +198,8 @@
 
   for (i = FP0_REGNUM; i <= mips_regnum (current_gdbarch)->fp_control_status;
        i++)
-    if ((regno == i || regno == -1) && ! CANNOT_STORE_REGISTER (i))
+    if ((regno == i || regno == -1) 
+	&& ! gdbarch_cannot_store_register (current_gdbarch, i))
       regcache_raw_collect (regcache, i,
 			    fpregs + ((i - FP0_REGNUM) * mips_isa_regsize (current_gdbarch)));
 }
diff -urN src/gdb/regcache.c dev/gdb/regcache.c
--- src/gdb/regcache.c	2007-05-14 05:45:00.000000000 +0200
+++ dev/gdb/regcache.c	2007-05-18 12:42:23.000000000 +0200
@@ -616,7 +616,7 @@
 
   /* On the sparc, writing %g0 is a no-op, so we don't even want to
      change the registers array if something writes to this register.  */
-  if (CANNOT_STORE_REGISTER (regnum))
+  if (gdbarch_cannot_store_register (current_gdbarch, regnum))
     return;
 
   /* Make certain that the correct cache is selected.  */


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