From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17820 invoked by alias); 23 Jul 2004 23:29:31 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 17807 invoked from network); 23 Jul 2004 23:29:30 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 23 Jul 2004 23:29:30 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.10/8.12.10) with ESMTP id i6NNTUe1016453 for ; Fri, 23 Jul 2004 19:29:30 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i6NNTUa20135 for ; Fri, 23 Jul 2004 19:29:30 -0400 Received: from localhost.localdomain (vpn50-109.rdu.redhat.com [172.16.50.109]) by pobox.corp.redhat.com (8.12.8/8.12.8) with ESMTP id i6NNTT9a010654; Fri, 23 Jul 2004 19:29:29 -0400 Received: from saguaro (saguaro.lan [192.168.64.2]) by localhost.localdomain (8.12.11/8.12.10) with SMTP id i6NNTOkb022091; Fri, 23 Jul 2004 16:29:24 -0700 Date: Fri, 23 Jul 2004 23:29:00 -0000 From: Kevin Buettner To: Jim Blandy Cc: gdb-patches@sources.redhat.com Subject: Re: RFA: Change PowerPC E500 raw regcache layout Message-Id: <20040723162923.7d57d174@saguaro> In-Reply-To: References: Organization: Red Hat Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-SW-Source: 2004-07/txt/msg00339.txt.bz2 On 20 Jul 2004 18:44:45 -0500 Jim Blandy wrote: > This patch has been tested (together with the previous patches) with > no regressions on: > > - powerpc-unknown-linux-gnu (PPC 7450 w/ Altivec) > - powerpc-ibm-aix4.3.3.0 > - powerpc-unknown-linux-gnu (PPC E500) > - i686-pc-linux-gnu x powerpc-eabispe (sim) Thanks for doing this testing. > 2004-07-20 Jim Blandy > > Change the layout of the PowerPC E500 raw register cache to allow > the lower 32-bit halves of the GPRS to be their own raw registers, > not pseudoregisters. > * ppc-tdep.h (struct gdbarch_tdep): Remove ppc_gprs_pseudo_p flag; > add ppc_ev0_upper_regnum flag. > * rs6000-tdep.c: #include "reggroups.h". > (spe_register_p): Recognize the ev upper half registers as SPE > registers. > (init_sim_regno_table): Build gdb->sim mappings for the upper-half > registers. > (e500_move_ev_register): New function. > (e500_pseudo_register_read, e500_pseudo_register_write): The 'ev' > vector registers are the pseudo-registers now, formed by splicing > together the gprs and the upper-half registers. > (e500_register_reggroup_p): New function. > (P): Macro deleted. > (P8, A4): New macro. > (PPC_EV_REGS, PPC_GPRS_PSEUDO_REGS): Macros deleted. > (PPC_SPE_GP_REGS, PPC_SPE_UPPER_GP_REGS, PPC_EV_PSEUDO_REGS): New > macros. > (registers_e500): Rearrange register set so that the raw register > set contains 32-bit GPRs and upper-half registers, and the SPE > vector registers become pseudo-registers. > (rs6000_gdbarch_init): Don't initialize tdep->ppc_gprs_pseudo_p; > it has been deleted. Initialize ppc_ev0_upper_regnum. Many other > register numbers are now the same for the E500 as they are for > other PowerPC variants. Register e500_register_reggroup_p as the > register group function for the E500. > * Makefile.in (rs6000-tdep.o): Update dependencies. > > Adapt PPC E500 native support to the new raw regcache layout. > * ppc-linux-nat.c (struct gdb_evrregset_t): Doc fixes. > (read_spliced_spe_reg, write_spliced_spe_reg): Deleted. > (fetch_spe_register, store_spe_register): Handle fetching/storing > all the SPE registers at once, if regno == -1. These now take > over the job of fetch_spe_registers and store_spe_registers. > (fetch_spe_registers, store_spe_registers): Deleted. > (fetch_ppc_registers, store_ppc_registers): Fetch/store gprs > unconditionally; they're always raw. Fetch/store SPE upper half > registers, if present, instead of ev registers. > (fetch_register, store_register): Remove sanity checks: gprs are > never pseudo-registers now, so we never need to even mention any > registers that are ever pseudoregisters. Okay, except for the uses of ``gdb_assert (0)''. Please use internal_error() for these instead. Kevin