From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46761) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W7Ciq-0000hc-OX for qemu-devel@nongnu.org; Sat, 25 Jan 2014 18:33:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W7Cij-0005Qd-BV for qemu-devel@nongnu.org; Sat, 25 Jan 2014 18:33:08 -0500 Received: from mail-pd0-x235.google.com ([2607:f8b0:400e:c02::235]:54824) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W7Cij-0005QV-2P for qemu-devel@nongnu.org; Sat, 25 Jan 2014 18:33:01 -0500 Received: by mail-pd0-f181.google.com with SMTP id y10so4386695pdj.26 for ; Sat, 25 Jan 2014 15:32:59 -0800 (PST) Sender: Richard Henderson From: Richard Henderson Date: Sat, 25 Jan 2014 15:32:49 -0800 Message-Id: <1390692772-15282-3-git-send-email-rth@twiddle.net> In-Reply-To: <1390692772-15282-1-git-send-email-rth@twiddle.net> References: <1390692772-15282-1-git-send-email-rth@twiddle.net> Subject: [Qemu-devel] [PULL 2/5] tcg/i386: remove hardcoded P_REXW value List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aurelien@aurel32.net, aliguori@amazon.com From: Aurelien Jarno P_REXW is defined has a constant at the beginning of i386/tcg-target.c, but the corresponding bit is later used in a harcoded way, which defeat the purpose of a constant. Fix that by using a conditional expression operator instead of a shift. On x86 this actually makes the code slightly smaller as GCC does in practice (opc >> 8) & 8 instead of (opc & 0x800) >> 8 so the constants are smaller to load. Signed-off-by: Aurelien Jarno Signed-off-by: Richard Henderson --- tcg/i386/tcg-target.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tcg/i386/tcg-target.c b/tcg/i386/tcg-target.c index 495b901..753b3a1 100644 --- a/tcg/i386/tcg-target.c +++ b/tcg/i386/tcg-target.c @@ -381,7 +381,7 @@ static void tcg_out_opc(TCGContext *s, int opc, int r, int rm, int x) } rex = 0; - rex |= (opc & P_REXW) >> 8; /* REX.W */ + rex |= (opc & P_REXW) ? 0x8 : 0x0; /* REX.W */ rex |= (r & 8) >> 1; /* REX.R */ rex |= (x & 8) >> 2; /* REX.X */ rex |= (rm & 8) >> 3; /* REX.B */ -- 1.8.5.3