diff options
author | David Conrad <lessen42@gmail.com> | 2009-04-01 09:11:32 +0000 |
---|---|---|
committer | David Conrad <lessen42@gmail.com> | 2009-04-01 09:11:32 +0000 |
commit | 710441c2f628be7d7bc18b8fd682520fd74e1526 (patch) | |
tree | 974a6a5162d2182543a6bf74edd2c41abec7e579 | |
parent | 41913a35b0fe2f9966cf8dfa2718180fb2febe53 (diff) | |
download | ffmpeg-710441c2f628be7d7bc18b8fd682520fd74e1526.tar.gz |
Add SSE4 detection support
Originally committed as revision 18302 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/avcodec.h | 2 | ||||
-rw-r--r-- | libavcodec/x86/cpuid.c | 10 |
2 files changed, 10 insertions, 2 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 2b9adf268d..1c314659e6 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -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 diff --git a/libavcodec/x86/cpuid.c b/libavcodec/x86/cpuid.c index 63feffcef8..55755af8f9 100644 --- a/libavcodec/x86/cpuid.c +++ b/libavcodec/x86/cpuid.c @@ -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 |