Browse Source

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.
tags/10.3-branchpoint
Matt Turner 11 years ago
parent
commit
8b9302f2b4
3 changed files with 13 additions and 2 deletions
  1. 1
    1
      src/mesa/main/cpuinfo.c
  2. 1
    1
      src/mesa/main/cpuinfo.h
  3. 11
    0
      src/mesa/x86/common_x86.c

+ 1
- 1
src/mesa/main/cpuinfo.c View File

@@ -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
}

+ 1
- 1
src/mesa/main/cpuinfo.h View File

@@ -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


+ 11
- 0
src/mesa/x86/common_x86.c View File

@@ -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;

Loading…
Cancel
Save