diff --git a/target-alpha/helper.h b/target-alpha/helper.h index 4c4855d0937dc929ec0ffab9a8927cd206706e70..f62b1c2b55636daa731a1d7569f8459a4c02a90b 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 e61fa7396c6fb786878209827cb3c88e4bcc1703..6b41d2bec5cbc0a86fe068f4787f52a2eccfaa6b 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 ce635b727d24d61170b37e94cf1cf6a4456f7e20..c68a6284d33f359b85c5f6a114381001f34e58f5 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