From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9908 invoked by alias); 1 Sep 2005 18:12:39 -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 9884 invoked by uid 22791); 1 Sep 2005 18:12:33 -0000 Received: from e32.co.us.ibm.com (HELO e32.co.us.ibm.com) (32.97.110.130) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Thu, 01 Sep 2005 18:12:33 +0000 Received: from westrelay02.boulder.ibm.com (westrelay02.boulder.ibm.com [9.17.195.11]) by e32.co.us.ibm.com (8.12.10/8.12.9) with ESMTP id j81IC1ig278408 for ; Thu, 1 Sep 2005 14:12:08 -0400 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by westrelay02.boulder.ibm.com (8.12.10/NCO/VERS6.7) with ESMTP id j81IC1vp530564 for ; Thu, 1 Sep 2005 12:12:01 -0600 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.12.11/8.13.3) with ESMTP id j81IBu0F008006 for ; Thu, 1 Sep 2005 12:11:56 -0600 Received: from dyn9047022123-009047022095.beaverton.ibm.com (dyn9047022123-009047022095.beaverton.ibm.com [9.47.22.95]) by d03av01.boulder.ibm.com (8.12.11/8.12.11) with ESMTP id j81IBtx2008000; Thu, 1 Sep 2005 12:11:55 -0600 From: Paul Gilliam Reply-To: pgilliam@us.ibm.com To: gdb-patches@sources.redhat.com Subject: [commit] fix "too much information" bug w/ "info vector" on PowerPC Date: Thu, 01 Sep 2005 18:12:00 -0000 User-Agent: KMail/1.6.2 Cc: Daniel Jacobowitz References: <200508301459.57189.pgilliam@us.ibm.com> <200508311323.15337.pgilliam@us.ibm.com> <20050831203248.GA18491@nevyn.them.org> In-Reply-To: <20050831203248.GA18491@nevyn.them.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <200509011111.36317.pgilliam@us.ibm.com> X-SW-Source: 2005-09/txt/msg00004.txt.bz2 Thank you all for you help and advice. Here is the patch I just committed: 20050901 Paul Gilliam * ppc-tdep.h (struct gdbarch_tdep): Better explanation of using -1 for nonexistant registers. * rs6000-tdep.c (rs6000_register_reggroup_p): Don't assume that tdep->ppc_vr0_regnum and tdep->ppc_ev0_regnum are not -1. Index: ppc-tdep.h =================================================================== RCS file: /cvs/src/src/gdb/ppc-tdep.h,v retrieving revision 1.46 diff -a -u -r1.46 ppc-tdep.h --- ppc-tdep.h 25 May 2005 03:12:13 -0000 1.46 +++ ppc-tdep.h 1 Sep 2005 17:56:58 -0000 @@ -152,26 +152,33 @@ int ppc_ctr_regnum; /* Count register */ int ppc_xer_regnum; /* Integer exception register */ - /* On PPC and RS6000 variants that have no floating-point - registers, the next two members will be -1. */ + /* Not all PPC and RS6000 variants will have the registers + represented below. A -1 is used to indicate that the register + is not present in this variant. */ + + /* Floating-point registers. */ int ppc_fp0_regnum; /* floating-point register 0 */ - int ppc_fpscr_regnum; /* Floating point status and condition - register */ + int ppc_fpscr_regnum; /* fp status and condition register */ + + /* Segment registers. */ + int ppc_sr0_regnum; /* segment register 0 */ - int ppc_sr0_regnum; /* segment register 0, or -1 on - variants that have no segment - registers. */ + /* Multiplier-Quotient Register (older POWER architectures only). */ + int ppc_mq_regnum; - int ppc_mq_regnum; /* Multiply/Divide extension register */ + /* Altivec registers. */ int ppc_vr0_regnum; /* First AltiVec register */ int ppc_vrsave_regnum; /* Last AltiVec register */ + + /* SPE registers. */ int ppc_ev0_upper_regnum; /* First GPR upper half register */ int ppc_ev0_regnum; /* First ev register */ int ppc_ev31_regnum; /* Last ev register */ int ppc_acc_regnum; /* SPE 'acc' register */ int ppc_spefscr_regnum; /* SPE 'spefscr' register */ - int lr_frame_offset; /* Offset to ABI specific location where - link register is saved. */ + + /* Offset to ABI specific location where link register is saved. */ + int lr_frame_offset; /* An array of integers, such that sim_regno[I] is the simulator register number for GDB register number I, or -1 if the Index: rs6000-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/rs6000-tdep.c,v retrieving revision 1.241 diff -a -u -r1.241 rs6000-tdep.c --- rs6000-tdep.c 25 May 2005 03:12:13 -0000 1.241 +++ rs6000-tdep.c 1 Sep 2005 17:56:58 -0000 @@ -1882,9 +1882,11 @@ if (group == float_reggroup) return float_p; - vector_p = ((regnum >= tdep->ppc_vr0_regnum + vector_p = ((tdep->ppc_vr0_regnum >= 0 + && regnum >= tdep->ppc_vr0_regnum && regnum < tdep->ppc_vr0_regnum + 32) - || (regnum >= tdep->ppc_ev0_regnum + || (tdep->ppc_ev0_regnum >= 0 + && regnum >= tdep->ppc_ev0_regnum && regnum < tdep->ppc_ev0_regnum + 32) || regnum == tdep->ppc_vrsave_regnum || regnum == tdep->ppc_acc_regnum