summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Arnez <arnez@linux.vnet.ibm.com>2014-03-31 09:07:42 +0000
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>2014-05-21 17:49:17 +0200
commit8fea322418c158d096d930c0d0057c684f1fc7ca (patch)
tree8b231f0d499a87c4687af366998414ee8d302806
parent245342432eaccc1cb2375af4ce0bd8a636c411aa (diff)
SCORE: Replace regset_alloc() invocation by a static regset structure.
Since this changes makes the only member of the tdep structure obsolete, the tdep structure is removed.
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/score-tdep.c21
-rw-r--r--gdb/score-tdep.h7
3 files changed, 17 insertions, 20 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index dbff8772ac..e3203943ea 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,14 @@
2014-05-21 Andreas Arnez <arnez@linux.vnet.ibm.com>
+ * 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.
+
+2014-05-21 Andreas Arnez <arnez@linux.vnet.ibm.com>
+
* mn10300-linux-tdep.c (am33_gregset, am33_fpregset): New static
regset structures.
(am33_regset_from_core_section): Remove dynamic regset
diff --git a/gdb/score-tdep.c b/gdb/score-tdep.c
index 078315a5b2..c224189d16 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 b34f5a9c38..02a334ebff 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. */