--- a/bench/benchmarks.c +++ b/bench/benchmarks.c @@ -19,7 +19,10 @@ #ifdef __linux__ TIME(asm volatile("int $0x80" :"=a" (tmp) :"0" (__NR_getppid)), "int 0x80"); #endif - TIME(asm volatile("cpuid": : :"ax", "dx", "cx", "bx"), "cpuid"); + TIME(asm volatile("movl %%ebx,%%edi\n" + "cpuid\n" + "movl %%edi,%%ebx\n" + : : :"%eax", "%edx", "%ecx", "%edi"), "cpuid"); TIME(asm volatile("addl $1,0(%esp)"), "addl"); TIME(asm volatile("lock ; addl $1,0(%esp)"), "locked add");