Remove 'arch' field from regset structure.
authorAndreas Arnez <arnez@linux.vnet.ibm.com>
Tue, 13 May 2014 11:05:57 +0000 (11:05 +0000)
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Wed, 21 May 2014 15:49:15 +0000 (17:49 +0200)
Removes the 'arch' field from the regset structure, since it
represents the only "dynamic" data in a regset.  It was referenced in
some regset supply- and collect routines, to get access to the gdbarch
associated with the regset.  Naturally, the affected routines always
have access to the regcache to be supplied to or collected from.  Thus
the gdbarch associated with that regcache can be used instead.

gdb/ChangeLog
gdb/amd64-tdep.c
gdb/amd64obsd-tdep.c
gdb/i386-tdep.c
gdb/i386obsd-tdep.c
gdb/nios2-linux-tdep.c
gdb/ppc-linux-tdep.c
gdb/ppcfbsd-tdep.c
gdb/regset.c
gdb/regset.h

index 38cd57c5783acf83074806015078b07e09ba6460..d329143898d9943875c043585e06633c508c9d80 100644 (file)
@@ -1,3 +1,21 @@
+2014-05-21  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+       * regset.h (struct regset): Remove gdbarch field.
+       * regset.c (regset_alloc): Drop initialization of gdbarch field.
+       * nios2-linux-tdep.c (nios2_core_regset): Likewise.
+       * ppcfbsd-tdep.c (ppc32_fbsd_gregset, ppc64_fbsd_gregset):
+       Likewise.
+       * ppc-linux-tdep.c (ppc32_linux_gregset, ppc64_linux_gregset)
+       (ppc32_linux_fpregset, ppc32_linux_vrregset)
+       (ppc32_linux_vsxregset): Likewise.
+       * i386obsd-tdep.c (i386obsd_aout_supply_regset): Get the gdbarch
+       via the regcache instead of the regset.
+       * i386-tdep.c (i386_supply_gregset, i386_collect_gregset)
+       (i386_supply_fpregset, i386_collect_fpregset): Likewise.
+       * amd64obsd-tdep.c (amd64obsd_supply_regset): Likewise.
+       * amd64-tdep.c (amd64_supply_fpregset, amd64_collect_fpregset):
+       Likewise.
+
 2014-05-21  Andreas Arnez  <arnez@linux.vnet.ibm.com>
 
        * alpha-linux-tdep.c (alpha_linux_gregset, alpha_linux_fpregset):
index 035b460afa1cf594f173da8527b4468e14d6a6db..1b9797a29a57263d4aab73810a7c4b1b5ba73535 100644 (file)
@@ -2842,7 +2842,8 @@ static void
 amd64_supply_fpregset (const struct regset *regset, struct regcache *regcache,
                       int regnum, const void *fpregs, size_t len)
 {
-  const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   gdb_assert (len == tdep->sizeof_fpregset);
   amd64_supply_fxsave (regcache, regnum, fpregs);
@@ -2858,7 +2859,8 @@ amd64_collect_fpregset (const struct regset *regset,
                        const struct regcache *regcache,
                        int regnum, void *fpregs, size_t len)
 {
-  const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   gdb_assert (len == tdep->sizeof_fpregset);
   amd64_collect_fxsave (regcache, regnum, fpregs);
index 94463180b488e8543054fd863a136cdebdbca490..2cc0a0f2542a475465ee26a2c90c89ddf94e4700 100644 (file)
@@ -45,7 +45,8 @@ amd64obsd_supply_regset (const struct regset *regset,
                         struct regcache *regcache, int regnum,
                         const void *regs, size_t len)
 {
-  const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   gdb_assert (len >= tdep->sizeof_gregset + I387_SIZEOF_FXSAVE);
 
index ecbf7305d7ab7fd2ed069598b1110a67755d22f5..7d2363fd9b623a07412a3f1211e5dd9939f33c28 100644 (file)
@@ -3724,7 +3724,8 @@ void
 i386_supply_gregset (const struct regset *regset, struct regcache *regcache,
                     int regnum, const void *gregs, size_t len)
 {
-  const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   const gdb_byte *regs = gregs;
   int i;
 
@@ -3748,7 +3749,8 @@ i386_collect_gregset (const struct regset *regset,
                      const struct regcache *regcache,
                      int regnum, void *gregs, size_t len)
 {
-  const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   gdb_byte *regs = gregs;
   int i;
 
@@ -3770,7 +3772,8 @@ static void
 i386_supply_fpregset (const struct regset *regset, struct regcache *regcache,
                      int regnum, const void *fpregs, size_t len)
 {
-  const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   if (len == I387_SIZEOF_FXSAVE)
     {
@@ -3792,7 +3795,8 @@ i386_collect_fpregset (const struct regset *regset,
                       const struct regcache *regcache,
                       int regnum, void *fpregs, size_t len)
 {
-  const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   if (len == I387_SIZEOF_FXSAVE)
     {
index cf19c5007b1939c68058ade48e51f54a5d658f06..7d9ba930ec0eccc4a2e21a0581bdc278d28df015 100644 (file)
@@ -142,7 +142,8 @@ i386obsd_aout_supply_regset (const struct regset *regset,
                             struct regcache *regcache, int regnum,
                             const void *regs, size_t len)
 {
-  const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   const gdb_byte *gregs = regs;
 
   gdb_assert (len >= tdep->sizeof_gregset + I387_SIZEOF_FSAVE);
index d9a51a8549400152496a0ce49d5d26778b4f8558..84ab576205ba5fae8c1445bb2c24534f12211a93 100644 (file)
@@ -78,7 +78,6 @@ static const struct regset nios2_core_regset =
   NULL,
   nios2_supply_gregset,
   NULL,
-  NULL
 };
 
 /* Implement the regset_from_core_section gdbarch method.  */
index 5278a24fd0f2b8a1da911cc1373969fdecc02697..5410554537341d2b64fd54ab1b6cdd866e73b2a1 100644 (file)
@@ -498,36 +498,31 @@ static const struct ppc_reg_offsets ppc64_linux_reg_offsets =
 static const struct regset ppc32_linux_gregset = {
   &ppc32_linux_reg_offsets,
   ppc_linux_supply_gregset,
-  ppc_linux_collect_gregset,
-  NULL
+  ppc_linux_collect_gregset
 };
 
 static const struct regset ppc64_linux_gregset = {
   &ppc64_linux_reg_offsets,
   ppc_linux_supply_gregset,
-  ppc_linux_collect_gregset,
-  NULL
+  ppc_linux_collect_gregset
 };
 
 static const struct regset ppc32_linux_fpregset = {
   &ppc32_linux_reg_offsets,
   ppc_supply_fpregset,
-  ppc_collect_fpregset,
-  NULL
+  ppc_collect_fpregset
 };
 
 static const struct regset ppc32_linux_vrregset = {
   &ppc32_linux_reg_offsets,
   ppc_supply_vrregset,
-  ppc_collect_vrregset,
-  NULL
+  ppc_collect_vrregset
 };
 
 static const struct regset ppc32_linux_vsxregset = {
   &ppc32_linux_reg_offsets,
   ppc_supply_vsxregset,
-  ppc_collect_vsxregset,
-  NULL
+  ppc_collect_vsxregset
 };
 
 const struct regset *
index 77292f375e4f133f240f2c594fcc5708667fb030..28f5b7bf82b60af9190d960ac42ff5375c571f5d 100644 (file)
@@ -100,8 +100,7 @@ static const struct ppc_reg_offsets ppc64_fbsd_reg_offsets =
 static const struct regset ppc32_fbsd_gregset = {
   &ppc32_fbsd_reg_offsets,
   ppc_supply_gregset,
-  ppc_collect_gregset,
-  NULL
+  ppc_collect_gregset
 };
 
 /* 64-bit general-purpose register set.  */
@@ -109,8 +108,7 @@ static const struct regset ppc32_fbsd_gregset = {
 static const struct regset ppc64_fbsd_gregset = {
   &ppc64_fbsd_reg_offsets,
   ppc_supply_gregset,
-  ppc_collect_gregset,
-  NULL
+  ppc_collect_gregset
 };
 
 /* 32-/64-bit floating-point register set.  */
index a56641f1ca066d08da067824e25b6bd677516d54..1d19d3431a480b47c6d1bde7d5adbf0a6cbad2bf 100644 (file)
@@ -36,7 +36,6 @@ regset_alloc (struct gdbarch *arch,
 {
   struct regset *regset = GDBARCH_OBSTACK_ZALLOC (arch, struct regset);
 
-  regset->arch = arch;
   regset->supply_regset = supply_regset;
   regset->collect_regset = collect_regset;
 
index fe804cc295d07bdc8885c7f6c82ac26815823253..f1a6e241d96e157ac6f8fce7adfd74780358ec7c 100644 (file)
@@ -50,9 +50,6 @@ struct regset
 
   /* Function collecting values in a register set from a register cache.  */
   collect_regset_ftype *collect_regset;
-
-  /* Architecture associated with the register set.  */
-  struct gdbarch *arch;
 };
 
 /* Allocate a fresh 'struct regset' whose supply_regset function is