From c581996f82aa2efccaaad9959cd76337f78b6846 Mon Sep 17 00:00:00 2001 From: gbeauche <> Date: Tue, 1 Jan 2008 13:34:47 +0000 Subject: [PATCH] Detect SSE 4.1 and SSE 4.1. --- .../src/kpx_cpu/src/utils/utils-cpuinfo.cpp | 16 +++++++++++++++- .../src/kpx_cpu/src/utils/utils-cpuinfo.hpp | 6 ++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/SheepShaver/src/kpx_cpu/src/utils/utils-cpuinfo.cpp b/SheepShaver/src/kpx_cpu/src/utils/utils-cpuinfo.cpp index 45f4956a..d7e2d012 100644 --- a/SheepShaver/src/kpx_cpu/src/utils/utils-cpuinfo.cpp +++ b/SheepShaver/src/kpx_cpu/src/utils/utils-cpuinfo.cpp @@ -33,7 +33,9 @@ enum { HWCAP_I386_EDX_FLAGS = (HWCAP_I386_CMOV|HWCAP_I386_MMX|HWCAP_I386_SSE|HWCAP_I386_SSE2), HWCAP_I386_SSE3 = 1 << 0, HWCAP_I386_SSSE3 = 1 << 9, - HWCAP_I386_ECX_FLAGS = (HWCAP_I386_SSE3|HWCAP_I386_SSSE3), + HWCAP_I386_SSE4_1 = 1 << 19, + HWCAP_I386_SSE4_2 = 1 << 20, + HWCAP_I386_ECX_FLAGS = (HWCAP_I386_SSE3|HWCAP_I386_SSSE3|HWCAP_I386_SSE4_1|HWCAP_I386_SSE4_2) }; // Determine x86 CPU features @@ -116,6 +118,18 @@ bool cpuinfo_check_ssse3(void) return x86_cpu_features & HWCAP_I386_SSSE3; } +// Check for x86 feature SSE4.1 +bool cpuinfo_check_sse4_1(void) +{ + return x86_cpu_features & HWCAP_I386_SSE4_1; +} + +// Check for x86 feature SSE4_2 +bool cpuinfo_check_sse4_2(void) +{ + return x86_cpu_features & HWCAP_I386_SSE4_2; +} + // PowerPC CPU features static uint32 ppc_cpu_features = 0; diff --git a/SheepShaver/src/kpx_cpu/src/utils/utils-cpuinfo.hpp b/SheepShaver/src/kpx_cpu/src/utils/utils-cpuinfo.hpp index f1342c10..22bd621f 100644 --- a/SheepShaver/src/kpx_cpu/src/utils/utils-cpuinfo.hpp +++ b/SheepShaver/src/kpx_cpu/src/utils/utils-cpuinfo.hpp @@ -39,6 +39,12 @@ extern bool cpuinfo_check_sse3(void); // Check for x86 feature SSSE3 extern bool cpuinfo_check_ssse3(void); +// Check for x86 feature SSE4.1 +extern bool cpuinfo_check_sse4_1(void); + +// Check for x86 feature SSE4_2 +extern bool cpuinfo_check_sse4_2(void); + // Check for ppc feature VMX (Altivec) extern bool cpuinfo_check_altivec(void);