[MPlayer-users] [BUG] asm uses too many registers in swscale_template.c?
Guillaume POIRIER
poirierg at gmail.com
Sun Jun 19 11:46:20 CEST 2005
Hi,
On 6/19/05, Reimar Döffinger <Reimar.Doeffinger at stud.uni-karlsruhe.de> wrote:
> Hi,
> On Sat, Jun 18, 2005 at 09:58:01PM -0700, Pandora wrote:
> > Hello, I was trying out the nifty new gcc compiler (version 3.4.4,
> > SSP, PIE) when I discovered that mplayer wouldn't compile! This is
> > the error I ran across:
> >
> > swscale_template.c: In function `swScale_MMX2':
> > swscale_template.c:2522: error: can't find a register in class `GENERAL_REGS' while reloading `asm'
> > swscale_template.c:2522: error: can't find a register in class `GENERAL_REGS' while reloading `asm'
>
> We won't fix it (because we can't really, at least not without sacrificing
> speed). Use gcc 2.95, I never heard that kind of problem with those.
> 3.4.3 always worked for me , too....
[..]
Mmmm... That might be my fault: I committed a patch to
swscale_template.c to support GCC4 on AMD64. I was supposed to impact
only the AMD64 port, but apparently, this is not the case. :-/
Pandora, changing this line:
:: "m" (src1), "m" (dst), "p" ((long)dstWidth), "m" (xInc_shr16), "m"
(xInc_mask),
to
:: "m" (src1), "m" (dst), "mp" ((long)dstWidth), "m" (xInc_shr16), "m"
(xInc_mask),
Should do the trick (at least, for my GCC3.4 and 4.0
If it still doesn't, try:
:: "m" (src1), "m" (dst), "m" ((long)dstWidth), "m" (xInc_shr16), "m"
(xInc_mask),
(which reverts my patch all together, Grrr!)
Please keep us posted about the result of each fix.
Guillaume
--
A woman isn't complete without a man.
But where do you find a man - a real man - these
days?
Only at #mplayerdev on the freenode IRC network.
-- Lauren Bacall
http://www.brainyquote.com/quotes/quotes/l/laurenbaca127064.html
More information about the MPlayer-users
mailing list