aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/gallium/auxiliary/util/u_cpu_detect.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-09-04 15:26:24 +0200
committermarha <marha@users.sourceforge.net>2012-09-04 15:26:24 +0200
commit67c4614f29188e4af86e1d88ee82759c896b70b5 (patch)
treed4f1c1d515dae1ead88d52d9c20369d8141de2f8 /mesalib/src/gallium/auxiliary/util/u_cpu_detect.c
parentb86e8562b1ddca2a8bc29f22a79451a041bf5293 (diff)
downloadvcxsrv-67c4614f29188e4af86e1d88ee82759c896b70b5.tar.gz
vcxsrv-67c4614f29188e4af86e1d88ee82759c896b70b5.tar.bz2
vcxsrv-67c4614f29188e4af86e1d88ee82759c896b70b5.zip
mesa git update 4 sep 2012
Diffstat (limited to 'mesalib/src/gallium/auxiliary/util/u_cpu_detect.c')
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_cpu_detect.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/mesalib/src/gallium/auxiliary/util/u_cpu_detect.c b/mesalib/src/gallium/auxiliary/util/u_cpu_detect.c
index e0c8f73c7..d7f0be40e 100644
--- a/mesalib/src/gallium/auxiliary/util/u_cpu_detect.c
+++ b/mesalib/src/gallium/auxiliary/util/u_cpu_detect.c
@@ -182,7 +182,7 @@ static int has_cpuid(void)
static INLINE void
cpuid(uint32_t ax, uint32_t *p)
{
-#if defined(PIPE_CC_GCC) && defined(PIPE_ARCH_X86)
+#if (defined(PIPE_CC_GCC) || defined(PIPE_CC_SUNPRO)) && defined(PIPE_ARCH_X86)
__asm __volatile (
"xchgl %%ebx, %1\n\t"
"cpuid\n\t"
@@ -193,7 +193,7 @@ cpuid(uint32_t ax, uint32_t *p)
"=d" (p[3])
: "0" (ax)
);
-#elif defined(PIPE_CC_GCC) && defined(PIPE_ARCH_X86_64)
+#elif (defined(PIPE_CC_GCC) || defined(PIPE_CC_SUNPRO)) && defined(PIPE_ARCH_X86_64)
__asm __volatile (
"cpuid\n\t"
: "=a" (p[0]),
@@ -286,6 +286,11 @@ util_cpu_detect(void)
util_cpu_caps.cacheline = cacheline;
}
+ if (regs[1] == 0x756e6547 && regs[2] == 0x6c65746e && regs[3] == 0x49656e69) {
+ /* GenuineIntel */
+ util_cpu_caps.has_intel = 1;
+ }
+
cpuid(0x80000000, regs);
if (regs[0] >= 0x80000001) {