Fixed cpuid assembly to work on PIC code

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%404333
This commit is contained in:
Sam Lantinga 2009-12-16 16:42:04 +00:00
parent c825464c2f
commit 691ee6f7c0

View file

@ -156,8 +156,12 @@ done:
#if defined(__GNUC__) && (defined(i386) || defined(__x86_64__))
#define cpuid(func, a, b, c, d) \
__asm__ __volatile__ ("cpuid": \
"=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (func))
__asm__ __volatile__ ( \
" pushl %%ebx \n" \
" cpuid \n" \
" movl %%ebx, %%esi \n" \
" popl %%ebx \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 { \