Commit c24135ffcc46ef1e02c69667f0b4156ebf7b86dd
1 parent
1f961124
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
Showing
1 changed file
with
1 additions
and
1 deletions
target-mips/translate.c
... | ... | @@ -1045,13 +1045,13 @@ static inline void op_ldst_##insn(TCGv t0, TCGv t1, DisasContext *ctx) \ |
1045 | 1045 | gen_set_label(l1); \ |
1046 | 1046 | tcg_gen_ld_tl(r_tmp, cpu_env, offsetof(CPUState, CP0_LLAddr)); \ |
1047 | 1047 | tcg_gen_brcond_tl(TCG_COND_NE, t0, r_tmp, l2); \ |
1048 | - tcg_temp_free(r_tmp); \ | |
1049 | 1048 | tcg_gen_qemu_##fname(t1, t0, ctx->mem_idx); \ |
1050 | 1049 | tcg_gen_movi_tl(t0, 1); \ |
1051 | 1050 | tcg_gen_br(l3); \ |
1052 | 1051 | gen_set_label(l2); \ |
1053 | 1052 | tcg_gen_movi_tl(t0, 0); \ |
1054 | 1053 | gen_set_label(l3); \ |
1054 | + tcg_temp_free(r_tmp); \ | |
1055 | 1055 | } |
1056 | 1056 | OP_ST_ATOMIC(sc,st32,0x3); |
1057 | 1057 | #if defined(TARGET_MIPS64) | ... | ... |