Mesa (master): mesa/x86: Support SSE 4.1 detection on x86-64.
Matt Turner
mattst88 at kemper.freedesktop.org
Thu May 22 17:30:15 UTC 2014
Module: Mesa
Branch: master
Commit: 8b9302f2b4b0536abb91cb73682ec13640fe9eaf
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8b9302f2b4b0536abb91cb73682ec13640fe9eaf
Author: Matt Turner <mattst88 at gmail.com>
Date: Fri May 2 12:10:17 2014 -0700
mesa/x86: Support SSE 4.1 detection on x86-64.
Uses the cpuid.h header provided by gcc and clang. Other platforms are
encouraged to switch.
---
src/mesa/main/cpuinfo.c | 2 +-
src/mesa/main/cpuinfo.h | 2 +-
src/mesa/x86/common_x86.c | 11 +++++++++++
3 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/mesa/main/cpuinfo.c b/src/mesa/main/cpuinfo.c
index 8d482a6..73e295c 100644
--- a/src/mesa/main/cpuinfo.c
+++ b/src/mesa/main/cpuinfo.c
@@ -34,7 +34,7 @@
void
_mesa_get_cpu_features(void)
{
-#ifdef USE_X86_ASM
+#if defined USE_X86_ASM || (defined __x86_64__ && !defined _MSC_VER)
_mesa_get_x86_features();
#endif
}
diff --git a/src/mesa/main/cpuinfo.h b/src/mesa/main/cpuinfo.h
index 3678889..fcd611e 100644
--- a/src/mesa/main/cpuinfo.h
+++ b/src/mesa/main/cpuinfo.h
@@ -27,7 +27,7 @@
#define CPUINFO_H
-#if defined(USE_X86_ASM)
+#if defined USE_X86_ASM || (defined __x86_64__ && !defined _MSC_VER)
#include "x86/common_x86_asm.h"
#endif
diff --git a/src/mesa/x86/common_x86.c b/src/mesa/x86/common_x86.c
index 3c1adc9..a91f07e 100644
--- a/src/mesa/x86/common_x86.c
+++ b/src/mesa/x86/common_x86.c
@@ -47,6 +47,9 @@
#include <sys/sysctl.h>
#include <machine/cpu.h>
#endif
+#if defined(__x86_64__) && !defined(_MSC_VER)
+#include <cpuid.h>
+#endif
#include "main/imports.h"
#include "common_x86_asm.h"
@@ -330,6 +333,14 @@ _mesa_get_x86_features(void)
}
#endif
+#elif defined(__x86_64__) && !defined(_MSC_VER)
+ unsigned int uninitialized_var(eax), uninitialized_var(ebx),
+ uninitialized_var(ecx), uninitialized_var(edx);
+
+ /* Always available on x86-64. */
+ _mesa_x86_cpu_features |= X86_FEATURE_XMM | X86_FEATURE_XMM2;
+
+ __get_cpuid(1, &eax, &ebx, &ecx, &edx);
#endif /* USE_X86_ASM */
(void) detection_debug;
More information about the mesa-commit
mailing list