Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Andreas Arnez <arnez@linux.vnet.ibm.com>
To: gdb-patches@sourceware.org
Cc: Kevin Buettner <kevinb@redhat.com>, Yao Qi <yao@codesourcery.com>,
	       Mark Kettenis <kettenis@gnu.org>
Subject: [RFC 02/23] Remove 'arch' field from regset structure
Date: Mon, 28 Apr 2014 09:40:00 -0000	[thread overview]
Message-ID: <8738gx6bc2.fsf@br87z6lw.de.ibm.com> (raw)
In-Reply-To: <87eh0h6bkq.fsf@br87z6lw.de.ibm.com> (Andreas Arnez's message of	"Mon, 28 Apr 2014 11:35:33 +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/
	* 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.
---
 gdb/amd64-tdep.c       |  4 ++--
 gdb/amd64obsd-tdep.c   |  2 +-
 gdb/i386-tdep.c        |  8 ++++----
 gdb/i386obsd-tdep.c    |  2 +-
 gdb/nios2-linux-tdep.c |  1 -
 gdb/ppc-linux-tdep.c   | 15 +++++----------
 gdb/ppcfbsd-tdep.c     |  6 ++----
 gdb/regset.c           |  1 -
 gdb/regset.h           |  3 ---
 9 files changed, 15 insertions(+), 27 deletions(-)

diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
index 035b460..df4a3f4 100644
--- a/gdb/amd64-tdep.c
+++ b/gdb/amd64-tdep.c
@@ -2842,7 +2842,7 @@ 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);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
 
   gdb_assert (len == tdep->sizeof_fpregset);
   amd64_supply_fxsave (regcache, regnum, fpregs);
@@ -2858,7 +2858,7 @@ 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);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
 
   gdb_assert (len == tdep->sizeof_fpregset);
   amd64_collect_fxsave (regcache, regnum, fpregs);
diff --git a/gdb/amd64obsd-tdep.c b/gdb/amd64obsd-tdep.c
index 9446318..c5ed731 100644
--- a/gdb/amd64obsd-tdep.c
+++ b/gdb/amd64obsd-tdep.c
@@ -45,7 +45,7 @@ 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);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
 
   gdb_assert (len >= tdep->sizeof_gregset + I387_SIZEOF_FXSAVE);
 
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index ecbf730..de783f6 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -3724,7 +3724,7 @@ 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);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
   const gdb_byte *regs = gregs;
   int i;
 
@@ -3748,7 +3748,7 @@ 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);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
   gdb_byte *regs = gregs;
   int i;
 
@@ -3770,7 +3770,7 @@ 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);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
 
   if (len == I387_SIZEOF_FXSAVE)
     {
@@ -3792,7 +3792,7 @@ 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);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
 
   if (len == I387_SIZEOF_FXSAVE)
     {
diff --git a/gdb/i386obsd-tdep.c b/gdb/i386obsd-tdep.c
index cf19c50..bc29606 100644
--- a/gdb/i386obsd-tdep.c
+++ b/gdb/i386obsd-tdep.c
@@ -142,7 +142,7 @@ 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);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (get_regcache_arch (regcache));
   const gdb_byte *gregs = regs;
 
   gdb_assert (len >= tdep->sizeof_gregset + I387_SIZEOF_FSAVE);
diff --git a/gdb/nios2-linux-tdep.c b/gdb/nios2-linux-tdep.c
index d9a51a8..84ab576 100644
--- a/gdb/nios2-linux-tdep.c
+++ b/gdb/nios2-linux-tdep.c
@@ -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.  */
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index 5278a24..5410554 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -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 *
diff --git a/gdb/ppcfbsd-tdep.c b/gdb/ppcfbsd-tdep.c
index 77292f3..28f5b7b 100644
--- a/gdb/ppcfbsd-tdep.c
+++ b/gdb/ppcfbsd-tdep.c
@@ -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.  */
diff --git a/gdb/regset.c b/gdb/regset.c
index a56641f..1d19d34 100644
--- a/gdb/regset.c
+++ b/gdb/regset.c
@@ -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;
 
diff --git a/gdb/regset.h b/gdb/regset.h
index fe804cc..f1a6e24 100644
--- a/gdb/regset.h
+++ b/gdb/regset.h
@@ -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
-- 
1.8.4.2


  parent reply	other threads:[~2014-04-28  9:40 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-28  9:35 [RFC 00/23] Regset rework preparations Andreas Arnez
2014-04-28  9:39 ` [RFC 01/23] Constify regset structures Andreas Arnez
2014-05-05  9:45   ` Mark Kettenis
2014-04-28  9:40 ` Andreas Arnez [this message]
2014-05-05  9:32   ` [RFC 02/23] Remove 'arch' field from regset structure Mark Kettenis
2014-05-05 13:35     ` Andreas Arnez
2014-04-28  9:44 ` [RFC 03/23] AARCH64: Replace regset_alloc() invocations by static regset structures Andreas Arnez
2014-04-28  9:46 ` [RFC 04/23] ARM: " Andreas Arnez
2014-04-28  9:47 ` [RFC 05/23] X86: " Andreas Arnez
2014-04-28 15:33   ` Mark Kettenis
2014-04-29  8:58     ` Andreas Arnez
2014-04-28  9:48 ` [RFC 06/23] MIPS: " Andreas Arnez
2014-04-28  9:49 ` [RFC 07/23] MN10300: " Andreas Arnez
2014-04-28  9:50 ` [RFC 08/23] SCORE: Replace regset_alloc() invocation by a static regset structure Andreas Arnez
2014-04-28  9:51 ` [RFC 09/23] SPARC: Rename register maps from "*regset" to "*regmap" Andreas Arnez
2014-05-05  9:50   ` Mark Kettenis
2014-04-28  9:52 ` [RFC 10/23] SPARC: Replace regset_alloc() invocations by static regset structures Andreas Arnez
2014-05-05  9:52   ` Mark Kettenis
2014-04-28  9:53 ` [RFC 11/23] Drop regset_alloc() Andreas Arnez
2014-05-05  9:53   ` Mark Kettenis
2014-04-28  9:54 ` [RFC 12/23] regcache: Add functions suitable for regset_supply/collect Andreas Arnez
2014-05-05 10:02   ` Mark Kettenis
2014-05-05 15:34     ` Andreas Arnez
2014-04-28  9:54 ` [RFC 13/23] S390: Migrate to regcache_supply/collect_regset Andreas Arnez
2014-04-28  9:55 ` [RFC 14/23] AARCH64 Linux: Fill 'collect_regset' in regset structures Andreas Arnez
2014-04-28  9:56 ` [RFC 15/23] ALPHA " Andreas Arnez
2014-04-28  9:57 ` [RFC 16/23] FRV " Andreas Arnez
2014-04-28  9:58 ` [RFC 17/23] HPPA " Andreas Arnez
2014-04-28  9:59 ` [RFC 18/23] M32R Linux: Fill 'collect_regset' in regset structure Andreas Arnez
2014-04-28  9:59 ` [RFC 19/23] NIOS2 " Andreas Arnez
2014-04-28 10:00 ` [RFC 20/23] SCORE: " Andreas Arnez
2014-04-28 10:01 ` [RFC 21/23] TILEGX Linux: " Andreas Arnez
2014-04-28 10:01 ` [RFC 22/23] M68K Linux: Define regset structures Andreas Arnez
2014-04-28 10:02 ` [RFC 23/23] IA64 " Andreas Arnez
2014-04-28 15:29 ` [RFC 00/23] Regset rework preparations Maciej W. Rozycki
2014-04-28 15:38   ` Andreas Arnez
2014-05-08 10:31     ` Andreas Arnez
2014-05-05  8:09 ` [ping] " Andreas Arnez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8738gx6bc2.fsf@br87z6lw.de.ibm.com \
    --to=arnez@linux.vnet.ibm.com \
    --cc=gdb-patches@sourceware.org \
    --cc=kettenis@gnu.org \
    --cc=kevinb@redhat.com \
    --cc=yao@codesourcery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox