--- configure.orig	2008-11-29 17:32:51.000000000 -0800
+++ configure	2008-11-29 17:33:20.000000000 -0800
@@ -10920,7 +10920,10 @@
 	#ifdef _MSC_VER
 	__asm cpuid
 	#else
-	asm("cpuid": "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (in));
+	asm("mov %%ebx, %%esi\n\t"
+	    "cpuid\n\t"
+	    "xchg %%esi, %%ebx\n\t"
+	    : "=a" (a), "=S" (b), "=c" (c), "=d" (d) : "a" (in));
 	#endif
 	return d;
   ;