Revert "host/i386: assume presence of SSE2"
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 18 Jun 2024 15:34:48 +0000 (17:34 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 28 Jun 2024 12:44:51 +0000 (14:44 +0200)
This reverts commit b18236897ca15c3db1506d8edb9a191dfe51429c.
The x86-64 instruction set can now be tuned down to x86-64 v1
or i386 Pentium Pro.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
host/include/i386/host/bufferiszero.c.inc
host/include/i386/host/cpuinfo.h
util/cpuinfo-i386.c

index 3b9605d806fb704b92470c355ed3d7eb7e4ec47b..74ae98580f67210299c6dcb80a31a3ef5e97dc64 100644 (file)
@@ -110,13 +110,14 @@ static biz_accel_fn const accel_table[] = {
 
 static unsigned best_accel(void)
 {
-#ifdef CONFIG_AVX2_OPT
     unsigned info = cpuinfo_init();
+
+#ifdef CONFIG_AVX2_OPT
     if (info & CPUINFO_AVX2) {
         return 2;
     }
 #endif
-    return 1;
+    return info & CPUINFO_SSE2 ? 1 : 0;
 }
 
 #else
index 72f6fad61e563ad350ae1ecb660e61dfac600f47..81771733eaaaa39411c3688014d32e4f485574f5 100644 (file)
@@ -14,6 +14,7 @@
 #define CPUINFO_POPCNT          (1u << 4)
 #define CPUINFO_BMI1            (1u << 5)
 #define CPUINFO_BMI2            (1u << 6)
+#define CPUINFO_SSE2            (1u << 7)
 #define CPUINFO_AVX1            (1u << 9)
 #define CPUINFO_AVX2            (1u << 10)
 #define CPUINFO_AVX512F         (1u << 11)
index ca74ef04f5474017d894001383efa7e9e49de001..90f92a42dc8c49e474a66f1358c4656983b454c3 100644 (file)
@@ -34,6 +34,7 @@ unsigned __attribute__((constructor)) cpuinfo_init(void)
     if (max >= 1) {
         __cpuid(1, a, b, c, d);
 
+        info |= (d & bit_SSE2 ? CPUINFO_SSE2 : 0);
         info |= (c & bit_MOVBE ? CPUINFO_MOVBE : 0);
         info |= (c & bit_POPCNT ? CPUINFO_POPCNT : 0);
         info |= (c & bit_PCLMUL ? CPUINFO_PCLMUL : 0);