From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=32818 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PiAh0-0003ba-5V for qemu-devel@nongnu.org; Wed, 26 Jan 2011 14:06:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PiAgy-0002MZ-Ub for qemu-devel@nongnu.org; Wed, 26 Jan 2011 14:06:10 -0500 Received: from b.mail.sonic.net ([64.142.19.5]:54242) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PiAgy-0002MR-Kq for qemu-devel@nongnu.org; Wed, 26 Jan 2011 14:06:08 -0500 Message-ID: <4D407092.9090401@twiddle.net> Date: Wed, 26 Jan 2011 11:05:54 -0800 From: Richard Henderson MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH 5/7] tcg-i386: Implement deposit operation. References: <1294716228-9299-1-git-send-email-rth@twiddle.net> <1294716228-9299-6-git-send-email-rth@twiddle.net> <20110125122749.GA19736@edde.se.axis.com> <4D3EF6C1.3080502@twiddle.net> <20110125164816.GA23569@laped.lan> <4D3F4993.4010109@twiddle.net> <20110126085338.GA26088@laped.lan> <4D4042B4.4020805@twiddle.net> <4D404533.3060708@suse.de> <4D404E66.4020109@twiddle.net> <4D4050E3.9010207@suse.de> <4D40660F.9070004@twiddle.net> <4D40678F.8030504@suse.de> <4D406E30.8030502@twiddle.net> <4D406F97.8050001@suse.de> In-Reply-To: <4D406F97.8050001@suse.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf Cc: "Edgar E.Iglesias" , qemu-devel@nongnu.org, aurelien@aurel32.net On 01/26/2011 11:01 AM, Alexander Graf wrote: >> As far as I know, it does not happen at random. Which seems to be >> what you are suggesting. > > It happens on load/store and potentially helpers. The main difference > IIUC between globals and temps is that globals are kept in registers as > long as possible (read: until load/store or helper or tb end gets > emitted) while temporaries are not stored back to any memory, so they > are lost on load/store. > > So what you are suggesting is basically to use a different set of > globals for regs32 and to keep track of their usage throughout the TB, > so we can convert on demand. We can't use temporaries for that unless we > manually store them off on load/store/helper/tb end which means we'd > rewrite the globals treatment in target code :). No, what I'm suggesting is manually storing the reg32 temporaries back to their reg64 origins in the translator immediately before issuing the load/store/helper/tbend, at which point the generic TCG bits write back the reg64 globals to their env origin. Do you have a pointer to your s390x tree? r~