* aix-thread.c (fetch_regs_kernel_thread, fill_gprs64,
authorJim Blandy <jimb@codesourcery.com>
Fri, 7 May 2004 20:50:37 +0000 (20:50 +0000)
committerJim Blandy <jimb@codesourcery.com>
Fri, 7 May 2004 20:50:37 +0000 (20:50 +0000)
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.

gdb/ChangeLog
gdb/aix-thread.c

index 3b25992416f44b00e100fe564894f3e22f92090a..66b8ad7de5c1851c069340677df4267b3c0a48b0 100644 (file)
@@ -1,5 +1,11 @@
 2004-05-07  Jim Blandy  <jimb@redhat.com>
 
+       * 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.
+
        * ppc-sysv-tdep.c (ppc64_sysv_abi_return_value): Assert that
        the given architecture has floating-point registers. 
 
index 36174b4499aa9e4650ee88c65fc068ab97c45bf9..2f790713463c1e2351de51c3225e9dc6f88934c2 100644 (file)
@@ -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)
        {
This page took 0.029236 seconds and 4 git commands to generate.