From b7195f2786ccb2b9aaa5a0f0232b1f6d43060aed Mon Sep 17 00:00:00 2001 From: Andreas Arnez Date: Fri, 22 Nov 2013 18:40:06 +0000 Subject: [PATCH] MIPS: Replace regset_alloc() invocations by static regset structures. After removal of the regset_alloc invocations, the appropriate tdep fields become obsolete and are thus removed. --- gdb/ChangeLog | 12 ++++++++++ gdb/mips-linux-tdep.c | 53 ++++++++++++++++++++----------------------- gdb/mips-tdep.c | 4 ---- gdb/mips-tdep.h | 8 ------- 4 files changed, 36 insertions(+), 41 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5eef2d71d4f..989aa3fb211 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,15 @@ +2014-05-21 Andreas Arnez + + * mips-linux-tdep.c (mips_linux_gregset, mips64_linux_gregset) + (mips_linux_fpregset, mips64_linux_fpregset): New static regset + structures. + (mips_linux_regset_from_core_section): Remove dynamic regset + allocations. + * mips-tdep.h (struct gdbarch_tdep): Remove fields 'gregset', + 'gregset64', 'fpregset', and 'fpregset64'. + * mips-tdep.c (mips_gdbarch_init): Remove initialization of + deleted tdep fields. + 2014-05-21 Andreas Arnez * amd64-tdep.c (amd64_fpregset, amd64_xstateregset): New static diff --git a/gdb/mips-linux-tdep.c b/gdb/mips-linux-tdep.c index 61bea6c4d6f..a975db6957c 100644 --- a/gdb/mips-linux-tdep.c +++ b/gdb/mips-linux-tdep.c @@ -618,11 +618,30 @@ mips64_fill_fpregset_wrapper (const struct regset *regset, mips64_fill_fpregset (regcache, (mips64_elf_fpregset_t *)gregs, regnum); } +static const struct regset mips_linux_gregset = + { + NULL, mips_supply_gregset_wrapper, mips_fill_gregset_wrapper + }; + +static const struct regset mips64_linux_gregset = + { + NULL, mips64_supply_gregset_wrapper, mips64_fill_gregset_wrapper + }; + +static const struct regset mips_linux_fpregset = + { + NULL, mips_supply_fpregset_wrapper, mips_fill_fpregset_wrapper + }; + +static const struct regset mips64_linux_fpregset = + { + NULL, mips64_supply_fpregset_wrapper, mips64_fill_fpregset_wrapper + }; + static const struct regset * mips_linux_regset_from_core_section (struct gdbarch *gdbarch, const char *sect_name, size_t sect_size) { - struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); mips_elf_gregset_t gregset; mips_elf_fpregset_t fpregset; mips64_elf_gregset_t gregset64; @@ -631,21 +650,9 @@ mips_linux_regset_from_core_section (struct gdbarch *gdbarch, if (strcmp (sect_name, ".reg") == 0) { if (sect_size == sizeof (gregset)) - { - if (tdep->gregset == NULL) - tdep->gregset = regset_alloc (gdbarch, - mips_supply_gregset_wrapper, - mips_fill_gregset_wrapper); - return tdep->gregset; - } + return &mips_linux_gregset; else if (sect_size == sizeof (gregset64)) - { - if (tdep->gregset64 == NULL) - tdep->gregset64 = regset_alloc (gdbarch, - mips64_supply_gregset_wrapper, - mips64_fill_gregset_wrapper); - return tdep->gregset64; - } + return &mips64_linux_gregset; else { warning (_("wrong size gregset struct in core file")); @@ -654,21 +661,9 @@ mips_linux_regset_from_core_section (struct gdbarch *gdbarch, else if (strcmp (sect_name, ".reg2") == 0) { if (sect_size == sizeof (fpregset)) - { - if (tdep->fpregset == NULL) - tdep->fpregset = regset_alloc (gdbarch, - mips_supply_fpregset_wrapper, - mips_fill_fpregset_wrapper); - return tdep->fpregset; - } + return &mips_linux_fpregset; else if (sect_size == sizeof (fpregset64)) - { - if (tdep->fpregset64 == NULL) - tdep->fpregset64 = regset_alloc (gdbarch, - mips64_supply_fpregset_wrapper, - mips64_fill_fpregset_wrapper); - return tdep->fpregset64; - } + return &mips64_linux_fpregset; else { warning (_("wrong size fpregset struct in core file")); diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index 606b150caac..c3e8e77d938 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -8327,10 +8327,6 @@ mips_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) tdep->mips_fpu_type = fpu_type; tdep->register_size_valid_p = 0; tdep->register_size = 0; - tdep->gregset = NULL; - tdep->gregset64 = NULL; - tdep->fpregset = NULL; - tdep->fpregset64 = NULL; if (info.target_desc) { diff --git a/gdb/mips-tdep.h b/gdb/mips-tdep.h index 31e96018e53..ba299528ed3 100644 --- a/gdb/mips-tdep.h +++ b/gdb/mips-tdep.h @@ -109,14 +109,6 @@ struct gdbarch_tdep int register_size_valid_p; int register_size; - /* General-purpose registers. */ - struct regset *gregset; - struct regset *gregset64; - - /* Floating-point registers. */ - struct regset *fpregset; - struct regset *fpregset64; - /* Return the expected next PC if FRAME is stopped at a syscall instruction. */ CORE_ADDR (*syscall_next_pc) (struct frame_info *frame); -- 2.30.2