qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [4506] Switch MIPS movn/movz to TCG.


From: Thiemo Seufer
Subject: [Qemu-devel] [4506] Switch MIPS movn/movz to TCG.
Date: Wed, 21 May 2008 02:02:40 +0000

Revision: 4506
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=4506
Author:   ths
Date:     2008-05-21 02:02:39 +0000 (Wed, 21 May 2008)

Log Message:
-----------
Switch MIPS movn/movz to TCG.

Modified Paths:
--------------
    trunk/target-mips/op.c
    trunk/target-mips/translate.c

Modified: trunk/target-mips/op.c
===================================================================
--- trunk/target-mips/op.c      2008-05-20 19:36:22 UTC (rev 4505)
+++ trunk/target-mips/op.c      2008-05-21 02:02:39 UTC (rev 4506)
@@ -510,20 +510,6 @@
 #endif
 
 /* Conditional moves */
-void op_movn (void)
-{
-    if (T1 != 0)
-        env->gpr[env->current_tc][PARAM1] = T0;
-    FORCE_RET();
-}
-
-void op_movz (void)
-{
-    if (T1 == 0)
-        env->gpr[env->current_tc][PARAM1] = T0;
-    FORCE_RET();
-}
-
 void op_movf (void)
 {
     if (!(env->fpu->fcr31 & PARAM1))

Modified: trunk/target-mips/translate.c
===================================================================
--- trunk/target-mips/translate.c       2008-05-20 19:36:22 UTC (rev 4505)
+++ trunk/target-mips/translate.c       2008-05-21 02:02:39 UTC (rev 4506)
@@ -1707,11 +1707,23 @@
         opn = "mul";
         break;
     case OPC_MOVN:
-        gen_op_movn(rd);
+        {
+            int l1 = gen_new_label();
+
+            tcg_gen_brcond_tl(TCG_COND_EQ, cpu_T[1], tcg_const_tl(0), l1);
+            gen_op_store_gpr_T0(rd);
+            gen_set_label(l1);
+        }
         opn = "movn";
         goto print;
     case OPC_MOVZ:
-        gen_op_movz(rd);
+        {
+            int l1 = gen_new_label();
+
+            tcg_gen_brcond_tl(TCG_COND_NE, cpu_T[1], tcg_const_tl(0), l1);
+            gen_op_store_gpr_T0(rd);
+            gen_set_label(l1);
+        }
         opn = "movz";
         goto print;
     case OPC_SLLV:






reply via email to

[Prev in Thread] Current Thread [Next in Thread]