diff options
author | Tomáš Mózes <tomas.mozes@gmail.com> | 2024-10-02 07:59:17 +0200 |
---|---|---|
committer | Tomáš Mózes <tomas.mozes@gmail.com> | 2024-10-02 07:59:17 +0200 |
commit | befc038ba7247e93c8b224942fcca2c4a9e32717 (patch) | |
tree | 950eaff689ddf97a580c2969891a193643bce8fb /0022-x86emul-always-set-operand-size-for-AVX-VNNI-INT8-in.patch | |
parent | Xen 4.18.3-pre-patchset-0 (diff) | |
download | xen-upstream-patches-befc038ba7247e93c8b224942fcca2c4a9e32717.tar.gz xen-upstream-patches-befc038ba7247e93c8b224942fcca2c4a9e32717.tar.bz2 xen-upstream-patches-befc038ba7247e93c8b224942fcca2c4a9e32717.zip |
Xen 4.19.1-pre-patchset-0HEAD4.19.1-pre-patchset-0main
Signed-off-by: Tomáš Mózes <tomas.mozes@gmail.com>
Diffstat (limited to '0022-x86emul-always-set-operand-size-for-AVX-VNNI-INT8-in.patch')
-rw-r--r-- | 0022-x86emul-always-set-operand-size-for-AVX-VNNI-INT8-in.patch | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/0022-x86emul-always-set-operand-size-for-AVX-VNNI-INT8-in.patch b/0022-x86emul-always-set-operand-size-for-AVX-VNNI-INT8-in.patch new file mode 100644 index 0000000..cf37c99 --- /dev/null +++ b/0022-x86emul-always-set-operand-size-for-AVX-VNNI-INT8-in.patch @@ -0,0 +1,36 @@ +From 1e68200487e662e9f8720d508a1d6b3d3e2c72b9 Mon Sep 17 00:00:00 2001 +From: Jan Beulich <jbeulich@suse.com> +Date: Tue, 24 Sep 2024 14:37:08 +0200 +Subject: [PATCH 22/35] x86emul: always set operand size for AVX-VNNI-INT8 + insns + +Unlike for AVX-VNNI-INT16 I failed to notice that op_bytes may still be +zero when reaching the respective case block: With the ext0f38_table[] +entries having simd_packed_int, the defaulting at the bottom of +x86emul_decode() won't set the field to non-zero for F3- or F2-prefixed +insns. + +Fixes: 842acaa743a5 ("x86emul: support AVX-VNNI-INT8") +Signed-off-by: Jan Beulich <jbeulich@suse.com> +Acked-by: Andrew Cooper <andrew.cooper3@citrix.com> +master commit: d45687cca2450bfebe1dfbddb22f4f03c6fbc9cb +master date: 2024-08-23 09:11:15 +0200 +--- + xen/arch/x86/x86_emulate/x86_emulate.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c +index 16557385bf..4d9649a2af 100644 +--- a/xen/arch/x86/x86_emulate/x86_emulate.c ++++ b/xen/arch/x86/x86_emulate/x86_emulate.c +@@ -6075,6 +6075,7 @@ x86_emulate( + case X86EMUL_OPC_VEX_F2(0x0f38, 0x51): /* vpdpbssds [xy]mm/mem,[xy]mm,[xy]mm */ + host_and_vcpu_must_have(avx_vnni_int8); + generate_exception_if(vex.w, X86_EXC_UD); ++ op_bytes = 16 << vex.l; + goto simd_0f_ymm; + + case X86EMUL_OPC_VEX_66(0x0f38, 0x50): /* vpdpbusd [xy]mm/mem,[xy]mm,[xy]mm */ +-- +2.46.1 + |