From patchwork Mon Sep 2 16:29:14 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 272010 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 14EBE2C0082 for ; Tue, 3 Sep 2013 02:43:28 +1000 (EST) Received: from localhost ([::1]:41084 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VGXDq-0005j4-AH for incoming@patchwork.ozlabs.org; Mon, 02 Sep 2013 12:43:26 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40138) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VGX0x-0003NZ-1Q for qemu-devel@nongnu.org; Mon, 02 Sep 2013 12:30:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VGX0s-0005um-6y for qemu-devel@nongnu.org; Mon, 02 Sep 2013 12:30:06 -0400 Received: from mail-pb0-x233.google.com ([2607:f8b0:400e:c01::233]:60631) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VGX0s-0005rD-0X for qemu-devel@nongnu.org; Mon, 02 Sep 2013 12:30:02 -0400 Received: by mail-pb0-f51.google.com with SMTP id jt11so4900345pbb.24 for ; Mon, 02 Sep 2013 09:30:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=UVevY7uxceTXwllMcWj0DYLMBaPHcBePhJooqb3rBew=; b=mHoQpZYI/ZDen0GSJF7xYnDWuHeutUfn4GktusYNRxg2QrHXl1uC2yr9boogPa2rtp H0wWFucQy0c6ntmF6hTxwkD07vGPQxZp5Up+FK3612VnNwiIpYV0hqqLDvpVqCxttRIm +I+UkGPFifSKRZnh0rWtW2+ySrt+GH+XeHoigCUyZtZ8/wpPGiqZkjnnBeTcl/TF2w6z f3U00fzR7Pw8cn9VHQXzCiQGbgJ1UZMrXH0S1laboVesATwP/+LklcWff1jCwgYqayDm UQSm2lSRV7FxBZwdk92jdktkm2HyKekWObzIo4oBt3iH7DfnU/ojhH1fiBuDNhLB3X+0 susQ== X-Received: by 10.68.102.165 with SMTP id fp5mr26390340pbb.83.1378139401130; Mon, 02 Sep 2013 09:30:01 -0700 (PDT) Received: from anchor.twiddle.net (50-194-63-110-static.hfc.comcastbusiness.net. [50.194.63.110]) by mx.google.com with ESMTPSA id ia5sm16821148pbc.42.1969.12.31.16.00.00 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Mon, 02 Sep 2013 09:30:00 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Mon, 2 Sep 2013 09:29:14 -0700 Message-Id: <1378139354-28602-30-git-send-email-rth@twiddle.net> X-Mailer: git-send-email 1.8.1.4 In-Reply-To: <1378139354-28602-1-git-send-email-rth@twiddle.net> References: <1378139354-28602-1-git-send-email-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:400e:c01::233 Cc: aurelien@aurel32.net, anthony@codemonkey.ws Subject: [Qemu-devel] [PULL 29/29] tcg-i386: Make use of zero-extended memory helper routines X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org For 8 and 16-bit unsigned loads, rely on the zero-extension from the helper and use a smaller 32-bit move insn. Reviewed-by: Aurelien Jarno Signed-off-by: Richard Henderson --- tcg/i386/tcg-target.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/tcg/i386/tcg-target.c b/tcg/i386/tcg-target.c index 3ee54f1..c1f0741 100644 --- a/tcg/i386/tcg-target.c +++ b/tcg/i386/tcg-target.c @@ -1531,20 +1531,17 @@ static void tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *l) case 1 | 4: tcg_out_ext16s(s, data_reg, TCG_REG_EAX, P_REXW); break; - case 0: - tcg_out_ext8u(s, data_reg, TCG_REG_EAX); - break; - case 1: - tcg_out_ext16u(s, data_reg, TCG_REG_EAX); - break; - case 2: - tcg_out_mov(s, TCG_TYPE_I32, data_reg, TCG_REG_EAX); - break; #if TCG_TARGET_REG_BITS == 64 case 2 | 4: tcg_out_ext32s(s, data_reg, TCG_REG_EAX); break; #endif + case 0: + case 1: + /* Note that the helpers have zero-extended to tcg_target_long. */ + case 2: + tcg_out_mov(s, TCG_TYPE_I32, data_reg, TCG_REG_EAX); + break; case 3: if (TCG_TARGET_REG_BITS == 64) { tcg_out_mov(s, TCG_TYPE_I64, data_reg, TCG_REG_RAX);