# HG changeset patch # User Sam Lantinga # Date 1261022489 0 # Node ID 2080e8d75ac6bc9ff0a83558d525042a1d0ab7ba # Parent b6758aee0dd4d988805573808696f4dd33f1d666 Implemented 64-bit version of cpuid code diff -r b6758aee0dd4 -r 2080e8d75ac6 src/cpuinfo/SDL_cpuinfo.c --- a/src/cpuinfo/SDL_cpuinfo.c Thu Dec 17 03:04:04 2009 +0000 +++ b/src/cpuinfo/SDL_cpuinfo.c Thu Dec 17 04:01:29 2009 +0000 @@ -157,7 +157,7 @@ return has_CPUID; } -#if defined(__GNUC__) && (defined(i386) || defined(__x86_64__)) +#if defined(__GNUC__) && defined(i386) #define cpuid(func, a, b, c, d) \ __asm__ __volatile__ ( \ " pushl %%ebx \n" \ @@ -165,6 +165,14 @@ " movl %%ebx, %%esi \n" \ " popl %%ebx \n" : \ "=a" (a), "=S" (b), "=c" (c), "=d" (d) : "a" (func)) +#elif defined(__GNUC__) && defined(__x86_64__) +#define cpuid(func, a, b, c, d) \ + __asm__ __volatile__ ( \ +" pushq %%rbx \n" \ +" cpuid \n" \ +" movq %%rbx, %%rsi \n" \ +" popq %%rbx \n" : \ + "=a" (a), "=S" (b), "=c" (c), "=d" (d) : "a" (func)) #elif (defined(_MSC_VER) && defined(_M_IX86)) || defined(__WATCOMC__) #define cpuid(func, a, b, c, d) \ __asm { \