From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=50390 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pi8Zz-0005de-0L for qemu-devel@nongnu.org; Wed, 26 Jan 2011 11:50:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Pi8Zx-0001Ac-Ed for qemu-devel@nongnu.org; Wed, 26 Jan 2011 11:50:46 -0500 Received: from cantor2.suse.de ([195.135.220.15]:38080 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Pi8Zx-0001AH-81 for qemu-devel@nongnu.org; Wed, 26 Jan 2011 11:50:45 -0500 Message-ID: <4D4050E3.9010207@suse.de> Date: Wed, 26 Jan 2011 17:50:43 +0100 From: Alexander Graf 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> In-Reply-To: <4D404E66.4020109@twiddle.net> 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: Richard Henderson Cc: "Edgar E.Iglesias" , qemu-devel@nongnu.org, aurelien@aurel32.net Richard Henderson wrote: > On 01/26/2011 08:00 AM, Alexander Graf wrote: > >> Keeping it only inside of the translator would break on page faults, as >> the lower 32 bits of the register would lie around in a temporary which >> is invisible for the page fault resolver. >> > > Given that QEMU doesn't support truely async signals, and the fact that > the translator can tell which insns can fault, I can't imagine that this > is actually a problem. > > You should get the same sequence of writebacks when translating the TB > the second time for tcg_gen_code_search_pc. > > Am I totally confused here? > Oh, you mean basically to have the following: TCGv_i32 regs32[16]; TCGv_i64 regs[16]; Then declare both as globals with offset and just switch between the access type using a disas struct variable. Once the TB ends, I'd obviously have to sync back to 64 bit again. Yes, that would work. I'll see if I can get that rolling once I'm done with the CC optimizations :) Alex