via c3 detection patch by (Francisco Javier Cabello Torres <fjcabello at visual-tools...
authorFrancisco Javier Cabello Torres <fjcabello@visual-tools.com>
Mon, 25 Nov 2002 16:58:41 +0000 (16:58 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 25 Nov 2002 16:58:41 +0000 (16:58 +0000)
Originally committed as revision 1275 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/i386/cputest.c

index d7c13c3..f186d95 100644 (file)
@@ -77,6 +77,21 @@ int mm_support(void)
         if (edx & 0x00400000)
             rval |= MM_MMXEXT;
         return rval;
+    } else if (ebx == 0x746e6543 &&
+               edx == 0x48727561 &&
+               ecx == 0x736c7561) {  /*  "CentaurHauls" */
+        /* VIA C3 */
+        cpuid(0x80000000, eax, ebx, ecx, edx);
+        if ((unsigned)eax < 0x80000001)
+            goto inteltest;    
+       cpuid(0x80000001, eax, ebx, ecx, edx);
+       rval = 0;      
+       if( edx & ( 1 << 31) )
+         rval |= MM_3DNOW;
+       if( edx & ( 1 << 23) )
+         rval |= MM_MMX;
+       if( edx & ( 1 << 24) )
+         rval |= MM_MMXEXT;    
     } else if (ebx == 0x69727943 &&
                edx == 0x736e4978 &&
                ecx == 0x64616574) {