qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH] Alpha: remove amask helper


From: Tristan Gingold
Subject: [Qemu-devel] [PATCH] Alpha: remove amask helper
Date: Fri, 10 Apr 2009 10:58:05 +0200

The direct use of helper_amask in translate.c was bogus (as env is not
assigned).  Directly code amask in tcg and remove the helper.

Signed-off-by: Tristan Gingold <address@hidden>
---
 target-alpha/helper.h    |    1 -
 target-alpha/op_helper.c |   15 ---------------
 target-alpha/translate.c |   15 +++++++++++++--
 3 files changed, 13 insertions(+), 18 deletions(-)

diff --git a/target-alpha/helper.h b/target-alpha/helper.h
index f62b1c2..a4faca2 100644
--- a/target-alpha/helper.h
+++ b/target-alpha/helper.h
@@ -3,7 +3,6 @@
 DEF_HELPER_0(tb_flush, void)
 
 DEF_HELPER_2(excp, void, int, int)
-DEF_HELPER_1(amask, i64, i64)
 DEF_HELPER_0(load_pcc, i64)
 DEF_HELPER_0(rc, i64)
 DEF_HELPER_0(rs, i64)
diff --git a/target-alpha/op_helper.c b/target-alpha/op_helper.c
index 59010fc..e9c7d28 100644
--- a/target-alpha/op_helper.c
+++ b/target-alpha/op_helper.c
@@ -37,21 +37,6 @@ void helper_excp (int excp, int error)
     cpu_loop_exit();
 }
 
-uint64_t helper_amask (uint64_t arg)
-{
-    switch (env->implver) {
-    case IMPLVER_2106x:
-        /* EV4, EV45, LCA, LCA45 & EV5 */
-        break;
-    case IMPLVER_21164:
-    case IMPLVER_21264:
-    case IMPLVER_21364:
-        arg &= ~env->amask;
-        break;
-    }
-    return arg;
-}
-
 uint64_t helper_load_pcc (void)
 {
     /* XXX: TODO */
diff --git a/target-alpha/translate.c b/target-alpha/translate.c
index 11b8139..a971b03 100644
--- a/target-alpha/translate.c
+++ b/target-alpha/translate.c
@@ -1160,9 +1160,20 @@ static always_inline int translate_one (DisasContext 
*ctx, uint32_t insn)
             /* AMASK */
             if (likely(rc != 31)) {
                 if (islit)
-                    tcg_gen_movi_i64(cpu_ir[rc], helper_amask(lit));
+                    tcg_gen_movi_i64(cpu_ir[rc], lit);
                 else
-                    gen_helper_amask(cpu_ir[rc], cpu_ir[rb]);
+                    tcg_gen_mov_i64(cpu_ir[rc], cpu_ir[rb]);
+                switch (ctx->env->implver) {
+                case IMPLVER_2106x:
+                    /* EV4, EV45, LCA, LCA45 & EV5 */
+                    break;
+                case IMPLVER_21164:
+                case IMPLVER_21264:
+                case IMPLVER_21364:
+                    tcg_gen_andi_i64(cpu_ir[rc], cpu_ir[rc],
+                                     ~(uint64_t)ctx->amask);
+                    break;
+                }
             }
             break;
         case 0x64:
-- 
1.6.2





reply via email to

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