diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2006-11-10 14:54:05 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2006-11-10 14:54:05 +0000 |
commit | e837da1b8b6680b819b3ec32529d8fd49d637fe4 (patch) | |
tree | c58a2913f70921051a6d83f69bc7bf49fd2a2a9c | |
parent | ecd3743a3bca6af666ecbc40f22288e454d80564 (diff) |
Handle OpenBSD as well.
-rw-r--r-- | gnu/usr.bin/binutils/gdb/shnbsd-tdep.c | 41 |
1 files changed, 18 insertions, 23 deletions
diff --git a/gnu/usr.bin/binutils/gdb/shnbsd-tdep.c b/gnu/usr.bin/binutils/gdb/shnbsd-tdep.c index f915d2aa657..6bb3c19ef38 100644 --- a/gnu/usr.bin/binutils/gdb/shnbsd-tdep.c +++ b/gnu/usr.bin/binutils/gdb/shnbsd-tdep.c @@ -61,25 +61,26 @@ shnbsd_supply_reg (char *regs, int regno) int i; if (regno == PC_REGNUM || regno == -1) - supply_register (PC_REGNUM, regs + (0 * 4)); + regcache_raw_supply (current_regcache, PC_REGNUM, regs + (0 * 4)); if (regno == SR_REGNUM || regno == -1) - supply_register (SR_REGNUM, regs + (1 * 4)); + regcache_raw_supply (current_regcache, SR_REGNUM, regs + (1 * 4)); if (regno == PR_REGNUM || regno == -1) - supply_register (PR_REGNUM, regs + (2 * 4)); + regcache_raw_supply (current_regcache, PR_REGNUM, regs + (2 * 4)); if (regno == MACH_REGNUM || regno == -1) - supply_register (MACH_REGNUM, regs + (3 * 4)); + regcache_raw_supply (current_regcache, MACH_REGNUM, regs + (3 * 4)); if (regno == MACL_REGNUM || regno == -1) - supply_register (MACL_REGNUM, regs + (4 * 4)); + regcache_raw_supply (current_regcache, 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]); + regcache_raw_supply (current_regcache, i, + regs + regmap[i - R0_REGNUM]); } } @@ -89,25 +90,26 @@ shnbsd_fill_reg (char *regs, int regno) int i; if (regno == PC_REGNUM || regno == -1) - regcache_collect (PC_REGNUM, regs + (0 * 4)); + regcache_raw_collect (current_regcache, PC_REGNUM, regs + (0 * 4)); if (regno == SR_REGNUM || regno == -1) - regcache_collect (SR_REGNUM, regs + (1 * 4)); + regcache_raw_collect (current_regcache, SR_REGNUM, regs + (1 * 4)); if (regno == PR_REGNUM || regno == -1) - regcache_collect (PR_REGNUM, regs + (2 * 4)); + regcache_raw_collect (current_regcache, PR_REGNUM, regs + (2 * 4)); if (regno == MACH_REGNUM || regno == -1) - regcache_collect (MACH_REGNUM, regs + (3 * 4)); + regcache_raw_collect (current_regcache, MACH_REGNUM, regs + (3 * 4)); if (regno == MACL_REGNUM || regno == -1) - regcache_collect (MACL_REGNUM, regs + (4 * 4)); + regcache_raw_collect (current_regcache, 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) - regcache_collect (i, regs + regmap[i - R0_REGNUM]); + regcache_raw_collect (current_regcache, i, + regs + regmap[i - R0_REGNUM]); } } @@ -166,19 +168,10 @@ static struct core_fns shnbsd_elfcore_fns = NULL /* next */ }; -static int -shnbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name) -{ - /* FIXME: Need to add support for kernel-provided signal trampolines. */ - return (nbsd_pc_in_sigtramp (pc, func_name)); -} - static void shnbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { - set_gdbarch_pc_in_sigtramp (gdbarch, shnbsd_pc_in_sigtramp); - set_solib_svr4_fetch_link_map_offsets (gdbarch, nbsd_ilp32_solib_svr4_fetch_link_map_offsets); } @@ -186,9 +179,11 @@ shnbsd_init_abi (struct gdbarch_info info, void _initialize_shnbsd_tdep (void) { - add_core_fns (&shnbsd_core_fns); - add_core_fns (&shnbsd_elfcore_fns); + deprecated_add_core_fns (&shnbsd_core_fns); + deprecated_add_core_fns (&shnbsd_elfcore_fns); gdbarch_register_osabi (bfd_arch_sh, 0, GDB_OSABI_NETBSD_ELF, shnbsd_init_abi); + gdbarch_register_osabi (bfd_arch_sh, 0, GDB_OSABI_OPENBSD_ELF, + shnbsd_init_abi); } |