As explicitly spelled out by the SDM, EFLAGS.VIF and EFLAGS.VIP both set
at the start of an instruction trigger #GP(0) independent of actual
instruction.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
ASSERT(ops->read);
+ generate_exception_if((mode_vif() &&
+ (_regs.eflags & X86_EFLAGS_VIF) &&
+ (_regs.eflags & X86_EFLAGS_VIP)),
+ EXC_GP, 0);
+
rc = x86_decode(&state, ctxt, ops);
if ( rc != X86EMUL_OKAY )
return rc;