This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [commit/gdbserver] make regcaches first class citizens.
- From: Pedro Alves <pedro at codesourcery dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 21 Jan 2010 14:12:46 +0000
- Subject: Re: [commit/gdbserver] make regcaches first class citizens.
- References: <201001202300.54786.pedro@codesourcery.com>
I remembered I forgot to update spu-low.c. Done so now with the
patch below. Tested by building an spu gdbserver.
--
Pedro Alves
2010-01-21 Pedro Alves <pedro@codesourcery.com>
* spu-low.c (spu_fetch_registers, spu_store_registers): Change
prototype to take a regcache. Adjust.
---
gdb/gdbserver/spu-low.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
Index: src/gdb/gdbserver/spu-low.c
===================================================================
--- src.orig/gdb/gdbserver/spu-low.c 2010-01-20 07:56:41.000000000 -0800
+++ src/gdb/gdbserver/spu-low.c 2010-01-21 06:06:25.000000000 -0800
@@ -477,7 +477,7 @@ spu_wait (ptid_t ptid, struct target_wai
/* Fetch inferior registers. */
static void
-spu_fetch_registers (int regno)
+spu_fetch_registers (struct regcache *regcache, int regno)
{
int fd;
CORE_ADDR addr;
@@ -488,14 +488,14 @@ spu_fetch_registers (int regno)
/* The ID register holds the spufs file handle. */
if (regno == -1 || regno == SPU_ID_REGNUM)
- supply_register (SPU_ID_REGNUM, (char *)&fd);
+ supply_register (regcache, SPU_ID_REGNUM, (char *)&fd);
/* The NPC register is found at ADDR. */
if (regno == -1 || regno == SPU_PC_REGNUM)
{
char buf[4];
if (fetch_ppc_memory (addr, buf, 4) == 0)
- supply_register (SPU_PC_REGNUM, buf);
+ supply_register (regcache, SPU_PC_REGNUM, buf);
}
/* The GPRs are found in the "regs" spufs file. */
@@ -508,13 +508,13 @@ spu_fetch_registers (int regno)
sprintf (annex, "%d/regs", fd);
if (spu_proc_xfer_spu (annex, buf, NULL, 0, sizeof buf) == sizeof buf)
for (i = 0; i < SPU_NUM_CORE_REGS; i++)
- supply_register (i, buf + i*16);
+ supply_register (regcache, i, buf + i*16);
}
}
/* Store inferior registers. */
static void
-spu_store_registers (int regno)
+spu_store_registers (struct regcache *regcache, int regno)
{
int fd;
CORE_ADDR addr;
@@ -531,7 +531,7 @@ spu_store_registers (int regno)
if (regno == -1 || regno == SPU_PC_REGNUM)
{
char buf[4];
- collect_register (SPU_PC_REGNUM, buf);
+ collect_register (regcache, SPU_PC_REGNUM, buf);
store_ppc_memory (addr, buf, 4);
}
@@ -543,7 +543,7 @@ spu_store_registers (int regno)
int i;
for (i = 0; i < SPU_NUM_CORE_REGS; i++)
- collect_register (i, buf + i*16);
+ collect_register (regcache, i, buf + i*16);
sprintf (annex, "%d/regs", fd);
spu_proc_xfer_spu (annex, NULL, buf, 0, sizeof buf);