chiark / gitweb /
base/dispatch.c: Check for XMM registers after CPUID probe.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 26 Sep 2019 11:09:10 +0000 (12:09 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Fri, 27 Sep 2019 00:20:24 +0000 (01:20 +0100)
`fxsave' isn't universally available, but if CPUID is reporting that XMM
instructions are available, we can definitely use it.

base/dispatch.c

index 908a4e3189e8e570a396cb3649f0b781d8f6d390..b281ec3d4ca90f084f3c20ab1795492f5e2119ce 100644 (file)
@@ -538,11 +538,11 @@ int cpu_feature_p(int feat)
   switch (feat) {
 #if CPUFAM_X86 || CPUFAM_AMD64
     CASE_CPUFEAT(X86_SSE2, "x86:sse2",
-                xmm_registers_available_p() &&
-                cpuid_features_p(CPUID1D_SSE2, 0));
+                cpuid_features_p(CPUID1D_SSE2, 0) &&
+                xmm_registers_available_p());
     CASE_CPUFEAT(X86_AESNI, "x86:aesni",
-                xmm_registers_available_p() &&
-                cpuid_features_p(CPUID1D_SSE2, CPUID1C_AESNI));
+                cpuid_features_p(CPUID1D_SSE2, CPUID1C_AESNI) &&
+                xmm_registers_available_p());
     CASE_CPUFEAT(X86_RDRAND, "x86:rdrand",
                 cpuid_features_p(0, CPUID1C_RDRAND));
 #endif