mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
abf516c693
This patch implements removal of Cell/B.E. support, including - Support for the spu-*-* target - Support for native stand-alone SPU debugging - Support for integrated debugging of combined PPU/SPU applications - Remote debugging (gdbserver) support for all the above. The patch also removes the TARGET_OBJECT_SPU target object type, as this is available only on Cell/B.E. targets, including - Native Linux support - Core file support (including core file generation) - Remote target support, including removal of the qXfer:spu:read and qXfer:spu:write remote protocal packets and associated support in gdbserver. gdb/ChangeLog 2019-09-20 Ulrich Weigand <uweigand@de.ibm.com> * NEWS: Mention that Cell/B.E. debugging support was removed. * MAINTAINERS: Remove spu target. * config/djgpp/fnchange.lst: Remove entries for removed files. * Makefile.in (ALL_TARGET_OBS): Remove solib-spu.o, spu-multiarch.o, and spu-tdep.o. (HFILES_NO_SRCDIR): Remove solib-spu.h and spu-tdep.h. (ALLDEPFILES): Remove solib-spu.c, spu-linux-nat.c, spu-multiarch.c, and spu-tdep.c. * spu-linux-nat.c: Remove file. * spu-multiarch.c: Remove file. * spu-tdep.c: Remove file. * spu-tdep.h: Remove file. * solib-spu.c: Remove file. * solib-spu.h: Remove file. * configure.host (powerpc64*-*-linux*): Remove Cell/B.E. support. * configure.nat (spu-linux): Remove. * configure.tgt (powerpc*-*-linux*): Remove solib-spu.o and solib-multiarch.o from gdb_target_obs. (spu*-*-*): Remove. * arch/ppc-linux-common.h (struct ppc_linux_features): Remove "cell" feature flag. (ppc_linux_no_features): Update. * arch/ppc-linux-common.c (ppc_linux_match_description): Remove Cell/B.E. support. * arch/ppc-linux-tdesc.h (tdesc_powerpc_cell32l): Remove declaration. (tdesc_powerpc_cell64l): Likewise. * nat/ppc-linux.h (PPC_FEATURE_CELL): Remove. * ppc-linux-nat.c (ppc_linux_nat_target::read_description): Remove Cell/B.E. support. * ppc-linux-tdep.h: Do not include "solib-spu.h" or "spu-tdep.h". Do not include "features/rs6000/powerpc-cell32l.c" or "features/rs6000/powerpc-cell64l.c". (ppc_linux_spu_section): Remove. (ppc_linux_core_read_description): Remove Cell/B.E. support. (spe_context_objfile, spe_context_lm_addr, spe_context_offset, spe_context_cache_ptid, spe_context_cache_ptid): Remove. (ppc_linux_spe_context_lookup): Remove. (ppc_linux_spe_context_inferior_created): Remove. (ppc_linux_spe_context_solib_loaded): Remove. (ppc_linux_spe_context_solib_unloaded): Remove. (ppc_linux_spe_context): Remove. (struct ppu2spu_cache): Remove. (ppu2spu_prev_arch, ppu2spu_this_id, ppu2spu_prev_register): Remove. (struct ppu2spu_data): Remove. (ppu2spu_unwind_register, ppu2spu_sniffer, ppu2spu_dealloc_cache, ppu2spu_unwind): Remove. (ppc_linux_init_abi): Remove Cell/B.E. support. * rs6000-tdep.h (rs6000_gdbarch_init): Remove Cell/B.E. support. * features/Makefile (rs6000/powerpc-cell32l-expedite): Remove. (rs6000/powerpc-cell64l-expedite): Likewise (WHICH): Remove rs6000/powerpc-cell32l and rs6000/powerpc-cell64l. (XMLTOC): Remove rs6000/powerpc-cell32l.xml and rs6000/powerpc-cell64l.xml. * features/rs6000/powerpc-cell32l.xml: Remove. * features/rs6000/powerpc-cell64l.xml: Likewise. * features/rs6000/powerpc-cell32l.c: Remove generated file. * features/rs6000/powerpc-cell64l.c: Likewise. * regformats/rs6000/powerpc-cell32l.dat: Remove generated file. * regformats/rs6000/powerpc-cell64l.dat: Likewise. * regformats/reg-spu.dat: Remove. * target.h (enum target_object): Remove TARGET_OBJECT_SPU. * corelow.c (struct spuid_list): Remove. (add_to_spuid_list): Remove. (core_target::xfer_partial): Remove support for TARGET_OBJECT_SPU. * remote.c (PACKET_qXfer_spu_read, PACKET_qXfer_spu_write): Remove. (remote_protocol_features): Remove associated entries. (_initialize_remote): No longer initialize them. (remote_target::xfer_partial): Remove support for TARGET_OBJECT_SPU. * linux-nat.c (SPUFS_MAGIC): Remove. (linux_proc_xfer_spu): Remove. (spu_enumerate_spu_ids): Remove. (linux_nat_target::xfer_partial): Remove support for TARGET_OBJECT_SPU. * linux-tdep.c (-linux_spu_make_corefile_notes): Remove. (linux_make_corefile_notes): No longer call it. * regcache.c (cooked_read_test): Remove bfd_arch_spu special case. (cooked_write_test): Likewise. gdb/doc/ChangeLog 2019-09-20 Ulrich Weigand <uweigand@de.ibm.com> * doc/gdb.texinfo (Remote Configuration): Remove documentation for qXfer:spu:read and qXfer:spu:write. (General Query Packets): Likewise. (Cell Broadband Engine SPU architecture): Remove subsection. gdb/gdbserver/ChangeLog 2019-09-20 Ulrich Weigand <uweigand@de.ibm.com> * configure.srv (ipa_ppc_linux_regobj): Remove powerpc-cell32l-ipa.o and powerpc-cell64l-ipa.o. (powerpc*-*-linux*): Remove powerpc-cell32l.o and powerpc-cell64l.o from srv_regobj. Remove rs6000/powerpc-cell32l.xml and rs6000/powerpc-cell64l.xml from srv_xmlfiles. (spu*-*-*): Remove. * spu-low.c: Remove file. * linux-ppc-low.c (INSTR_SC, NR_spu_run): Remove. (parse_spufs_run): Remove. (ppc_get_pc): Remove Cell/B.E. support. (ppc_set_pc): Likewise. (ppc_breakpoint_at): Likewise. (ppc_arch_setup): Likewise. (ppc_get_ipa_tdesc_idx): Do not handle tdesc_powerpc_cell64l or tdesc_powerpc_cell32l. (initialize_low_arch): Do not call init_registers_powerpc_cell64l or init_registers_powerpc_cell32l. * linux-ppc-ipa.c (get_ipa_tdesc): Do not handle PPC_TDESC_CELL. (initialize_low_tracepoint): Do not call init_registers_powerpc_cell64l or init_registers_powerpc_cell32l. * linux-ppc-tdesc-init.h (PPC_TDESC_CELL): Mark as unused. (init_registers_powerpc_cell32l): Remove prototype. (init_registers_powerpc_cell64l): Likewise. * target.h (struct target_ops): Remove qxfer_spu member. * server.c (handle_qxfer_spu): Remove. (qxfer_packets): Remove entry for "spu". (handle_query): No longer support qXfer:spu:read or qXfer:spu:write. * linux-low.c (SPUFS_MAGIC): Remove. (spu_enumerate_spu_ids): Remove. (linux_qxfer_spu): Remove. (linux_target_ops): Remove qxfer_spu member. * lynx-low.c (lynx_target_ops): Remove qxfer_spu member. * nto-low.c (nto_target_ops): Remove qxfer_spu member. * win32-low.c (win32_target_ops): Remove qxfer_spu member. gdb/testsuite/ChangeLog 2019-09-20 Ulrich Weigand <uweigand@de.ibm.com> * gdb.arch/spu-info.exp: Remove file. * gdb.arch/spu-info.c: Remove file. * gdb.arch/spu-ls.exp: Remove file. * gdb.arch/spu-ls.c: Remove file. * gdb.asm/asm-source.exp: Remove support for spu*-*-*. * gdb.asm/spu.inc: Remove file. * gdb.base/dump.exp: Remove support for spu*-*-*. * gdb.base/stack-checking.exp: Likewise. * gdb.base/overlays.exp: Likewise. * gdb.base/ovlymgr.c: Likewise. * gdb.base/spu.ld: Remove file. * gdb.cp/bs15503.exp: Remove support for spu*-*-*. * gdb.cp/cpexprs.exp: Likewise. * gdb.cp/exception.exp: Likewise. * gdb.cp/gdb2495.exp: Likewise. * gdb.cp/mb-templates.exp: Likewise. * gdb.cp/pr9167.exp: Likewise. * gdb.cp/userdef.exp: Likewise. * gdb.xml/tdesc-regs.exp: Remove support for spu*-*-*. * gdb.cell: Remove directory. * lib/cell.exp: Remove file.
166 lines
4.4 KiB
C
166 lines
4.4 KiB
C
/* Copyright (C) 1995-2019 Free Software Foundation, 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
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(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
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef NAT_PPC_LINUX_H
|
|
#define NAT_PPC_LINUX_H
|
|
|
|
#include <asm/ptrace.h>
|
|
#include <asm/cputable.h>
|
|
|
|
/* This sometimes isn't defined. */
|
|
#ifndef PT_ORIG_R3
|
|
#define PT_ORIG_R3 34
|
|
#endif
|
|
#ifndef PT_TRAP
|
|
#define PT_TRAP 40
|
|
#endif
|
|
|
|
/* The PPC_FEATURE_* defines should be provided by <asm/cputable.h>.
|
|
If they aren't, we can provide them ourselves (their values are fixed
|
|
because they are part of the kernel ABI). They are used in the AT_HWCAP
|
|
entry of the AUXV. */
|
|
#ifndef PPC_FEATURE_BOOKE
|
|
#define PPC_FEATURE_BOOKE 0x00008000
|
|
#endif
|
|
#ifndef PPC_FEATURE_HAS_DFP
|
|
#define PPC_FEATURE_HAS_DFP 0x00000400 /* Decimal Floating Point. */
|
|
#endif
|
|
#ifndef PPC_FEATURE_HAS_VSX
|
|
#define PPC_FEATURE_HAS_VSX 0x00000080
|
|
#endif
|
|
#ifndef PPC_FEATURE_HAS_ALTIVEC
|
|
#define PPC_FEATURE_HAS_ALTIVEC 0x10000000
|
|
#endif
|
|
#ifndef PPC_FEATURE_HAS_SPE
|
|
#define PPC_FEATURE_HAS_SPE 0x00800000
|
|
#endif
|
|
#ifndef PPC_FEATURE2_DSCR
|
|
#define PPC_FEATURE2_DSCR 0x20000000
|
|
#endif
|
|
#ifndef PPC_FEATURE2_ARCH_2_07
|
|
#define PPC_FEATURE2_ARCH_2_07 0x80000000
|
|
#endif
|
|
#ifndef PPC_FEATURE2_TAR
|
|
#define PPC_FEATURE2_TAR 0x04000000
|
|
#endif
|
|
#ifndef PPC_FEATURE2_EBB
|
|
#define PPC_FEATURE2_EBB 0x10000000
|
|
#endif
|
|
#ifndef PPC_FEATURE2_HTM
|
|
#define PPC_FEATURE2_HTM 0x40000000
|
|
#endif
|
|
|
|
/* Glibc's headers don't define PTRACE_GETVRREGS so we cannot use a
|
|
configure time check. Some older glibc's (for instance 2.2.1)
|
|
don't have a specific powerpc version of ptrace.h, and fall back on
|
|
a generic one. In such cases, sys/ptrace.h defines
|
|
PTRACE_GETFPXREGS and PTRACE_SETFPXREGS to the same numbers that
|
|
ppc kernel's asm/ptrace.h defines PTRACE_GETVRREGS and
|
|
PTRACE_SETVRREGS to be. This also makes a configury check pretty
|
|
much useless. */
|
|
|
|
/* These definitions should really come from the glibc header files,
|
|
but Glibc doesn't know about the vrregs yet. */
|
|
#ifndef PTRACE_GETVRREGS
|
|
#define PTRACE_GETVRREGS 18
|
|
#define PTRACE_SETVRREGS 19
|
|
#endif
|
|
|
|
/* PTRACE requests for POWER7 VSX registers. */
|
|
#ifndef PTRACE_GETVSXREGS
|
|
#define PTRACE_GETVSXREGS 27
|
|
#define PTRACE_SETVSXREGS 28
|
|
#endif
|
|
|
|
/* Similarly for the ptrace requests for getting / setting the SPE
|
|
registers (ev0 -- ev31, acc, and spefscr). See the description of
|
|
gdb_evrregset_t for details. */
|
|
#ifndef PTRACE_GETEVRREGS
|
|
#define PTRACE_GETEVRREGS 20
|
|
#define PTRACE_SETEVRREGS 21
|
|
#endif
|
|
|
|
/* Target Address Register. */
|
|
#ifndef NT_PPC_TAR
|
|
#define NT_PPC_TAR 0x103
|
|
#endif
|
|
|
|
/* Program Priority Register. */
|
|
#ifndef NT_PPC_PPR
|
|
#define NT_PPC_PPR 0x104
|
|
#endif
|
|
|
|
/* Data Stream Control Register. */
|
|
#ifndef NT_PPC_DSCR
|
|
#define NT_PPC_DSCR 0x105
|
|
#endif
|
|
|
|
/* Event Based Branch Registers. */
|
|
#ifndef NT_PPC_EBB
|
|
#define NT_PPC_EBB 0x106
|
|
#endif
|
|
|
|
/* Performance Monitor Registers. */
|
|
#ifndef NT_PPC_PMU
|
|
#define NT_PPC_PMU 0x107
|
|
#endif
|
|
|
|
/* TM checkpointed GPR Registers. */
|
|
#ifndef NT_PPC_TM_CGPR
|
|
#define NT_PPC_TM_CGPR 0x108
|
|
#endif
|
|
|
|
/* TM checkpointed FPR Registers. */
|
|
#ifndef NT_PPC_TM_CFPR
|
|
#define NT_PPC_TM_CFPR 0x109
|
|
#endif
|
|
|
|
/* TM checkpointed VMX Registers. */
|
|
#ifndef NT_PPC_TM_CVMX
|
|
#define NT_PPC_TM_CVMX 0x10a
|
|
#endif
|
|
|
|
/* TM checkpointed VSX Registers. */
|
|
#ifndef NT_PPC_TM_CVSX
|
|
#define NT_PPC_TM_CVSX 0x10b
|
|
#endif
|
|
|
|
/* TM Special Purpose Registers. */
|
|
#ifndef NT_PPC_TM_SPR
|
|
#define NT_PPC_TM_SPR 0x10c
|
|
#endif
|
|
|
|
/* TM checkpointed Target Address Register. */
|
|
#ifndef NT_PPC_TM_CTAR
|
|
#define NT_PPC_TM_CTAR 0x10d
|
|
#endif
|
|
|
|
/* TM checkpointed Program Priority Register. */
|
|
#ifndef NT_PPC_TM_CPPR
|
|
#define NT_PPC_TM_CPPR 0x10e
|
|
#endif
|
|
|
|
/* TM checkpointed Data Stream Control Register. */
|
|
#ifndef NT_PPC_TM_CDSCR
|
|
#define NT_PPC_TM_CDSCR 0x10f
|
|
#endif
|
|
|
|
/* Return the wordsize of the target, either 4 or 8 bytes. */
|
|
int ppc_linux_target_wordsize (int tid);
|
|
|
|
#endif /* NAT_PPC_LINUX_H */
|