[FFmpeg-devel] [PATCH] sbrdsp.asm: convert all instructions to float/SSE ones.

Jason Garrett-Glaser jason at x264.com
Wed Mar 7 22:32:31 CET 2012


>> diff --git a/libavcodec/x86/sbrdsp.asm b/libavcodec/x86/sbrdsp.asm
>> index c3b559b..31a1c8b 100644
>> --- a/libavcodec/x86/sbrdsp.asm
>> +++ b/libavcodec/x86/sbrdsp.asm
>> @@ -82,14 +82,14 @@ cglobal sbr_hf_g_filt, 5, 6, 5
>>     lea         r0, [r0 + r3*8]
>>     neg         r3
>>  .loop4:
>> -    movq        m0, [r2 + 4*r3 + 0]
>> -    movq        m1, [r2 + 4*r3 + 8]
>> -    movq        m2, [r1 + 0*STEP]
>> -    movq        m3, [r1 + 2*STEP]
>> +    movlps      m0, [r2 + 4*r3 + 0]
>> +    movlps      m1, [r2 + 4*r3 + 8]
>> +    movlps      m2, [r1 + 0*STEP]
>> +    movlps      m3, [r1 + 2*STEP]
>>     movhps      m2, [r1 + 1*STEP]
>>     movhps      m3, [r1 + 3*STEP]
>> -    punpckldq   m0, m0
>> -    punpckldq   m1, m1
>> +    unpcklps    m0, m0
>> +    unpcklps    m1, m1

Suggestion (not required for this patch) -- if you do an SSE3 version,
use movddup instead of movlps + unpcklps.

Jason


More information about the ffmpeg-devel mailing list