aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--target-alpha/helper.h1
-rw-r--r--target-alpha/op_helper.c5
-rw-r--r--target-alpha/translate.c4
3 files changed, 3 insertions, 7 deletions
diff --git a/target-alpha/helper.h b/target-alpha/helper.h
index 4c4855d093..f62b1c2b55 100644
--- a/target-alpha/helper.h
+++ b/target-alpha/helper.h
@@ -5,7 +5,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(load_implver, 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 e61fa7396c..6b41d2bec5 100644
--- a/target-alpha/op_helper.c
+++ b/target-alpha/op_helper.c
@@ -58,11 +58,6 @@ uint64_t helper_load_pcc (void)
return 0;
}
-uint64_t helper_load_implver (void)
-{
- return env->implver;
-}
-
uint64_t helper_load_fpcr (void)
{
uint64_t ret = 0;
diff --git a/target-alpha/translate.c b/target-alpha/translate.c
index ce635b727d..c68a6284d3 100644
--- a/target-alpha/translate.c
+++ b/target-alpha/translate.c
@@ -51,6 +51,7 @@ struct DisasContext {
#if !defined (CONFIG_USER_ONLY)
int pal_mode;
#endif
+ CPUAlphaState *env;
uint32_t amask;
};
@@ -1175,7 +1176,7 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn)
case 0x6C:
/* IMPLVER */
if (rc != 31)
- gen_helper_load_implver(cpu_ir[rc]);
+ tcg_gen_movi_i64(cpu_ir[rc], ctx->env->implver);
break;
default:
goto invalid_opc;
@@ -2352,6 +2353,7 @@ static always_inline void gen_intermediate_code_internal (CPUState *env,
gen_opc_end = gen_opc_buf + OPC_MAX_SIZE;
ctx.pc = pc_start;
ctx.amask = env->amask;
+ ctx.env = env;
#if defined (CONFIG_USER_ONLY)
ctx.mem_idx = 0;
#else