summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorGuillaume Poirier <gpoirier@mplayerhq.hu>2006-12-18 22:43:09 +0000
committerGuillaume Poirier <gpoirier@mplayerhq.hu>2006-12-18 22:43:09 +0000
commit5a5c770d5a1b839d5d093d0cf58d866a473e4904 (patch)
treebeb606803bb08a7679939dc58a2dc92c0f77cf59 /libavcodec
parent832a7b631fbbca15741705a171e9da03e5d42824 (diff)
Add SSSE3 (Core2 aka Conroe/Merom/Woodcrester new instructions) detection
Originally committed as revision 7332 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/dsputil.h1
-rw-r--r--libavcodec/i386/cputest.c6
2 files changed, 6 insertions, 1 deletions
diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h
index 7a401cdf9d..78109f7b98 100644
--- a/libavcodec/dsputil.h
+++ b/libavcodec/dsputil.h
@@ -484,6 +484,7 @@ int mm_support(void);
#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;
diff --git a/libavcodec/i386/cputest.c b/libavcodec/i386/cputest.c
index 262786b71c..0705ab3e54 100644
--- a/libavcodec/i386/cputest.c
+++ b/libavcodec/i386/cputest.c
@@ -87,6 +87,8 @@ int mm_support(void)
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 @@ int mm_support(void)
}
#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