From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19175 invoked by alias); 22 Aug 2002 18:49:08 -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 19167 invoked from network); 22 Aug 2002 18:49:05 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 22 Aug 2002 18:49:05 -0000 Received: from int-mx2.corp.redhat.com (nat-pool-rdu.redhat.com [172.16.52.200] (may be forged)) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id g7MIYYl24615 for ; Thu, 22 Aug 2002 14:34:35 -0400 Received: from potter.sfbay.redhat.com (potter.sfbay.redhat.com [172.16.27.15]) by int-mx2.corp.redhat.com (8.11.6/8.11.6) with ESMTP id g7MIn2u17114; Thu, 22 Aug 2002 14:49:02 -0400 Received: from romulus.sfbay.redhat.com (IDENT:PiraJngnUrhJyHignhRlZi/1Mn/Bx4JS@romulus.sfbay.redhat.com [172.16.27.251]) by potter.sfbay.redhat.com (8.11.6/8.11.6) with ESMTP id g7MImte24149; Thu, 22 Aug 2002 11:48:55 -0700 Received: (from kev@localhost) by romulus.sfbay.redhat.com (8.11.6/8.11.6) id g7MImr808313; Thu, 22 Aug 2002 11:48:53 -0700 Date: Thu, 22 Aug 2002 12:11:00 -0000 From: Kevin Buettner Message-Id: <1020822184853.ZM8312@localhost.localdomain> In-Reply-To: Elena Zannoni "[RFA] rs6000-tdep.c: more e500 support" (Aug 22, 1:50pm) References: <15717.9340.349019.324586@localhost.redhat.com> To: Elena Zannoni , gdb-patches@sources.redhat.com Subject: Re: [RFA] rs6000-tdep.c: more e500 support MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-08/txt/msg00705.txt.bz2 On Aug 22, 1:50pm, Elena Zannoni wrote: > @@ -647,7 +654,7 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR l > else if ((op & 0xfc0007fe) == 0x7c000378 && /* mr(.) Rx,Ry */ > (((op >> 21) & 31) >= 3) && /* R3 >= Ry >= R10 */ > (((op >> 21) & 31) <= 10) && > - (((op >> 16) & 31) >= fdata->saved_gpr)) /* Rx: local var reg */ > + ((long) ((op >> 16) & 31) >= fdata->saved_gpr)) /* Rx: local var reg */ > { > continue; > Why is the cast needed above? > @@ -754,6 +763,100 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR l > } > } > /* End AltiVec related instructions. */ > + > + /* Start BookE related instructions. */ > + /* Store gen register S at (r31+uimm). > + Any register less than r13 is volatile, so we don't care. */ > + /* 000100 sssss 11111 iiiii 01100100001 */ > + else if ((op & 0xfc1f07ff) == 0x101f0321) /* evstdd Rs,uimm(R31) */ Hmm... it looks like BookE is using 6 for its primary opcode (which are the most significant 6 bits). I wonder if this could cause conflicts with other cores which also extend the base PPC instruction set. A quick Google search reveals: http://sources.redhat.com/ml/binutils/2001-10/msg00186.html So apparently there can be conflicts. It's not clear to me if there are conflicts for the instructions that we care about, but I wonder if it might not be better to add a conjunct which restricts these tests to the BookE architecture. (Maybe it'd be a good idea to squirrel away the v->arch and v->mach values from rs6000_gdbarch_init() into the gdbarch_tdep struct. I guess you could also check to see if tdep->ppc_ev0_regnum is not -1.) Kevin