target-i386: Allow interrupt injection after STGI

We need to terminate the translation block after STGI so that pending
interrupts can be injected.

This fixes pending NMI injection for Jailhouse which uses "stgi; clgi"
to open a brief injection window.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Message-Id: <37939b244dda0e9cccf96ce50f2b15df1e48315d.1522769774.git.jan.kiszka@web.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Jan Kiszka 2018-04-03 17:36:12 +02:00 committed by Paolo Bonzini
parent 02f7fd25a4
commit df2518aa58

View File

@ -7444,8 +7444,9 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu)
break; break;
} }
gen_update_cc_op(s); gen_update_cc_op(s);
gen_jmp_im(pc_start - s->cs_base);
gen_helper_stgi(cpu_env); gen_helper_stgi(cpu_env);
gen_jmp_im(s->pc - s->cs_base);
gen_eob(s);
break; break;
case 0xdd: /* CLGI */ case 0xdd: /* CLGI */