[FFmpeg-devel] [patch v4, v5] libpostproc: mmx code uses stack below %esp

Michael Niedermayer michaelni
Tue Feb 2 21:12:32 CET 2010

On Tue, Feb 02, 2010 at 11:08:01PM +0300, Yuriy Kaminskiy wrote:
> On 02.02.2010 22:20, Michael Niedermayer wrote:
> > On Tue, Feb 02, 2010 at 04:47:44PM +0300, Yuriy Kaminskiy wrote:
> > I think after reading over this again the best solution would be to use the
> > context as temporary space, we have a "m"(c->pQPb) anyway so if we put a
> > pointer into a register to the context we could address pQPb and the temp
> > aligned space easily.
> > That way we dont need to create any aligned space on the stack ...
> Eww, but context here is actually "aligned space on stack" (I think that's why
> some code can work at all: else gcc would die with "not enough registers" even
> without -fPIC):
> ==== cut postprocess_template.c:3163 ===
> static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t
> dst[], int dstStride, int width, int height,
>                                 const QP_STORE_T QPs[], int QPStride, int
> isColor, PPContext *c2)
> {
>     DECLARE_ALIGNED(8, PPContext, c)= *c2; //copy to stack for faster access

hmm, i forgot that ...
anyway does gcc add additional instructions with your code to align the new
variable or not?


Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

When the tyrant has disposed of foreign enemies by conquest or treaty, and
there is nothing more to fear from them, then he is always stirring up
some war or other, in order that the people may require a leader. -- Plato
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100202/79647437/attachment.pgp>

More information about the ffmpeg-devel mailing list