mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-07-07 13:20:42 +00:00
target/m68k: TCGv returned by gen_load() must be freed
Backports commit 24989f0e21cc9cd90237d4836a456c3ffb824b3e from qemu
This commit is contained in:
parent
81ae246f07
commit
c0ab026e78
|
@ -2962,6 +2962,7 @@ DISAS_INSN(unlk)
|
||||||
tcg_gen_mov_i32(tcg_ctx, reg, tmp);
|
tcg_gen_mov_i32(tcg_ctx, reg, tmp);
|
||||||
tcg_gen_addi_i32(tcg_ctx, QREG_SP, src, 4);
|
tcg_gen_addi_i32(tcg_ctx, QREG_SP, src, 4);
|
||||||
tcg_temp_free(tcg_ctx, src);
|
tcg_temp_free(tcg_ctx, src);
|
||||||
|
tcg_temp_free(tcg_ctx, tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_SOFTMMU)
|
#if defined(CONFIG_SOFTMMU)
|
||||||
|
@ -3259,6 +3260,9 @@ DISAS_INSN(subx_mem)
|
||||||
gen_subx(s, src, dest, opsize);
|
gen_subx(s, src, dest, opsize);
|
||||||
|
|
||||||
gen_store(s, opsize, addr_dest, tcg_ctx->QREG_CC_N, IS_USER(s));
|
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)
|
DISAS_INSN(mov3q)
|
||||||
|
@ -3486,6 +3490,9 @@ DISAS_INSN(addx_mem)
|
||||||
gen_addx(s, src, dest, opsize);
|
gen_addx(s, src, dest, opsize);
|
||||||
|
|
||||||
gen_store(s, opsize, addr_dest, tcg_ctx->QREG_CC_N, IS_USER(s));
|
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)
|
static inline void shift_im(DisasContext *s, uint16_t insn, int opsize)
|
||||||
|
@ -4573,6 +4580,8 @@ DISAS_INSN(chk2)
|
||||||
gen_flush_flags(s);
|
gen_flush_flags(s);
|
||||||
gen_helper_chk2(tcg_ctx, tcg_ctx->cpu_env, reg, bound1, bound2);
|
gen_helper_chk2(tcg_ctx, tcg_ctx->cpu_env, reg, bound1, bound2);
|
||||||
tcg_temp_free(tcg_ctx, reg);
|
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)
|
static void m68k_copy_line(DisasContext *s, TCGv dst, TCGv src, int index)
|
||||||
|
@ -4727,6 +4736,7 @@ DISAS_INSN(moves)
|
||||||
} else {
|
} else {
|
||||||
gen_partset_reg(s, opsize, reg, tmp);
|
gen_partset_reg(s, opsize, reg, tmp);
|
||||||
}
|
}
|
||||||
|
tcg_temp_free(tcg_ctx, tmp);
|
||||||
}
|
}
|
||||||
switch (extract32(insn, 3, 3)) {
|
switch (extract32(insn, 3, 3)) {
|
||||||
case 3: /* Indirect postincrement. */
|
case 3: /* Indirect postincrement. */
|
||||||
|
@ -5747,6 +5757,7 @@ DISAS_INSN(mac)
|
||||||
case 4: /* Pre-decrement. */
|
case 4: /* Pre-decrement. */
|
||||||
tcg_gen_mov_i32(tcg_ctx, AREG(insn, 0), addr);
|
tcg_gen_mov_i32(tcg_ctx, AREG(insn, 0), addr);
|
||||||
}
|
}
|
||||||
|
tcg_temp_free(tcg_ctx, loadval);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue