From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Kq8BK-0000vI-Rp for qemu-devel@nongnu.org; Wed, 15 Oct 2008 11:21:02 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Kq8BH-0000u7-51 for qemu-devel@nongnu.org; Wed, 15 Oct 2008 11:21:02 -0400 Received: from [199.232.76.173] (port=58201 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kq8BH-0000u3-05 for qemu-devel@nongnu.org; Wed, 15 Oct 2008 11:20:59 -0400 Received: from mail.codesourcery.com ([65.74.133.4]:54520) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Kq8BG-0006y5-B3 for qemu-devel@nongnu.org; Wed, 15 Oct 2008 11:20:58 -0400 Date: Wed, 15 Oct 2008 08:20:56 -0700 From: Nathan Froyd Subject: Re: [Qemu-devel] [PATCH][ppc] reorganize register set for SPE + TCG Message-ID: <20081015152054.GO18389@codesourcery.com> References: <20081015142237.GN18389@codesourcery.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081015142237.GN18389@codesourcery.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org On Wed, Oct 15, 2008 at 07:22:38AM -0700, Nathan Froyd wrote: > The (large, invasive) patch below is a preparation patch for converting > (most) SPE instructions to use TCG. The rationale is that your ordinary > SPE instruction deals with three 64-bit quantaties (and a potential > 64-bit accumulator). In the current implementation, it's extremely > laborious/difficult to pass those 64-bit quantaties to helpers, since > the high/low words for SPE registers are not contiguous in the > environment. (TCG helpers for SPE instructions are not yet implemented, > but they will be necessary as part of the total conversion to TCG.) I should clarify here that I meant passing pointers to the 64-bit quantities; Paul pointed out to me that passing 64-bit arguments obviously works, since you can emulate 64-bit targets on a 32-bit host. I thought I would need to pass pointers to 64-bit quantities since that's how, e.g., MMX helpers work, but that may not be the best example of how TCG is supposed to be used. I still like my patch for exposing the halves of the registers directly and thereby opening up more efficient translation of some things, but it appears that there are better ways to do what I want to do. -Nathan