target/i386: Use gen_jmp_rel for DISAS_TOO_MANY
authorRichard Henderson <richard.henderson@linaro.org>
Sat, 1 Oct 2022 14:09:29 +0000 (07:09 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 11 Oct 2022 07:36:01 +0000 (09:36 +0200)
With gen_jmp_rel, we may chain between two translation blocks
which may only be separated because of TB size limits.

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

index 5b84be4975ec9c1fb0514fb1da7c9ae084991475..cf23ae6e5e6f6f8701a39c3a430e1bf8c4dafebb 100644 (file)
@@ -8798,6 +8798,9 @@ static void i386_tr_tb_stop(DisasContextBase *dcbase, CPUState *cpu)
     case DISAS_NORETURN:
         break;
     case DISAS_TOO_MANY:
+        gen_update_cc_op(dc);
+        gen_jmp_rel_csize(dc, 0, 0);
+        break;
     case DISAS_EOB_NEXT:
         gen_update_cc_op(dc);
         gen_update_eip_cur(dc);