[RFC,08/23] SCORE: Replace regset_alloc() invocation by a static regset structure

Message ID 87d2g14wcg.fsf@br87z6lw.de.ibm.com
State Committed
Headers

Commit Message

Andreas Arnez April 28, 2014, 9:49 a.m. UTC
  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(-)
  

Patch

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.  */