[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 1/3] x86emul: honor guest CR4.OSFXSR and CR4.OSXSAVE
On 04/10/16 16:10, Jan Beulich wrote: > @@ -767,9 +770,23 @@ static int _get_fpu( > unsigned long cr0; > > fail_if(!ops->read_cr); > + if ( type >= X86EMUL_FPU_xmm ) > + { > + unsigned long cr4; > + > + rc = ops->read_cr(4, &cr4, ctxt); > + if ( rc != X86EMUL_OKAY ) > + return rc; > + generate_exception_if(!(cr4 & ((type == X86EMUL_FPU_xmm) > + ? CR4_OSFXSR : CR4_OSXSAVE)), > + EXC_UD, -1); > + } > + > rc = ops->read_cr(0, &cr0, ctxt); > if ( rc != X86EMUL_OKAY ) > return rc; > + if ( type >= X86EMUL_FPU_ymm ) I would be tempted to add here /* Should not be reachable if VEX decoding is working correctly. */ Otherwise, Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> > + ASSERT((cr0 & CR0_PE) && !(ctxt->regs->eflags & EFLG_VM)); > if ( cr0 & CR0_EM ) > { > generate_exception_if(type == X86EMUL_FPU_fpu, EXC_NM, -1); > > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |