]> xenbits.xensource.com Git - people/aperard/xen-unstable.git/commitdiff
x86emul: correct #UD check for AVX512-FP16 complex multiplications
authorJan Beulich <jbeulich@suse.com>
Mon, 19 Aug 2024 13:32:31 +0000 (15:32 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 19 Aug 2024 13:32:31 +0000 (15:32 +0200)
avx512_vlen_check()'s argument was inverted, while the surrounding
conditional wrongly forced the EVEX.L'L check for the scalar forms when
embedded rounding was in effect.

Fixes: d14c52cba0f5 ("x86emul: handle AVX512-FP16 complex multiplication insns")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/arch/x86/x86_emulate/x86_emulate.c

index 34b0b0fe739959635a379cd1345efae87cd5c50d..3c5f9ce309014d7b1805faeef90327c071d1c295 100644 (file)
@@ -7852,8 +7852,8 @@ x86_emulate(
         generate_exception_if(modrm_reg == src1 ||
                               (ea.type != OP_MEM && modrm_reg == modrm_rm),
                               X86_EXC_UD);
-        if ( ea.type != OP_REG || (b & 1) || !evex.brs )
-            avx512_vlen_check(!(b & 1));
+        if ( ea.type != OP_REG || !evex.brs )
+            avx512_vlen_check(b & 1);
         goto simd_zmm;
     }