From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:59463) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R9McY-0004Xt-N6 for qemu-devel@nongnu.org; Thu, 29 Sep 2011 15:50:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R9McX-0006Fe-A1 for qemu-devel@nongnu.org; Thu, 29 Sep 2011 15:50:14 -0400 Received: from mail-ww0-f41.google.com ([74.125.82.41]:47538) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R9McW-0006FU-Re for qemu-devel@nongnu.org; Thu, 29 Sep 2011 15:50:13 -0400 Received: by wwf10 with SMTP id 10so3462527wwf.4 for ; Thu, 29 Sep 2011 12:50:11 -0700 (PDT) Sender: Richard Henderson Message-ID: <4E84CBEE.7030208@twiddle.net> Date: Thu, 29 Sep 2011 12:50:06 -0700 From: Richard Henderson MIME-Version: 1.0 References: <4E8312D7.4080403@siemens.com> <4E832E88.6080909@twiddle.net> <4E83304F.4010008@siemens.com> <4E833AEA.8080508@twiddle.net> <4E839A88.4060003@web.de> <4E83A3F7.3000508@twiddle.net> <4E84570F.3040103@siemens.com> <4E848785.6090604@twiddle.net> <4E848C8D.7030209@siemens.com> <4E848D7F.3090302@siemens.com> <4E8498BD.10800@twiddle.net> <4E84A23B.2030405@siemens.com> In-Reply-To: <4E84A23B.2030405@siemens.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v4] tcg-i386: Introduce limited deposit support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: Blue Swirl , qemu-devel , Aurelien Jarno On 09/29/2011 09:52 AM, Jan Kiszka wrote: > x86 cannot provide an optimized generic deposit implementation. But at > least for a few special cases, namely for writing bits 0..7, 8..15, and > 0..15, versions using only a single instruction are feasible. > Introducing such limited support improves emulating 16-bit x86 code on > x86, but also rarer cases where 32-bit or 64-bit code accesses bytes or > words. > > Signed-off-by: Jan Kiszka > --- > > Changes in v4: > - provide correct default TCG_TARGET_deposit_i32_valid > > Changes in v3: > - provide default TCG_TARGET_deposit_i32_valid - just in case > > Changes in v2: > - introduce restricting predicates TCG_TARGET_deposit_i32/64_valid > to decide if deposit support can be used > - express register constraints via new 'Q' symbol > > tcg/i386/tcg-target.c | 24 ++++++++++++++++++++++++ > tcg/i386/tcg-target.h | 9 +++++++-- > tcg/tcg-op.h | 4 ++-- > tcg/tcg.h | 7 +++++++ > 4 files changed, 40 insertions(+), 4 deletions(-) Reviewed-by: Richard Henderson r~