From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4487 invoked by alias); 14 Jul 2004 23:37:45 -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 4478 invoked from network); 14 Jul 2004 23:37:44 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 14 Jul 2004 23:37:44 -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 i6ENbie1023182 for ; Wed, 14 Jul 2004 19:37:44 -0400 Received: from zenia.home.redhat.com (porkchop.devel.redhat.com [172.16.58.2]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i6ENbf014328; Wed, 14 Jul 2004 19:37:42 -0400 To: Kevin Buettner Cc: gdb-patches@sources.redhat.com Subject: Re: RFA: PowerPC: add segment register numbers References: <20040712170129.47f4bc06@saguaro> From: Jim Blandy Date: Wed, 14 Jul 2004 23:37:00 -0000 In-Reply-To: <20040712170129.47f4bc06@saguaro> Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2004-07/txt/msg00178.txt.bz2 How's this? 2004-07-12 Jim Blandy * ppc-tdep.h (struct gdbarch_tdep): New member: ppc_sr0_regnum. * rs6000-tdep.c (rs6000_gdbarch_init): Initialize it. Index: gdb/ppc-tdep.h =================================================================== RCS file: /cvs/src/src/gdb/ppc-tdep.h,v retrieving revision 1.41 diff -c -p -r1.41 ppc-tdep.h *** gdb/ppc-tdep.h 14 Jul 2004 23:18:09 -0000 1.41 --- gdb/ppc-tdep.h 14 Jul 2004 23:34:10 -0000 *************** struct gdbarch_tdep *** 158,163 **** --- 158,167 ---- int ppc_fpscr_regnum; /* Floating point status and condition register */ + int ppc_sr0_regnum; /* segment register 0, or -1 on + variants that have no segment + registers. */ + int ppc_mq_regnum; /* Multiply/Divide extension register */ int ppc_vr0_regnum; /* First AltiVec register */ int ppc_vrsave_regnum; /* Last AltiVec register */ Index: gdb/rs6000-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/rs6000-tdep.c,v retrieving revision 1.217 diff -c -p -r1.217 rs6000-tdep.c *** gdb/rs6000-tdep.c 14 Jul 2004 23:00:59 -0000 1.217 --- gdb/rs6000-tdep.c 14 Jul 2004 23:34:12 -0000 *************** rs6000_gdbarch_init (struct gdbarch_info *** 2879,2884 **** --- 2879,2885 ---- tdep->ppc_mq_regnum = -1; tdep->ppc_fp0_regnum = 32; tdep->ppc_fpscr_regnum = power ? 71 : 70; + tdep->ppc_sr0_regnum = 71; tdep->ppc_vr0_regnum = -1; tdep->ppc_vrsave_regnum = -1; tdep->ppc_ev0_regnum = -1; *************** rs6000_gdbarch_init (struct gdbarch_info *** 2907,2913 **** else tdep->lr_frame_offset = 8; ! if (v->arch == bfd_arch_powerpc) switch (v->mach) { case bfd_mach_ppc: --- 2908,2916 ---- else tdep->lr_frame_offset = 8; ! if (v->arch == bfd_arch_rs6000) ! tdep->ppc_sr0_regnum = -1; ! else if (v->arch == bfd_arch_powerpc) switch (v->mach) { case bfd_mach_ppc: *************** rs6000_gdbarch_init (struct gdbarch_info *** 2931,2936 **** --- 2934,2940 ---- tdep->ppc_ev31_regnum = 38; tdep->ppc_fp0_regnum = -1; tdep->ppc_fpscr_regnum = -1; + tdep->ppc_sr0_regnum = -1; tdep->ppc_acc_regnum = 39; tdep->ppc_spefscr_regnum = 40; set_gdbarch_pc_regnum (gdbarch, 0); *************** rs6000_gdbarch_init (struct gdbarch_info *** 2939,2945 **** --- 2943,2963 ---- set_gdbarch_pseudo_register_read (gdbarch, e500_pseudo_register_read); set_gdbarch_pseudo_register_write (gdbarch, e500_pseudo_register_write); break; + + case bfd_mach_ppc64: + case bfd_mach_ppc_620: + case bfd_mach_ppc_630: + case bfd_mach_ppc_a35: + case bfd_mach_ppc_rs64ii: + case bfd_mach_ppc_rs64iii: + /* These processor's register sets don't have segment registers. */ + tdep->ppc_sr0_regnum = -1; + break; } + else + internal_error (__FILE__, __LINE__, + "rs6000_gdbarch_init: " + "received unexpected BFD 'arch' value"); /* Sanity check on registers. */ gdb_assert (strcmp (tdep->regs[tdep->ppc_gp0_regnum].name, "r0") == 0);