From c0210ac8a618c841b5d7991bc1e758fd05205489 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 21 Feb 2018 01:41:53 -0500 Subject: [PATCH] tcg: Make cpu_wim a TCGv --- qemu/target-sparc/translate.c | 9 ++++----- qemu/target-sparc/unicorn.c | 1 - qemu/tcg/tcg.h | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/qemu/target-sparc/translate.c b/qemu/target-sparc/translate.c index 8821544a..aeff20b7 100644 --- a/qemu/target-sparc/translate.c +++ b/qemu/target-sparc/translate.c @@ -3076,7 +3076,7 @@ static void disas_sparc_insn(DisasContext * dc, unsigned int insn, bool hook_ins goto illegal_insn; } #else - tcg_gen_ext_i32_tl(tcg_ctx, cpu_tmp0, *(TCGv *)tcg_ctx->cpu_wim); + tcg_gen_ext_i32_tl(tcg_ctx, cpu_tmp0, tcg_ctx->cpu_wim); #endif gen_store_gpr(dc, rd, cpu_tmp0); break; @@ -4027,9 +4027,9 @@ static void disas_sparc_insn(DisasContext * dc, unsigned int insn, bool hook_ins goto illegal_insn; } #else - tcg_gen_trunc_tl_i32(tcg_ctx, *(TCGv *)tcg_ctx->cpu_wim, cpu_tmp0); + tcg_gen_trunc_tl_i32(tcg_ctx, tcg_ctx->cpu_wim, cpu_tmp0); if (dc->def->nwindows != 32) { - tcg_gen_andi_tl(tcg_ctx, *(TCGv *)tcg_ctx->cpu_wim, *(TCGv *)tcg_ctx->cpu_wim, + tcg_gen_andi_tl(tcg_ctx, tcg_ctx->cpu_wim, tcg_ctx->cpu_wim, (1 << dc->def->nwindows) - 1); } #endif @@ -5567,8 +5567,7 @@ void gen_intermediate_code_init(CPUSPARCState *env) offsetof(CPUSPARCState, softint), "softint"); #else - tcg_ctx->cpu_wim = g_malloc0(sizeof(TCGv)); - *(TCGv *)tcg_ctx->cpu_wim = tcg_global_mem_new(tcg_ctx, tcg_ctx->cpu_env, offsetof(CPUSPARCState, wim), + tcg_ctx->cpu_wim = tcg_global_mem_new(tcg_ctx, tcg_ctx->cpu_env, offsetof(CPUSPARCState, wim), "wim"); #endif tcg_ctx->cpu_cond = tcg_global_mem_new(tcg_ctx, tcg_ctx->cpu_env, offsetof(CPUSPARCState, cond), diff --git a/qemu/target-sparc/unicorn.c b/qemu/target-sparc/unicorn.c index 6edf895e..d61be94d 100644 --- a/qemu/target-sparc/unicorn.c +++ b/qemu/target-sparc/unicorn.c @@ -34,7 +34,6 @@ void sparc_release(void *ctx) int i; TCGContext *tcg_ctx = (TCGContext *) ctx; release_common(ctx); - g_free(tcg_ctx->cpu_wim); g_free(tcg_ctx->cpu_cc_src); g_free(tcg_ctx->cpu_cc_src2); g_free(tcg_ctx->cpu_cc_dst); diff --git a/qemu/tcg/tcg.h b/qemu/tcg/tcg.h index db1fa4d1..f01a1b35 100644 --- a/qemu/tcg/tcg.h +++ b/qemu/tcg/tcg.h @@ -848,7 +848,7 @@ struct TCGContext { TCGv cpu_hver; TCGv cpu_ssr; TCGv cpu_ver; - void *cpu_wim; + TCGv cpu_wim; TCGLabel *exitreq_label; // gen_tb_start() };