提交 0fc37a8b 编写于 作者: A Aurelien Jarno

target/sh4: fix BS_STOP exit

When stopping the translation because the state has changed, goto_tb
should not be used as it might link TB with different flags.
Reviewed-by: NRichard Henderson <rth@twiddle.net>
Reviewed-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
上级 47b9f4d5
...@@ -1901,8 +1901,9 @@ void gen_intermediate_code(CPUSH4State * env, struct TranslationBlock *tb) ...@@ -1901,8 +1901,9 @@ void gen_intermediate_code(CPUSH4State * env, struct TranslationBlock *tb)
} else { } else {
switch (ctx.bstate) { switch (ctx.bstate) {
case BS_STOP: case BS_STOP:
/* gen_op_interrupt_restart(); */ tcg_gen_movi_i32(cpu_pc, ctx.pc);
/* fall through */ tcg_gen_exit_tb(0);
break;
case BS_NONE: case BS_NONE:
if (ctx.envflags) { if (ctx.envflags) {
gen_store_flags(ctx.envflags); gen_store_flags(ctx.envflags);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册