Re: Remove register_bytes_ok arch method

Vladimir Prus
2007-05-28T11:41:27Z

[-- Attachment #1: Type: text/plain, Size: 786 bytes --]

Daniel Jacobowitz wrote:

> On Sat, May 05, 2007 at 12:26:31PM +0400, Vladimir Prus wrote:
>>
>> At the moment, the register_bytes_ok arch method is defined
>> only by m68k-tdep.c. There's no good reason to have this method now,
>> as remote.c, if it does not see some register in 'g' reply will send
>> extra 'p' reply just fine. Further, it's hard to decide what's
>> right size of 'g' reply -- target may have floating point registers, or
>> might not have, and so on.
>>
>> This patch removes register_bytes_ok arch method. OK?
>
> I agree. The patch is OK, but you didn't remove it right. gdbarch.h
> and gdbarch.c are generated by running gdbarch.sh; just remove it from
> there, run the script, and move the new files into place.

Here's the updated patch. OK?

- Volodya

[-- Attachment #2: 1.ChangeLog --]
[-- Type: text/plain, Size: 286 bytes --]

* remote.c (process_g_packet): Don't check size.
* gdbarch.sh: Remove register_bytes_ok.
* gdbarch.c: Regenerated.
* gdbarch.h: Regenerated.
* m68k-tdep.c (REGISTER_BYTES_NOFP): Remove.
(m68k_register_bytes_ok): Remove.
(m68k_gdbarch_init): Don't register m68k_register_bytes_ok.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 1.diff --]
[-- Type: text/x-diff; name="1.diff", Size: 7435 bytes --]

--- gdb/remote.c (/mirrors/gdb_mainline) (revision 4267)
+++ gdb/remote.c (/patches/gdb/coldfire_1) (revision 4267)
@@ -3592,8 +3592,6 @@ process_g_packet (struct regcache *regca
buf_len = strlen (rs->buf);

/* Further sanity checks, with knowledge of the architecture. */
- if (REGISTER_BYTES_OK_P () && !REGISTER_BYTES_OK (buf_len / 2))
- error (_("Remote 'g' packet reply is wrong length: %s"), rs->buf);
if (buf_len > 2 * rsa->sizeof_g_packet)
error (_("Remote 'g' packet reply is too long: %s"), rs->buf);

--- gdb/gdbarch.c (/mirrors/gdb_mainline) (revision 4267)
+++ gdb/gdbarch.c (/patches/gdb/coldfire_1) (revision 4267)
@@ -174,7 +174,6 @@ struct gdbarch
gdbarch_print_float_info_ftype *print_float_info;
gdbarch_print_vector_info_ftype *print_vector_info;
gdbarch_register_sim_regno_ftype *register_sim_regno;
- gdbarch_register_bytes_ok_ftype *register_bytes_ok;
gdbarch_cannot_fetch_register_ftype *cannot_fetch_register;
gdbarch_cannot_store_register_ftype *cannot_store_register;
gdbarch_get_longjmp_target_ftype *get_longjmp_target;
@@ -300,7 +299,6 @@ struct gdbarch startup_gdbarch =
0, /* print_float_info */
0, /* print_vector_info */
0, /* register_sim_regno */
- 0, /* register_bytes_ok */
0, /* cannot_fetch_register */
0, /* cannot_store_register */
0, /* get_longjmp_target */
@@ -554,7 +552,6 @@ verify_gdbarch (struct gdbarch *current_
/* Skip verify of print_float_info, has predicate */
/* Skip verify of print_vector_info, has predicate */
/* Skip verify of register_sim_regno, invalid_p == 0 */
- /* Skip verify of register_bytes_ok, has predicate */
/* Skip verify of cannot_fetch_register, invalid_p == 0 */
/* Skip verify of cannot_store_register, invalid_p == 0 */
/* Skip verify of get_longjmp_target, has predicate */
@@ -1329,24 +1326,6 @@ gdbarch_dump (struct gdbarch *current_gd
fprintf_unfiltered (file,
"gdbarch_dump: read_pc = <0x%lx>\n",
(long) current_gdbarch->read_pc);
-#ifdef REGISTER_BYTES_OK_P
- fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "REGISTER_BYTES_OK_P()",
- XSTRING (REGISTER_BYTES_OK_P ()));
-#endif
- fprintf_unfiltered (file,
- "gdbarch_dump: gdbarch_register_bytes_ok_p() = %d\n",
- gdbarch_register_bytes_ok_p (current_gdbarch));
-#ifdef REGISTER_BYTES_OK
- fprintf_unfiltered (file,
- "gdbarch_dump: %s # %s\n",
- "REGISTER_BYTES_OK(nr_bytes)",
- XSTRING (REGISTER_BYTES_OK (nr_bytes)));
-#endif
- fprintf_unfiltered (file,
- "gdbarch_dump: register_bytes_ok = <0x%lx>\n",
- (long) current_gdbarch->register_bytes_ok);
#ifdef REGISTER_NAME
fprintf_unfiltered (file,
"gdbarch_dump: %s # %s\n",
@@ -2387,30 +2366,6 @@ set_gdbarch_register_sim_regno (struct g
}

int
-gdbarch_register_bytes_ok_p (struct gdbarch *gdbarch)
-{
- gdb_assert (gdbarch != NULL);
- return gdbarch->register_bytes_ok != NULL;
-}
-
-int
-gdbarch_register_bytes_ok (struct gdbarch *gdbarch, long nr_bytes)
-{
- gdb_assert (gdbarch != NULL);
- gdb_assert (gdbarch->register_bytes_ok != NULL);
- if (gdbarch_debug >= 2)
- fprintf_unfiltered (gdb_stdlog, "gdbarch_register_bytes_ok called\n");
- return gdbarch->register_bytes_ok (nr_bytes);
-}
-
-void
-set_gdbarch_register_bytes_ok (struct gdbarch *gdbarch,
- gdbarch_register_bytes_ok_ftype register_bytes_ok)
-{
- gdbarch->register_bytes_ok = register_bytes_ok;
-}
-
-int
gdbarch_cannot_fetch_register (struct gdbarch *gdbarch, int regnum)
{
gdb_assert (gdbarch != NULL);
--- gdb/gdbarch.h (/mirrors/gdb_mainline) (revision 4267)
+++ gdb/gdbarch.h (/patches/gdb/coldfire_1) (revision 4267)
@@ -538,31 +538,6 @@ extern void set_gdbarch_register_sim_reg
#define REGISTER_SIM_REGNO(reg_nr) (gdbarch_register_sim_regno (current_gdbarch, reg_nr))
#endif

-#if defined (REGISTER_BYTES_OK)
-/* Legacy for systems yet to multi-arch REGISTER_BYTES_OK */
-#if !defined (REGISTER_BYTES_OK_P)
-#define REGISTER_BYTES_OK_P() (1)
-#endif
-#endif
-
-extern int gdbarch_register_bytes_ok_p (struct gdbarch *gdbarch);
-#if !defined (GDB_TM_FILE) && defined (REGISTER_BYTES_OK_P)
-#error "Non multi-arch definition of REGISTER_BYTES_OK"
-#endif
-#if !defined (REGISTER_BYTES_OK_P)
-#define REGISTER_BYTES_OK_P() (gdbarch_register_bytes_ok_p (current_gdbarch))
-#endif
-
-typedef int (gdbarch_register_bytes_ok_ftype) (long nr_bytes);
-extern int gdbarch_register_bytes_ok (struct gdbarch *gdbarch, long nr_bytes);
-extern void set_gdbarch_register_bytes_ok (struct gdbarch *gdbarch, gdbarch_register_bytes_ok_ftype *register_bytes_ok);
-#if !defined (GDB_TM_FILE) && defined (REGISTER_BYTES_OK)
-#error "Non multi-arch definition of REGISTER_BYTES_OK"
-#endif
-#if !defined (REGISTER_BYTES_OK)
-#define REGISTER_BYTES_OK(nr_bytes) (gdbarch_register_bytes_ok (current_gdbarch, nr_bytes))
-#endif
-
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);
--- gdb/m68k-tdep.c (/mirrors/gdb_mainline) (revision 4267)
+++ gdb/m68k-tdep.c (/patches/gdb/coldfire_1) (revision 4267)
@@ -54,10 +54,6 @@
#define P_MOVEL_SP 0x2f00
#define P_MOVEML_SP 0x48e7

-
-#define REGISTER_BYTES_FP (16*4 + 8 + 8*12 + 3*4)
-#define REGISTER_BYTES_NOFP (16*4 + 8)
-
/* Offset from SP to first arg on stack at first instruction of a function */
#define SP_ARG0 (1 * 4)

@@ -73,14 +69,6 @@ m68k_local_breakpoint_from_pc (CORE_ADDR
return break_insn;
}

-
-static int
-m68k_register_bytes_ok (long numbytes)
-{
- return ((numbytes == REGISTER_BYTES_FP)
- || (numbytes == REGISTER_BYTES_NOFP));
-}
-
/* Return the GDB type object for the "standard" data type of data in
register N. This should be int for D0-D7, SR, FPCONTROL and
FPSTATUS, long double for FP0-FP7, and void pointer for all others
@@ -1043,7 +1031,6 @@ m68k_gdbarch_init (struct gdbarch_info i
set_gdbarch_register_type (gdbarch, m68k_register_type);
set_gdbarch_register_name (gdbarch, m68k_register_name);
set_gdbarch_num_regs (gdbarch, M68K_NUM_REGS);
- set_gdbarch_register_bytes_ok (gdbarch, m68k_register_bytes_ok);
set_gdbarch_sp_regnum (gdbarch, M68K_SP_REGNUM);
set_gdbarch_pc_regnum (gdbarch, M68K_PC_REGNUM);
set_gdbarch_ps_regnum (gdbarch, M68K_PS_REGNUM);
--- gdb/gdbarch.sh (/mirrors/gdb_mainline) (revision 4267)
+++ gdb/gdbarch.sh (/patches/gdb/coldfire_1) (revision 4267)
@@ -479,7 +479,6 @@ M::void:print_vector_info:struct ui_file
# MAP a GDB RAW register number onto a simulator register number. See
# 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
# setjmp/longjmp support.

Property changes on:
___________________________________________________________________
Name: svk:merge
+e7755896-6108-0410-9592-8049d3e74e28:/mirrors/gdb/trunk:172452