SCORE: Replace regset_alloc() invocation by a static regset structure.
authorAndreas Arnez <arnez@linux.vnet.ibm.com>
Mon, 31 Mar 2014 09:07:42 +0000 (09:07 +0000)
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Wed, 21 May 2014 15:49:17 +0000 (17:49 +0200)
Since this changes makes the only member of the tdep structure
obsolete, the tdep structure is removed.

gdb/ChangeLog
gdb/score-tdep.c
gdb/score-tdep.h

index dbff8772ac9eca83d9f8e002c9a744a32a21f787..e3203943eac8fe21688cdcab3d5c296df5c9a96c 100644 (file)
@@ -1,3 +1,12 @@
+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
index 078315a5b2df09495ecce7d34be3039bc48ffad2..c224189d16b76a5f95ef346a64b17939d1ba8b5b 100644 (file)
@@ -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);
index b34f5a9c381553c9884db40041ec9c4e6216da45..02a334ebffedf612e174a4a62ccce7a562bc72eb 100644 (file)
@@ -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.  */