19 |
* along with this program ; if not, write to the Free Software |
* along with this program ; if not, write to the Free Software |
20 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 |
* |
* |
22 |
* $Id: xvid.c,v 1.72 2006-11-12 01:40:36 chl Exp $ |
* $Id: xvid.c,v 1.74 2008-11-14 15:43:27 Isibaar Exp $ |
23 |
* |
* |
24 |
****************************************************************************/ |
****************************************************************************/ |
25 |
|
|
137 |
if ((cpu_flags & XVID_CPU_SSE) && sigill_check(sse_os_trigger)) |
if ((cpu_flags & XVID_CPU_SSE) && sigill_check(sse_os_trigger)) |
138 |
cpu_flags &= ~XVID_CPU_SSE; |
cpu_flags &= ~XVID_CPU_SSE; |
139 |
|
|
140 |
if ((cpu_flags & XVID_CPU_SSE2) && sigill_check(sse2_os_trigger)) |
if ((cpu_flags & (XVID_CPU_SSE2|XVID_CPU_SSE3|XVID_CPU_SSE41)) && sigill_check(sse2_os_trigger)) |
141 |
cpu_flags &= ~XVID_CPU_SSE2; |
cpu_flags &= ~(XVID_CPU_SSE2|XVID_CPU_SSE3|XVID_CPU_SSE41); |
142 |
#endif |
#endif |
143 |
|
|
144 |
#if defined(ARCH_IS_PPC) |
#if defined(ARCH_IS_PPC) |
315 |
|
|
316 |
if ((cpu_flags & XVID_CPU_MMX) || (cpu_flags & XVID_CPU_MMXEXT) || |
if ((cpu_flags & XVID_CPU_MMX) || (cpu_flags & XVID_CPU_MMXEXT) || |
317 |
(cpu_flags & XVID_CPU_3DNOW) || (cpu_flags & XVID_CPU_3DNOWEXT) || |
(cpu_flags & XVID_CPU_3DNOW) || (cpu_flags & XVID_CPU_3DNOWEXT) || |
318 |
(cpu_flags & XVID_CPU_SSE) || (cpu_flags & XVID_CPU_SSE2)) |
(cpu_flags & XVID_CPU_SSE) || (cpu_flags & XVID_CPU_SSE2) || |
319 |
|
(cpu_flags & XVID_CPU_SSE3) || (cpu_flags & XVID_CPU_SSE41)) |
320 |
{ |
{ |
321 |
/* Restore FPU context : emms_c is a nop functions */ |
/* Restore FPU context : emms_c is a nop functions */ |
322 |
emms = emms_mmx; |
emms = emms_mmx; |
541 |
|
|
542 |
/* DCT operators */ |
/* DCT operators */ |
543 |
fdct = fdct_sse2_skal; |
fdct = fdct_sse2_skal; |
544 |
/* idct = idct_sse2_skal; */ /* Is now IEEE1180 and Walken compliant. Disabled until fully tested. */ |
idct = idct_sse2_skal; /* Is now IEEE1180 and Walken compliant. */ |
545 |
|
|
546 |
/* postprocessing */ |
/* postprocessing */ |
547 |
image_brightness = image_brightness_sse2; |
image_brightness = image_brightness_sse2; |
548 |
} |
} |
549 |
|
|
550 |
|
if ((cpu_flags & XVID_CPU_SSE3)) { |
551 |
|
|
552 |
|
/* SAD operators */ |
553 |
|
sad16 = sad16_sse3; |
554 |
|
dev16 = dev16_sse3; |
555 |
|
} |
556 |
|
|
557 |
#endif /* ARCH_IS_IA32 */ |
#endif /* ARCH_IS_IA32 */ |
558 |
|
|
559 |
#if defined(ARCH_IS_IA64) |
#if defined(ARCH_IS_IA64) |