* amd64-nat.h (amd64_native_gregset_supplies_p): Add gdbarch as
authorMarkus Deuling <deuling@de.ibm.com>
Wed, 16 Jan 2008 04:52:52 +0000 (04:52 +0000)
committerMarkus Deuling <deuling@de.ibm.com>
Wed, 16 Jan 2008 04:52:52 +0000 (04:52 +0000)
parameter.
* amd64-nat.c (amd64_native_gregset_supplies_p): Likewise.

(amd64_native_gregset_reg_offset): Add gdbarch as parameter. Replace
current_gdbarch by gdbarch. Update caller.

* amd64-linux-nat.c (amd64_linux_fetch_inferior_registers)
(amd64_linux_store_inferior_registers): Use get_regcache_arch to get at
the current architecture. Update calls of
amd64_native_gregset_supplies_p.
* amd64bsd-nat.c (amd64bsd_fetch_inferior_registers)
(amd64bsd_store_inferior_registers): Likewise.

gdb/ChangeLog
gdb/amd64-linux-nat.c
gdb/amd64-nat.c
gdb/amd64-nat.h
gdb/amd64bsd-nat.c

index 50bafa3419aa6ec613381e8c15941ceb94eaeda5..f9978b3fe74fd1022afb44907399eb7fb02882a4 100644 (file)
@@ -1,3 +1,19 @@
+2008-01-16  Markus Deuling  <deuling@de.ibm.com>
+
+       * amd64-nat.h (amd64_native_gregset_supplies_p): Add gdbarch as 
+       parameter.
+       * amd64-nat.c (amd64_native_gregset_supplies_p): Likewise.
+
+       (amd64_native_gregset_reg_offset): Add gdbarch as parameter. Replace
+       current_gdbarch by gdbarch. Update caller.
+
+       * amd64-linux-nat.c (amd64_linux_fetch_inferior_registers)
+       (amd64_linux_store_inferior_registers): Use get_regcache_arch to get at
+       the current architecture. Update calls of
+       amd64_native_gregset_supplies_p.
+       * amd64bsd-nat.c (amd64bsd_fetch_inferior_registers)
+       (amd64bsd_store_inferior_registers): Likewise.
+
 2008-01-16  Markus Deuling  <deuling@de.ibm.com>
 
        * ppc-linux-nat.c (ppc_register_u_addr): Add gdbarch as parameter.
index 4f7a8eaaeee56f919046686b467173b318d937a8..d927866b1392a470b69d092f588ef9ee13c6ca49 100644 (file)
@@ -157,6 +157,7 @@ fill_fpregset (const struct regcache *regcache,
 static void
 amd64_linux_fetch_inferior_registers (struct regcache *regcache, int regnum)
 {
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
   int tid;
 
   /* GNU/Linux LWP ID's are process ID's.  */
@@ -164,7 +165,7 @@ amd64_linux_fetch_inferior_registers (struct regcache *regcache, int regnum)
   if (tid == 0)
     tid = PIDGET (inferior_ptid); /* Not a threaded program.  */
 
-  if (regnum == -1 || amd64_native_gregset_supplies_p (regnum))
+  if (regnum == -1 || amd64_native_gregset_supplies_p (gdbarch, regnum))
     {
       elf_gregset_t regs;
 
@@ -176,7 +177,7 @@ amd64_linux_fetch_inferior_registers (struct regcache *regcache, int regnum)
        return;
     }
 
-  if (regnum == -1 || !amd64_native_gregset_supplies_p (regnum))
+  if (regnum == -1 || !amd64_native_gregset_supplies_p (gdbarch, regnum))
     {
       elf_fpregset_t fpregs;
 
@@ -194,6 +195,7 @@ amd64_linux_fetch_inferior_registers (struct regcache *regcache, int regnum)
 static void
 amd64_linux_store_inferior_registers (struct regcache *regcache, int regnum)
 {
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
   int tid;
 
   /* GNU/Linux LWP ID's are process ID's.  */
@@ -201,7 +203,7 @@ amd64_linux_store_inferior_registers (struct regcache *regcache, int regnum)
   if (tid == 0)
     tid = PIDGET (inferior_ptid); /* Not a threaded program.  */
 
-  if (regnum == -1 || amd64_native_gregset_supplies_p (regnum))
+  if (regnum == -1 || amd64_native_gregset_supplies_p (gdbarch, regnum))
     {
       elf_gregset_t regs;
 
@@ -217,7 +219,7 @@ amd64_linux_store_inferior_registers (struct regcache *regcache, int regnum)
        return;
     }
 
-  if (regnum == -1 || !amd64_native_gregset_supplies_p (regnum))
+  if (regnum == -1 || !amd64_native_gregset_supplies_p (gdbarch, regnum))
     {
       elf_fpregset_t fpregs;
 
index 51b2f8f47ca2379db478833652324d520c8c61d5..818dd758376e09c0384c24db866ab650907fd4ba 100644 (file)
@@ -51,23 +51,23 @@ int amd64_native_gregset64_num_regs = AMD64_NUM_GREGS;
    general-purpose register set.  */
 
 static int
-amd64_native_gregset_reg_offset (int regnum)
+amd64_native_gregset_reg_offset (struct gdbarch *gdbarch, int regnum)
 {
   int *reg_offset = amd64_native_gregset64_reg_offset;
   int num_regs = amd64_native_gregset64_num_regs;
 
   gdb_assert (regnum >= 0);
 
-  if (gdbarch_ptr_bit (current_gdbarch) == 32)
+  if (gdbarch_ptr_bit (gdbarch) == 32)
     {
       reg_offset = amd64_native_gregset32_reg_offset;
       num_regs = amd64_native_gregset32_num_regs;
     }
 
-  if (num_regs > gdbarch_num_regs (current_gdbarch))
-    num_regs = gdbarch_num_regs (current_gdbarch);
+  if (num_regs > gdbarch_num_regs (gdbarch))
+    num_regs = gdbarch_num_regs (gdbarch);
 
-  if (regnum < num_regs && regnum < gdbarch_num_regs (current_gdbarch))
+  if (regnum < num_regs && regnum < gdbarch_num_regs (gdbarch))
     return reg_offset[regnum];
 
   return -1;
@@ -77,9 +77,9 @@ amd64_native_gregset_reg_offset (int regnum)
    register REGNUM.  */
 
 int
-amd64_native_gregset_supplies_p (int regnum)
+amd64_native_gregset_supplies_p (struct gdbarch *gdbarch, int regnum)
 {
-  return (amd64_native_gregset_reg_offset (regnum) != -1);
+  return (amd64_native_gregset_reg_offset (gdbarch, regnum) != -1);
 }
 
 
@@ -105,7 +105,7 @@ amd64_supply_native_gregset (struct regcache *regcache,
     {
       if (regnum == -1 || regnum == i)
        {
-         int offset = amd64_native_gregset_reg_offset (i);
+         int offset = amd64_native_gregset_reg_offset (gdbarch, i);
 
          if (offset != -1)
            regcache_raw_supply (regcache, i, regs + offset);
@@ -135,13 +135,13 @@ amd64_collect_native_gregset (const struct regcache *regcache,
       for (i = 0; i <= I386_EIP_REGNUM; i++)
        {
          if (regnum == -1 || regnum == i)
-           memset (regs + amd64_native_gregset_reg_offset (i), 0, 8);
+           memset (regs + amd64_native_gregset_reg_offset (gdbarch, i), 0, 8);
        }
       /* Ditto for %cs, %ss, %ds, %es, %fs, and %gs.  */
       for (i = I386_CS_REGNUM; i <= I386_GS_REGNUM; i++)
        {
          if (regnum == -1 || regnum == i)
-           memset (regs + amd64_native_gregset_reg_offset (i), 0, 8);
+           memset (regs + amd64_native_gregset_reg_offset (gdbarch, i), 0, 8);
        }
     }
 
@@ -152,7 +152,7 @@ amd64_collect_native_gregset (const struct regcache *regcache,
     {
       if (regnum == -1 || regnum == i)
        {
-         int offset = amd64_native_gregset_reg_offset (i);
+         int offset = amd64_native_gregset_reg_offset (gdbarch, i);
 
          if (offset != -1)
            regcache_raw_collect (regcache, i, regs + offset);
index 4968b8fbffb0b3b5ecda2158381c6b6d4060cbaf..2466f986720993264208bd0d43d995ac2654deee 100644 (file)
@@ -33,7 +33,8 @@ extern int amd64_native_gregset64_num_regs;
 /* Return whether the native general-purpose register set supplies
    register REGNUM.  */
 
-extern int amd64_native_gregset_supplies_p (int regnum);
+extern int amd64_native_gregset_supplies_p (struct gdbarch *gdbarch,
+                                           int regnum);
 
 /* Supply register REGNUM, whose contents are store in BUF, to
    REGCACHE.  If REGNUM is -1, supply all appropriate registers.  */
index e806e29d072249ac0a3c14a75b62faf09f579297..7eb2b4d7ca1413ef7a251f70b307b91b8978582c 100644 (file)
@@ -41,7 +41,9 @@
 static void
 amd64bsd_fetch_inferior_registers (struct regcache *regcache, int regnum)
 {
-  if (regnum == -1 || amd64_native_gregset_supplies_p (regnum))
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+
+  if (regnum == -1 || amd64_native_gregset_supplies_p (gdbarch, regnum))
     {
       struct reg regs;
 
@@ -54,7 +56,7 @@ amd64bsd_fetch_inferior_registers (struct regcache *regcache, int regnum)
        return;
     }
 
-  if (regnum == -1 || !amd64_native_gregset_supplies_p (regnum))
+  if (regnum == -1 || !amd64_native_gregset_supplies_p (gdbarch, regnum))
     {
       struct fpreg fpregs;
 
@@ -72,7 +74,9 @@ amd64bsd_fetch_inferior_registers (struct regcache *regcache, int regnum)
 static void
 amd64bsd_store_inferior_registers (struct regcache *regcache, int regnum)
 {
-  if (regnum == -1 || amd64_native_gregset_supplies_p (regnum))
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+
+  if (regnum == -1 || amd64_native_gregset_supplies_p (gdbarch, regnum))
     {
       struct reg regs;
 
@@ -90,7 +94,7 @@ amd64bsd_store_inferior_registers (struct regcache *regcache, int regnum)
        return;
     }
 
-  if (regnum == -1 || !amd64_native_gregset_supplies_p (regnum))
+  if (regnum == -1 || !amd64_native_gregset_supplies_p (gdbarch, regnum))
     {
       struct fpreg fpregs;