#else
__asm__ __volatile__ (
"xorl %%eax,%%eax\n\t"
+ "pushl %%ebx\n\t"
"cpuid\n\t"
- ::: "%eax", "%ebx", "%ecx", "%edx");
+ "popl %%ebx\n\t"
+ ::: "%eax", "%ecx", "%edx");
#endif
uint32_t a, d;
__asm__ __volatile__ ("rdtsc" : "=a" (a), "=d" (d));
#else
__asm__ __volatile__ (
"xorl %%eax,%%eax\n\t"
+ "pushl %%ebx\n\t"
"cpuid\n\t"
- ::: "%eax", "%ebx", "%ecx", "%edx");
+ "popl %%ebx\n\t"
+ ::: "%eax", "%ecx", "%edx");
#endif
#else /* #if defined(__GNU__) */