]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
target/sh4: fix BS_STOP exit
authorAurelien Jarno <aurelien@aurel32.net>
Mon, 1 May 2017 21:20:43 +0000 (23:20 +0200)
committerAurelien Jarno <aurelien@aurel32.net>
Sat, 13 May 2017 09:18:13 +0000 (11:18 +0200)
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>
target/sh4/translate.c

index 2e29936ad8a55b5b243b49c71fb3354b53a4d459..04bc18bf7c40494ff2db262ca9b4353d8a47d639 100644 (file)
@@ -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);