From 4fab22c212bfd0737ad0f42370911589ae62fb52 Mon Sep 17 00:00:00 2001 Message-Id: <4fab22c212bfd0737ad0f42370911589ae62fb52.1715865665.git.mdw@distorted.org.uk> From: Mark Wooding Date: Thu, 26 Sep 2019 12:09:10 +0100 Subject: [PATCH] base/dispatch.c: Check for XMM registers after CPUID probe. Organization: Straylight/Edgeware From: Mark Wooding `fxsave' isn't universally available, but if CPUID is reporting that XMM instructions are available, we can definitely use it. --- base/dispatch.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 -- [mdw]