* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
/* Target-dependent code for NetBSD/powerpc.
|
2004-04-23 01:02:32 +00:00
|
|
|
|
|
2023-01-01 16:49:04 +04:00
|
|
|
|
Copyright (C) 2002-2023 Free Software Foundation, Inc.
|
2004-04-23 01:02:32 +00:00
|
|
|
|
|
2002-05-28 18:43:08 +00:00
|
|
|
|
Contributed by Wasabi Systems, Inc.
|
|
|
|
|
|
|
|
|
|
This file is part of GDB.
|
|
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
|
it under the terms of the GNU General Public License as published by
|
2007-08-23 18:08:50 +00:00
|
|
|
|
the Free Software Foundation; either version 3 of the License, or
|
2002-05-28 18:43:08 +00:00
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
2007-08-23 18:08:50 +00:00
|
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
2002-05-28 18:43:08 +00:00
|
|
|
|
|
|
|
|
|
#include "defs.h"
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
#include "gdbtypes.h"
|
2003-01-04 23:38:46 +00:00
|
|
|
|
#include "osabi.h"
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
#include "regcache.h"
|
|
|
|
|
#include "regset.h"
|
|
|
|
|
#include "trad-frame.h"
|
|
|
|
|
#include "tramp-frame.h"
|
|
|
|
|
|
2002-05-28 18:43:08 +00:00
|
|
|
|
#include "ppc-tdep.h"
|
Normalize names of the NetBSD files
The files used to be named 'nbsd', which incorrectly reflects
the name of the OS and confuses it with other BSD derived OSes.
gdb/ChangeLog:
* Makefile.in (ALL_64_TARGET_OBS, ALL_TARGET_OBS)
HFILES_NO_SRCDIR, ALLDEPFILES): Rename files.
* alpha-bsd-nat.c: Adjust include.
* alpha-bsd-tdep.h: Adjust comment.
* alpha-nbsd-tdep.c: Rename to ...
* alpha-netbsd-tdep.c: ... this, adjust include.
* amd64-nbsd-nat.c: Rename to ...
* amd64-netbsd-nat.c: ... this, adjust include.
* amd64-nbsd-tdep.c: Rename to ...
* amd64-netbsd-tdep.c: ... this, adjust include.
* amd64-tdep.h: Adjust include.
* arm-nbsd-nat.c: Rename to ...
* arm-netbsd-nat.c: ... this, adjust include.
* arm-nbsd-tdep.c: Rename to ...
* arm-netbsd-tdep.c: ... this, adjust include.
* arm-nbsd-tdep.h: Rename to ...
* arm-netbsd-tdep.h: ... this, adjust include.
* configure.nat: Adjust file lists.
* configure.tgt: Likewise.
* hppa-nbsd-nat.c: Rename to ...
* hppa-netbsd-nat.c: ... this, adjust include.
* hppa-nbsd-tdep.c: Rename to ...
* hppa-netbsd-tdep.c: ... this, adjust include.
* i386-nbsd-nat.c: Rename to ...
* i386-netbsd-nat.c: ... this, adjust include.
* i386-nbsd-tdep.c: Rename to ...
* i386-netbsd-tdep.c: ... this, adjust include.
* m68k-bsd-nat.c: Adjust include.
* mips-nbsd-nat.c: Rename to ...
* mips-netbsd-nat.c: ... this, adjust include.
* mips-nbsd-tdep.c: Rename to ...
* mips-netbsd-tdep.c: ... this, adjust include.
* mips-nbsd-tdep.h: Rename to ...
* mips-netbsd-tdep.h: ... this.
* nbsd-nat.c: Rename to ...
* netbsd-nat.c: ... this, adjust include.
* nbsd-nat.h: Rename to ...
* netbsd-nat.h: ... this, adjust include.
* nbsd-tdep.c: Rename to ...
* netbsd-tdep.c: ... this, adjust include.
* nbsd-tdep.h: Rename to ...
* netbsd-tdep.h: ... this.
* ppc-nbsd-nat.c: Rename to ...
* ppc-netbsd-nat.c: ... this, adjust include.
* ppc-nbsd-tdep.c: Rename to ...
* ppc-netbsd-tdep.c: ... this, adjust include and comment.
* ppc-nbsd-tdep.h: Rename to ...
* ppc-netbsd-tdep.h: ... this.
* sh-nbsd-nat.c: Rename to ...
* sh-netbsd-nat.c: ... this, adjust include.
* sh-nbsd-tdep.c: Rename to ...
* sh-netbsd-tdep.c: ... this, adjust include.
* sparc-nbsd-nat.c: Rename to ...
* sparc-netbsd-nat.c: ... this.
* sparc-nbsd-tdep.c: Rename to ...
* sparc-netbsd-tdep.c: ... this, adjust include.
* sparc64-nbsd-nat.c: Rename to ...
* sparc64-netbsd-nat.c: ... this.
* sparc64-nbsd-tdep.c: Rename to ...
* sparc64-netbsd-tdep.c: ... this, adjust include.
* sparc64-tdep.h: Adjust comment.
* vax-bsd-nat.c: Adjust include.
* vax-nbsd-tdep.c: Rename to ...
* vax-netbsd-tdep.c: ... this, adjust include.
2020-10-06 21:36:22 +02:00
|
|
|
|
#include "netbsd-tdep.h"
|
2020-04-06 12:42:40 -06:00
|
|
|
|
#include "ppc-tdep.h"
|
2002-05-28 18:43:08 +00:00
|
|
|
|
#include "solib-svr4.h"
|
|
|
|
|
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
/* Register offsets from <machine/reg.h>. */
|
gdb: make some variables static
I'm trying to enable clang's -Wmissing-variable-declarations warning.
This patch fixes all the obvious spots where we can simply add "static"
(at least, found when building on x86-64 Linux).
gdb/ChangeLog:
* aarch64-linux-tdep.c (aarch64_linux_record_tdep): Make static.
* aarch64-tdep.c (tdesc_aarch64_list, aarch64_prologue_unwind,
aarch64_stub_unwind, aarch64_normal_base, ): Make static.
* arm-linux-tdep.c (arm_prologue_unwind): Make static.
* arm-tdep.c (struct frame_unwind): Make static.
* auto-load.c (auto_load_safe_path_vec): Make static.
* csky-tdep.c (csky_stub_unwind): Make static.
* gdbarch.c (gdbarch_data_registry): Make static.
* gnu-v2-abi.c (gnu_v2_abi_ops): Make static.
* i386-netbsd-tdep.c (i386nbsd_mc_reg_offset): Make static.
* i386-tdep.c (i386_frame_setup_skip_insns,
i386_tramp_chain_in_reg_insns, i386_tramp_chain_on_stack_insns):
Make static.
* infrun.c (observer_mode): Make static.
* linux-nat.c (sigchld_action): Make static.
* linux-thread-db.c (thread_db_list): Make static.
* maint-test-options.c (maintenance_test_options_list):
* mep-tdep.c (mep_csr_registers): Make static.
* mi/mi-cmds.c (struct mi_cmd_stats): Remove struct type name.
(stats): Make static.
* nat/linux-osdata.c (struct osdata_type): Make static.
* ppc-netbsd-tdep.c (ppcnbsd_reg_offsets): Make static.
* progspace.c (last_program_space_num): Make static.
* python/py-param.c (struct parm_constant): Remove struct type
name.
(parm_constants): Make static.
* python/py-record-btrace.c (btpy_list_methods): Make static.
* python/py-record.c (recpy_gap_type): Make static.
* record.c (record_goto_cmdlist): Make static.
* regcache.c (regcache_descr_handle): Make static.
* registry.h (DEFINE_REGISTRY): Make definition static.
* symmisc.c (std_in, std_out, std_err): Make static.
* top.c (previous_saved_command_line): Make static.
* tracepoint.c (trace_user, trace_notes, trace_stop_notes): Make
static.
* unittests/command-def-selftests.c (nr_duplicates,
nr_invalid_prefixcmd, lists): Make static.
* unittests/observable-selftests.c (test_notification): Make
static.
* unittests/optional/assignment/1.cc (counter): Make static.
* unittests/optional/assignment/2.cc (counter): Make static.
* unittests/optional/assignment/3.cc (counter): Make static.
* unittests/optional/assignment/4.cc (counter): Make static.
* unittests/optional/assignment/5.cc (counter): Make static.
* unittests/optional/assignment/6.cc (counter): Make static.
gdbserver/ChangeLog:
* ax.cc (bytecode_address_table): Make static.
* debug.cc (debug_file): Make static.
* linux-low.cc (stopping_threads): Make static.
(step_over_bkpt): Make static.
* linux-x86-low.cc (amd64_emit_ops, i386_emit_ops): Make static.
* tracepoint.cc (stop_tracing_bkpt, flush_trace_buffer_bkpt,
alloced_trace_state_variables, trace_buffer_ctrl,
tracing_start_time, tracing_stop_time, tracing_user_name,
tracing_notes, tracing_stop_note): Make static.
Change-Id: Ic1d8034723b7802502bda23770893be2338ab020
2021-01-20 20:55:05 -05:00
|
|
|
|
static ppc_reg_offsets ppcnbsd_reg_offsets;
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
|
2002-05-28 18:43:08 +00:00
|
|
|
|
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
/* Core file support. */
|
2002-05-28 18:43:08 +00:00
|
|
|
|
|
2006-12-15 23:22:37 +00:00
|
|
|
|
/* NetBSD/powerpc register sets. */
|
2002-05-28 18:43:08 +00:00
|
|
|
|
|
2014-03-03 09:31:21 +00:00
|
|
|
|
const struct regset ppcnbsd_gregset =
|
2002-05-28 18:43:08 +00:00
|
|
|
|
{
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
&ppcnbsd_reg_offsets,
|
|
|
|
|
ppc_supply_gregset
|
|
|
|
|
};
|
2002-05-28 18:43:08 +00:00
|
|
|
|
|
2014-03-03 09:31:21 +00:00
|
|
|
|
const struct regset ppcnbsd_fpregset =
|
2002-05-28 18:43:08 +00:00
|
|
|
|
{
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
&ppcnbsd_reg_offsets,
|
|
|
|
|
ppc_supply_fpregset
|
|
|
|
|
};
|
2002-05-28 18:43:08 +00:00
|
|
|
|
|
2014-09-10 08:42:07 +00:00
|
|
|
|
/* Iterate over core file register note sections. */
|
2002-05-28 18:43:08 +00:00
|
|
|
|
|
2014-09-10 08:42:07 +00:00
|
|
|
|
static void
|
|
|
|
|
ppcnbsd_iterate_over_regset_sections (struct gdbarch *gdbarch,
|
|
|
|
|
iterate_over_regset_sections_cb *cb,
|
|
|
|
|
void *cb_data,
|
|
|
|
|
const struct regcache *regcache)
|
2002-05-28 18:43:08 +00:00
|
|
|
|
{
|
2018-08-13 10:04:11 +01:00
|
|
|
|
cb (".reg", 148, 148, &ppcnbsd_gregset, NULL, cb_data);
|
|
|
|
|
cb (".reg2", 264, 264, &ppcnbsd_fpregset, NULL, cb_data);
|
2002-05-28 18:43:08 +00:00
|
|
|
|
}
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
|
2002-05-28 18:43:08 +00:00
|
|
|
|
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
/* NetBSD is confused. It appears that 1.5 was using the correct SVR4
|
2003-09-17 20:10:48 +00:00
|
|
|
|
convention but, 1.6 switched to the below broken convention. For
|
2011-01-10 20:38:51 +00:00
|
|
|
|
the moment use the broken convention. Ulgh! */
|
2003-09-17 20:10:48 +00:00
|
|
|
|
|
2003-11-07 20:44:51 +00:00
|
|
|
|
static enum return_value_convention
|
2012-05-16 14:35:09 +00:00
|
|
|
|
ppcnbsd_return_value (struct gdbarch *gdbarch, struct value *function,
|
2008-04-22 11:03:42 +00:00
|
|
|
|
struct type *valtype, struct regcache *regcache,
|
|
|
|
|
gdb_byte *readbuf, const gdb_byte *writebuf)
|
2003-11-07 20:44:51 +00:00
|
|
|
|
{
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
#if 0
|
2020-05-14 13:46:38 -04:00
|
|
|
|
if ((valtype->code () == TYPE_CODE_STRUCT
|
|
|
|
|
|| valtype->code () == TYPE_CODE_UNION)
|
2022-09-21 11:05:21 -04:00
|
|
|
|
&& !((valtype->length () == 16 || valtype->length () == 8)
|
2020-09-14 11:08:03 -04:00
|
|
|
|
&& valtype->is_vector ())
|
2022-09-21 11:05:21 -04:00
|
|
|
|
&& !(valtype->length () == 1
|
|
|
|
|
|| valtype->length () == 2
|
|
|
|
|
|| valtype->length () == 4
|
|
|
|
|
|| valtype->length () == 8))
|
2003-11-07 20:44:51 +00:00
|
|
|
|
return RETURN_VALUE_STRUCT_CONVENTION;
|
|
|
|
|
else
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
#endif
|
2012-05-16 14:35:09 +00:00
|
|
|
|
return ppc_sysv_abi_broken_return_value (gdbarch, function, valtype,
|
2008-04-22 11:03:42 +00:00
|
|
|
|
regcache, readbuf, writebuf);
|
2003-09-17 20:10:48 +00:00
|
|
|
|
}
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Signal trampolines. */
|
|
|
|
|
|
Fix redefinition errors in C++ mode
In C, we can forward declare static structure instances. That doesn't
work in C++ though. C++ treats these as definitions. So then the
compiler complains about symbol redefinition, like:
src/gdb/elfread.c:1569:29: error: redefinition of ‘const sym_fns elf_sym_fns_lazy_psyms’
src/gdb/elfread.c:53:29: error: ‘const sym_fns elf_sym_fns_lazy_psyms’ previously declared here
The intent of static here is naturally to avoid making these objects
visible outside the compilation unit. The equivalent in C++ would be
to instead define the objects in the anonymous namespace. But given
that it's desirable to leave the codebase compiling as both C and C++
for a while, this just makes the objects extern.
(base_breakpoint_ops is already declared in breakpoint.h, so we can
just remove the forward declare from breakpoint.c)
gdb/ChangeLog:
2015-02-11 Tom Tromey <tromey@redhat.com>
Pedro Alves <palves@redhat.com>
* breakpoint.c (base_breakpoint_ops): Delete.
* dwarf2loc.c (dwarf_expr_ctx_funcs): Make extern.
* elfread.c (elf_sym_fns_gdb_index, elf_sym_fns_lazy_psyms): Make extern.
* guile/guile.c (guile_extension_script_ops, guile_extension_ops): Make extern.
* ppcnbsd-tdep.c (ppcnbsd2_sigtramp): Make extern.
* python/py-arch.c (arch_object_type): Make extern.
* python/py-block.c (block_syms_iterator_object_type): Make extern.
* python/py-bpevent.c (breakpoint_event_object_type): Make extern.
* python/py-cmd.c (cmdpy_object_type): Make extern.
* python/py-continueevent.c (continue_event_object_type)
* python/py-event.h (GDBPY_NEW_EVENT_TYPE): Remove 'qual'
parameter. Update all callers.
* python/py-evtregistry.c (eventregistry_object_type): Make extern.
* python/py-exitedevent.c (exited_event_object_type): Make extern.
* python/py-finishbreakpoint.c (finish_breakpoint_object_type): Make extern.
* python/py-function.c (fnpy_object_type): Make extern.
* python/py-inferior.c (inferior_object_type, membuf_object_type): Make extern.
* python/py-infevents.c (call_pre_event_object_type)
(inferior_call_post_event_object_type).
(memory_changed_event_object_type): Make extern.
* python/py-infthread.c (thread_object_type): Make extern.
* python/py-lazy-string.c (lazy_string_object_type): Make extern.
* python/py-linetable.c (linetable_entry_object_type)
(linetable_object_type, ltpy_iterator_object_type): Make extern.
* python/py-newobjfileevent.c (new_objfile_event_object_type)
(clear_objfiles_event_object_type): Make extern.
* python/py-objfile.c (objfile_object_type): Make extern.
* python/py-param.c (parmpy_object_type): Make extern.
* python/py-progspace.c (pspace_object_type): Make extern.
* python/py-signalevent.c (signal_event_object_type): Make extern.
* python/py-symtab.c (symtab_object_type, sal_object_type): Make extern.
* python/py-type.c (type_object_type, field_object_type)
(type_iterator_object_type): Make extern.
* python/python.c (python_extension_script_ops)
(python_extension_ops): Make extern.
* stap-probe.c (stap_probe_ops): Make extern.
2015-02-11 11:20:21 +00:00
|
|
|
|
extern const struct tramp_frame ppcnbsd2_sigtramp;
|
2003-09-17 20:10:48 +00:00
|
|
|
|
|
2004-04-23 01:02:32 +00:00
|
|
|
|
static void
|
|
|
|
|
ppcnbsd_sigtramp_cache_init (const struct tramp_frame *self,
|
2022-07-25 14:06:35 -03:00
|
|
|
|
frame_info_ptr this_frame,
|
2004-04-23 01:02:32 +00:00
|
|
|
|
struct trad_frame_cache *this_cache,
|
|
|
|
|
CORE_ADDR func)
|
|
|
|
|
{
|
2008-04-30 21:28:57 +00:00
|
|
|
|
struct gdbarch *gdbarch = get_frame_arch (this_frame);
|
gdb: move the type cast into gdbarch_tdep
I built GDB for all targets on a x86-64/GNU-Linux system, and
then (accidentally) passed GDB a RISC-V binary, and asked GDB to "run"
the binary on the native target. I got this error:
(gdb) show architecture
The target architecture is set to "auto" (currently "i386").
(gdb) file /tmp/hello.rv32.exe
Reading symbols from /tmp/hello.rv32.exe...
(gdb) show architecture
The target architecture is set to "auto" (currently "riscv:rv32").
(gdb) run
Starting program: /tmp/hello.rv32.exe
../../src/gdb/i387-tdep.c:596: internal-error: i387_supply_fxsave: Assertion `tdep->st0_regnum >= I386_ST0_REGNUM' failed.
What's going on here is this; initially the architecture is i386, this
is based on the default architecture, which is set based on the native
target. After loading the RISC-V executable the architecture of the
current inferior is updated based on the architecture of the
executable.
When we "run", GDB does a fork & exec, with the inferior being
controlled through ptrace. GDB sees an initial stop from the inferior
as soon as the inferior comes to life. In response to this stop GDB
ends up calling save_stop_reason (linux-nat.c), which ends up trying
to read register from the inferior, to do this we end up calling
target_ops::fetch_registers, which, for the x86-64 native target,
calls amd64_linux_nat_target::fetch_registers.
After this I eventually end up in i387_supply_fxsave, different x86
based targets will end in different functions to fetch registers, but
it doesn't really matter which function we end up in, the problem is
this line, which is repeated in many places:
i386_gdbarch_tdep *tdep = (i386_gdbarch_tdep *) gdbarch_tdep (arch);
The problem here is that the ARCH in this line comes from the current
inferior, which, as we discussed above, will be a RISC-V gdbarch, the
tdep field will actually be of type riscv_gdbarch_tdep, not
i386_gdbarch_tdep. After this cast we are relying on undefined
behaviour, in my case I happen to trigger an assert, but this might
not always be the case.
The thing I tried that exposed this problem was of course, trying to
start an executable of the wrong architecture on a native target. I
don't think that the correct solution for this problem is to detect,
at the point of cast, that the gdbarch_tdep object is of the wrong
type, but, I did wonder, is there a way that we could protect
ourselves from incorrectly casting the gdbarch_tdep object?
I think that there is something we can do here, and this commit is the
first step in that direction, though no actual check is added by this
commit.
This commit can be split into two parts:
(1) In gdbarch.h and arch-utils.c. In these files I have modified
gdbarch_tdep (the function) so that it now takes a template argument,
like this:
template<typename TDepType>
static inline TDepType *
gdbarch_tdep (struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep_1 (gdbarch);
return static_cast<TDepType *> (tdep);
}
After this change we are no better protected, but the cast is now
done within the gdbarch_tdep function rather than at the call sites,
this leads to the second, much larger change in this commit,
(2) Everywhere gdbarch_tdep is called, we make changes like this:
- i386_gdbarch_tdep *tdep = (i386_gdbarch_tdep *) gdbarch_tdep (arch);
+ i386_gdbarch_tdep *tdep = gdbarch_tdep<i386_gdbarch_tdep> (arch);
There should be no functional change after this commit.
In the next commit I will build on this change to add an assertion in
gdbarch_tdep that checks we are casting to the correct type.
2022-05-19 13:20:17 +01:00
|
|
|
|
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
CORE_ADDR addr, base;
|
|
|
|
|
int i;
|
2004-04-23 01:02:32 +00:00
|
|
|
|
|
2008-04-30 21:28:57 +00:00
|
|
|
|
base = get_frame_register_unsigned (this_frame,
|
|
|
|
|
gdbarch_sp_regnum (gdbarch));
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
if (self == &ppcnbsd2_sigtramp)
|
|
|
|
|
addr = base + 0x10 + 2 * tdep->wordsize;
|
|
|
|
|
else
|
|
|
|
|
addr = base + 0x18 + 2 * tdep->wordsize;
|
|
|
|
|
for (i = 0; i < ppc_num_gprs; i++, addr += tdep->wordsize)
|
2004-04-23 01:02:32 +00:00
|
|
|
|
{
|
|
|
|
|
int regnum = i + tdep->ppc_gp0_regnum;
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
trad_frame_set_reg_addr (this_cache, regnum, addr);
|
2004-04-23 01:02:32 +00:00
|
|
|
|
}
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
trad_frame_set_reg_addr (this_cache, tdep->ppc_lr_regnum, addr);
|
|
|
|
|
addr += tdep->wordsize;
|
|
|
|
|
trad_frame_set_reg_addr (this_cache, tdep->ppc_cr_regnum, addr);
|
|
|
|
|
addr += tdep->wordsize;
|
|
|
|
|
trad_frame_set_reg_addr (this_cache, tdep->ppc_xer_regnum, addr);
|
|
|
|
|
addr += tdep->wordsize;
|
|
|
|
|
trad_frame_set_reg_addr (this_cache, tdep->ppc_ctr_regnum, addr);
|
|
|
|
|
addr += tdep->wordsize;
|
2007-11-16 Markus Deuling <deuling@de.ibm.com>
* m32r-rom.c (m32r_supply_register): Use get_regcache_arch to get at
the current architecture by regcache.
* ppcnbsd-nat.c (ppcnbsd_supply_pcb): Likewise.
* ppc-linux-nat.c (fetch_altivec_register, fetch_spe_register)
(fetch_register, supply_vrregset, fetch_ppc_registers)
(store_altivec_register, store_spe_register, store_register)
(fill_vrregset, store_ppc_registers): Likewise.
* ppcobsd-nat.c (ppcobsd_supply_pcb): Likewise.
* win32-nat.c (do_win32_fetch_inferior_registers)
(do_win32_store_inferior_registers): Likewise.
* procfs.c (procfs_fetch_registers, procfs_store_registers): Likewise.
* remote-m32r-sdi.c (m32r_fetch_registers)
(m32r_store_registers): Likewise.
* remote-sim.c (gdbsim_fetch_register, gdbsim_store_register): Likewise.
* trad-frame.c (trad_frame_alloc_saved_regs): Replace current_gdbarch by
gdbarch.
* user-regs.c (user_reg_map_name_to_regnum): Likewise.
* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call)
(do_ppc_sysv_return_value, ppc64_sysv_abi_push_dummy_call)
(ppc64_sysv_abi_return_value): Likewise.
* m32c-tdep.c (m32c_register_reggroup_p): Likewise.
* m2-lang.c (build_m2_types): Likewise.
* ppc-linux-tdep.c (ppc_linux_sigtramp_cache
* ppcnbsd-tdep.c (ppcnbsd_sigtramp_cache_init): Likewise.
* ppcobsd-tdep.c (ppcobsd_sigtramp_frame_cache): Likewise.
* rs6000-tdep.c (ppc_dwarf2_frame_init_reg): Likewise.
* m68hc11-tdep.c (m68hc11_frame_unwind_cache): Use get_frame_arch to
get at the current architecture by frame_info.
* gcore.c (derive_stack_segment): Likewise.
* shnbsd-nat.c (GETREGS_SUPPLIES): Add gdbarch parameter.
(shnbsd_fetch_inferior_registers, shnbsd_store_inferior_registers): Add
gdbarch to GETREGS_SUPPLIES call.
2007-11-16 04:53:46 +00:00
|
|
|
|
trad_frame_set_reg_addr (this_cache, gdbarch_pc_regnum (gdbarch),
|
2011-01-10 20:38:51 +00:00
|
|
|
|
addr); /* SRR0? */
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
addr += tdep->wordsize;
|
2004-04-23 01:02:32 +00:00
|
|
|
|
|
|
|
|
|
/* Construct the frame ID using the function start. */
|
|
|
|
|
trad_frame_set_id (this_cache, frame_id_build (base, func));
|
|
|
|
|
}
|
|
|
|
|
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
static const struct tramp_frame ppcnbsd_sigtramp =
|
|
|
|
|
{
|
|
|
|
|
SIGTRAMP_FRAME,
|
|
|
|
|
4,
|
|
|
|
|
{
|
2018-08-07 13:04:05 -06:00
|
|
|
|
{ 0x3821fff0, ULONGEST_MAX }, /* add r1,r1,-16 */
|
|
|
|
|
{ 0x4e800021, ULONGEST_MAX }, /* blrl */
|
|
|
|
|
{ 0x38610018, ULONGEST_MAX }, /* addi r3,r1,24 */
|
|
|
|
|
{ 0x38000127, ULONGEST_MAX }, /* li r0,295 */
|
|
|
|
|
{ 0x44000002, ULONGEST_MAX }, /* sc */
|
|
|
|
|
{ 0x38000001, ULONGEST_MAX }, /* li r0,1 */
|
|
|
|
|
{ 0x44000002, ULONGEST_MAX }, /* sc */
|
|
|
|
|
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX }
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
},
|
|
|
|
|
ppcnbsd_sigtramp_cache_init
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* NetBSD 2.0 introduced a slightly different signal trampoline. */
|
2004-04-23 01:02:32 +00:00
|
|
|
|
|
Fix redefinition errors in C++ mode
In C, we can forward declare static structure instances. That doesn't
work in C++ though. C++ treats these as definitions. So then the
compiler complains about symbol redefinition, like:
src/gdb/elfread.c:1569:29: error: redefinition of ‘const sym_fns elf_sym_fns_lazy_psyms’
src/gdb/elfread.c:53:29: error: ‘const sym_fns elf_sym_fns_lazy_psyms’ previously declared here
The intent of static here is naturally to avoid making these objects
visible outside the compilation unit. The equivalent in C++ would be
to instead define the objects in the anonymous namespace. But given
that it's desirable to leave the codebase compiling as both C and C++
for a while, this just makes the objects extern.
(base_breakpoint_ops is already declared in breakpoint.h, so we can
just remove the forward declare from breakpoint.c)
gdb/ChangeLog:
2015-02-11 Tom Tromey <tromey@redhat.com>
Pedro Alves <palves@redhat.com>
* breakpoint.c (base_breakpoint_ops): Delete.
* dwarf2loc.c (dwarf_expr_ctx_funcs): Make extern.
* elfread.c (elf_sym_fns_gdb_index, elf_sym_fns_lazy_psyms): Make extern.
* guile/guile.c (guile_extension_script_ops, guile_extension_ops): Make extern.
* ppcnbsd-tdep.c (ppcnbsd2_sigtramp): Make extern.
* python/py-arch.c (arch_object_type): Make extern.
* python/py-block.c (block_syms_iterator_object_type): Make extern.
* python/py-bpevent.c (breakpoint_event_object_type): Make extern.
* python/py-cmd.c (cmdpy_object_type): Make extern.
* python/py-continueevent.c (continue_event_object_type)
* python/py-event.h (GDBPY_NEW_EVENT_TYPE): Remove 'qual'
parameter. Update all callers.
* python/py-evtregistry.c (eventregistry_object_type): Make extern.
* python/py-exitedevent.c (exited_event_object_type): Make extern.
* python/py-finishbreakpoint.c (finish_breakpoint_object_type): Make extern.
* python/py-function.c (fnpy_object_type): Make extern.
* python/py-inferior.c (inferior_object_type, membuf_object_type): Make extern.
* python/py-infevents.c (call_pre_event_object_type)
(inferior_call_post_event_object_type).
(memory_changed_event_object_type): Make extern.
* python/py-infthread.c (thread_object_type): Make extern.
* python/py-lazy-string.c (lazy_string_object_type): Make extern.
* python/py-linetable.c (linetable_entry_object_type)
(linetable_object_type, ltpy_iterator_object_type): Make extern.
* python/py-newobjfileevent.c (new_objfile_event_object_type)
(clear_objfiles_event_object_type): Make extern.
* python/py-objfile.c (objfile_object_type): Make extern.
* python/py-param.c (parmpy_object_type): Make extern.
* python/py-progspace.c (pspace_object_type): Make extern.
* python/py-signalevent.c (signal_event_object_type): Make extern.
* python/py-symtab.c (symtab_object_type, sal_object_type): Make extern.
* python/py-type.c (type_object_type, field_object_type)
(type_iterator_object_type): Make extern.
* python/python.c (python_extension_script_ops)
(python_extension_ops): Make extern.
* stap-probe.c (stap_probe_ops): Make extern.
2015-02-11 11:20:21 +00:00
|
|
|
|
const struct tramp_frame ppcnbsd2_sigtramp =
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
{
|
2004-07-20 15:11:37 +00:00
|
|
|
|
SIGTRAMP_FRAME,
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
4,
|
|
|
|
|
{
|
2018-08-07 13:04:05 -06:00
|
|
|
|
{ 0x3821fff0, ULONGEST_MAX }, /* add r1,r1,-16 */
|
|
|
|
|
{ 0x4e800021, ULONGEST_MAX }, /* blrl */
|
|
|
|
|
{ 0x38610010, ULONGEST_MAX }, /* addi r3,r1,16 */
|
|
|
|
|
{ 0x38000127, ULONGEST_MAX }, /* li r0,295 */
|
|
|
|
|
{ 0x44000002, ULONGEST_MAX }, /* sc */
|
|
|
|
|
{ 0x38000001, ULONGEST_MAX }, /* li r0,1 */
|
|
|
|
|
{ 0x44000002, ULONGEST_MAX }, /* sc */
|
|
|
|
|
{ TRAMP_SENTINEL_INSN, ULONGEST_MAX }
|
2004-04-23 01:02:32 +00:00
|
|
|
|
},
|
|
|
|
|
ppcnbsd_sigtramp_cache_init
|
|
|
|
|
};
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
|
2004-04-23 01:02:32 +00:00
|
|
|
|
|
2002-05-28 18:43:08 +00:00
|
|
|
|
static void
|
|
|
|
|
ppcnbsd_init_abi (struct gdbarch_info info,
|
gdb, gdbserver, gdbsupport: fix leading space vs tabs issues
Many spots incorrectly use only spaces for indentation (for example,
there are a lot of spots in ada-lang.c). I've always found it awkward
when I needed to edit one of these spots: do I keep the original wrong
indentation, or do I fix it? What if the lines around it are also
wrong, do I fix them too? I probably don't want to fix them in the same
patch, to avoid adding noise to my patch.
So I propose to fix as much as possible once and for all (hopefully).
One typical counter argument for this is that it makes code archeology
more difficult, because git-blame will show this commit as the last
change for these lines. My counter counter argument is: when
git-blaming, you often need to do "blame the file at the parent commit"
anyway, to go past some other refactor that touched the line you are
interested in, but is not the change you are looking for. So you
already need a somewhat efficient way to do this.
Using some interactive tool, rather than plain git-blame, makes this
trivial. For example, I use "tig blame <file>", where going back past
the commit that changed the currently selected line is one keystroke.
It looks like Magit in Emacs does it too (though I've never used it).
Web viewers of Github and Gitlab do it too. My point is that it won't
really make archeology more difficult.
The other typical counter argument is that it will cause conflicts with
existing patches. That's true... but it's a one time cost, and those
are not conflicts that are difficult to resolve. I have also tried "git
rebase --ignore-whitespace", it seems to work well. Although that will
re-introduce the faulty indentation, so one needs to take care of fixing
the indentation in the patch after that (which is easy).
gdb/ChangeLog:
* aarch64-linux-tdep.c: Fix indentation.
* aarch64-ravenscar-thread.c: Fix indentation.
* aarch64-tdep.c: Fix indentation.
* aarch64-tdep.h: Fix indentation.
* ada-lang.c: Fix indentation.
* ada-lang.h: Fix indentation.
* ada-tasks.c: Fix indentation.
* ada-typeprint.c: Fix indentation.
* ada-valprint.c: Fix indentation.
* ada-varobj.c: Fix indentation.
* addrmap.c: Fix indentation.
* addrmap.h: Fix indentation.
* agent.c: Fix indentation.
* aix-thread.c: Fix indentation.
* alpha-bsd-nat.c: Fix indentation.
* alpha-linux-tdep.c: Fix indentation.
* alpha-mdebug-tdep.c: Fix indentation.
* alpha-nbsd-tdep.c: Fix indentation.
* alpha-obsd-tdep.c: Fix indentation.
* alpha-tdep.c: Fix indentation.
* amd64-bsd-nat.c: Fix indentation.
* amd64-darwin-tdep.c: Fix indentation.
* amd64-linux-nat.c: Fix indentation.
* amd64-linux-tdep.c: Fix indentation.
* amd64-nat.c: Fix indentation.
* amd64-obsd-tdep.c: Fix indentation.
* amd64-tdep.c: Fix indentation.
* amd64-windows-tdep.c: Fix indentation.
* annotate.c: Fix indentation.
* arc-tdep.c: Fix indentation.
* arch-utils.c: Fix indentation.
* arch/arm-get-next-pcs.c: Fix indentation.
* arch/arm.c: Fix indentation.
* arm-linux-nat.c: Fix indentation.
* arm-linux-tdep.c: Fix indentation.
* arm-nbsd-tdep.c: Fix indentation.
* arm-pikeos-tdep.c: Fix indentation.
* arm-tdep.c: Fix indentation.
* arm-tdep.h: Fix indentation.
* arm-wince-tdep.c: Fix indentation.
* auto-load.c: Fix indentation.
* auxv.c: Fix indentation.
* avr-tdep.c: Fix indentation.
* ax-gdb.c: Fix indentation.
* ax-general.c: Fix indentation.
* bfin-linux-tdep.c: Fix indentation.
* block.c: Fix indentation.
* block.h: Fix indentation.
* blockframe.c: Fix indentation.
* bpf-tdep.c: Fix indentation.
* break-catch-sig.c: Fix indentation.
* break-catch-syscall.c: Fix indentation.
* break-catch-throw.c: Fix indentation.
* breakpoint.c: Fix indentation.
* breakpoint.h: Fix indentation.
* bsd-uthread.c: Fix indentation.
* btrace.c: Fix indentation.
* build-id.c: Fix indentation.
* buildsym-legacy.h: Fix indentation.
* buildsym.c: Fix indentation.
* c-typeprint.c: Fix indentation.
* c-valprint.c: Fix indentation.
* c-varobj.c: Fix indentation.
* charset.c: Fix indentation.
* cli/cli-cmds.c: Fix indentation.
* cli/cli-decode.c: Fix indentation.
* cli/cli-decode.h: Fix indentation.
* cli/cli-script.c: Fix indentation.
* cli/cli-setshow.c: Fix indentation.
* coff-pe-read.c: Fix indentation.
* coffread.c: Fix indentation.
* compile/compile-cplus-types.c: Fix indentation.
* compile/compile-object-load.c: Fix indentation.
* compile/compile-object-run.c: Fix indentation.
* completer.c: Fix indentation.
* corefile.c: Fix indentation.
* corelow.c: Fix indentation.
* cp-abi.h: Fix indentation.
* cp-namespace.c: Fix indentation.
* cp-support.c: Fix indentation.
* cp-valprint.c: Fix indentation.
* cris-linux-tdep.c: Fix indentation.
* cris-tdep.c: Fix indentation.
* darwin-nat-info.c: Fix indentation.
* darwin-nat.c: Fix indentation.
* darwin-nat.h: Fix indentation.
* dbxread.c: Fix indentation.
* dcache.c: Fix indentation.
* disasm.c: Fix indentation.
* dtrace-probe.c: Fix indentation.
* dwarf2/abbrev.c: Fix indentation.
* dwarf2/attribute.c: Fix indentation.
* dwarf2/expr.c: Fix indentation.
* dwarf2/frame.c: Fix indentation.
* dwarf2/index-cache.c: Fix indentation.
* dwarf2/index-write.c: Fix indentation.
* dwarf2/line-header.c: Fix indentation.
* dwarf2/loc.c: Fix indentation.
* dwarf2/macro.c: Fix indentation.
* dwarf2/read.c: Fix indentation.
* dwarf2/read.h: Fix indentation.
* elfread.c: Fix indentation.
* eval.c: Fix indentation.
* event-top.c: Fix indentation.
* exec.c: Fix indentation.
* exec.h: Fix indentation.
* expprint.c: Fix indentation.
* f-lang.c: Fix indentation.
* f-typeprint.c: Fix indentation.
* f-valprint.c: Fix indentation.
* fbsd-nat.c: Fix indentation.
* fbsd-tdep.c: Fix indentation.
* findvar.c: Fix indentation.
* fork-child.c: Fix indentation.
* frame-unwind.c: Fix indentation.
* frame-unwind.h: Fix indentation.
* frame.c: Fix indentation.
* frv-linux-tdep.c: Fix indentation.
* frv-tdep.c: Fix indentation.
* frv-tdep.h: Fix indentation.
* ft32-tdep.c: Fix indentation.
* gcore.c: Fix indentation.
* gdb_bfd.c: Fix indentation.
* gdbarch.sh: Fix indentation.
* gdbarch.c: Re-generate
* gdbarch.h: Re-generate.
* gdbcore.h: Fix indentation.
* gdbthread.h: Fix indentation.
* gdbtypes.c: Fix indentation.
* gdbtypes.h: Fix indentation.
* glibc-tdep.c: Fix indentation.
* gnu-nat.c: Fix indentation.
* gnu-nat.h: Fix indentation.
* gnu-v2-abi.c: Fix indentation.
* gnu-v3-abi.c: Fix indentation.
* go32-nat.c: Fix indentation.
* guile/guile-internal.h: Fix indentation.
* guile/scm-cmd.c: Fix indentation.
* guile/scm-frame.c: Fix indentation.
* guile/scm-iterator.c: Fix indentation.
* guile/scm-math.c: Fix indentation.
* guile/scm-ports.c: Fix indentation.
* guile/scm-pretty-print.c: Fix indentation.
* guile/scm-value.c: Fix indentation.
* h8300-tdep.c: Fix indentation.
* hppa-linux-nat.c: Fix indentation.
* hppa-linux-tdep.c: Fix indentation.
* hppa-nbsd-nat.c: Fix indentation.
* hppa-nbsd-tdep.c: Fix indentation.
* hppa-obsd-nat.c: Fix indentation.
* hppa-tdep.c: Fix indentation.
* hppa-tdep.h: Fix indentation.
* i386-bsd-nat.c: Fix indentation.
* i386-darwin-nat.c: Fix indentation.
* i386-darwin-tdep.c: Fix indentation.
* i386-dicos-tdep.c: Fix indentation.
* i386-gnu-nat.c: Fix indentation.
* i386-linux-nat.c: Fix indentation.
* i386-linux-tdep.c: Fix indentation.
* i386-nto-tdep.c: Fix indentation.
* i386-obsd-tdep.c: Fix indentation.
* i386-sol2-nat.c: Fix indentation.
* i386-tdep.c: Fix indentation.
* i386-tdep.h: Fix indentation.
* i386-windows-tdep.c: Fix indentation.
* i387-tdep.c: Fix indentation.
* i387-tdep.h: Fix indentation.
* ia64-libunwind-tdep.c: Fix indentation.
* ia64-libunwind-tdep.h: Fix indentation.
* ia64-linux-nat.c: Fix indentation.
* ia64-linux-tdep.c: Fix indentation.
* ia64-tdep.c: Fix indentation.
* ia64-tdep.h: Fix indentation.
* ia64-vms-tdep.c: Fix indentation.
* infcall.c: Fix indentation.
* infcmd.c: Fix indentation.
* inferior.c: Fix indentation.
* infrun.c: Fix indentation.
* iq2000-tdep.c: Fix indentation.
* language.c: Fix indentation.
* linespec.c: Fix indentation.
* linux-fork.c: Fix indentation.
* linux-nat.c: Fix indentation.
* linux-tdep.c: Fix indentation.
* linux-thread-db.c: Fix indentation.
* lm32-tdep.c: Fix indentation.
* m2-lang.c: Fix indentation.
* m2-typeprint.c: Fix indentation.
* m2-valprint.c: Fix indentation.
* m32c-tdep.c: Fix indentation.
* m32r-linux-tdep.c: Fix indentation.
* m32r-tdep.c: Fix indentation.
* m68hc11-tdep.c: Fix indentation.
* m68k-bsd-nat.c: Fix indentation.
* m68k-linux-nat.c: Fix indentation.
* m68k-linux-tdep.c: Fix indentation.
* m68k-tdep.c: Fix indentation.
* machoread.c: Fix indentation.
* macrocmd.c: Fix indentation.
* macroexp.c: Fix indentation.
* macroscope.c: Fix indentation.
* macrotab.c: Fix indentation.
* macrotab.h: Fix indentation.
* main.c: Fix indentation.
* mdebugread.c: Fix indentation.
* mep-tdep.c: Fix indentation.
* mi/mi-cmd-catch.c: Fix indentation.
* mi/mi-cmd-disas.c: Fix indentation.
* mi/mi-cmd-env.c: Fix indentation.
* mi/mi-cmd-stack.c: Fix indentation.
* mi/mi-cmd-var.c: Fix indentation.
* mi/mi-cmds.c: Fix indentation.
* mi/mi-main.c: Fix indentation.
* mi/mi-parse.c: Fix indentation.
* microblaze-tdep.c: Fix indentation.
* minidebug.c: Fix indentation.
* minsyms.c: Fix indentation.
* mips-linux-nat.c: Fix indentation.
* mips-linux-tdep.c: Fix indentation.
* mips-nbsd-tdep.c: Fix indentation.
* mips-tdep.c: Fix indentation.
* mn10300-linux-tdep.c: Fix indentation.
* mn10300-tdep.c: Fix indentation.
* moxie-tdep.c: Fix indentation.
* msp430-tdep.c: Fix indentation.
* namespace.h: Fix indentation.
* nat/fork-inferior.c: Fix indentation.
* nat/gdb_ptrace.h: Fix indentation.
* nat/linux-namespaces.c: Fix indentation.
* nat/linux-osdata.c: Fix indentation.
* nat/netbsd-nat.c: Fix indentation.
* nat/x86-dregs.c: Fix indentation.
* nbsd-nat.c: Fix indentation.
* nbsd-tdep.c: Fix indentation.
* nios2-linux-tdep.c: Fix indentation.
* nios2-tdep.c: Fix indentation.
* nto-procfs.c: Fix indentation.
* nto-tdep.c: Fix indentation.
* objfiles.c: Fix indentation.
* objfiles.h: Fix indentation.
* opencl-lang.c: Fix indentation.
* or1k-tdep.c: Fix indentation.
* osabi.c: Fix indentation.
* osabi.h: Fix indentation.
* osdata.c: Fix indentation.
* p-lang.c: Fix indentation.
* p-typeprint.c: Fix indentation.
* p-valprint.c: Fix indentation.
* parse.c: Fix indentation.
* ppc-linux-nat.c: Fix indentation.
* ppc-linux-tdep.c: Fix indentation.
* ppc-nbsd-nat.c: Fix indentation.
* ppc-nbsd-tdep.c: Fix indentation.
* ppc-obsd-nat.c: Fix indentation.
* ppc-ravenscar-thread.c: Fix indentation.
* ppc-sysv-tdep.c: Fix indentation.
* ppc64-tdep.c: Fix indentation.
* printcmd.c: Fix indentation.
* proc-api.c: Fix indentation.
* producer.c: Fix indentation.
* producer.h: Fix indentation.
* prologue-value.c: Fix indentation.
* prologue-value.h: Fix indentation.
* psymtab.c: Fix indentation.
* python/py-arch.c: Fix indentation.
* python/py-bpevent.c: Fix indentation.
* python/py-event.c: Fix indentation.
* python/py-event.h: Fix indentation.
* python/py-finishbreakpoint.c: Fix indentation.
* python/py-frame.c: Fix indentation.
* python/py-framefilter.c: Fix indentation.
* python/py-inferior.c: Fix indentation.
* python/py-infthread.c: Fix indentation.
* python/py-objfile.c: Fix indentation.
* python/py-prettyprint.c: Fix indentation.
* python/py-registers.c: Fix indentation.
* python/py-signalevent.c: Fix indentation.
* python/py-stopevent.c: Fix indentation.
* python/py-stopevent.h: Fix indentation.
* python/py-threadevent.c: Fix indentation.
* python/py-tui.c: Fix indentation.
* python/py-unwind.c: Fix indentation.
* python/py-value.c: Fix indentation.
* python/py-xmethods.c: Fix indentation.
* python/python-internal.h: Fix indentation.
* python/python.c: Fix indentation.
* ravenscar-thread.c: Fix indentation.
* record-btrace.c: Fix indentation.
* record-full.c: Fix indentation.
* record.c: Fix indentation.
* reggroups.c: Fix indentation.
* regset.h: Fix indentation.
* remote-fileio.c: Fix indentation.
* remote.c: Fix indentation.
* reverse.c: Fix indentation.
* riscv-linux-tdep.c: Fix indentation.
* riscv-ravenscar-thread.c: Fix indentation.
* riscv-tdep.c: Fix indentation.
* rl78-tdep.c: Fix indentation.
* rs6000-aix-tdep.c: Fix indentation.
* rs6000-lynx178-tdep.c: Fix indentation.
* rs6000-nat.c: Fix indentation.
* rs6000-tdep.c: Fix indentation.
* rust-lang.c: Fix indentation.
* rx-tdep.c: Fix indentation.
* s12z-tdep.c: Fix indentation.
* s390-linux-tdep.c: Fix indentation.
* score-tdep.c: Fix indentation.
* ser-base.c: Fix indentation.
* ser-mingw.c: Fix indentation.
* ser-uds.c: Fix indentation.
* ser-unix.c: Fix indentation.
* serial.c: Fix indentation.
* sh-linux-tdep.c: Fix indentation.
* sh-nbsd-tdep.c: Fix indentation.
* sh-tdep.c: Fix indentation.
* skip.c: Fix indentation.
* sol-thread.c: Fix indentation.
* solib-aix.c: Fix indentation.
* solib-darwin.c: Fix indentation.
* solib-frv.c: Fix indentation.
* solib-svr4.c: Fix indentation.
* solib.c: Fix indentation.
* source.c: Fix indentation.
* sparc-linux-tdep.c: Fix indentation.
* sparc-nbsd-tdep.c: Fix indentation.
* sparc-obsd-tdep.c: Fix indentation.
* sparc-ravenscar-thread.c: Fix indentation.
* sparc-tdep.c: Fix indentation.
* sparc64-linux-tdep.c: Fix indentation.
* sparc64-nbsd-tdep.c: Fix indentation.
* sparc64-obsd-tdep.c: Fix indentation.
* sparc64-tdep.c: Fix indentation.
* stabsread.c: Fix indentation.
* stack.c: Fix indentation.
* stap-probe.c: Fix indentation.
* stubs/ia64vms-stub.c: Fix indentation.
* stubs/m32r-stub.c: Fix indentation.
* stubs/m68k-stub.c: Fix indentation.
* stubs/sh-stub.c: Fix indentation.
* stubs/sparc-stub.c: Fix indentation.
* symfile-mem.c: Fix indentation.
* symfile.c: Fix indentation.
* symfile.h: Fix indentation.
* symmisc.c: Fix indentation.
* symtab.c: Fix indentation.
* symtab.h: Fix indentation.
* target-float.c: Fix indentation.
* target.c: Fix indentation.
* target.h: Fix indentation.
* tic6x-tdep.c: Fix indentation.
* tilegx-linux-tdep.c: Fix indentation.
* tilegx-tdep.c: Fix indentation.
* top.c: Fix indentation.
* tracefile-tfile.c: Fix indentation.
* tracepoint.c: Fix indentation.
* tui/tui-disasm.c: Fix indentation.
* tui/tui-io.c: Fix indentation.
* tui/tui-regs.c: Fix indentation.
* tui/tui-stack.c: Fix indentation.
* tui/tui-win.c: Fix indentation.
* tui/tui-winsource.c: Fix indentation.
* tui/tui.c: Fix indentation.
* typeprint.c: Fix indentation.
* ui-out.h: Fix indentation.
* unittests/copy_bitwise-selftests.c: Fix indentation.
* unittests/memory-map-selftests.c: Fix indentation.
* utils.c: Fix indentation.
* v850-tdep.c: Fix indentation.
* valarith.c: Fix indentation.
* valops.c: Fix indentation.
* valprint.c: Fix indentation.
* valprint.h: Fix indentation.
* value.c: Fix indentation.
* value.h: Fix indentation.
* varobj.c: Fix indentation.
* vax-tdep.c: Fix indentation.
* windows-nat.c: Fix indentation.
* windows-tdep.c: Fix indentation.
* xcoffread.c: Fix indentation.
* xml-syscall.c: Fix indentation.
* xml-tdesc.c: Fix indentation.
* xstormy16-tdep.c: Fix indentation.
* xtensa-config.c: Fix indentation.
* xtensa-linux-nat.c: Fix indentation.
* xtensa-linux-tdep.c: Fix indentation.
* xtensa-tdep.c: Fix indentation.
gdbserver/ChangeLog:
* ax.cc: Fix indentation.
* dll.cc: Fix indentation.
* inferiors.h: Fix indentation.
* linux-low.cc: Fix indentation.
* linux-nios2-low.cc: Fix indentation.
* linux-ppc-ipa.cc: Fix indentation.
* linux-ppc-low.cc: Fix indentation.
* linux-x86-low.cc: Fix indentation.
* linux-xtensa-low.cc: Fix indentation.
* regcache.cc: Fix indentation.
* server.cc: Fix indentation.
* tracepoint.cc: Fix indentation.
gdbsupport/ChangeLog:
* common-exceptions.h: Fix indentation.
* event-loop.cc: Fix indentation.
* fileio.cc: Fix indentation.
* filestuff.cc: Fix indentation.
* gdb-dlfcn.cc: Fix indentation.
* gdb_string_view.h: Fix indentation.
* job-control.cc: Fix indentation.
* signals.cc: Fix indentation.
Change-Id: I4bad7ae6be0fbe14168b8ebafb98ffe14964a695
2020-11-02 10:26:14 -05:00
|
|
|
|
struct gdbarch *gdbarch)
|
2002-05-28 18:43:08 +00:00
|
|
|
|
{
|
2020-03-16 19:02:22 +01:00
|
|
|
|
nbsd_init_abi (info, gdbarch);
|
|
|
|
|
|
2003-10-10 21:32:47 +00:00
|
|
|
|
/* For NetBSD, this is an on again, off again thing. Some systems
|
|
|
|
|
do use the broken struct convention, and some don't. */
|
2003-11-07 20:44:51 +00:00
|
|
|
|
set_gdbarch_return_value (gdbarch, ppcnbsd_return_value);
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
|
|
|
|
|
/* NetBSD uses SVR4-style shared libraries. */
|
|
|
|
|
set_solib_svr4_fetch_link_map_offsets
|
|
|
|
|
(gdbarch, svr4_ilp32_fetch_link_map_offsets);
|
|
|
|
|
|
2014-09-10 08:42:07 +00:00
|
|
|
|
set_gdbarch_iterate_over_regset_sections
|
|
|
|
|
(gdbarch, ppcnbsd_iterate_over_regset_sections);
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
|
2004-04-23 01:02:32 +00:00
|
|
|
|
tramp_frame_prepend_unwinder (gdbarch, &ppcnbsd_sigtramp);
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
tramp_frame_prepend_unwinder (gdbarch, &ppcnbsd2_sigtramp);
|
2002-05-28 18:43:08 +00:00
|
|
|
|
}
|
|
|
|
|
|
2020-01-13 14:01:38 -05:00
|
|
|
|
void _initialize_ppcnbsd_tdep ();
|
2002-05-28 18:43:08 +00:00
|
|
|
|
void
|
2020-01-13 14:01:38 -05:00
|
|
|
|
_initialize_ppcnbsd_tdep ()
|
2002-05-28 18:43:08 +00:00
|
|
|
|
{
|
2016-12-09 16:08:49 +00:00
|
|
|
|
gdbarch_register_osabi (bfd_arch_powerpc, 0, GDB_OSABI_NETBSD,
|
2002-05-28 18:43:08 +00:00
|
|
|
|
ppcnbsd_init_abi);
|
|
|
|
|
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
/* Avoid initializing the register offsets again if they were
|
Normalize names of the NetBSD files
The files used to be named 'nbsd', which incorrectly reflects
the name of the OS and confuses it with other BSD derived OSes.
gdb/ChangeLog:
* Makefile.in (ALL_64_TARGET_OBS, ALL_TARGET_OBS)
HFILES_NO_SRCDIR, ALLDEPFILES): Rename files.
* alpha-bsd-nat.c: Adjust include.
* alpha-bsd-tdep.h: Adjust comment.
* alpha-nbsd-tdep.c: Rename to ...
* alpha-netbsd-tdep.c: ... this, adjust include.
* amd64-nbsd-nat.c: Rename to ...
* amd64-netbsd-nat.c: ... this, adjust include.
* amd64-nbsd-tdep.c: Rename to ...
* amd64-netbsd-tdep.c: ... this, adjust include.
* amd64-tdep.h: Adjust include.
* arm-nbsd-nat.c: Rename to ...
* arm-netbsd-nat.c: ... this, adjust include.
* arm-nbsd-tdep.c: Rename to ...
* arm-netbsd-tdep.c: ... this, adjust include.
* arm-nbsd-tdep.h: Rename to ...
* arm-netbsd-tdep.h: ... this, adjust include.
* configure.nat: Adjust file lists.
* configure.tgt: Likewise.
* hppa-nbsd-nat.c: Rename to ...
* hppa-netbsd-nat.c: ... this, adjust include.
* hppa-nbsd-tdep.c: Rename to ...
* hppa-netbsd-tdep.c: ... this, adjust include.
* i386-nbsd-nat.c: Rename to ...
* i386-netbsd-nat.c: ... this, adjust include.
* i386-nbsd-tdep.c: Rename to ...
* i386-netbsd-tdep.c: ... this, adjust include.
* m68k-bsd-nat.c: Adjust include.
* mips-nbsd-nat.c: Rename to ...
* mips-netbsd-nat.c: ... this, adjust include.
* mips-nbsd-tdep.c: Rename to ...
* mips-netbsd-tdep.c: ... this, adjust include.
* mips-nbsd-tdep.h: Rename to ...
* mips-netbsd-tdep.h: ... this.
* nbsd-nat.c: Rename to ...
* netbsd-nat.c: ... this, adjust include.
* nbsd-nat.h: Rename to ...
* netbsd-nat.h: ... this, adjust include.
* nbsd-tdep.c: Rename to ...
* netbsd-tdep.c: ... this, adjust include.
* nbsd-tdep.h: Rename to ...
* netbsd-tdep.h: ... this.
* ppc-nbsd-nat.c: Rename to ...
* ppc-netbsd-nat.c: ... this, adjust include.
* ppc-nbsd-tdep.c: Rename to ...
* ppc-netbsd-tdep.c: ... this, adjust include and comment.
* ppc-nbsd-tdep.h: Rename to ...
* ppc-netbsd-tdep.h: ... this.
* sh-nbsd-nat.c: Rename to ...
* sh-netbsd-nat.c: ... this, adjust include.
* sh-nbsd-tdep.c: Rename to ...
* sh-netbsd-tdep.c: ... this, adjust include.
* sparc-nbsd-nat.c: Rename to ...
* sparc-netbsd-nat.c: ... this.
* sparc-nbsd-tdep.c: Rename to ...
* sparc-netbsd-tdep.c: ... this, adjust include.
* sparc64-nbsd-nat.c: Rename to ...
* sparc64-netbsd-nat.c: ... this.
* sparc64-nbsd-tdep.c: Rename to ...
* sparc64-netbsd-tdep.c: ... this, adjust include.
* sparc64-tdep.h: Adjust comment.
* vax-bsd-nat.c: Adjust include.
* vax-nbsd-tdep.c: Rename to ...
* vax-netbsd-tdep.c: ... this, adjust include.
2020-10-06 21:36:22 +02:00
|
|
|
|
already initialized by ppc-netbsd-nat.c. */
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
if (ppcnbsd_reg_offsets.pc_offset == 0)
|
|
|
|
|
{
|
|
|
|
|
/* General-purpose registers. */
|
|
|
|
|
ppcnbsd_reg_offsets.r0_offset = 0;
|
* ppc-linux-nat.c (right_fill_reg): Delete.
(supply_gregset): Use ppc_supply_gregset.
(supply_fpregset): Use ppc_supply_fpregset.
(fill_gregset): Use ppc_collect_gregset.
(fill_fpregset): Use ppc_collect_fpregset.
* ppc-linux-tdep.c (PPC_LINUX_PT_*): Don't define.
(right_supply_register, ppc_linux_supply_gregset): Delete.
(ppc32_linux_supply_gregset, ppc64_linux_supply_gregset): Delete.
(ppc_linux_supply_fpregset): Delete.
(ppc_linux_collect_gregset): New function.
(ppc32_linux_reg_offsets, ppc64_linux_reg_offsets): New.
(ppc32_linux_gregset, ppc64_linux_gregset): Update to use reg offsets,
ppc_linux_supply_gregset, and ppc_collect_gregset.
(ppc_linux_fpregset): Rename to ppc32_linux_fpregset and update.
(ppc_linux_gregset, ppc_linux_fpregset): New functions.
(ppc_linux_regset_from_core_section): Update.
* ppc-tdep.h (ppc_linux_gregset, ppc_linux_fpregset): Declare.
(ppc_linux_supply_gregset, ppc_linux_supply_fpregset): Delete.
(struct ppc_reg_offsets): Add gpr_size, xr_size, fpscr_size fields.
* ppcobsd-tdep.c (ppcobsd_supply_gregset): Delete FIXME and assert.
(ppcobsd_collect_gregset): Likewise.
(_initialize_ppcnbsd_tdep): Init gpr_size, xr_size, fpscr_size.
* ppcnbsd-tdep.c (_initialize_ppcobsd_tdep): Likewise.
* ppcobsd-nat.c (_initialize_ppcobsd_nat): Likewise.
* rs6000-aix-tdep.c (rs6000_aix32_reg_offsets): Likewise.
(rs6000_aix64_reg_offsets): Likewise.
(rs6000_aix_supply_regset): Call ppc_supply_fpregset without testing
ppc_floating_point_unit_p.
(rs6000_aix_collect_regset): Similarly.
* rs6000-tdep.c (ppc_supply_reg): Add regsize param. Adjust offset
when regsize is larger than regcache register size.
(ppc_collect_reg): Similarly zero pad when regsize is larger than
regcache register size.
(ppc_greg_offset): New function, split out from..
(ppc_supply_gregset): ..here. Separate code handling all regs from
single reg case. Correct xer offset.
(ppc_fpreg_offset): New function, split out from..
(ppc_supply_fpregset): ..here. Separate code handling all regs from
single reg case.
(ppc_collect_gregset, ppc_collect_fpregset): Likewise.
(ppc_supply_fpregset, ppc_collect_fpregset): Don't assert we have
a fp unit, instead return if no fp.
2007-08-30 13:13:59 +00:00
|
|
|
|
ppcnbsd_reg_offsets.gpr_size = 4;
|
|
|
|
|
ppcnbsd_reg_offsets.xr_size = 4;
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
ppcnbsd_reg_offsets.lr_offset = 128;
|
|
|
|
|
ppcnbsd_reg_offsets.cr_offset = 132;
|
|
|
|
|
ppcnbsd_reg_offsets.xer_offset = 136;
|
|
|
|
|
ppcnbsd_reg_offsets.ctr_offset = 140;
|
|
|
|
|
ppcnbsd_reg_offsets.pc_offset = 144;
|
|
|
|
|
ppcnbsd_reg_offsets.ps_offset = -1;
|
|
|
|
|
ppcnbsd_reg_offsets.mq_offset = -1;
|
|
|
|
|
|
|
|
|
|
/* Floating-point registers. */
|
|
|
|
|
ppcnbsd_reg_offsets.f0_offset = 0;
|
|
|
|
|
ppcnbsd_reg_offsets.fpscr_offset = 256;
|
* ppc-linux-nat.c (right_fill_reg): Delete.
(supply_gregset): Use ppc_supply_gregset.
(supply_fpregset): Use ppc_supply_fpregset.
(fill_gregset): Use ppc_collect_gregset.
(fill_fpregset): Use ppc_collect_fpregset.
* ppc-linux-tdep.c (PPC_LINUX_PT_*): Don't define.
(right_supply_register, ppc_linux_supply_gregset): Delete.
(ppc32_linux_supply_gregset, ppc64_linux_supply_gregset): Delete.
(ppc_linux_supply_fpregset): Delete.
(ppc_linux_collect_gregset): New function.
(ppc32_linux_reg_offsets, ppc64_linux_reg_offsets): New.
(ppc32_linux_gregset, ppc64_linux_gregset): Update to use reg offsets,
ppc_linux_supply_gregset, and ppc_collect_gregset.
(ppc_linux_fpregset): Rename to ppc32_linux_fpregset and update.
(ppc_linux_gregset, ppc_linux_fpregset): New functions.
(ppc_linux_regset_from_core_section): Update.
* ppc-tdep.h (ppc_linux_gregset, ppc_linux_fpregset): Declare.
(ppc_linux_supply_gregset, ppc_linux_supply_fpregset): Delete.
(struct ppc_reg_offsets): Add gpr_size, xr_size, fpscr_size fields.
* ppcobsd-tdep.c (ppcobsd_supply_gregset): Delete FIXME and assert.
(ppcobsd_collect_gregset): Likewise.
(_initialize_ppcnbsd_tdep): Init gpr_size, xr_size, fpscr_size.
* ppcnbsd-tdep.c (_initialize_ppcobsd_tdep): Likewise.
* ppcobsd-nat.c (_initialize_ppcobsd_nat): Likewise.
* rs6000-aix-tdep.c (rs6000_aix32_reg_offsets): Likewise.
(rs6000_aix64_reg_offsets): Likewise.
(rs6000_aix_supply_regset): Call ppc_supply_fpregset without testing
ppc_floating_point_unit_p.
(rs6000_aix_collect_regset): Similarly.
* rs6000-tdep.c (ppc_supply_reg): Add regsize param. Adjust offset
when regsize is larger than regcache register size.
(ppc_collect_reg): Similarly zero pad when regsize is larger than
regcache register size.
(ppc_greg_offset): New function, split out from..
(ppc_supply_gregset): ..here. Separate code handling all regs from
single reg case. Correct xer offset.
(ppc_fpreg_offset): New function, split out from..
(ppc_supply_fpregset): ..here. Separate code handling all regs from
single reg case.
(ppc_collect_gregset, ppc_collect_fpregset): Likewise.
(ppc_supply_fpregset, ppc_collect_fpregset): Don't assert we have
a fp unit, instead return if no fp.
2007-08-30 13:13:59 +00:00
|
|
|
|
ppcnbsd_reg_offsets.fpscr_size = 4;
|
* ppcnbsd-tdep.h: Update copyright year. Include <stddef.h>
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove prototypes.
(struct regset): Add forward declaration.
(ppcnbsd_gregset, ppcnbsd_fpregset): Extern declarations.
* ppcnbsd-tdep.c: Update copyright year. Include "gdbtypes.h",
"regset.h" and "gdb_string.h". Don't include "breakpoint.h",
"value.h", target.h and nbsd-tdep.h". Reorder includes.
(REG_FIXREG_OFFSET, REG_LR_OFFSET, REG_CR_OFFSET, REG_XER_OFFSET)
(REG_CTR_OFFSET, REG_PC_OFFSET, SIZEOF_STRUCT_REG)
(FPREG_FPR_OFFSET, FPREG_FPSCR_OFFSET, SIZEOF_STRUCT_FPREG):
Remove macros.
(ppcnbsd_supply_reg, ppcnbsd_fill_reg, ppcnbsd_supply_fpreg)
(ppcnbsd_fill_fpreg): Remove functions.
(fetch_core_registers, fetch_elfcore_registers): Remove functions.
(ppcnbsd_core_fns, ppcnbsd_elfcore_fns): Remove variables.
(ppcnbsd_reg_offsets): New variable.
(ppcnbsd_gregset, ppcnbsd_fpregset): New variables.
(ppcnbsd_sigtramp_cache_init): Deal with new signal trampoline
introduced in NetBSD 2.0.
(ppcnbsd_sigtramp): Provide complete signal trampoline.
(ppcnbsd2_sigtramp): New variable.
(ppcnbsd_init_abi): Set svr4_fetch_link_map_offsets to
svr4_ilp32_fetch_link_map_offsets. Set regset_from_core_section.
Add ppcnbs2_sigtramp unwinder.
(_initialize_ppcnbsd_tdep): Don't use deprecated_add_core_fns.
Initialize ppcnbsd_reg_offsets.
* ppcnbsd-nat.c: Update copyright year. Reorder includes.
(getregs_supplies): Use regnum instead of regno.
(getfpregs_supplies): Likewise.
(ppcnbsd_fetch_inferior_registers): Likewise. Call
ppc_supply_gregset and ppc_suppply_fpregset instead of
ppcnbsd_supply_reg and ppcnbsd_supply_fpreg
(ppcnbsd_store_inferior_registers): Likewise. Call
ppc_collect_gregset and ppc_collect_fpregset instead of
ppcnbsd_fill_reg and ppcnbsd_fill_fpreg.
(ppcnbsd_supply_pcb): Use `gdb_byte *' instead of `char *'.
(_initialize_ppcnbsd_nat): Add some whitespace.
* Makefile.in (ppcnbsd-nat.o, ppcnbsd-tdep.o): Update dependencies.
* config/powerpc/nbsd.mh (NATDEPFILES): Remove infptrace.o.
(NAT_FILE): Remove.
* config/powerpc/nbsd.mt (TDEPFILES): Remove nbsd-tdep.o.
2006-05-12 20:53:15 +00:00
|
|
|
|
|
|
|
|
|
}
|
2002-05-28 18:43:08 +00:00
|
|
|
|
}
|