Mercurial > libavcodec.hg
comparison i386/cputest.c @ 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 | c8c591fe26f8 |
children | d5ba514e3f4a |
comparison
equal
deleted
inserted
replaced
4310:a0c0c7bebd64 | 4311:f9325f2bc762 |
---|---|
85 rval |= MM_MMXEXT | MM_SSE; | 85 rval |= MM_MMXEXT | MM_SSE; |
86 if (std_caps & (1<<26)) | 86 if (std_caps & (1<<26)) |
87 rval |= MM_SSE2; | 87 rval |= MM_SSE2; |
88 if (ecx & 1) | 88 if (ecx & 1) |
89 rval |= MM_SSE3; | 89 rval |= MM_SSE3; |
90 if (ecx & 0x00000200 ) | |
91 rval |= MM_SSSE3; | |
90 } | 92 } |
91 | 93 |
92 cpuid(0x80000000, max_ext_level, ebx, ecx, edx); | 94 cpuid(0x80000000, max_ext_level, ebx, ecx, edx); |
93 | 95 |
94 if(max_ext_level >= 0x80000001){ | 96 if(max_ext_level >= 0x80000001){ |
102 if (ext_caps & (1<<22)) | 104 if (ext_caps & (1<<22)) |
103 rval |= MM_MMXEXT; | 105 rval |= MM_MMXEXT; |
104 } | 106 } |
105 | 107 |
106 #if 0 | 108 #if 0 |
107 av_log(NULL, AV_LOG_DEBUG, "%s%s%s%s%s%s\n", | 109 av_log(NULL, AV_LOG_DEBUG, "%s%s%s%s%s%s%s%s\n", |
108 (rval&MM_MMX) ? "MMX ":"", | 110 (rval&MM_MMX) ? "MMX ":"", |
109 (rval&MM_MMXEXT) ? "MMX2 ":"", | 111 (rval&MM_MMXEXT) ? "MMX2 ":"", |
110 (rval&MM_SSE) ? "SSE ":"", | 112 (rval&MM_SSE) ? "SSE ":"", |
111 (rval&MM_SSE2) ? "SSE2 ":"", | 113 (rval&MM_SSE2) ? "SSE2 ":"", |
114 (rval&MM_SSE3) ? "SSE3 ":"", | |
115 (rval&MM_SSSE3) ? "SSSE3 ":"", | |
112 (rval&MM_3DNOW) ? "3DNow ":"", | 116 (rval&MM_3DNOW) ? "3DNow ":"", |
113 (rval&MM_3DNOWEXT) ? "3DNowExt ":""); | 117 (rval&MM_3DNOWEXT) ? "3DNowExt ":""); |
114 #endif | 118 #endif |
115 return rval; | 119 return rval; |
116 } | 120 } |