target/m68k: TCGv returned by gen_load() must be freed

Backports commit 24989f0e21cc9cd90237d4836a456c3ffb824b3e from qemu
This commit is contained in:
Laurent Vivier 2018-03-09 01:15:55 -05:00 committed by Lioncash
parent 81ae246f07
commit c0ab026e78
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7

View file

@ -2962,6 +2962,7 @@ DISAS_INSN(unlk)
tcg_gen_mov_i32(tcg_ctx, reg, tmp);
tcg_gen_addi_i32(tcg_ctx, QREG_SP, src, 4);
tcg_temp_free(tcg_ctx, src);
tcg_temp_free(tcg_ctx, tmp);
}
#if defined(CONFIG_SOFTMMU)
@ -3259,6 +3260,9 @@ DISAS_INSN(subx_mem)
gen_subx(s, src, dest, opsize);
gen_store(s, opsize, addr_dest, tcg_ctx->QREG_CC_N, IS_USER(s));
tcg_temp_free(tcg_ctx, dest);
tcg_temp_free(tcg_ctx, src);
}
DISAS_INSN(mov3q)
@ -3486,6 +3490,9 @@ DISAS_INSN(addx_mem)
gen_addx(s, src, dest, opsize);
gen_store(s, opsize, addr_dest, tcg_ctx->QREG_CC_N, IS_USER(s));
tcg_temp_free(tcg_ctx, dest);
tcg_temp_free(tcg_ctx, src);
}
static inline void shift_im(DisasContext *s, uint16_t insn, int opsize)
@ -4573,6 +4580,8 @@ DISAS_INSN(chk2)
gen_flush_flags(s);
gen_helper_chk2(tcg_ctx, tcg_ctx->cpu_env, reg, bound1, bound2);
tcg_temp_free(tcg_ctx, reg);
tcg_temp_free(tcg_ctx, bound1);
tcg_temp_free(tcg_ctx, bound2);
}
static void m68k_copy_line(DisasContext *s, TCGv dst, TCGv src, int index)
@ -4727,6 +4736,7 @@ DISAS_INSN(moves)
} else {
gen_partset_reg(s, opsize, reg, tmp);
}
tcg_temp_free(tcg_ctx, tmp);
}
switch (extract32(insn, 3, 3)) {
case 3: /* Indirect postincrement. */
@ -5747,6 +5757,7 @@ DISAS_INSN(mac)
case 4: /* Pre-decrement. */
tcg_gen_mov_i32(tcg_ctx, AREG(insn, 0), addr);
}
tcg_temp_free(tcg_ctx, loadval);
}
}