summaryrefslogtreecommitdiff
path: root/gdb/aix-thread.c
diff options
context:
space:
mode:
authorJim Blandy <jimb@codesourcery.com>2004-05-07 20:50:37 +0000
committerJim Blandy <jimb@codesourcery.com>2004-05-07 20:50:37 +0000
commit597ef6dc562ded6f5b791bb4176ceee6ac4611d8 (patch)
tree97991d7f4fb9be35d060aa939eac001d3b28c688 /gdb/aix-thread.c
parentfd96770a8d62a48510f920b8849c17946c37d226 (diff)
downloadgdb-597ef6dc562ded6f5b791bb4176ceee6ac4611d8.tar.gz
* aix-thread.c (fetch_regs_kernel_thread, fill_gprs64,
fill_gprs32, store_regs_kernel_thread): Use tdep->ppc_gp0_regnum to recognize gpr regnums, instead of assuming that tdep->ppc_fp0_regnum marks the end of the general-purpose registers.
Diffstat (limited to 'gdb/aix-thread.c')
-rw-r--r--gdb/aix-thread.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c
index 36174b4499a..2f790713463 100644
--- a/gdb/aix-thread.c
+++ b/gdb/aix-thread.c
@@ -1157,7 +1157,9 @@ fetch_regs_kernel_thread (int regno, pthdb_tid_t tid)
(long) tid, regno, arch64);
/* General-purpose registers. */
- if (regno == -1 || regno < tdep->ppc_fp0_regnum)
+ if (regno == -1
+ || (tdep->ppc_gp0_regnum <= regno
+ && regno < tdep->ppc_gp0_regnum + ppc_num_gprs))
{
if (arch64)
{
@@ -1246,9 +1248,9 @@ fill_gprs64 (uint64_t *vals)
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
int regno;
- for (regno = 0; regno < tdep->ppc_fp0_regnum; regno++)
- if (register_cached (regno))
- regcache_collect (regno, vals + regno);
+ for (regno = 0; regno < ppc_num_gprs; regno++)
+ if (register_cached (tdep->ppc_gp0_regnum + regno))
+ regcache_collect (tdep->ppc_gp0_regnum + regno, vals + regno);
}
static void
@@ -1257,9 +1259,9 @@ fill_gprs32 (uint32_t *vals)
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
int regno;
- for (regno = 0; regno < tdep->ppc_fp0_regnum; regno++)
- if (register_cached (regno))
- regcache_collect (regno, vals + regno);
+ for (regno = 0; regno < ppc_num_gprs; regno++)
+ if (register_cached (tdep->ppc_gp0_regnum + regno))
+ regcache_collect (tdep->ppc_gp0_regnum + regno, vals + regno);
}
/* Store the floating point registers into a double array. */
@@ -1456,7 +1458,9 @@ store_regs_kernel_thread (int regno, pthdb_tid_t tid)
(long) tid, regno);
/* General-purpose registers. */
- if (regno == -1 || regno < tdep->ppc_fp0_regnum)
+ if (regno == -1
+ || (tdep->ppc_gp0_regnum <= regno
+ && regno < tdep->ppc_gp0_regnum + ppc_num_fprs))
{
if (arch64)
{