On 06/25/2012 05:23 PM, Jason Garrett-Glaser wrote:
>> +cglobal conv_s16_to_fltp_2ch, 3,4,5, dst0, src, len, dst1
>> +    lea       lenq, [4*lend]
>> +    mov      dst1q, [dst0q+gprsize]
>> +    mov      dst0q, [dst0q        ]
>> +    add       srcq, lenq
>> +    add      dst0q, lenq
>> +    add      dst1q, lenq
>> +    neg       lenq
>> +    mova        m4, [pf_s16_inv_scale]
>> +    ALIGN 16
>> +.loop:
>> +%if cpuflag(sse4)
>> +    pmovsxwd   m0, [srcq+lenq         ]
>> +    pmovsxwd   m1, [srcq+lenq+mmsize/2]
>> +%else
>> +    mova       m1, [srcq+lenq]
>> +    punpcklwd  m0, m1
>> +    punpckhwd  m1, m1
> 
> This definitely looks wrong; m0 hasn't been set to anything.  Did you
> test this?  Like in another email, I'd suggest using a macro to
> abstract this.

Yeah, it works. I did make a macro for it, I just forgot to use it here...

>> +    psrad      m0, 16
>> +    psrad      m1, 16

The uninitialized parts get shifted away there.

-Justin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to