From 50b871f5234a15f6d1be7418588347b133fabc58 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 21 Feb 2018 00:24:37 -0500 Subject: [PATCH] tcg: Make store_dummy a TCGv Commit 5d4e1a1081d3f1ec2908ff0eaebe312389971ab4 allows making the type concrete --- qemu/target-m68k/translate.c | 11 ++++------- qemu/target-m68k/unicorn.c | 1 - qemu/tcg/tcg.h | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/qemu/target-m68k/translate.c b/qemu/target-m68k/translate.c index 0271983b..d5c8419d 100644 --- a/qemu/target-m68k/translate.c +++ b/qemu/target-m68k/translate.c @@ -91,10 +91,7 @@ void m68k_tcg_init(struct uc_struct *uc) } tcg_ctx->NULL_QREG = tcg_global_mem_new(tcg_ctx, tcg_ctx->cpu_env, -4, "NULL"); - - if (!uc->init_tcg) - tcg_ctx->store_dummy = g_malloc0(sizeof(TCGv)); - *((TCGv *)tcg_ctx->store_dummy) = tcg_global_mem_new(tcg_ctx, tcg_ctx->cpu_env, -8, "NULL"); + tcg_ctx->store_dummy = tcg_global_mem_new(tcg_ctx, tcg_ctx->cpu_env, -8, "NULL"); uc->init_tcg = true; } @@ -232,7 +229,7 @@ static TCGv gen_ldst(DisasContext *s, int opsize, TCGv addr, TCGv val, if (what == EA_STORE) { TCGContext *tcg_ctx = s->uc->tcg_ctx; gen_store(s, opsize, addr, val); - return *(TCGv *)tcg_ctx->store_dummy; + return tcg_ctx->store_dummy; } else { return gen_load(s, opsize, addr, what == EA_LOADS); } @@ -576,7 +573,7 @@ static TCGv gen_ea(CPUM68KState *env, DisasContext *s, uint16_t insn, reg = DREG(insn, 0); if (what == EA_STORE) { gen_partset_reg(s, opsize, reg, val); - return *(TCGv *)tcg_ctx->store_dummy; + return tcg_ctx->store_dummy; } else { return gen_extend(s, reg, opsize, what == EA_LOADS); } @@ -584,7 +581,7 @@ static TCGv gen_ea(CPUM68KState *env, DisasContext *s, uint16_t insn, reg = AREG(insn, 0); if (what == EA_STORE) { tcg_gen_mov_i32(tcg_ctx, reg, val); - return *(TCGv *)tcg_ctx->store_dummy; + return tcg_ctx->store_dummy; } else { return gen_extend(s, reg, opsize, what == EA_LOADS); } diff --git a/qemu/target-m68k/unicorn.c b/qemu/target-m68k/unicorn.c index 4ed4cdcd..65b8cd98 100644 --- a/qemu/target-m68k/unicorn.c +++ b/qemu/target-m68k/unicorn.c @@ -24,7 +24,6 @@ void m68k_release(void* ctx) release_common(ctx); g_free(tcg_ctx->tb_ctx.tbs); - g_free(tcg_ctx->store_dummy); } void m68k_reg_reset(struct uc_struct *uc) diff --git a/qemu/tcg/tcg.h b/qemu/tcg/tcg.h index 21203798..d12a3531 100644 --- a/qemu/tcg/tcg.h +++ b/qemu/tcg/tcg.h @@ -792,7 +792,7 @@ struct TCGContext { TCGv NULL_QREG; void *opcode_table[65536]; /* Used to distinguish stores from bad addressing modes. */ - void *store_dummy; + TCGv store_dummy; /* qemu/target-arm/translate.c */ TCGv_i64 cpu_V0, cpu_V1, cpu_M0;