@@ -151,15 +151,12 @@ cglobal ac3_max_msb_abs_int16, 2,2,5, src, len | |||||
%endmacro | %endmacro | ||||
INIT_MMX mmx | INIT_MMX mmx | ||||
%define ABS2 ABS2_MMX | |||||
AC3_MAX_MSB_ABS_INT16 or_abs | AC3_MAX_MSB_ABS_INT16 or_abs | ||||
INIT_MMX mmxext | INIT_MMX mmxext | ||||
%define ABS2 ABS2_MMXEXT | |||||
AC3_MAX_MSB_ABS_INT16 min_max | AC3_MAX_MSB_ABS_INT16 min_max | ||||
INIT_XMM sse2 | INIT_XMM sse2 | ||||
AC3_MAX_MSB_ABS_INT16 min_max | AC3_MAX_MSB_ABS_INT16 min_max | ||||
INIT_XMM ssse3 | INIT_XMM ssse3 | ||||
%define ABS2 ABS2_SSSE3 | |||||
AC3_MAX_MSB_ABS_INT16 or_abs | AC3_MAX_MSB_ABS_INT16 or_abs | ||||
;----------------------------------------------------------------------------- | ;----------------------------------------------------------------------------- | ||||
@@ -263,7 +263,6 @@ INIT_MMX mmxext | |||||
HADAMARD8_DIFF | HADAMARD8_DIFF | ||||
INIT_XMM sse2 | INIT_XMM sse2 | ||||
%define ABS2 ABS2_MMXEXT | |||||
%if ARCH_X86_64 | %if ARCH_X86_64 | ||||
%define ABS_SUM_8x8 ABS_SUM_8x8_64 | %define ABS_SUM_8x8 ABS_SUM_8x8_64 | ||||
%else | %else | ||||
@@ -272,7 +271,6 @@ INIT_XMM sse2 | |||||
HADAMARD8_DIFF 10 | HADAMARD8_DIFF 10 | ||||
INIT_XMM ssse3 | INIT_XMM ssse3 | ||||
%define ABS2 ABS2_SSSE3 | |||||
%define ABS_SUM_8x8 ABS_SUM_8x8_64 | %define ABS_SUM_8x8 ABS_SUM_8x8_64 | ||||
HADAMARD8_DIFF 9 | HADAMARD8_DIFF 9 | ||||
@@ -187,7 +187,18 @@ | |||||
%endif | %endif | ||||
%endmacro | %endmacro | ||||
%macro ABS2_MMX 4 ; a, b, tmp0, tmp1 | |||||
%macro ABS2 4 | |||||
%if cpuflag(ssse3) | |||||
pabsw %1, %1 | |||||
pabsw %2, %2 | |||||
%elif cpuflag(mmxext) ; a, b, tmp0, tmp1 | |||||
pxor %3, %3 | |||||
pxor %4, %4 | |||||
psubw %3, %1 | |||||
psubw %4, %2 | |||||
pmaxsw %1, %3 | |||||
pmaxsw %2, %4 | |||||
%else ; a, b, tmp0, tmp1 | |||||
pxor %3, %3 | pxor %3, %3 | ||||
pxor %4, %4 | pxor %4, %4 | ||||
pcmpgtw %3, %1 | pcmpgtw %3, %1 | ||||
@@ -196,20 +207,7 @@ | |||||
pxor %2, %4 | pxor %2, %4 | ||||
psubw %1, %3 | psubw %1, %3 | ||||
psubw %2, %4 | psubw %2, %4 | ||||
%endmacro | |||||
%macro ABS2_MMXEXT 4 ; a, b, tmp0, tmp1 | |||||
pxor %3, %3 | |||||
pxor %4, %4 | |||||
psubw %3, %1 | |||||
psubw %4, %2 | |||||
pmaxsw %1, %3 | |||||
pmaxsw %2, %4 | |||||
%endmacro | |||||
%macro ABS2_SSSE3 4 | |||||
pabsw %1, %1 | |||||
pabsw %2, %2 | |||||
%endif | |||||
%endmacro | %endmacro | ||||
%macro ABSB_MMX 2 | %macro ABSB_MMX 2 | ||||
@@ -252,7 +250,6 @@ | |||||
ABS2 %3, %4, %5, %6 | ABS2 %3, %4, %5, %6 | ||||
%endmacro | %endmacro | ||||
%define ABS2 ABS2_MMX | |||||
%define ABSB ABSB_MMX | %define ABSB ABSB_MMX | ||||
%define ABSB2 ABSB2_MMX | %define ABSB2 ABSB2_MMX | ||||