@ -174,13 +174,13 @@
% endif
% endmacro
% macro PSIGNW_MMX 2
% macro PSIGNW 2
% if cpuflag(ssse3)
psignw % 1 , % 2
% else
pxor % 1 , % 2
psubw % 1 , % 2
% endmacro
% macro PSIGNW_SSSE3 2
psignw % 1 , % 2
% endif
% endmacro
% macro ABS1 2
@ -221,7 +221,7 @@
% endif
% endmacro
% macro ABSB 2 ; source mmreg, temp mmreg (unused for ssse 3)
% macro ABSB 2 ; source mmreg, temp mmreg (unused for SSSE 3)
% if cpuflag(ssse3)
pabsb % 1 , % 1
% else
@ -245,7 +245,7 @@
% endif
% endmacro
% macro ABSD2_MMX 4
% macro ABSD2 4
pxor % 3 , % 3
pxor % 4 , % 4
pcmpgtd % 3 , % 1
@ -290,7 +290,7 @@
% else
palignr % 1 , % 2 , % 3
% endif
% elif cpuflag(mmx) ; [dst,] src1, src2, imm, tmp
% else ; [dst,] src1, src2, imm, tmp
% define %%dst %1
% if %0==5
% ifnidn %1, %2
@ -606,37 +606,47 @@
pminsw % 1 , % 3
% endmacro
% macro PMINSD_MMX 3 ; dst, src, tmp
% macro PMINSD 3 ; dst, src, tmp/unused
% if cpuflag(sse4)
pminsd % 1 , % 2
% elif cpuflag(sse2)
cvtdq2ps % 1 , % 1
minps % 1 , % 2
cvtps2dq % 1 , % 1
% else
mova % 3 , % 2
pcmpgtd % 3 , % 1
pxor % 1 , % 2
pand % 1 , % 3
pxor % 1 , % 2
% endif
% endmacro
% macro PMAXSD_MMX 3 ; dst, src, tmp
% macro PMAXSD 3 ; dst, src, tmp/unused
% if cpuflag(sse4)
pmaxsd % 1 , % 2
% else
mova % 3 , % 1
pcmpgtd % 3 , % 2
pand % 1 , % 3
pandn % 3 , % 2
por % 1 , % 3
% endif
% endmacro
% macro CLIPD_MMX 3-4 ; src/dst, min, max, tmp
PMINSD_MMX % 1 , % 3 , % 4
PMAXSD_MMX % 1 , % 2 , % 4
% endmacro
% macro CLIPD_SSE2 3-4 ; src/dst, min (float), max (float), unused
% macro CLIPD 3-4
% if cpuflag(sse4) ; src/dst, min, max, unused
pminsd % 1 , % 3
pmaxsd % 1 , % 2
% elif cpuflag(sse2) ; src/dst, min (float), max (float), unused
cvtdq2ps % 1 , % 1
minps % 1 , % 3
maxps % 1 , % 2
cvtps2dq % 1 , % 1
% endmacro
% macro CLIPD_SSE41 3-4 ; src/dst, min, max, unused
pminsd % 1 , % 3
pmaxsd % 1 , % 2
% else ; src/dst, min, max, tmp
PMINSD % 1 , % 3 , % 4
PMAXSD % 1 , % 2 , % 4
% endif
% endmacro
% macro VBROADCASTSS 2 ; dst xmm/ymm, src m32