From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JsPNT-0004FS-Pn for qemu-devel@nongnu.org; Sat, 03 May 2008 17:34:43 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JsPNT-0004F9-9C for qemu-devel@nongnu.org; Sat, 03 May 2008 17:34:43 -0400 Received: from [199.232.76.173] (port=56968 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JsPNT-0004F6-4Z for qemu-devel@nongnu.org; Sat, 03 May 2008 17:34:43 -0400 Received: from savannah.gnu.org ([199.232.41.3] 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 1JsPNS-0000Jy-Rj for qemu-devel@nongnu.org; Sat, 03 May 2008 17:34:42 -0400 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1JsPNR-0005Fn-8u for qemu-devel@nongnu.org; Sat, 03 May 2008 21:34:41 +0000 Received: from edgar_igl by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1JsPNQ-0005Fg-RD for qemu-devel@nongnu.org; Sat, 03 May 2008 21:34:41 +0000 MIME-Version: 1.0 Errors-To: edgar_igl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: "Edgar E. Iglesias" Message-Id: Date: Sat, 03 May 2008 21:34:40 +0000 Subject: [Qemu-devel] [4313] CRIS: Convert divide step to TCG. 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: 4313 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=4313 Author: edgar_igl Date: 2008-05-03 21:34:39 +0000 (Sat, 03 May 2008) Log Message: ----------- CRIS: Convert divide step to TCG. Modified Paths: -------------- trunk/target-cris/translate.c Modified: trunk/target-cris/translate.c =================================================================== --- trunk/target-cris/translate.c 2008-05-03 20:52:26 UTC (rev 4312) +++ trunk/target-cris/translate.c 2008-05-03 21:34:39 UTC (rev 4313) @@ -375,6 +375,23 @@ tcg_gen_discard_i32(n); } +static void t_gen_cris_dstep(TCGv d, TCGv s) +{ + int l1; + + l1 = gen_new_label(); + + /* + * d <<= 1 + * if (d >= s) + * d -= s; + */ + tcg_gen_shli_tl(d, d, 1); + tcg_gen_brcond_tl(TCG_COND_LTU, d, s, l1); + tcg_gen_sub_tl(d, d, s); + gen_set_label(l1); +} + /* Extended arithmetics on CRIS. */ static inline void t_gen_add_flag(TCGv d, int flag) { @@ -725,7 +742,7 @@ } break; case CC_OP_DSTEP: - gen_op_dstep_T0_T1(); + t_gen_cris_dstep(cpu_T[0], cpu_T[1]); break; case CC_OP_BOUND: {