From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KcOK6-0006cu-FG for qemu-devel@nongnu.org; Sun, 07 Sep 2008 13:45:18 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KcOK5-0006cA-KO for qemu-devel@nongnu.org; Sun, 07 Sep 2008 13:45:17 -0400 Received: from [199.232.76.173] (port=39739 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KcOK5-0006bo-E5 for qemu-devel@nongnu.org; Sun, 07 Sep 2008 13:45:17 -0400 Received: from savannah.gnu.org ([199.232.41.3]:33167 helo=sv.gnu.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KcOK5-0003zx-5F for qemu-devel@nongnu.org; Sun, 07 Sep 2008 13:45:17 -0400 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1KcOK4-00048F-Jw for qemu-devel@nongnu.org; Sun, 07 Sep 2008 17:45:16 +0000 Received: from pbrook by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1KcOK4-00048A-8z for qemu-devel@nongnu.org; Sun, 07 Sep 2008 17:45:16 +0000 MIME-Version: 1.0 Errors-To: pbrook Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Paul Brook Message-Id: Date: Sun, 07 Sep 2008 17:45:16 +0000 Subject: [Qemu-devel] [5179] Implement TCG sign extension ops for x86-64. Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Revision: 5179 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5179 Author: pbrook Date: 2008-09-07 17:45:15 +0000 (Sun, 07 Sep 2008) Log Message: ----------- Implement TCG sign extension ops for x86-64. Signed-off-by: Paul Brook Modified Paths: -------------- trunk/tcg/x86_64/tcg-target.c trunk/tcg/x86_64/tcg-target.h Modified: trunk/tcg/x86_64/tcg-target.c =================================================================== --- trunk/tcg/x86_64/tcg-target.c 2008-09-07 16:42:53 UTC (rev 5178) +++ trunk/tcg/x86_64/tcg-target.c 2008-09-07 17:45:15 UTC (rev 5179) @@ -1070,6 +1070,22 @@ tcg_out_modrm(s, 0xf7 | P_REXW, 3, args[0]); break; + case INDEX_op_ext8s_i32: + tcg_out_modrm(s, 0xbe | P_EXT | P_REXB, args[0], args[1]); + break; + case INDEX_op_ext16s_i32: + tcg_out_modrm(s, 0xbf | P_EXT, args[0], args[1]); + break; + case INDEX_op_ext8s_i64: + tcg_out_modrm(s, 0xbe | P_EXT | P_REXW, args[0], args[1]); + break; + case INDEX_op_ext16s_i64: + tcg_out_modrm(s, 0xbf | P_EXT | P_REXW, args[0], args[1]); + break; + case INDEX_op_ext32s_i64: + tcg_out_modrm(s, 0x63 | P_REXW, args[0], args[1]); + break; + case INDEX_op_qemu_ld8u: tcg_out_qemu_ld(s, args, 0); break; @@ -1228,6 +1244,12 @@ { INDEX_op_neg_i32, { "r", "0" } }, { INDEX_op_neg_i64, { "r", "0" } }, + { INDEX_op_ext8s_i32, { "r", "r"} }, + { INDEX_op_ext16s_i32, { "r", "r"} }, + { INDEX_op_ext8s_i64, { "r", "r"} }, + { INDEX_op_ext16s_i64, { "r", "r"} }, + { INDEX_op_ext32s_i64, { "r", "r"} }, + { INDEX_op_qemu_ld8u, { "r", "L" } }, { INDEX_op_qemu_ld8s, { "r", "L" } }, { INDEX_op_qemu_ld16u, { "r", "L" } }, Modified: trunk/tcg/x86_64/tcg-target.h =================================================================== --- trunk/tcg/x86_64/tcg-target.h 2008-09-07 16:42:53 UTC (rev 5178) +++ trunk/tcg/x86_64/tcg-target.h 2008-09-07 17:45:15 UTC (rev 5179) @@ -60,6 +60,11 @@ #define TCG_TARGET_HAS_bswap_i64 #define TCG_TARGET_HAS_neg_i32 #define TCG_TARGET_HAS_neg_i64 +#define TCG_TARGET_HAS_ext8s_i32 +#define TCG_TARGET_HAS_ext16s_i32 +#define TCG_TARGET_HAS_ext8s_i64 +#define TCG_TARGET_HAS_ext16s_i64 +#define TCG_TARGET_HAS_ext32s_i64 /* Note: must be synced with dyngen-exec.h */ #define TCG_AREG0 TCG_REG_R14