--- cpuid.h.orig	2011-05-12 16:15:00 +0800
+++ cpuid.h	2011-05-12 16:17:22 +0800
@@ -57,8 +57,8 @@
 #define bit_TBM         (1 << 21)
 
 /* %edx */
+#define bit_MMXEXT	(1 << 22)
 #define bit_LM		(1 << 29)
-#define bit_3DNOWP	(1 << 30)
 #define bit_3DNOW	(1 << 31)
 
 /* Extended Features (%eax == 7) */
--- driver-i386.c.orig	2011-05-12 16:13:47 +0800
+++ driver-i386.c	2011-05-12 16:21:39 +0800
@@ -391,7 +391,7 @@
 
   /* Extended features */
   unsigned int has_lahf_lm = 0, has_sse4a = 0;
-  unsigned int has_longmode = 0, has_3dnowp = 0, has_3dnow = 0;
+  unsigned int has_mmxext = 0, has_longmode = 0, has_3dnow = 0;
   unsigned int has_movbe = 0, has_sse4_1 = 0, has_sse4_2 = 0;
   unsigned int has_popcnt = 0, has_aes = 0, has_avx = 0;
   unsigned int has_pclmul = 0, has_abm = 0, has_lwp = 0;
@@ -465,8 +465,8 @@
       has_xop = ecx & bit_XOP;
       has_tbm = ecx & bit_TBM;
 
+      has_mmxext = edx & bit_MMXEXT;
       has_longmode = edx & bit_LM;
-      has_3dnowp = edx & bit_3DNOWP;
       has_3dnow = edx & bit_3DNOW;
 
       __cpuid (0x7, eax, ebx, ecx, edx);
@@ -506,7 +506,7 @@
 	processor = PROCESSOR_AMDFAM10;
       else if (has_sse2 || has_longmode)
 	processor = PROCESSOR_K8;
-      else if (has_3dnowp)
+      else if (has_mmxext)
 	processor = PROCESSOR_ATHLON;
       else if (has_mmx)
 	processor = PROCESSOR_K6;
