AARCH64: Replace regset_alloc() invocations by static regset structures.
authorAndreas Arnez <arnez@linux.vnet.ibm.com>
Fri, 22 Nov 2013 18:29:26 +0000 (18:29 +0000)
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Wed, 21 May 2014 15:49:16 +0000 (17:49 +0200)
After removal of the regset_alloc invocations, the tdep fields
'gregset' and 'fpregset' become obsolete and are thus removed.

gdb/ChangeLog
gdb/aarch64-linux-tdep.c
gdb/aarch64-tdep.h

index d329143898d9943875c043585e06633c508c9d80..e6c8b56de42bdc5ad2fbf30f9fcb9c6b3fa044d7 100644 (file)
@@ -1,3 +1,12 @@
+2014-05-21  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+       * aarch64-linux-tdep.c (aarch64_linux_gregset)
+       (aarch64_linux_fpregset): New static regset structures.
+       (aarch64_linux_regset_from_core_section): Drop dynamic allocation
+       of regset structures.
+       * aarch64-tdep.h (struct gdbarch_tdep): Remove 'gregset' and
+       'fpregset' fields.
+
 2014-05-21  Andreas Arnez  <arnez@linux.vnet.ibm.com>
 
        * regset.h (struct regset): Remove gdbarch field.
index a89bf32b1f1f83e0914eb49223a37b6ce06f16b9..30ed73feb0c6e5d6d319cdeb27c460a4988ecc6d 100644 (file)
@@ -245,6 +245,18 @@ supply_fpregset_from_core (const struct regset *regset,
   aarch64_linux_supply_fpregset (regcache, (const gdb_byte *) regbuf);
 }
 
+/* Register set definitions. */
+
+static const struct regset aarch64_linux_gregset =
+  {
+    NULL, supply_gregset_from_core, NULL
+  };
+
+static const struct regset aarch64_linux_fpregset =
+  {
+    NULL, supply_fpregset_from_core, NULL
+  };
+
 /* Implement the "regset_from_core_section" gdbarch method.  */
 
 static const struct regset *
@@ -252,25 +264,14 @@ aarch64_linux_regset_from_core_section (struct gdbarch *gdbarch,
                                        const char *sect_name,
                                        size_t sect_size)
 {
-  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-
   if (strcmp (sect_name, ".reg") == 0
       && sect_size == AARCH64_LINUX_SIZEOF_GREGSET)
-    {
-      if (tdep->gregset == NULL)
-       tdep->gregset = regset_alloc (gdbarch, supply_gregset_from_core,
-                                     NULL);
-      return tdep->gregset;
-    }
+    return &aarch64_linux_gregset;
 
   if (strcmp (sect_name, ".reg2") == 0
       && sect_size == AARCH64_LINUX_SIZEOF_FPREGSET)
-    {
-      if (tdep->fpregset == NULL)
-       tdep->fpregset = regset_alloc (gdbarch, supply_fpregset_from_core,
-                                      NULL);
-      return tdep->fpregset;
-    }
+    return &aarch64_linux_fpregset;
+
   return NULL;
 }
 
index 30a5ee360fe161536c27d984a76f64586b6074f6..78fb7799e0252d1ac3d19e4e2062b0c45d111d5d 100644 (file)
@@ -82,10 +82,6 @@ struct gdbarch_tdep
   /* And the size of each entry in the buf.  */
   size_t jb_elt_size;
 
-  /* Cached core file helpers.  */
-  struct regset *gregset;
-  struct regset *fpregset;
-
   /* Types for AdvSISD registers.  */
   struct type *vnq_type;
   struct type *vnd_type;