[FFmpeg-cvslog] r25254 - trunk/libavcodec/x86/h264dsp_mmx.c

Ronald S. Bultje rsbultje
Wed Sep 29 18:19:45 CEST 2010


Hi,

On Wed, Sep 29, 2010 at 12:03 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> On Wed, Sep 29, 2010 at 04:02:32PM +0200, rbultje wrote:
>> Author: rbultje
>> Date: Wed Sep 29 16:02:32 2010
>> New Revision: 25254
>>
>> Log:
>> Remove d_idx as a variable, and instead load it as a constant in the asm.
>> This has no measurable speed effect because the surrounding code doesn't
>> take advantage of this yet.
> [...]
>> @@ -125,34 +124,41 @@ static av_always_inline void h264_loop_f
>> ? ? ? ? ? ? ? ? ? ? ? ? ?"por ? ? ? ? ? %%mm1, %%mm0 \n"
>> ? ? ? ? ? ? ? ? ? ? ? ? ?"pshufw $0x4E, %%mm0, %%mm1 \n"
>> ? ? ? ? ? ? ? ? ? ? ? ? ?"pminub ? ? ? ?%%mm1, %%mm0 \n"
>> - ? ? ? ? ? ? ? ? ? ? ? ?::"r"(d_idx),
>> - ? ? ? ? ? ? ? ? ? ? ? ? ?"r"(ref[0]+b_idx),
>> - ? ? ? ? ? ? ? ? ? ? ? ? ?"r"(mv[0]+b_idx)
>> + ? ? ? ? ? ? ? ? ? ? ? ?::"r"(ref[0]+b_idx),
>> + ? ? ? ? ? ? ? ? ? ? ? ? ?"r"(mv[0]+b_idx),
>> + ? ? ? ? ? ? ? ? ? ? ? ? ?"i"(d_idx),
>> + ? ? ? ? ? ? ? ? ? ? ? ? ?"i"(d_idx+40),
>> + ? ? ? ? ? ? ? ? ? ? ? ? ?"i"(d_idx*4),
>> + ? ? ? ? ? ? ? ? ? ? ? ? ?"i"(d_idx*4+8),
>> + ? ? ? ? ? ? ? ? ? ? ? ? ?"i"(d_idx*4+160),
>> + ? ? ? ? ? ? ? ? ? ? ? ? ?"i"(d_idx*4+168)
>
> It appears that some gccs have difficulty with constant propagation, so i
> suspect that this has to be changed to a macro instead of a always_inline
> function

Grmbl, starting to think yasm is easier after all... Patch attached.

Ronald
-------------- next part --------------
A non-text attachment was scrubbed...
Name: macroify.patch
Type: application/octet-stream
Size: 11909 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/attachments/20100929/6e8a55c5/attachment-0001.obj>



More information about the ffmpeg-cvslog mailing list