SATD_X_DECL7( _mmxext )
SATD_X_DECL5( _sse2 )
#ifdef HAVE_SSE3
-SATD_X_DECL5( _ssse3 )
+SATD_X_DECL7( _ssse3 )
#endif
#endif
if( cpu&X264_CPU_SSSE3 )
{
- INIT5( satd, _ssse3 );
- INIT5( satd_x3, _ssse3 );
- INIT5( satd_x4, _ssse3 );
+ INIT7( satd, _ssse3 );
+ INIT7( satd_x3, _ssse3 );
+ INIT7( satd_x4, _ssse3 );
INIT_ADS( _ssse3 );
pixf->sa8d[PIXEL_16x16]= x264_pixel_sa8d_16x16_ssse3;
pixf->sa8d[PIXEL_8x8] = x264_pixel_sa8d_8x8_ssse3;
paddw mm0, mm1
SATD_END_MMX
-cglobal x264_pixel_satd_4x8_mmxext, 4,6
+%macro SATD_W4 1
+cglobal x264_pixel_satd_4x8_%1, 4,6
SATD_START_MMX
SATD_4x4_MMX mm0, 0, 1
SATD_4x4_MMX mm1, 0, 0
paddw mm0, mm1
SATD_END_MMX
-cglobal x264_pixel_satd_4x4_mmxext, 4,6
+cglobal x264_pixel_satd_4x4_%1, 4,6
SATD_START_MMX
SATD_4x4_MMX mm0, 0, 0
SATD_END_MMX
+%endmacro
-
+SATD_W4 mmxext
%macro SATD_START_SSE2 0
pxor xmm6, xmm6
%endmacro
; instantiate satds
-; FIXME width4 can benefit from pabsw even if not sse2
+%ifndef ARCH_X86_64
cextern x264_pixel_sa8d_8x8_mmxext
SA8D_16x16_32 mmxext
+%endif
%define ABS1 ABS1_MMX
%define ABS2 ABS2_MMX
SA8D_16x16_32 ssse3
INTRA_SA8D_SSE2 ssse3
INTRA_SATDS_MMX ssse3
+SATD_W4 ssse3 ; mmx, but uses pabsw from ssse3.
%endif