From: Orjan Friberg <orjan.friberg@axis.com>
To: gdb-patches@sources.redhat.com
Subject: [PATCH RFC] Convert CANNOT_STORE_REGISTER, CANNOT_FETCH_REGISTER into multi-arch
Date: Fri, 18 May 2001 09:08:00 -0000 [thread overview]
Message-ID: <3B0548E8.DEC26334@axis.com> (raw)
Getting ready to commit the CRIS port of gdb as a pure multi-arch
target, I found that CANNOT_STORE_REGISTER and CANNOT_FETCH_REGISTER
needed to be converted to the multi-arch framework. I added predicates
for both macros and changed the #ifdefs in infptrace.c, regcache.c and
lynx-nat.c to use the predicates instead.
Ok to commit?
(The CONTRIBUTE file said I shouldn't submit patches for gdbarch.h and
gdbarch.c, so if/when this patch is accepted I assume I will just commit
the regenerated versions of those.)
2001-05-18 Orjan Friberg <orjanf@axis.com>
* gdbarch.sh (CANNOT_STORE_REGISTER, CANNOT_FETCH_REGISTER):
Multi-arch.
* gdbarch.h, gdbarch.c: Regenerate.
* infptrace.c (fetch_register): Replace #ifdef
CANNOT_FETCH_REGISTER
with CANNOT_FETCH_REGISTER_P ().
(store_register): Replace #ifdef CANNOT_STORE_REGISTER with
CANNOT_STORE_REGISTER_P ().
* regcache.c (legacy_write_register_gen): Ditto.
* lynx-nat.c (store_inferior_registers): Ditto.
Index: gdbarch.sh
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.sh,v
retrieving revision 1.62
diff -c -3 -p -r1.62 gdbarch.sh
*** gdbarch.sh 2001/05/14 16:43:35 1.62
--- gdbarch.sh 2001/05/18 15:31:35
*************** f:2:DO_REGISTERS_INFO:void:do_registers_
*** 423,428 ****
--- 423,430 ----
# also include/...-sim.h.
f:2:REGISTER_SIM_REGNO:int:register_sim_regno:int
reg_nr:reg_nr:::default_regi
ster_sim_regno::0
F:2:REGISTER_BYTES_OK:int:register_bytes_ok:long
nr_bytes:nr_bytes::0:0
+ F:2:CANNOT_STORE_REGISTER:int:cannot_store_register:int
reg_nr:reg_nr::0:0
+ F:2:CANNOT_FETCH_REGISTER:int:cannot_fetch_register:int
reg_nr:reg_nr::0:0
#
v:1:USE_GENERIC_DUMMY_FRAMES:int:use_generic_dummy_frames::::0:-1
v:2:CALL_DUMMY_LOCATION:int:call_dummy_location::::0:0
Index: infptrace.c
===================================================================
RCS file: /cvs/src/src/gdb/infptrace.c,v
retrieving revision 1.15
diff -c -3 -p -r1.15 infptrace.c
*** infptrace.c 2001/05/15 00:03:36 1.15
--- infptrace.c 2001/05/18 15:31:35
*************** _initialize_kernel_u_addr (void)
*** 349,359 ****
- KERNEL_U_ADDR
#endif
- /* Registers we shouldn't try to fetch. */
- #if !defined (CANNOT_FETCH_REGISTER)
- #define CANNOT_FETCH_REGISTER(regno) 0
- #endif
-
/* Fetch one register. */
static void
--- 349,354 ----
*************** fetch_register (int regno)
*** 367,373 ****
char buf[MAX_REGISTER_RAW_SIZE];
int tid;
! if (CANNOT_FETCH_REGISTER (regno))
{
memset (buf, '\0', REGISTER_RAW_SIZE (regno)); /* Supply zeroes
*/
supply_register (regno, buf);
--- 362,368 ----
char buf[MAX_REGISTER_RAW_SIZE];
int tid;
! if (CANNOT_FETCH_REGISTER_P () && CANNOT_FETCH_REGISTER (regno))
{
memset (buf, '\0', REGISTER_RAW_SIZE (regno)); /* Supply zeroes
*/
supply_register (regno, buf);
*************** fetch_inferior_registers (int regno)
*** 418,428 ****
}
}
- /* Registers we shouldn't try to store. */
- #if !defined (CANNOT_STORE_REGISTER)
- #define CANNOT_STORE_REGISTER(regno) 0
- #endif
-
/* Store one register. */
static void
--- 413,418 ----
*************** store_register (int regno)
*** 435,441 ****
unsigned int offset; /* Offset of registers within
the u area
. */
int tid;
! if (CANNOT_STORE_REGISTER (regno))
{
return;
}
--- 425,431 ----
unsigned int offset; /* Offset of registers within
the u area
. */
int tid;
! if (CANNOT_STORE_REGISTER_P () && CANNOT_STORE_REGISTER (regno))
{
return;
}
Index: regcache.c
===================================================================
RCS file: /cvs/src/src/gdb/regcache.c,v
retrieving revision 1.23
diff -c -3 -p -r1.23 regcache.c
*** regcache.c 2001/05/04 04:15:26 1.23
--- regcache.c 2001/05/18 15:31:36
*************** read_register_gen (int regnum, char *buf
*** 315,325 ****
/* Write register REGNUM at MYADDR to the target. MYADDR points at
REGISTER_RAW_BYTES(REGNUM), which must be in target byte-order. */
- /* Registers we shouldn't try to store. */
- #if !defined (CANNOT_STORE_REGISTER)
- #define CANNOT_STORE_REGISTER(regnum) 0
- #endif
-
static void
legacy_write_register_gen (int regnum, char *myaddr)
{
--- 315,320 ----
*************** legacy_write_register_gen (int regnum, c
*** 328,334 ****
/* 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))
return;
if (! ptid_equal (registers_ptid, inferior_ptid))
--- 323,329 ----
/* 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_P () && CANNOT_STORE_REGISTER (regnum))
return;
if (! ptid_equal (registers_ptid, inferior_ptid))
Index: lynx-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/lynx-nat.c,v
retrieving revision 1.8
diff -c -3 -p -r1.8 lynx-nat.c
*** lynx-nat.c 2001/05/04 04:15:25 1.8
--- lynx-nat.c 2001/05/18 15:31:36
*************** fetch_inferior_registers (int regno)
*** 539,549 ****
If REGNO is -1, do this for all registers.
Otherwise, REGNO specifies which register (so we can save time).
*/
- /* Registers we shouldn't try to store. */
- #if !defined (CANNOT_STORE_REGISTER)
- #define CANNOT_STORE_REGISTER(regno) 0
- #endif
-
void
store_inferior_registers (int regno)
{
--- 539,544 ----
*************** store_inferior_registers (int regno)
*** 565,571 ****
{
int ptrace_fun = PTRACE_POKEUSER;
! if (CANNOT_STORE_REGISTER (regno))
continue;
#ifdef M68K
--- 560,566 ----
{
int ptrace_fun = PTRACE_POKEUSER;
! if (CANNOT_STORE_REGISTER_P () && CANNOT_STORE_REGISTER (regno))
continue;
#ifdef M68K
--
Orjan Friberg E-mail: orjan.friberg@axis.com
Axis Communications AB Phone: +46 46 272 17 68
next reply other threads:[~2001-05-18 9:08 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-05-18 9:08 Orjan Friberg [this message]
2001-05-21 0:36 ` Orjan Friberg
2001-06-06 9:07 ` Andrew Cagney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3B0548E8.DEC26334@axis.com \
--to=orjan.friberg@axis.com \
--cc=gdb-patches@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox