@@ -296,13 +296,13 @@ * as ebx is a special register in PIC code. Yes, GCC is indeed not * able to just push a register onto the stack before the __asm__ block * and to pop it afterwards. */ __asm__ ( - "xchgl %%ebx, %%edi\n\t" + "xchg{l} { %%ebx, %%edi | edi, ebx }\n\t" "cpuid\n\t" - "xchgl %%edi, %%ebx" + "xchg{l} { %%edi, %%ebx | ebx, edi }" : "=a"(regs.eax), "=D"(regs.ebx), "=c"(regs.ecx), "=d"(regs.edx) : "a"(eax), "c"(ecx) ); # else memset(®s, 0, sizeof(regs));