]> xenbits.xensource.com Git - xen.git/commitdiff
x86emul: CMPXCHG16B requires an aligned operand
authorJan Beulich <jbeulich@suse.com>
Fri, 16 Dec 2016 13:37:11 +0000 (14:37 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 16 Dec 2016 13:37:11 +0000 (14:37 +0100)
This distinguishes it from CMPXCHG8B.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/arch/x86/x86_emulate/x86_emulate.c

index 921933c11cb87a3cfaf2e823978dad293c4ed1c2..6313b57bf82c3a574c697660dd63380c5844ace6 100644 (file)
@@ -5413,6 +5413,9 @@ x86_emulate(
         if ( rex_prefix & REX_W )
         {
             host_and_vcpu_must_have(cx16);
+            generate_exception_if(!is_aligned(ea.mem.seg, ea.mem.off, 16,
+                                              ctxt, ops),
+                                  EXC_GP, 0);
             op_bytes = 16;
         }
         else