summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/i386/cputest.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/libavcodec/i386/cputest.c b/libavcodec/i386/cputest.c
index d7c13c3bc3..f186d95c9d 100644
--- a/libavcodec/i386/cputest.c
+++ b/libavcodec/i386/cputest.c
@@ -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) {