qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] Alpha: remove amask helper
@ 2009-04-10  8:58 Tristan Gingold
  2009-04-10 21:27 ` Aurelien Jarno
  0 siblings, 1 reply; 2+ messages in thread
From: Tristan Gingold @ 2009-04-10  8:58 UTC (permalink / raw)
  To: qemu-devel

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 <gingold@adacore.com>
---
 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

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Qemu-devel] [PATCH] Alpha: remove amask helper
  2009-04-10  8:58 [Qemu-devel] [PATCH] Alpha: remove amask helper Tristan Gingold
@ 2009-04-10 21:27 ` Aurelien Jarno
  0 siblings, 0 replies; 2+ messages in thread
From: Aurelien Jarno @ 2009-04-10 21:27 UTC (permalink / raw)
  To: Tristan Gingold; +Cc: qemu-devel

On Fri, Apr 10, 2009 at 10:58:05AM +0200, Tristan Gingold wrote:
> 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 <gingold@adacore.com>
> ---
>  target-alpha/helper.h    |    1 -
>  target-alpha/op_helper.c |   15 ---------------
>  target-alpha/translate.c |   15 +++++++++++++--
>  3 files changed, 13 insertions(+), 18 deletions(-)

Thanks, applied

> 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
> 
> 
> 
> 

-- 
Aurelien Jarno	                        GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-04-10 21:27 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-10  8:58 [Qemu-devel] [PATCH] Alpha: remove amask helper Tristan Gingold
2009-04-10 21:27 ` Aurelien Jarno

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).