From: Jan Beulich Date: Mon, 30 Apr 2018 16:02:47 +0000 (+0200) Subject: x86emul: VMOVNTDQA should raise #GP(0) on mis-alignment X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~140 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=2bc87d85c0a1b1fc13ede98ebe059e5a6e84d535;p=xen.git x86emul: VMOVNTDQA should raise #GP(0) on mis-alignment Commit 50b73118d5 introduced emulation of the insn without extending the set of opcodes requiring special alignment related #GP behavior. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper Release-acked-by: Juergen Gross --- diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c index 8ffda8384a..e372c4bb03 100644 --- a/xen/arch/x86/x86_emulate/x86_emulate.c +++ b/xen/arch/x86/x86_emulate/x86_emulate.c @@ -8519,11 +8519,12 @@ x86_emulate( if ( op_bytes < 16 || (vex.opcx - ? /* vmov{{a,nt}p{s,d},dqa,ntdq} are exceptions. */ - ext != ext_0f || - ((b | 1) != 0x29 && b != 0x2b && - ((b | 0x10) != 0x7f || vex.pfx != vex_66) && - b != 0xe7) + ? /* vmov{{a,nt}p{s,d},{,nt}dqa,ntdq} are exceptions. */ + ext == ext_0f + ? ((b | 1) != 0x29 && b != 0x2b && + ((b | 0x10) != 0x7f || vex.pfx != vex_66) && + b != 0xe7) + : (ext != ext_0f38 || b != 0x2a) : /* movup{s,d}, {,mask}movdqu, and lddqu are exceptions. */ ext == ext_0f && ((b | 1) == 0x11 ||