]> www.infradead.org Git - qemu-nvme.git/commitdiff
util: Add i386 CPUINFO_ATOMIC_VMOVDQU
authorRichard Henderson <richard.henderson@linaro.org>
Thu, 18 May 2023 04:16:05 +0000 (21:16 -0700)
committerRichard Henderson <richard.henderson@linaro.org>
Tue, 23 May 2023 23:49:33 +0000 (16:49 -0700)
Add a bit to indicate when VMOVDQU is also atomic if aligned.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
host/include/i386/host/cpuinfo.h
util/cpuinfo-i386.c

index e6f7461378747e9f3a0e603de04ff3ecf20edc13..a6537123cf80ec5b6c4748ced1b84a2cb8cb9af2 100644 (file)
@@ -25,6 +25,7 @@
 #define CPUINFO_AVX512DQ        (1u << 14)
 #define CPUINFO_AVX512VBMI2     (1u << 15)
 #define CPUINFO_ATOMIC_VMOVDQA  (1u << 16)
+#define CPUINFO_ATOMIC_VMOVDQU  (1u << 17)
 
 /* Initialized with a constructor. */
 extern unsigned cpuinfo;
index 434319aa71be981c26ccd7068f53095ade104e32..ab6143d9e77291f104ad68877f23cf3e30e0df35 100644 (file)
@@ -77,8 +77,10 @@ unsigned __attribute__((constructor)) cpuinfo_init(void)
                  * See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104688
                  */
                 __cpuid(0, a, b, c, d);
-                if (c == signature_INTEL_ecx || c == signature_AMD_ecx) {
+                if (c == signature_INTEL_ecx) {
                     info |= CPUINFO_ATOMIC_VMOVDQA;
+                } else if (c == signature_AMD_ecx) {
+                    info |= CPUINFO_ATOMIC_VMOVDQA | CPUINFO_ATOMIC_VMOVDQU;
                 }
             }
         }