From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L5mZX-00038d-0Q for qemu-devel@nongnu.org; Thu, 27 Nov 2008 14:30:43 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L5mZU-00038I-Gk for qemu-devel@nongnu.org; Thu, 27 Nov 2008 14:30:41 -0500 Received: from [199.232.76.173] (port=36365 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L5mZU-00038D-Av for qemu-devel@nongnu.org; Thu, 27 Nov 2008 14:30:40 -0500 Received: from savannah.gnu.org ([199.232.41.3]:34866 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 1L5mZU-0000ze-3z for qemu-devel@nongnu.org; Thu, 27 Nov 2008 14:30:40 -0500 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1L5mZT-0001Hs-Hu for qemu-devel@nongnu.org; Thu, 27 Nov 2008 19:30:39 +0000 Received: from aurel32 by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1L5mZS-0001Hj-Sy for qemu-devel@nongnu.org; Thu, 27 Nov 2008 19:30:39 +0000 MIME-Version: 1.0 Errors-To: aurel32 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Aurelien Jarno Message-Id: Date: Thu, 27 Nov 2008 19:30:39 +0000 Subject: [Qemu-devel] [5803] target-ppc: simplify evsplati and evsplatfi 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: 5803 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5803 Author: aurel32 Date: 2008-11-27 19:30:38 +0000 (Thu, 27 Nov 2008) Log Message: ----------- target-ppc: simplify evsplati and evsplatfi Signed-off-by: Aurelien Jarno Modified Paths: -------------- trunk/target-ppc/translate.c Modified: trunk/target-ppc/translate.c =================================================================== --- trunk/target-ppc/translate.c 2008-11-27 15:47:15 UTC (rev 5802) +++ trunk/target-ppc/translate.c 2008-11-27 19:30:38 UTC (rev 5803) @@ -6569,16 +6569,10 @@ } static always_inline void gen_evsplati (DisasContext *ctx) { - int32_t imm = (int32_t)(rA(ctx->opcode) << 11) >> 27; + uint64_t imm = ((int32_t)(rA(ctx->opcode) << 11)) >> 27; #if defined(TARGET_PPC64) - TCGv t0 = tcg_temp_new(); - TCGv t1 = tcg_temp_new(); - tcg_gen_movi_tl(t0, imm); - tcg_gen_shri_tl(t1, t0, 32); - tcg_gen_or_tl(cpu_gpr[rD(ctx->opcode)], t0, t1); - tcg_temp_free(t0); - tcg_temp_free(t1); + tcg_gen_movi_tl(cpu_gpr[rD(ctx->opcode)], (imm << 32) | imm); #else tcg_gen_movi_i32(cpu_gpr[rD(ctx->opcode)], imm); tcg_gen_movi_i32(cpu_gprh[rD(ctx->opcode)], imm); @@ -6586,16 +6580,10 @@ } static always_inline void gen_evsplatfi (DisasContext *ctx) { - uint32_t imm = rA(ctx->opcode) << 11; + uint64_t imm = rA(ctx->opcode) << 11; #if defined(TARGET_PPC64) - TCGv t0 = tcg_temp_new(); - TCGv t1 = tcg_temp_new(); - tcg_gen_movi_tl(t0, imm); - tcg_gen_shri_tl(t1, t0, 32); - tcg_gen_or_tl(cpu_gpr[rD(ctx->opcode)], t0, t1); - tcg_temp_free(t0); - tcg_temp_free(t1); + tcg_gen_movi_tl(cpu_gpr[rD(ctx->opcode)], (imm << 32) | imm); #else tcg_gen_movi_i32(cpu_gpr[rD(ctx->opcode)], imm); tcg_gen_movi_i32(cpu_gprh[rD(ctx->opcode)], imm);