From: Andreas Arnez <arnez@linux.vnet.ibm.com>
To: gdb-patches@sourceware.org
Cc: Jiong Wang <jiwang@tilera.com>
Subject: [RFC 21/23] TILEGX Linux: Fill 'collect_regset' in regset structure
Date: Mon, 28 Apr 2014 10:01:00 -0000 [thread overview]
Message-ID: <87siox22ox.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")
gdb/
* tilegx-linux-tdep.c (tilegx_linux_supply_regset): Delete
function. Move logic to...
(tilegx_linux_regmap): ... this new register map.
(TILEGX_GREGS_SIZE): New enum value.
(tilegx_linux_regset): Refer to register map, replace supply
method by regcache_supply_regset, and add collect method.
---
gdb/tilegx-linux-tdep.c | 37 +++++++++++++++----------------------
1 file changed, 15 insertions(+), 22 deletions(-)
diff --git a/gdb/tilegx-linux-tdep.c b/gdb/tilegx-linux-tdep.c
index 98b03db..4169433 100644
--- a/gdb/tilegx-linux-tdep.c
+++ b/gdb/tilegx-linux-tdep.c
@@ -73,34 +73,27 @@ static const struct tramp_frame tilegx_linux_rt_sigframe =
tilegx_linux_sigframe_init
};
-/* Supply raw registers from REGCACHE to REGS. */
+/* Register map; must match struct pt_regs in "ptrace.h". */
-static void
-tilegx_linux_supply_regset (const struct regset *regset,
- struct regcache *regcache,
- int regnum, const void *regs, size_t len)
-{
- struct gdbarch *arch = get_regcache_arch (regcache);
- const char *ptr = regs;
- int i;
-
- /* This logic must match that of struct pt_regs in "ptrace.h". */
- for (i = 0; i < TILEGX_NUM_EASY_REGS + 2; i++, ptr += tilegx_reg_size)
- {
- int gri = (i < TILEGX_NUM_EASY_REGS)
- ? i : (i == TILEGX_NUM_EASY_REGS)
- ? TILEGX_PC_REGNUM : TILEGX_FAULTNUM_REGNUM;
+static const struct regcache_map_entry tilegx_linux_regmap[] =
+ {
+ { TILEGX_NUM_EASY_REGS, 0 },
+ { 1, TILEGX_PC_REGNUM },
+ { 1, TILEGX_FAULTNUM_REGNUM },
+ { 0 }
+ };
- if (regnum == gri || regnum == -1)
- regcache_raw_supply (regcache, gri, ptr);
- }
-}
+enum
+{
+ TILEGX_GREGS_SIZE = (TILEGX_NUM_EASY_REGS + 2) * tilegx_reg_size
+};
/* TILE-Gx Linux kernel register set. */
+
static const struct regset tilegx_linux_regset =
{
- NULL,
- tilegx_linux_supply_regset
+ tilegx_linux_regmap,
+ regcache_supply_regset, regcache_collect_regset
};
static const struct regset *
--
1.8.4.2
next prev parent reply other threads:[~2014-04-28 10:01 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 ` [RFC 02/23] Remove 'arch' field from regset structure Andreas Arnez
2014-05-05 9:32 ` 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 ` Andreas Arnez [this message]
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=87siox22ox.fsf@br87z6lw.de.ibm.com \
--to=arnez@linux.vnet.ibm.com \
--cc=gdb-patches@sourceware.org \
--cc=jiwang@tilera.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