From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KhTjW-0000w5-3a for qemu-devel@nongnu.org; Sun, 21 Sep 2008 14:32:34 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KhTjV-0000vt-El for qemu-devel@nongnu.org; Sun, 21 Sep 2008 14:32:33 -0400 Received: from [199.232.76.173] (port=56655 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KhTjU-0000vq-H9 for qemu-devel@nongnu.org; Sun, 21 Sep 2008 14:32:33 -0400 Received: from savannah.gnu.org ([199.232.41.3]:56932 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 1KhTjU-0001Kr-6b for qemu-devel@nongnu.org; Sun, 21 Sep 2008 14:32:32 -0400 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1KhTjR-0005P0-Eg for qemu-devel@nongnu.org; Sun, 21 Sep 2008 18:32:29 +0000 Received: from blueswir1 by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1KhTjR-0005Ow-19 for qemu-devel@nongnu.org; Sun, 21 Sep 2008 18:32:29 +0000 MIME-Version: 1.0 Errors-To: blueswir1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Blue Swirl Message-Id: Date: Sun, 21 Sep 2008 18:32:29 +0000 Subject: [Qemu-devel] [5282] Add concat32_i64 and concat_tl_i64 ops 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: 5282 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5282 Author: blueswir1 Date: 2008-09-21 18:32:28 +0000 (Sun, 21 Sep 2008) Log Message: ----------- Add concat32_i64 and concat_tl_i64 ops Modified Paths: -------------- trunk/tcg/README trunk/tcg/tcg-op.h Modified: trunk/tcg/README =================================================================== --- trunk/tcg/README 2008-09-21 14:49:09 UTC (rev 5281) +++ trunk/tcg/README 2008-09-21 18:32:28 UTC (rev 5282) @@ -269,6 +269,10 @@ Construct t0 (64-bit) taking the low half from t1 (32 bit) and the high half from t2 (32 bit). +* concat32_i64 t0, t1, t2 +Construct t0 (64-bit) taking the low half from t1 (64 bit) and the high half +from t2 (64 bit). + ********* Load/Store * ld_i32/i64 t0, t1, offset Modified: trunk/tcg/tcg-op.h =================================================================== --- trunk/tcg/tcg-op.h 2008-09-21 14:49:09 UTC (rev 5281) +++ trunk/tcg/tcg-op.h 2008-09-21 18:32:28 UTC (rev 5282) @@ -1412,6 +1412,18 @@ #endif } +static inline void tcg_gen_concat32_i64(TCGv dest, TCGv low, TCGv high) +{ +#if TCG_TARGET_REG_BITS == 32 + tcg_gen_concat_i32_i64(dest, low, high); +#else + TCGv tmp = tcg_temp_new(TCG_TYPE_I64); + tcg_gen_shli_i64(tmp, high, 32); + tcg_gen_or_i64(dest, low, tmp); + tcg_temp_free(tmp); +#endif +} + /***************************************/ /* QEMU specific operations. Their type depend on the QEMU CPU type. */ @@ -1664,6 +1676,7 @@ #define tcg_gen_ext16s_tl tcg_gen_ext16s_i64 #define tcg_gen_ext32u_tl tcg_gen_ext32u_i64 #define tcg_gen_ext32s_tl tcg_gen_ext32s_i64 +#define tcg_gen_concat_tl_i64 tcg_gen_concat32_i64 #define tcg_const_tl tcg_const_i64 #else #define TCG_TYPE_TL TCG_TYPE_I32 @@ -1715,6 +1728,7 @@ #define tcg_gen_ext16s_tl tcg_gen_ext16s_i32 #define tcg_gen_ext32u_tl tcg_gen_mov_i32 #define tcg_gen_ext32s_tl tcg_gen_mov_i32 +#define tcg_gen_concat_tl_i64 tcg_gen_concat_i32_i64 #define tcg_const_tl tcg_const_i32 #endif