target/i386: assert that gen_update_eip_cur and gen_update_eip_next are the same...
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 16 May 2024 16:38:32 +0000 (18:38 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Sat, 25 May 2024 11:28:01 +0000 (13:28 +0200)
This is an invariant now that there are no calls to gen_eob_inhibit_irq()
outside tb_stop.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
target/i386/tcg/translate.c

index a7493b5ccfd2590eaa5ea18e07a5c895caaf8f59..fcb7934efa7195da1da4448b5606e0434c482574 100644 (file)
@@ -4798,6 +4798,7 @@ static void i386_tr_tb_stop(DisasContextBase *dcbase, CPUState *cpu)
         gen_jmp_rel_csize(dc, 0, 0);
         break;
     case DISAS_EOB_NEXT:
+        assert(dc->base.pc_next == dc->pc);
         gen_update_eip_cur(dc);
         /* fall through */
     case DISAS_EOB_ONLY:
@@ -4807,6 +4808,7 @@ static void i386_tr_tb_stop(DisasContextBase *dcbase, CPUState *cpu)
         gen_eob_syscall(dc);
         break;
     case DISAS_EOB_INHIBIT_IRQ:
+        assert(dc->base.pc_next == dc->pc);
         gen_update_eip_cur(dc);
         gen_eob_inhibit_irq(dc);
         break;