diff options
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/aarch64-linux-tdep.c | 29 | ||||
-rw-r--r-- | gdb/aarch64-tdep.h | 4 |
3 files changed, 24 insertions, 18 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d329143..e6c8b56 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,14 @@ 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. * regset.c (regset_alloc): Drop initialization of gdbarch field. * nios2-linux-tdep.c (nios2_core_regset): Likewise. diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c index a89bf32..30ed73f 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 30a5ee3..78fb779 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; |