|
|
|
@ -172,11 +172,19 @@ |
|
|
|
|
psignw %1, %2 |
|
|
|
|
%endmacro |
|
|
|
|
|
|
|
|
|
%macro ABS1_MMX 2 ; a, tmp |
|
|
|
|
%macro ABS1 2 |
|
|
|
|
%if cpuflag(ssse3) |
|
|
|
|
pabsw %1, %1 |
|
|
|
|
%elif cpuflag(mmxext) ; a, tmp |
|
|
|
|
pxor %2, %2 |
|
|
|
|
psubw %2, %1 |
|
|
|
|
pmaxsw %1, %2 |
|
|
|
|
%else ; a, tmp |
|
|
|
|
pxor %2, %2 |
|
|
|
|
pcmpgtw %2, %1 |
|
|
|
|
pxor %1, %2 |
|
|
|
|
psubw %1, %2 |
|
|
|
|
%endif |
|
|
|
|
%endmacro |
|
|
|
|
|
|
|
|
|
%macro ABS2_MMX 4 ; a, b, tmp0, tmp1 |
|
|
|
@ -190,12 +198,6 @@ |
|
|
|
|
psubw %2, %4 |
|
|
|
|
%endmacro |
|
|
|
|
|
|
|
|
|
%macro ABS1_MMXEXT 2 ; a, tmp |
|
|
|
|
pxor %2, %2 |
|
|
|
|
psubw %2, %1 |
|
|
|
|
pmaxsw %1, %2 |
|
|
|
|
%endmacro |
|
|
|
|
|
|
|
|
|
%macro ABS2_MMXEXT 4 ; a, b, tmp0, tmp1 |
|
|
|
|
pxor %3, %3 |
|
|
|
|
pxor %4, %4 |
|
|
|
@ -205,10 +207,6 @@ |
|
|
|
|
pmaxsw %2, %4 |
|
|
|
|
%endmacro |
|
|
|
|
|
|
|
|
|
%macro ABS1_SSSE3 2 |
|
|
|
|
pabsw %1, %1 |
|
|
|
|
%endmacro |
|
|
|
|
|
|
|
|
|
%macro ABS2_SSSE3 4 |
|
|
|
|
pabsw %1, %1 |
|
|
|
|
pabsw %2, %2 |
|
|
|
@ -254,7 +252,6 @@ |
|
|
|
|
ABS2 %3, %4, %5, %6 |
|
|
|
|
%endmacro |
|
|
|
|
|
|
|
|
|
%define ABS1 ABS1_MMX |
|
|
|
|
%define ABS2 ABS2_MMX |
|
|
|
|
%define ABSB ABSB_MMX |
|
|
|
|
%define ABSB2 ABSB2_MMX |
|
|
|
|