Ticket #2675: diff
File diff, 889 bytes (added by , 10 years ago) |
---|
-
x86_x64.cpp
old new 49 49 #if defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 150030729 50 50 // VC10+ and VC9 SP1: __cpuidex is already available 51 51 #elif GCC_VERSION 52 # if defined(__i386__) && defined(__PIC__) 52 53 # define __cpuidex(regsArray, level, index)\ 54 __asm__ __volatile__ ("pushl %%ebx\n" \ 55 " cpuid\n"\ 56 "mov %%ebx,%1\n" \ 57 "popl %%ebx" \ 58 : "=a" ((regsArray)[0]), "=r" ((regsArray)[1]), "=c" ((regsArray)[2]), "=d" ((regsArray)[3])\ 59 : "0" (level), "2" (index)); 60 # else 61 # define __cpuidex(regsArray, level, index)\ 53 62 __asm__ __volatile__ ("cpuid"\ 54 63 : "=a" ((regsArray)[0]), "=b" ((regsArray)[1]), "=c" ((regsArray)[2]), "=d" ((regsArray)[3])\ 55 64 : "0" (level), "2" (index)); 65 # endif 56 66 #else 57 67 # error "compiler not supported" 58 68 #endif