From: Mark Wooding Date: Thu, 26 Sep 2019 11:09:10 +0000 (+0100) Subject: base/dispatch.c: Check for XMM registers after CPUID probe. X-Git-Tag: 2.4.4~4 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/catacomb/commitdiff_plain/4fab22c212bfd0737ad0f42370911589ae62fb52 base/dispatch.c: Check for XMM registers after CPUID probe. `fxsave' isn't universally available, but if CPUID is reporting that XMM instructions are available, we can definitely use it. --- diff --git a/base/dispatch.c b/base/dispatch.c index 908a4e31..b281ec3d 100644 --- a/base/dispatch.c +++ b/base/dispatch.c @@ -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