diff --git a/libavcodec/i386/snowdsp_mmx.c b/libavcodec/i386/snowdsp_mmx.c index e23d264c7a..fc26537f9b 100644 --- a/libavcodec/i386/snowdsp_mmx.c +++ b/libavcodec/i386/snowdsp_mmx.c @@ -42,8 +42,10 @@ void ff_snow_horizontal_compose97i_sse2(IDWTELEM *b, int width){ i = 0; asm volatile( "pcmpeqd %%xmm7, %%xmm7 \n\t" - "psllw $15, %%xmm7 \n\t" - "psrlw $14, %%xmm7 \n\t" + "pcmpeqd %%xmm3, %%xmm3 \n\t" + "psllw $1, %%xmm3 \n\t" + "paddw %%xmm7, %%xmm3 \n\t" + "psrlw $13, %%xmm3 \n\t" ::); for(; i>W_DS); asm volatile( "pcmpeqw %%mm7, %%mm7 \n\t" - "psllw $15, %%mm7 \n\t" - "psrlw $14, %%mm7 \n\t" + "pcmpeqw %%mm3, %%mm3 \n\t" + "psllw $1, %%mm3 \n\t" + "paddw %%mm7, %%mm3 \n\t" + "psllw $13, %%mm3 \n\t" ::); for(; i> W_BS); asm volatile( - "psllw $14, %%mm7 \n\t" + "psllw $15, %%mm7 \n\t" "pcmpeqw %%mm6, %%mm6 \n\t" "psrlw $13, %%mm6 \n\t" "paddw %%mm7, %%mm6 \n\t"