[FFmpeg-cvslog] r10158 - trunk/libavcodec/i386/snowdsp_mmx.c

Benoit Fouet benoit.fouet
Wed Aug 22 12:56:48 CEST 2007


michael wrote:
> Author: michael
> Date: Tue Aug 21 00:41:47 2007
> New Revision: 10158
>
> Log:
> remove idiotc double subtraction from the sse2 code (untested, no sse2 here)
>
>   

it breaks regression tests here (and i don't know anything at sse2, so i
don't know what the problem might be)

> Modified:
>    trunk/libavcodec/i386/snowdsp_mmx.c
>
> Modified: trunk/libavcodec/i386/snowdsp_mmx.c
> ==============================================================================
> --- trunk/libavcodec/i386/snowdsp_mmx.c	(original)
> +++ trunk/libavcodec/i386/snowdsp_mmx.c	Tue Aug 21 00:41:47 2007
> @@ -111,7 +111,8 @@ void ff_snow_horizontal_compose97i_sse2(
>  
>          i = 0;
>          asm volatile(
> -            "pslld          $1, %%xmm7       \n\t" /* xmm7 already holds a '4' from 2 lifts ago. */
> +            "pcmpeqd    %%xmm7, %%xmm7        \n\t"
> +            "psrad         $29, %%xmm7        \n\t"
>          ::);
>          for(; i<w_l-7; i+=8){
>              asm volatile(
> @@ -121,22 +122,18 @@ void ff_snow_horizontal_compose97i_sse2(
>                  "movdqu 20(%1), %%xmm4        \n\t" //FIXME try aligned reads and shifts
>                  "paddd  %%xmm1, %%xmm0        \n\t"
>                  "paddd  %%xmm5, %%xmm4        \n\t"
> -                "movdqa %%xmm7, %%xmm1        \n\t"
> -                "movdqa %%xmm7, %%xmm5        \n\t"
> -                "psubd  %%xmm0, %%xmm1        \n\t"
> -                "psubd  %%xmm4, %%xmm5        \n\t"
> -                "movdqa   (%0), %%xmm0        \n\t"
> -                "movdqa 16(%0), %%xmm4        \n\t"
> -                "pslld      $2, %%xmm0        \n\t"
> -                "pslld      $2, %%xmm4        \n\t"
> -                "psubd  %%xmm0, %%xmm1        \n\t"
> -                "psubd  %%xmm4, %%xmm5        \n\t"
> -                "psrad      $4, %%xmm1        \n\t"
> -                "psrad      $4, %%xmm5        \n\t"
> -                "movdqa   (%0), %%xmm0        \n\t"
> -                "movdqa 16(%0), %%xmm4        \n\t"
> -                "psubd  %%xmm1, %%xmm0        \n\t"
> -                "psubd  %%xmm5, %%xmm4        \n\t"
> +                "paddd  %%xmm7, %%xmm0        \n\t"
> +                "paddd  %%xmm7, %%xmm4        \n\t"
> +                "movdqa   (%0), %%xmm1        \n\t"
> +                "movdqa 16(%0), %%xmm5        \n\t"
> +                "psrad      $2, %%xmm0        \n\t"
> +                "psrad      $2, %%xmm4        \n\t"
> +                "paddd  %%xmm1, %%xmm0        \n\t"
> +                "paddd  %%xmm5, %%xmm4        \n\t"
> +                "psrad      $2, %%xmm0        \n\t"
> +                "psrad      $2, %%xmm4        \n\t"
> +                "paddd  %%xmm1, %%xmm0        \n\t"
> +                "paddd  %%xmm5, %%xmm4        \n\t"
>                  "movdqa %%xmm0, (%0)          \n\t"
>                  "movdqa %%xmm4, 16(%0)        \n\t"
>                  :: "r"(&b[i]), "r"(&ref[i])
> @@ -144,7 +141,7 @@ void ff_snow_horizontal_compose97i_sse2(
>              );
>          }
>          snow_horizontal_compose_liftS_lead_out(i, b, b, ref, width, w_l);
> -        b[0] = b_0 - (((-2 * ref[1] + W_BO) - 4 * b_0) >> W_BS);
> +        b[0] = b_0 + ((2 * ref[1] + W_BO-1 + 4 * b_0) >> W_BS);
>      }
>  
>      { // Lift 3
>   

-- 
Ben
Purple Labs S.A.
www.purplelabs.com




More information about the ffmpeg-cvslog mailing list