[MPlayer-dev-eng] imdct.c and gcc 3.4.0/3.5

Zoltan Hidvegi mplayer at hzoli.2y.net
Sun May 2 22:39:31 CEST 2004


Michael wrote:
> > > BTW, is it possible to pass in "m"(buf) and use 128+%1 in the asm,
> > > rather than trying to pass in "m"(buf+128)?
> >
> > No, because "m" could be e.g. (%eax), and AFAIK, 128+(%eax) is not a
> > legal syntax.  But in this specific case, it can work, because buf is
> > a constant, but this means you can just use the "i" constraint.  Also,
> > two_m_plus_one is twice two_m, so the attached patch should fix these
> > warnings.
> rejected
> 
> buf is a constant, but it shouldnt be, it makes it impossible to decode more 
> then a single a52 stream at the same time
> according to cvsweb it always was in mplayer cvs though but its not in current 
> liba52 cvs

OK, so how about this, write the loop in C, do only the SSE stuff in
asm, and let gcc handle the addressing.  It leaves much more freedom
for gcc to allocate registers, makes no assumptions, and generates
almost the same code.

Zoli
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: imdct-asm.patch
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/attachments/20040502/a8aa41b5/attachment.asc>


More information about the MPlayer-dev-eng mailing list