diff --git a/qemu/target/m68k/translate.c b/qemu/target/m68k/translate.c index d168b726..1d6ca5c5 100644 --- a/qemu/target/m68k/translate.c +++ b/qemu/target/m68k/translate.c @@ -274,7 +274,6 @@ static void gen_raise_exception(DisasContext *s, 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(s, nr); } @@ -2988,6 +2987,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); } } @@ -5061,6 +5061,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(tcg_ctx, c.tcond, c.v1, c.v2, l1); free_cond(s, &c); }