diff options
author | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-11-11 11:34:30 +0000 |
---|---|---|
committer | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-11-11 11:34:30 +0000 |
commit | c24135ffcc46ef1e02c69667f0b4156ebf7b86dd (patch) | |
tree | cb1fe80b141fb8f590a0f1e3f71acbab065cf539 /target-mips/translate.c | |
parent | 1f9611242bdbb1b7c5c73a471bada2c26f8bdba1 (diff) |
target-mips: fix temporary variable freeing in op_ldst_##insn()
Move tcg_temp_free() out of the conditional part to make sure
the TCG temporary variable is freed in all cases.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Acked-by: Thiemo Seufer <ths@networkno.de>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5673 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-mips/translate.c')
-rw-r--r-- | target-mips/translate.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/target-mips/translate.c b/target-mips/translate.c index 4b0339ea3c..9e7335b5f7 100644 --- a/target-mips/translate.c +++ b/target-mips/translate.c @@ -1045,13 +1045,13 @@ static inline void op_ldst_##insn(TCGv t0, TCGv t1, DisasContext *ctx) \ gen_set_label(l1); \ tcg_gen_ld_tl(r_tmp, cpu_env, offsetof(CPUState, CP0_LLAddr)); \ tcg_gen_brcond_tl(TCG_COND_NE, t0, r_tmp, l2); \ - tcg_temp_free(r_tmp); \ tcg_gen_qemu_##fname(t1, t0, ctx->mem_idx); \ tcg_gen_movi_tl(t0, 1); \ tcg_gen_br(l3); \ gen_set_label(l2); \ tcg_gen_movi_tl(t0, 0); \ gen_set_label(l3); \ + tcg_temp_free(r_tmp); \ } OP_ST_ATOMIC(sc,st32,0x3); #if defined(TARGET_MIPS64) |