From 20cb8cdaf385a9bc67b63e015241d36b93289438 Mon Sep 17 00:00:00 2001 From: Jason Thorpe Date: Sat, 11 May 2002 19:30:27 +0000 Subject: [PATCH] * shnbsd-nat.c (fetch_inferior_registers): Use shnbsd_supply_reg. (store_inferior_registers): Use shnbsd_fill_reg. * shnbsd-tdep.c (sh_nbsd_supply_registers, sh_nbsd_supply_register): Collapse into... (shnbsd_supply_reg): ...this. (sh_nbsd_fill_registers, sh_nbsd_fill_register): Collapse into... (shnbsd_fill_reg): ...this. (sh_nbsd_solib_svr4_fetch_link_map_offsets): Rename to... (shnbsd_solib_svr4_fetch_link_map_offsets): ...this. (fetch_core_registers): Use shnbsd_supply_reg. (fetch_elfcore_registers): Use shnbsd_supply_reg. (sh_nbsd_core_fns): Rename to... (shnbsd_core_fns): ...this. (sh_nbsd_elfcore_fns): Rename to... (shnbsd_elfcore_fns): ...this. (sh_nbsd_init_abi): Rename to... (shnbsd_init_abi): ...this. (_initialize_sh_nbsd_tdep): Rename to... (_initialize_shnbsd_tdep): ...this. * shnbsd-tdep.h (sh_nbsd_supply_registers, sh_nbsd_supply_register, sh_nbsd_fill_registers, sh_nbsd_fill_register): Remove prototypes. (shnbsd_supply_reg, shnbsd_fill_reg): Add prototypes. --- gdb/ChangeLog | 26 ++++++++++++ gdb/shnbsd-nat.c | 4 +- gdb/shnbsd-tdep.c | 106 ++++++++++++++++++++-------------------------- gdb/shnbsd-tdep.h | 7 +-- 4 files changed, 76 insertions(+), 67 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 870cd2a509e..1540004997f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,29 @@ +2002-05-11 Jason Thorpe + + * shnbsd-nat.c (fetch_inferior_registers): Use shnbsd_supply_reg. + (store_inferior_registers): Use shnbsd_fill_reg. + * shnbsd-tdep.c (sh_nbsd_supply_registers, + sh_nbsd_supply_register): Collapse into... + (shnbsd_supply_reg): ...this. + (sh_nbsd_fill_registers, sh_nbsd_fill_register): Collapse into... + (shnbsd_fill_reg): ...this. + (sh_nbsd_solib_svr4_fetch_link_map_offsets): Rename to... + (shnbsd_solib_svr4_fetch_link_map_offsets): ...this. + (fetch_core_registers): Use shnbsd_supply_reg. + (fetch_elfcore_registers): Use shnbsd_supply_reg. + (sh_nbsd_core_fns): Rename to... + (shnbsd_core_fns): ...this. + (sh_nbsd_elfcore_fns): Rename to... + (shnbsd_elfcore_fns): ...this. + (sh_nbsd_init_abi): Rename to... + (shnbsd_init_abi): ...this. + (_initialize_sh_nbsd_tdep): Rename to... + (_initialize_shnbsd_tdep): ...this. + * shnbsd-tdep.h (sh_nbsd_supply_registers, + sh_nbsd_supply_register, sh_nbsd_fill_registers, + sh_nbsd_fill_register): Remove prototypes. + (shnbsd_supply_reg, shnbsd_fill_reg): Add prototypes. + 2002-05-11 Jason Thorpe * Makefile.in (ALLDEPFILES): Remove i387-nat.c. diff --git a/gdb/shnbsd-nat.c b/gdb/shnbsd-nat.c index 0367fde1a8f..e1b56e66405 100644 --- a/gdb/shnbsd-nat.c +++ b/gdb/shnbsd-nat.c @@ -46,7 +46,7 @@ fetch_inferior_registers (int regno) (PTRACE_ARG3_TYPE) &inferior_registers, 0) == -1) perror_with_name ("Couldn't get registers"); - sh_nbsd_supply_register ((char *) &inferior_registers, regno); + shnbsd_supply_reg ((char *) &inferior_registers, regno); if (regno != -1) return; @@ -64,7 +64,7 @@ store_inferior_registers (int regno) (PTRACE_ARG3_TYPE) &inferior_registers, 0) == -1) perror_with_name ("Couldn't get registers"); - sh_nbsd_fill_register ((char *) &inferior_registers, regno); + shnbsd_fill_reg ((char *) &inferior_registers, regno); if (ptrace (PT_SETREGS, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) &inferior_registers, 0) == -1) diff --git a/gdb/shnbsd-tdep.c b/gdb/shnbsd-tdep.c index a185b51a96f..8e503860f03 100644 --- a/gdb/shnbsd-tdep.c +++ b/gdb/shnbsd-tdep.c @@ -52,73 +52,59 @@ static const int regmap[] = #define SIZEOF_STRUCT_REG (21 * 4) void -sh_nbsd_supply_registers (char *regs) +shnbsd_supply_reg (char *regs, int regno) { - int regno; + int i; - for (regno = R0_REGNUM; regno <= (R0_REGNUM + 15); regno++) - supply_register (regno, regs + regmap[regno - R0_REGNUM]); - - supply_register (PC_REGNUM, regs + (0 * 4)); - supply_register (SR_REGNUM, regs + (1 * 4)); - supply_register (PR_REGNUM, regs + (2 * 4)); - supply_register (MACH_REGNUM, regs + (3 * 4)); - supply_register (MACL_REGNUM, regs + (4 * 4)); -} - -void -sh_nbsd_supply_register (char *regs, int regno) -{ - if (regno == -1) - sh_nbsd_supply_registers (regs); - - if (regno == PC_REGNUM) + if (regno == PC_REGNUM || regno == -1) supply_register (PC_REGNUM, regs + (0 * 4)); - else if (regno == SR_REGNUM) + + if (regno == SR_REGNUM || regno == -1) supply_register (SR_REGNUM, regs + (1 * 4)); - else if (regno == PR_REGNUM) + + if (regno == PR_REGNUM || regno == -1) supply_register (PR_REGNUM, regs + (2 * 4)); - else if (regno == MACH_REGNUM) - supply_register (MACH_REGNUM, regs + (3 * 4)); - else if (regno == MACL_REGNUM) - supply_register (MACL_REGNUM, regs + (4 * 4)); - else if (regno >= R0_REGNUM && regno <= (R0_REGNUM + 15)) - supply_register (regno, regs + regmap[regno - R0_REGNUM]); -} -void -sh_nbsd_fill_registers (char *regs) -{ - int regno; + if (regno == MACH_REGNUM || regno == -1) + supply_register (MACH_REGNUM, regs + (3 * 4)); - for (regno = R0_REGNUM; regno <= (R0_REGNUM + 15); regno++) - regcache_collect (regno, regs + regmap[regno - R0_REGNUM]); + if (regno == MACL_REGNUM || regno == -1) + supply_register (MACL_REGNUM, regs + (4 * 4)); - regcache_collect (PC_REGNUM, regs + (0 * 4)); - regcache_collect (SR_REGNUM, regs + (1 * 4)); - regcache_collect (PR_REGNUM, regs + (2 * 4)); - regcache_collect (MACH_REGNUM, regs + (3 * 4)); - regcache_collect (MACL_REGNUM, regs + (4 * 4)); + if ((regno >= R0_REGNUM && regno <= (R0_REGNUM + 15)) || regno == -1) + { + for (i = R0_REGNUM; i <= (R0_REGNUM + 15); i++) + if (regno == i || regno == -1) + supply_register (i, regs + regmap[i - R0_REGNUM]); + } } void -sh_nbsd_fill_register (char *regs, int regno) +shnbsd_fill_reg (char *regs, int regno) { - if (regno == -1) - sh_nbsd_fill_registers (regs); + int i; - if (regno == PC_REGNUM) + if (regno == PC_REGNUM || regno == -1) regcache_collect (PC_REGNUM, regs + (0 * 4)); - else if (regno == SR_REGNUM) + + if (regno == SR_REGNUM || regno == -1) regcache_collect (SR_REGNUM, regs + (1 * 4)); - else if (regno == PR_REGNUM) + + if (regno == PR_REGNUM || regno == -1) regcache_collect (PR_REGNUM, regs + (2 * 4)); - else if (regno == MACH_REGNUM) + + if (regno == MACH_REGNUM || regno == -1) regcache_collect (MACH_REGNUM, regs + (3 * 4)); - else if (regno == MACL_REGNUM) + + if (regno == MACL_REGNUM || regno == -1) regcache_collect (MACL_REGNUM, regs + (4 * 4)); - else if (regno >= R0_REGNUM && regno <= (R0_REGNUM + 15)) - regcache_collect (regno, regs + regmap[regno - R0_REGNUM]); + + if ((regno >= R0_REGNUM && regno <= (R0_REGNUM + 15)) || regno == -1) + { + for (i = R0_REGNUM; i <= (R0_REGNUM + 15); i++) + if (regno == i || regno == -1) + regcache_collect (i, regs + regmap[i - R0_REGNUM]); + } } /* Fetch (and possibly build) an appropriate link_map_offsets @@ -130,7 +116,7 @@ sh_nbsd_fill_register (char *regs, int regno) debugging). */ static struct link_map_offsets * -sh_nbsd_solib_svr4_fetch_link_map_offsets (void) +shnbsd_solib_svr4_fetch_link_map_offsets (void) { static struct link_map_offsets lmo; static struct link_map_offsets *lmp = NULL; @@ -177,7 +163,7 @@ fetch_core_registers (char *core_reg_sect, unsigned core_reg_size, } /* Integer registers. */ - sh_nbsd_supply_registers (core_reg_sect); + shnbsd_supply_reg (core_reg_sect, -1); } static void @@ -190,7 +176,7 @@ fetch_elfcore_registers (char *core_reg_sect, unsigned core_reg_size, if (core_reg_size != SIZEOF_STRUCT_REG) warning ("Wrong size register set in core file."); else - sh_nbsd_supply_registers (core_reg_sect); + shnbsd_supply_reg (core_reg_sect, -1); break; default: @@ -199,7 +185,7 @@ fetch_elfcore_registers (char *core_reg_sect, unsigned core_reg_size, } } -static struct core_fns sh_nbsd_core_fns = +static struct core_fns shnbsd_core_fns = { bfd_target_unknown_flavour, /* core_flavour */ default_check_format, /* check_format */ @@ -208,7 +194,7 @@ static struct core_fns sh_nbsd_core_fns = NULL /* next */ }; -static struct core_fns sh_nbsd_elfcore_fns = +static struct core_fns shnbsd_elfcore_fns = { bfd_target_elf_flavour, /* core_flavour */ default_check_format, /* check_format */ @@ -218,18 +204,18 @@ static struct core_fns sh_nbsd_elfcore_fns = }; static void -sh_nbsd_init_abi (struct gdbarch_info info, +shnbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { set_solib_svr4_fetch_link_map_offsets (gdbarch, - sh_nbsd_solib_svr4_fetch_link_map_offsets); + shnbsd_solib_svr4_fetch_link_map_offsets); } void -_initialize_sh_nbsd_tdep (void) +_initialize_shnbsd_tdep (void) { - add_core_fns (&sh_nbsd_core_fns); - add_core_fns (&sh_nbsd_elfcore_fns); + add_core_fns (&shnbsd_core_fns); + add_core_fns (&shnbsd_elfcore_fns); - sh_gdbarch_register_os_abi (SH_OSABI_NETBSD_ELF, sh_nbsd_init_abi); + sh_gdbarch_register_os_abi (SH_OSABI_NETBSD_ELF, shnbsd_init_abi); } diff --git a/gdb/shnbsd-tdep.h b/gdb/shnbsd-tdep.h index ede2f93b831..7364756bf56 100644 --- a/gdb/shnbsd-tdep.h +++ b/gdb/shnbsd-tdep.h @@ -22,10 +22,7 @@ #ifndef SH_NBSD_TDEP_H #define SH_NBSD_TDEP_H -void sh_nbsd_supply_registers (char *); -void sh_nbsd_supply_register (char *, int); - -void sh_nbsd_fill_registers (char *); -void sh_nbsd_fill_register (char *, int); +void shnbsd_supply_reg (char *, int); +void shnbsd_fill_reg (char *, int); #endif /* SH_NBSD_TDEP_H */ -- 2.30.2