]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Add SSE4 detection support
authorconrad <conrad@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Wed, 1 Apr 2009 09:11:32 +0000 (09:11 +0000)
committerconrad <conrad@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Wed, 1 Apr 2009 09:11:32 +0000 (09:11 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18302 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/avcodec.h
libavcodec/x86/cpuid.c

index 2b9adf268d984f101e788cb495fc71579a9a3d11..1c314659e6e2db5b8168f89b50cb219aa3952dad 100644 (file)
@@ -1462,6 +1462,8 @@ typedef struct AVCodecContext {
 #define FF_MM_3DNOWEXT 0x0020 ///< AMD 3DNowExt
 #define FF_MM_SSE3     0x0040 ///< Prescott SSE3 functions
 #define FF_MM_SSSE3    0x0080 ///< Conroe SSSE3 functions
+#define FF_MM_SSE4     0x0100 ///< Penryn SSE4.1 functions
+#define FF_MM_SSE42    0x0200 ///< Nehalem SSE4.2 functions
 #define FF_MM_IWMMXT   0x0100 ///< XScale IWMMXT
 #define FF_MM_ALTIVEC  0x0001 ///< standard AltiVec
 
index 63feffcef8f9abda74309b9b4029a5ede5072a4e..55755af8f9dd1a35c30c6aeeb1c391c83e3573bb 100644 (file)
@@ -85,7 +85,11 @@ int mm_support(void)
         if (ecx & 1)
             rval |= FF_MM_SSE3;
         if (ecx & 0x00000200 )
-            rval |= FF_MM_SSSE3
+            rval |= FF_MM_SSSE3;
+        if (ecx & 0x00080000 )
+            rval |= FF_MM_SSE4;
+        if (ecx & 0x00100000 )
+            rval |= FF_MM_SSE42;
 #endif
                   ;
     }
@@ -105,13 +109,15 @@ int mm_support(void)
     }
 
 #if 0
-    av_log(NULL, AV_LOG_DEBUG, "%s%s%s%s%s%s%s%s\n",
+    av_log(NULL, AV_LOG_DEBUG, "%s%s%s%s%s%s%s%s%s%s\n",
         (rval&FF_MM_MMX) ? "MMX ":"",
         (rval&FF_MM_MMXEXT) ? "MMX2 ":"",
         (rval&FF_MM_SSE) ? "SSE ":"",
         (rval&FF_MM_SSE2) ? "SSE2 ":"",
         (rval&FF_MM_SSE3) ? "SSE3 ":"",
         (rval&FF_MM_SSSE3) ? "SSSE3 ":"",
+        (rval&FF_MM_SSE4) ? "SSE4.1 ":"",
+        (rval&FF_MM_SSE42) ? "SSE4.2 ":"",
         (rval&FF_MM_3DNOW) ? "3DNow ":"",
         (rval&FF_MM_3DNOWEXT) ? "3DNowExt ":"");
 #endif