From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19466 invoked by alias); 12 Jul 2004 22:10: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 19049 invoked from network); 12 Jul 2004 22:10:30 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 12 Jul 2004 22:10: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 i6CMAUe1014853 for ; Mon, 12 Jul 2004 18:10:30 -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 i6CMAR021013; Mon, 12 Jul 2004 18:10:28 -0400 To: gdb-patches@sources.redhat.com Subject: RFA: PowerPC: add segment register numbers From: Jim Blandy Date: Mon, 12 Jul 2004 22:10:00 -0000 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/msg00125.txt.bz2 2004-07-12 Jim Blandy * ppc-tdep.h (struct gdbarch_tdep): New member: ppc_sr0_regnum. * rs6000-tdep.c (rs6000_gdbarch_init): Initialize it. diff -crp -x '*~' -x '.#*' -x CVS src.01/gdb/ppc-tdep.h src.02/gdb/ppc-tdep.h *** gdb/ppc-tdep.h 2004-07-12 16:56:48.000000000 -0500 --- gdb/ppc-tdep.h 2004-07-12 17:00:45.000000000 -0500 *************** 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 */ diff -crp -x '*~' -x '.#*' -x CVS src.01/gdb/rs6000-tdep.c src.02/gdb/rs6000-tdep.c *** gdb/rs6000-tdep.c 2004-07-08 18:43:02.000000000 -0500 --- gdb/rs6000-tdep.c 2004-07-12 17:02:44.000000000 -0500 *************** 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,2961 ---- 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 + gdb_assert (0); /* Sanity check on registers. */ gdb_assert (strcmp (tdep->regs[tdep->ppc_gp0_regnum].name, "r0") == 0);