changeset 4311:f9325f2bc762 libavcodec

Add SSSE3 (Core2 aka Conroe/Merom/Woodcrester new instructions) detection
author gpoirier
date Mon, 18 Dec 2006 22:43:09 +0000
parents a0c0c7bebd64
children eb0ae1ce40a5
files dsputil.h i386/cputest.c
diffstat 2 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/dsputil.h	Mon Dec 18 19:27:28 2006 +0000
+++ b/dsputil.h	Mon Dec 18 22:43:09 2006 +0000
@@ -484,6 +484,7 @@
 #define MM_SSE2   0x0010 /* PIV SSE2 functions */
 #define MM_3DNOWEXT  0x0020 /* AMD 3DNowExt */
 #define MM_SSE3   0x0040 /* Prescott SSE3 functions */
+#define MM_SSSE3  0x0080 /* Conroe SSSE3 functions */
 
 extern int mm_flags;
 
--- a/i386/cputest.c	Mon Dec 18 19:27:28 2006 +0000
+++ b/i386/cputest.c	Mon Dec 18 22:43:09 2006 +0000
@@ -87,6 +87,8 @@
             rval |= MM_SSE2;
         if (ecx & 1)
             rval |= MM_SSE3;
+        if (ecx & 0x00000200 )
+            rval |= MM_SSSE3;
     }
 
     cpuid(0x80000000, max_ext_level, ebx, ecx, edx);
@@ -104,11 +106,13 @@
     }
 
 #if 0
-    av_log(NULL, AV_LOG_DEBUG, "%s%s%s%s%s%s\n",
+    av_log(NULL, AV_LOG_DEBUG, "%s%s%s%s%s%s%s%s\n",
         (rval&MM_MMX) ? "MMX ":"",
         (rval&MM_MMXEXT) ? "MMX2 ":"",
         (rval&MM_SSE) ? "SSE ":"",
         (rval&MM_SSE2) ? "SSE2 ":"",
+        (rval&MM_SSE3) ? "SSE3 ":"",
+        (rval&MM_SSSE3) ? "SSSE3 ":"",
         (rval&MM_3DNOW) ? "3DNow ":"",
         (rval&MM_3DNOWEXT) ? "3DNowExt ":"");
 #endif