This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [rfc] [5/6] Remove macro CANNOT_FETCH / STORE_REGISTERS
- From: Markus Deuling <deuling at de dot ibm dot com>
- To: Jim Blandy <jimb at codesourcery dot com>
- Cc: GDB Patches <gdb-patches at sourceware dot org>, Ulrich Weigand <uweigand at de dot ibm dot com>
- Date: Thu, 31 May 2007 13:08:09 +0200
- Subject: Re: [rfc] [5/6] Remove macro CANNOT_FETCH / STORE_REGISTERS
- References: <465BD44E.3060103@de.ibm.com> <m3hcpu57kq.fsf@codesourcery.com>
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. */