This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 08/11] SCORE: Replace regset_alloc() invocation by a static regset structure.
- From: Andreas Arnez <arnez at linux dot vnet dot ibm dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 15 May 2014 17:49:32 +0200
- Subject: [PATCH 08/11] SCORE: Replace regset_alloc() invocation by a static regset structure.
- Authentication-results: sourceware.org; auth=none
- References: <1400168975-3145-1-git-send-email-arnez at linux dot vnet dot ibm dot com>
Since this changes makes the only member of the tdep structure
obsolete, the tdep structure is removed.
gdb/
* score-tdep.c (score7_linux_gregset): New static regset
structure.
(score7_linux_regset_from_core_section): Remove dynamic regset
allocation.
(score_gdbarch_init): Drop allocation of tdep structure.
* score-tdep.h (struct gdbarch_tdep): Remove declaration.
---
gdb/score-tdep.c | 21 ++++++++-------------
gdb/score-tdep.h | 7 -------
2 files changed, 8 insertions(+), 20 deletions(-)
diff --git a/gdb/score-tdep.c b/gdb/score-tdep.c
index 078315a..c224189 100644
--- a/gdb/score-tdep.c
+++ b/gdb/score-tdep.c
@@ -1447,6 +1447,12 @@ score7_linux_supply_gregset(const struct regset *regset,
}
}
+static const struct regset score7_linux_gregset =
+ {
+ NULL,
+ score7_linux_supply_gregset, NULL
+ };
+
/* Return the appropriate register set from the core section identified
by SECT_NAME and SECT_SIZE. */
@@ -1454,20 +1460,11 @@ static const struct regset *
score7_linux_regset_from_core_section(struct gdbarch *gdbarch,
const char *sect_name, size_t sect_size)
{
- struct gdbarch_tdep *tdep;
-
gdb_assert (gdbarch != NULL);
gdb_assert (sect_name != NULL);
- tdep = gdbarch_tdep (gdbarch);
-
if (strcmp(sect_name, ".reg") == 0 && sect_size == sizeof(elf_gregset_t))
- {
- if (tdep->gregset == NULL)
- tdep->gregset = regset_alloc (gdbarch,
- score7_linux_supply_gregset, NULL);
- return tdep->gregset;
- }
+ return &score7_linux_gregset;
return NULL;
}
@@ -1476,7 +1473,6 @@ static struct gdbarch *
score_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
{
struct gdbarch *gdbarch;
- struct gdbarch_tdep *tdep;
target_mach = info.bfd_arch_info->mach;
arches = gdbarch_list_lookup_by_info (arches, &info);
@@ -1484,8 +1480,7 @@ score_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
{
return (arches->gdbarch);
}
- tdep = xcalloc(1, sizeof(struct gdbarch_tdep));
- gdbarch = gdbarch_alloc (&info, tdep);
+ gdbarch = gdbarch_alloc (&info, NULL);
set_gdbarch_short_bit (gdbarch, 16);
set_gdbarch_int_bit (gdbarch, 32);
diff --git a/gdb/score-tdep.h b/gdb/score-tdep.h
index b34f5a9..02a334e 100644
--- a/gdb/score-tdep.h
+++ b/gdb/score-tdep.h
@@ -49,13 +49,6 @@ enum gdb_regnum
/* Forward declarations. */
struct regset;
-/* Target-dependent structure in gdbarch */
-struct gdbarch_tdep
-{
- /* Cached core file helpers. */
- struct regset *gregset;
-};
-
/* Linux Core file support (dirty hack)
S+core Linux register set definition, copy from S+core Linux. */
--
1.8.4.2