--- lib-src/soundtouch/source/SoundTouch/cpu_detect_x86_gcc.cpp.orig 2005-07-09 19:49:20.000000000 +0800 +++ lib-src/soundtouch/source/SoundTouch/cpu_detect_x86_gcc.cpp.orig 2005-07-09 20:02:30.000000000 +0800 @@ -86,6 +86,7 @@ "\n\txor %%esi, %%esi" // clear %%esi = result register // check if 'cpuid' instructions is available by toggling eflags bit 21 + "\n\tpushl %%ebx" "\n\tpushf" // save eflags to stack "\n\tpop %%eax" // load eax from stack (with eflags) "\n\tmovl %%eax, %%ecx" // save the original eflags values to ecx @@ -130,11 +131,12 @@ "\n\tend:" + "\n\tpopl %%ebx" "\n\tmov %%esi, %0" : "=rm" (res) : /* no inputs */ - : "%edx", "%eax", "%ecx", "%ebx", "%esi" ); + : "%edx", "%eax", "%ecx", "%esi" ); return res & ~_dwDisabledISA; #endif