Re: [Qemu-devel] [PATCH] target-i386: fix iret emulation correctness

2016-06-07 Thread Paolo Bonzini
On 07/06/2016 14:07, poletaev wrote: >> Second, an IRET with HF_NMI_MASK set can be translated to _only_ the >> reset of NMI mask followed by end of basic block. An IRET without >> HF_NMI_MASK instead can be translated the same way as now. > > I want to make it like this, but it seems to me i

Re: [Qemu-devel] [PATCH] target-i386: fix iret emulation correctness

2016-06-07 Thread poletaev
> Second, an IRET with HF_NMI_MASK set can be translated to _only_ the > reset of NMI mask followed by end of basic block. An IRET without > HF_NMI_MASK instead can be translated the same way as now. I want to make it like this, but it seems to me it can lead to zero tb size and introduce bad s

Re: [Qemu-devel] [PATCH] target-i386: fix iret emulation correctness

2016-06-07 Thread Paolo Bonzini
On 07/06/2016 10:07, poletaev wrote: > diff --git a/target-i386/translate.c b/target-i386/translate.c > index f010022..c409baf 100644 > --- a/target-i386/translate.c > +++ b/target-i386/translate.c > @@ -6319,6 +6319,7 @@ static target_ulong disas_insn(CPUX86State *env, > DisasContext *s, >

[Qemu-devel] [PATCH] target-i386: fix iret emulation correctness

2016-06-07 Thread poletaev
From: Dmitry Poletaev Subject: [PATCH] target-i386: fix iret emulation correctness Signed-off-by: Dmitry Poletaev According to Intel manual: "If the NMI handler is a virtual-8086 task with an IOPL of less than 3, an IRET instruction issued from the handler generates a general-protection ex