diff --git a/common/pixel.c b/common/pixel.c index cf6ae03..adc9d82 100644 --- a/common/pixel.c +++ b/common/pixel.c @@ -674,7 +674,8 @@ void x264_pixel_init( int cpu, x264_pixel_function_t *pixf ) INIT2( sad, _sse2 ); INIT2( sad_x3, _sse2 ); INIT2( sad_x4, _sse2 ); - INIT4( hadamard_ac, _sse2 ); + if (!(cpu&X264_CPU_STACK_MOD4)) + INIT4( hadamard_ac, _sse2 ); INIT_ADS( _sse2 ); pixf->var[PIXEL_8x8] = x264_pixel_var_8x8_sse2; pixf->intra_sad_x3_16x16 = x264_intra_sad_x3_16x16_sse2; @@ -716,7 +717,8 @@ void x264_pixel_init( int cpu, x264_pixel_function_t *pixf ) INIT7( satd, _ssse3 ); INIT7( satd_x3, _ssse3 ); INIT7( satd_x4, _ssse3 ); - INIT4( hadamard_ac, _ssse3 ); + if (!(cpu&X264_CPU_STACK_MOD4)) + INIT4( hadamard_ac, _ssse3 ); INIT_ADS( _ssse3 ); pixf->sa8d[PIXEL_16x16]= x264_pixel_sa8d_16x16_ssse3; pixf->sa8d[PIXEL_8x8] = x264_pixel_sa8d_8x8_ssse3;