From 5a5c770d5a1b839d5d093d0cf58d866a473e4904 Mon Sep 17 00:00:00 2001 From: Guillaume Poirier Date: Mon, 18 Dec 2006 22:43:09 +0000 Subject: [PATCH] Add SSSE3 (Core2 aka Conroe/Merom/Woodcrester new instructions) detection Originally committed as revision 7332 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/dsputil.h | 1 + libavcodec/i386/cputest.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) 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