Index: source/lib/sysdep/arch/x86_x64/x86_x64.cpp =================================================================== --- source/lib/sysdep/arch/x86_x64/x86_x64.cpp +++ source/lib/sysdep/arch/x86_x64/x86_x64.cpp @@ -51,11 +51,11 @@ #elif GCC_VERSION # if defined(__i386__) && defined(__PIC__) # define __cpuidex(regsArray, level, index)\ - __asm__ __volatile__ ("pushl %%ebx\n"\ + __asm__ __volatile__ ( \ + "mov %%ebx, %%edi\n" \ "cpuid\n"\ - "mov %%ebx,%1\n"\ - "popl %%ebx"\ - : "=a" ((regsArray)[0]), "=r" ((regsArray)[1]), "=c" ((regsArray)[2]), "=d" ((regsArray)[3])\ + "xchg %%edi, %%ebx\n" \ + : "=a" ((regsArray)[0]), "=D" ((regsArray)[1]), "=c" ((regsArray)[2]), "=d" ((regsArray)[3])\ : "0" (level), "2" (index)); # else # define __cpuidex(regsArray, level, index)\