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: Richard Henderson <rth@twiddle.net> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
47b9f4d5a4
commit
0fc37a8b0c
@ -1901,8 +1901,9 @@ void gen_intermediate_code(CPUSH4State * env, struct TranslationBlock *tb)
|
||||
} else {
|
||||
switch (ctx.bstate) {
|
||||
case BS_STOP:
|
||||
/* gen_op_interrupt_restart(); */
|
||||
/* fall through */
|
||||
tcg_gen_movi_i32(cpu_pc, ctx.pc);
|
||||
tcg_gen_exit_tb(0);
|
||||
break;
|
||||
case BS_NONE:
|
||||
if (ctx.envflags) {
|
||||
gen_store_flags(ctx.envflags);
|
||||
|
Loading…
Reference in New Issue
Block a user