target-m68k: sync CC_OP before gen_jmp_tb()
authorLaurent Vivier <laurent@vivier.eu>
Thu, 4 Jan 2018 01:28:57 +0000 (02:28 +0100)
committerLaurent Vivier <laurent@vivier.eu>
Thu, 4 Jan 2018 15:43:24 +0000 (16:43 +0100)
And remove update_cc_op() from gen_exception() because there is
one in gen_jmp_im().

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20180104012913.30763-2-laurent@vivier.eu>

target/m68k/translate.c

index bbda7399ec288ab74d76a152216acc80bef78ffa..0e9d651a2aeba07cb08559d3a8bf7deaa0a61fcc 100644 (file)
@@ -270,7 +270,6 @@ static void gen_raise_exception(int nr)
 
 static void gen_exception(DisasContext *s, uint32_t where, int nr)
 {
-    update_cc_op(s);
     gen_jmp_im(s, where);
     gen_raise_exception(nr);
 }
@@ -2897,6 +2896,7 @@ DISAS_INSN(branch)
         gen_jmp_tb(s, 0, s->pc);
     } else {
         /* Unconditional branch.  */
+        update_cc_op(s);
         gen_jmp_tb(s, 0, base + offset);
     }
 }
@@ -4875,6 +4875,7 @@ static void gen_fjmpcc(DisasContext *s, int cond, TCGLabel *l1)
     DisasCompare c;
 
     gen_fcc_cond(&c, s, cond);
+    update_cc_op(s);
     tcg_gen_brcond_i32(c.tcond, c.v1, c.v2, l1);
     free_cond(&c);
 }