diff options
author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2019-09-20 23:06:57 +0200 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2019-09-20 23:06:57 +0200 |
commit | abf516c6931af1683d1e51203de1ca01467f9f85 (patch) | |
tree | f2d4e09a3840ac22f5af5584348fbdf97e0c8aca /gdb/testsuite/gdb.arch | |
parent | Change TUI window commands to be case-sensitive (diff) | |
download | binutils-gdb-abf516c6931af1683d1e51203de1ca01467f9f85.tar.gz binutils-gdb-abf516c6931af1683d1e51203de1ca01467f9f85.tar.bz2 binutils-gdb-abf516c6931af1683d1e51203de1ca01467f9f85.zip |
Remove Cell Broadband Engine debugging support
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.
Diffstat (limited to 'gdb/testsuite/gdb.arch')
-rw-r--r-- | gdb/testsuite/gdb.arch/spu-info.c | 235 | ||||
-rw-r--r-- | gdb/testsuite/gdb.arch/spu-info.exp | 241 | ||||
-rw-r--r-- | gdb/testsuite/gdb.arch/spu-ls.c | 31 | ||||
-rw-r--r-- | gdb/testsuite/gdb.arch/spu-ls.exp | 47 |
4 files changed, 0 insertions, 554 deletions
diff --git a/gdb/testsuite/gdb.arch/spu-info.c b/gdb/testsuite/gdb.arch/spu-info.c deleted file mode 100644 index 3046525c9e6..00000000000 --- a/gdb/testsuite/gdb.arch/spu-info.c +++ /dev/null @@ -1,235 +0,0 @@ -/* Copyright 2007-2019 Free Software Foundation, Inc. - - 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/>. - - This file is part of the gdb testsuite. - - Contributed by Markus Deuling <deuling@de.ibm.com>. - Tests for 'info spu' commands. */ - -#include <stdio.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <unistd.h> -#include <spu_mfcio.h> - - -/* PPE-assisted call interface. */ -void -send_to_ppe (unsigned int signalcode, unsigned int opcode, void *data) -{ - __vector unsigned int stopfunc = - { - signalcode, /* stop */ - (opcode << 24) | (unsigned int) data, - 0x4020007f, /* nop */ - 0x35000000 /* bi $0 */ - }; - - void (*f) (void) = (void *) &stopfunc; - asm ("sync"); - f (); -} - -/* PPE-assisted call to mmap from SPU. */ -unsigned long long -mmap_ea (unsigned long long start, size_t length, - int prot, int flags, int fd, off_t offset) -{ - struct mmap_args - { - unsigned long long start __attribute__ ((aligned (16))); - size_t length __attribute__ ((aligned (16))); - int prot __attribute__ ((aligned (16))); - int flags __attribute__ ((aligned (16))); - int fd __attribute__ ((aligned (16))); - off_t offset __attribute__ ((aligned (16))); - } args; - - args.start = start; - args.length = length; - args.prot = prot; - args.flags = flags; - args.fd = fd; - args.offset = offset; - - send_to_ppe (0x2101, 11, &args); - return args.start; -} - -/* This works only in a Linux environment with <= 1024 open - file descriptors for one process. Result is the file - descriptor for the current context if available. */ -int -find_context_fd (void) -{ - int dir_fd = -1; - int i; - - for (i = 0; i < 1024; i++) - { - struct stat stat; - - if (fstat (i, &stat) < 0) - break; - if (S_ISDIR (stat.st_mode)) - dir_fd = dir_fd == -1 ? i : -2; - } - return dir_fd < 0 ? -1 : dir_fd; -} - -/* Open the context file and return the file handler. */ -int -open_context_file (int context_fd, char *name, int flags) -{ - char buf[128]; - - if (context_fd < 0) - return -1; - - sprintf (buf, "/proc/self/fd/%d/%s", context_fd, name); - return open (buf, flags); -} - - -int -do_event_test () -{ - spu_write_event_mask (MFC_MULTI_SRC_SYNC_EVENT); /* 0x1000 */ /* Marker Event */ - spu_write_event_mask (MFC_PRIV_ATTN_EVENT); /* 0x0800 */ - spu_write_event_mask (MFC_LLR_LOST_EVENT); /* 0x0400 */ - spu_write_event_mask (MFC_SIGNAL_NOTIFY_1_EVENT); /* 0x0200 */ - spu_write_event_mask (MFC_SIGNAL_NOTIFY_2_EVENT); /* 0x0100 */ - spu_write_event_mask (MFC_OUT_MBOX_AVAILABLE_EVENT); /* 0x0080 */ - spu_write_event_mask (MFC_OUT_INTR_MBOX_AVAILABLE_EVENT); /* 0x0040 */ - spu_write_event_mask (MFC_DECREMENTER_EVENT); /* 0x0020 */ - spu_write_event_mask (MFC_IN_MBOX_AVAILABLE_EVENT); /* 0x0010 */ - spu_write_event_mask (MFC_COMMAND_QUEUE_AVAILABLE_EVENT); /* 0x0008 */ - spu_write_event_mask (MFC_LIST_STALL_NOTIFY_EVENT); /* 0x0002 */ - spu_write_event_mask (MFC_TAG_STATUS_UPDATE_EVENT); /* 0x0001 */ - - return 0; -} - -int -do_dma_test () -{ - #define MAP_FAILED (-1ULL) - #define PROT_READ 0x1 - #define MAP_PRIVATE 0x002 - #define BSIZE 128 - static char buf[BSIZE] __attribute__ ((aligned (128))); - char *file = "/var/tmp/tmp_buf"; - struct stat fdstat; - int fd, cnt; - unsigned long long src; - - /* Create a file and fill it with some bytes. */ - fd = open (file, O_CREAT | O_RDWR | O_TRUNC, 0777); - if (fd == -1) - return -1; - memset ((void *)buf, '1', BSIZE); - write (fd, buf, BSIZE); - write (fd, buf, BSIZE); - memset ((void *)buf, 0, BSIZE); - - if (fstat (fd, &fdstat) != 0 - || !fdstat.st_size) - return -2; - - src = mmap_ea(0ULL, fdstat.st_size, PROT_READ, MAP_PRIVATE, fd, 0); - if (src == MAP_FAILED) - return -3; - - /* Copy some data via DMA. */ - mfc_get (&buf, src, BSIZE, 5, 0, 0); /* Marker DMA */ - mfc_write_tag_mask (1<<5); /* Marker DMAWait */ - spu_mfcstat (MFC_TAG_UPDATE_ALL); - - /* Close the file. */ - close (fd); - - return cnt; -} - -int -do_mailbox_test () -{ - /* Write to SPU Outbound Mailbox. */ - if (spu_stat_out_mbox ()) /* Marker Mbox */ - spu_write_out_mbox (0x12345678); - - /* Write to SPU Outbound Interrupt Mailbox. */ - if (spu_stat_out_intr_mbox ()) - spu_write_out_intr_mbox (0x12345678); - - return 0; /* Marker MboxEnd */ -} - -int -do_signal_test () -{ - struct stat fdstat; - int context_fd = find_context_fd (); - int ret, buf, fd; - - buf = 23; /* Marker Signal */ - /* Write to signal1. */ - fd = open_context_file (context_fd, "signal1", O_RDWR); - if (fstat (fd, &fdstat) != 0) - return -1; - ret = write (fd, &buf, sizeof (int)); - close (fd); /* Marker Signal1 */ - - /* Write to signal2. */ - fd = open_context_file (context_fd, "signal2", O_RDWR); - if (fstat (fd, &fdstat) != 0) - return -1; - ret = write (fd, &buf, sizeof (int)); - close (fd); /* Marker Signal2 */ - - /* Read signal1. */ - if (spu_stat_signal1 ()) - ret = spu_read_signal1 (); - - /* Read signal2. */ - if (spu_stat_signal2 ()) - ret = spu_read_signal2 (); /* Marker SignalRead */ - - return 0; -} - -int -main (unsigned long long speid, unsigned long long argp, - unsigned long long envp) -{ - int res; - - /* info spu event */ - res = do_event_test (); - - /* info spu dma */ - res = do_dma_test (); - - /* info spu mailbox */ - res = do_mailbox_test (); - - /* info spu signal */ - res = do_signal_test (); - - return 0; -} - diff --git a/gdb/testsuite/gdb.arch/spu-info.exp b/gdb/testsuite/gdb.arch/spu-info.exp deleted file mode 100644 index f840251c31d..00000000000 --- a/gdb/testsuite/gdb.arch/spu-info.exp +++ /dev/null @@ -1,241 +0,0 @@ -# Copyright 2007-2019 Free Software Foundation, Inc. -# -# 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/>. -# -# This file is part of the gdb testsuite. -# -# Contributed by Markus Deuling <deuling@de.ibm.com>. -# Tests for 'info spu' commands. - - -if { ![istarget "spu-*-elf"] } then { - verbose "Skipping SPU-only testcase" - return -} - -standard_testfile - -if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug}] } { - fail "cannot compile test program" - return -1 -} - - -# Continue to MARKER -proc c_to { marker } { - global srcfile - set line [gdb_get_line_number $marker] - gdb_test "break $line" \ - "Breakpoint.*at.*file.*$srcfile.*line $line.*" \ - "break $line" - gdb_test "continue" \ - "Continuing.*Breakpoint.*at.*$srcfile.*$line.*" \ - "continue to $line" -} - - - -if ![runto_main] then { - fail "can't run to main" - return 0 -} - -# Check the help. -gdb_test "info spu" \ - ".*info spu.* must be followed by the name of an SPU facility.*" \ - "info spu" -gdb_test "help info spu" \ - "Various SPU specific commands.*List of info spu subcommands.*" \ - "help info spu" - -gdb_test "help info spu dma" \ - "Display MFC DMA status." \ - "help info spu dma" -gdb_test "help info spu event" \ - "Display SPU event facility status." \ - "help info spu event" -gdb_test "help info spu mailbox" \ - "Display SPU mailbox facility status." \ - "help info spu mailbox" -gdb_test "help info spu proxydma" \ - "Display MFC Proxy-DMA status." \ - "help info spu proxydma" -gdb_test "help info spu signal" \ - "Display SPU signal notification facility status." \ - "help info spu signal" - - -# architecture should be spu:256K. -gdb_test "show architecture" \ - "The target architecture is set automatically.*currently spu:256K.*" \ - "architecture = spu256K" - -# 'info spu event'. -gdb_test "info spu event" \ - "Event Status.*Event Mask.*" \ - "info spu event" - -# 'info spu signal'. -gdb_test "info spu signal" \ - "Signal 1 not pending.*\(Type.*\).*Signal 2 not pending.*\(Type.*\).*" \ - "info spu signal" - -# 'info spu mailbox'. -gdb_test "info spu mailbox" \ - "" \ - "info spu mailbox" - -# 'info spu dma'. -gdb_test "info spu dma" \ - "Tag-Group Status.*Tag-Group Mask.*Stall-and-Notify .*Atomic Cmd Status.*" \ - "info spu dma" - -# 'info spu proxydma'. -gdb_test "info spu proxydma" \ - "Tag-Group Status.*Tag-Group Mask.*" \ - "info spu proxydma" - -# Event tests. -c_to "Marker Event" -gdb_test "info spu event" \ - "Event Status 0x00000000.*Event Mask 0x00000000.*" \ - "empty event status" - -# MFC_MULTI_SRC_SYNC_EVENT. -gdb_test "next" "" "next" -gdb_test "info spu event" \ - "Event Status 0x0000.*Event Mask 0x00001000.*" \ - "event mask 0x1000" -# MFC_PRIV_ATTN_EVENT. -gdb_test "next" "" "next" -gdb_test "info spu event" \ - "Event Status 0x0000.*Event Mask 0x00000800.*" \ - "event mask 0x0800" -# MFC_LLR_LOST_EVENT. -gdb_test "next" "" "next" -gdb_test "info spu event" \ - "Event Status 0x0000.*Event Mask 0x00000400.*" \ - "event mask 0x0400" -# MFC_SIGNAL_NOTIFY_1_EVENT. -gdb_test "next" "" "next" -gdb_test "info spu event" \ - "Event Status 0x0000.*Event Mask 0x00000200.*" \ - "event mask 0x0200" -# MFC_SIGNAL_NOTIFY_2_EVENT. -gdb_test "next" "" "next" -gdb_test "info spu event" \ - "Event Status 0x0000.*Event Mask 0x00000100.*" \ - "event mask 0x0100" -# MFC_OUT_MBOX_AVAILABLE_EVENT. -gdb_test "next" "" "next" -gdb_test "info spu event" \ - "Event Status 0x0000.*Event Mask 0x00000080.*" \ - "event mask 0x0080" -# MFC_OUT_INTR_MBOX_AVAILABLE_EVENT. -gdb_test "next" "" "next" -gdb_test "info spu event" \ - "Event Status 0x0000.*Event Mask 0x00000040.*" \ - "event mask 0x0040" -# MFC_DECREMENTER_EVENT. -gdb_test "next" "" "next" -gdb_test "info spu event" \ - "Event Status 0x0000.*Event Mask 0x00000020.*" \ - "event mask 0x0020" -# MFC_IN_MBOX_AVAILABLE_EVENT. -gdb_test "next" "" "next" -gdb_test "info spu event" \ - "Event Status 0x0000.*Event Mask 0x00000010.*" \ - "event mask 0x0010" -# MFC_COMMAND_QUEUE_AVAILABLE_EVENT. -gdb_test "next" "" "next" -gdb_test "info spu event" \ - "Event Status 0x0000.*Event Mask 0x00000008.*" \ - "event mask 0x0008" -# MFC_LIST_STALL_NOTIFY_EVENT. -gdb_test "next" "" "next" -gdb_test "info spu event" \ - "Event Status 0x0000.*Event Mask 0x00000002.*" \ - "event mask 0x0002" -# MFC_TAG_STATUS_UPDATE_EVENT. -gdb_test "next" "" "next" -gdb_test "info spu event" \ - "Event Status 0x0000.*Event Mask 0x00000001.*" \ - "event mask 0x0001" - - -# DMA tests. -# 'info spu dma' should be empty. -c_to "Marker DMA" -gdb_test "info spu dma" \ - "Tag-Group Status.*0x00000000.*Tag-Group Mask.*0x00000000.*Stall-and-Notify.*0x00000000.*Atomic Cmd Status.*0x00000000\[\r\n\]+" \ - "info spu dma (empty)" - -# 'info spu dma' should be filled with some data. -c_to "Marker DMAWait" -gdb_test "next" "" "next" -gdb_test "info spu dma" \ - "Tag-Group Status.*0x00000000.*Tag-Group Mask.*0x00000020.*Stall-and-Notify.*0x00000000.*Atomic Cmd Status.*0x00000000.*Opcode.*Tag.*TId.*RId.*EA.*LSA.*Size.*LstAddr.*LstSize.*E.*get.*5.*0.*0.*0x00080\[ \r\n\]+" \ - "info spu dma (non-empty)" -gdb_test "finish" "" "finish" - -# Mailbox Test -# 'info spu mailbox' should be empty. -c_to "Marker Mbox" -set msg "info spu mailbox" -gdb_test_multiple "info spu mailbox" $msg { - -re "$gdb_prompt $" { - pass $msg - } - -re "SPU Outbound Mailbox.*0x.*SPU Outbound Interrupt Mailbox.*0x.*$gdb_prompt $" { - # Older kernels had a bug that caused them to return arbitrary values - # when attempting to read from an empty mailbox via spufs. - xfail $msg - } -} - -# 'info spu mailbox' should now contain data. -c_to "Marker MboxEnd" -gdb_test "info spu mailbox" \ - "SPU Outbound Mailbox.*0x12345678.*SPU Outbound Interrupt Mailbox.*0x12345678.*" \ - "info spu mailbox" - -# Signal Test -# 'info spu signal'. -c_to "Marker Signal" -gdb_test "info spu signal" \ - "Signal 1 not pending.*\(Type.*\).*Signal 2 not pending.*\(Type.*\).*" \ - "info spu signal" - -# 'info spu signal' with signal1 pending. -c_to "Marker Signal1" -gdb_test "info spu signal" \ - "Signal 1 control word 0x00000017.*Signal 2 not pending.*\(Type.*\).*" \ - "info spu signal" - -# 'info spu signal' with signal1 and signal2 pending. -c_to "Marker Signal2" -gdb_test "info spu signal" \ - "Signal 1 control word 0x00000017.*Signal 2 control word 0x00000017.*" \ - "info spu signal" - -# Read signal1. Only signal2 is pending. -c_to "Marker SignalRead" -gdb_test "info spu signal" \ - "Signal 1 not pending.*Signal 2 control word 0x00000017.*" \ - "info spu signal" - - -gdb_exit - -return 0 diff --git a/gdb/testsuite/gdb.arch/spu-ls.c b/gdb/testsuite/gdb.arch/spu-ls.c deleted file mode 100644 index f1a20491f0f..00000000000 --- a/gdb/testsuite/gdb.arch/spu-ls.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2010-2019 Free Software Foundation, Inc. - - 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/>. - - This file is part of the gdb testsuite. - - Contributed by Ulrich Weigand <uweigand@de.ibm.com>. - Tests for SPU local-store access. */ - -char *ptr = (char *)0x12345678; - -char array[256]; - -int -main (unsigned long long speid, unsigned long long argp, - unsigned long long envp) -{ - return 0; -} - diff --git a/gdb/testsuite/gdb.arch/spu-ls.exp b/gdb/testsuite/gdb.arch/spu-ls.exp deleted file mode 100644 index af0b1acec80..00000000000 --- a/gdb/testsuite/gdb.arch/spu-ls.exp +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 2010-2019 Free Software Foundation, Inc. -# -# 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/>. -# -# This file is part of the gdb testsuite. -# -# Contributed by Ulrich Weigand <uweigand@de.ibm.com>. -# Tests for SPU local-store access. - -if { ![istarget "spu-*-elf"] } then { - verbose "Skipping SPU-only testcase" - return -} - -standard_testfile - -if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug}] } { - fail "cannot compile test program" - return -1 -} - -if ![runto_main] then { - fail "can't run to main" - return 0 -} - -gdb_test "print ptr" " = 0x12345678 \".*\"" "print ptr" -gdb_test_no_output "set ptr = array + \$lslr + 1" "set ptr = array + \$lslr + 1" -gdb_test_no_output "set array\[0\] = 1" "set array\[0\] = 1" -gdb_test "print *ptr" " = 1 '\\\\001'" "print *ptr" -gdb_test_no_output "set *ptr = 2" "set *ptr = 2" -gdb_test "print array\[0\]" " = 2 '\\\\002'" "print array\[0\]" - -gdb_exit - -return 0 |