[Ffmpeg-devel] [PATCH] (4) building with --disable-opts on i386
Marco Manfredini
mldb
Mon Aug 14 12:42:33 CEST 2006
On Sunday 13 August 2006 21:52, Michael Niedermayer wrote:
> some other alternative would be to rewrite the code so as to do the
> addresing manually, instead of letting gcc play with it:
> "r" (dst), "r"(dst_stride), "r" (dst + 2*dst_stride),
> "r" (src), "r"(src_stride), "r" (src + 2*src_stride)
>
> and use (%0), (%0,%1), (%2), (%2,%1), ...
>
> [...]
If the optimiser knows the stride values, he doesn't need registers for them.
but now I need 6 every time, a memory clobber and this doesn't help me with
the register spill problem either.
I've tried:
movd (%4),%mm0
movd (%4,%5),%mm1
lea (%4,%5),%4
movd (%4),%mm1
movd (%4,%5),%mm2
...
"+r" (src): "r"(src_stride)
But that's slower in my tests.
The "return value" pattern looks best so far, because it's transparent and
makes the localisation of the spill hacks easy. I'll try if I can make it
looking less funny :-)
Marco
More information about the ffmpeg-devel
mailing list