[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] x86emul: correct #UD check for AVX512-FP16 complex multiplications



commit a30d438ce58b70c5955f5d37f776086ab8f88623
Author:     Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Mon Aug 19 15:32:31 2024 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Mon Aug 19 15:32:31 2024 +0200

    x86emul: correct #UD check for AVX512-FP16 complex multiplications
    
    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@xxxxxxxx>
    Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
 xen/arch/x86/x86_emulate/x86_emulate.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c 
b/xen/arch/x86/x86_emulate/x86_emulate.c
index 34b0b0fe73..3c5f9ce309 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -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;
     }
 
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.