From mboxrd@z Thu Jan 1 00:00:00 1970 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) Sender: Richard Henderson From: Richard Henderson Date: Mon, 2 Sep 2013 09:29:14 -0700 Message-Id: <1378139354-28602-30-git-send-email-rth@twiddle.net> In-Reply-To: <1378139354-28602-1-git-send-email-rth@twiddle.net> References: <1378139354-28602-1-git-send-email-rth@twiddle.net> Subject: [Qemu-devel] [PULL 29/29] tcg-i386: Make use of zero-extended memory helper routines List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aurelien@aurel32.net, anthony@codemonkey.ws 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); -- 1.8.1.4