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

Michael Niedermayer michaelni
Wed Sep 29 22:26:27 CEST 2010


On Wed, Sep 29, 2010 at 08:56:50PM +0100, M?ns Rullg?rd wrote:
> Michael Niedermayer <michaelni at gmx.at> writes:
> 
> > On Wed, Sep 29, 2010 at 12:19:45PM -0400, Ronald S. Bultje wrote:
> >> 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.
> >
> > Iam starting to think that too in this case ...
> 
> ...
> 
> > either way patch ok
> >
> > but see it positive we learnt about %a0
> 
> Is that one of those undocumented tricks they tell you not to use?

it does not seem so, no


> 
> > and that gcc 3 is not capable to propagete constants through
> > always_inline functions, 
> 
> I thought that was common knowledge.

then i wonder why you didnt know it

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In a rich man's house there is no place to spit but his face.
-- Diogenes of Sinope
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/attachments/20100929/96d4a59c/attachment.pgp>



More information about the ffmpeg-cvslog mailing list