Re: [AD] allegro-4.2.0 compilation error with gcc-4.1.2

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


On Sun, 2006-07-02 at 01:09 +0200, Thomas Klausner wrote:
> On Sat, Jul 01, 2006 at 02:26:34PM +0200, Elias Pschernig wrote:
> > Thanks, but I'm still not sure. I read a bit in the gcc docs, and the
> > 
> > "=&d" (edx) 
> > 
> > seems to have been put there by the original author so x and y won't be
> > put into EDX. After the patch, this can happen. Is this really allowed?
> 
> Thanks for the explanation.
> 
> The problem is that the assembler code made assumptions
> about the allocation of registers, which the patch fixes.
> Matthew fixed the patch so it should do the right thing.
> Matthew also said:
> It probably should have a dummy variable assigned to the usage of %eax as well.
> 

Oh, btw., who is Matthew?

> > And why is the same code valid for fixdiv?
> 
> Sorry, I don't know.
> 
> > Also, I tried with this version of gcc:
> > 
> > gcc (GCC) 4.1.2 20060613 (prerelease) (Debian 4.1.1-5)
> > 
> > And it does not complain.
> 
> Weird.
> gcc (GCC) 4.1.2 20060628 prerelease (NetBSD nb1 20060602)
> here.

Yes, very weird. fixdiv works, a 2 weeks older gcc version works, but
fixmul does not. Oh, btw, are you compiling with any special
optimization flags? Or maybe BSD or linux reserve additional registers
for something, so one has no register available.

> > So, well, need to wait until someone who knows more about it shows up,
> > or provide me with even more info if I should apply it :)
> 
> I hope someone shows up :)

Sure. Maybe also someone else hits the problem as more and more people
will upgrade to gcc >= 20060628. I'll also try to understand the new
patch now.. I'm still confused thogh how the counting of parameters
works, e.g. what parameter the %5 is now.

-- 
Elias Pschernig





Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/