From a069a2bdaba95561f9d930ff4ae4b4f60a43283e Mon Sep 17 00:00:00 2001 From: Andreas Arnez Date: Fri, 22 Nov 2013 18:29:26 +0000 Subject: [PATCH] AARCH64: Replace regset_alloc() invocations by static regset structures. After removal of the regset_alloc invocations, the tdep fields 'gregset' and 'fpregset' become obsolete and are thus removed. --- gdb/ChangeLog | 9 +++++++++ gdb/aarch64-linux-tdep.c | 29 +++++++++++++++-------------- gdb/aarch64-tdep.h | 4 ---- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d329143898d..e6c8b56de42 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2014-05-21 Andreas Arnez + + * 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 * regset.h (struct regset): Remove gdbarch field. diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c index a89bf32b1f1..30ed73feb0c 100644 --- a/gdb/aarch64-linux-tdep.c +++ b/gdb/aarch64-linux-tdep.c @@ -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; } diff --git a/gdb/aarch64-tdep.h b/gdb/aarch64-tdep.h index 30a5ee360fe..78fb7799e02 100644 --- a/gdb/aarch64-tdep.h +++ b/gdb/aarch64-tdep.h @@ -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; -- 2.30.2