]> git.sesse.net Git - ffmpeg/blobdiff - libavutil/x86/cpu.c
Detect and check for CMOV.
[ffmpeg] / libavutil / x86 / cpu.c
index bb3f1b325bbd989cf69ae95c94ed200f2a1e5b92..b53379bbd3dc35e7699105e85308ce62510c8cb7 100644 (file)
@@ -74,12 +74,17 @@ int ff_get_cpu_flags_x86(void)
         return 0; /* CPUID not supported */
 #endif
 
-    cpuid(0, max_std_level, vendor.i[0], vendor.i[2], vendor.i[1]);
+    cpuid(0, max_std_level, ebx, ecx, edx);
+    vendor.i[0] = ebx;
+    vendor.i[1] = edx;
+    vendor.i[2] = ecx;
 
     if(max_std_level >= 1){
         cpuid(1, eax, ebx, ecx, std_caps);
         family = ((eax>>8)&0xf) + ((eax>>20)&0xff);
         model  = ((eax>>4)&0xf) + ((eax>>12)&0xf0);
+        if (std_caps & (1<<15))
+            rval |= AV_CPU_FLAG_CMOV;
         if (std_caps & (1<<23))
             rval |= AV_CPU_FLAG_MMX;
         if (std_caps & (1<<25))