]> xenbits.xensource.com Git - people/andrewcoop/xen.git/commitdiff
x86emul: correct #UD check for AVX512-FP16 complex multiplications
authorJan Beulich <jbeulich@suse.com>
Tue, 21 Jan 2025 08:27:45 +0000 (09:27 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 21 Jan 2025 08:27:45 +0000 (09:27 +0100)
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>
master commit: a30d438ce58b70c5955f5d37f776086ab8f88623
master date: 2024-08-19 15:32:31 +0200

xen/arch/x86/x86_emulate/x86_emulate.c

index 2c6bc8df2c87778ad075d5fff2a07aa40ffd204a..85d8ea7172cab72a5b0dd525f81ef8e195d25501 100644 (file)
@@ -7948,8 +7948,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;
     }