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