NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: toolchain/45673: gcc on i386 current generates bad code for assembler code in lock.h
The following reply was made to PR toolchain/45673; it has been noted by GNATS.
From: Joerg Sonnenberger <joerg%homeworld.netbsd.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: toolchain/45673: gcc on i386 current generates bad code for
assembler code in lock.h
Date: Sun, 11 Mar 2012 23:35:01 +0000
On Wed, Nov 30, 2011 at 08:55:00PM +0000, kuehro%gmx.de@localhost wrote:
> The reason seems to be gcc bug 10153. The error with pkgsrc can be fixed
> by changing r to q in line 108 of /usr/include/x86/lock.h:
>
> _asm volatile ("xchgb %0,(%2)" :
> "=r" (val)
> :"0" (val), "r" (lockp));
>
> This restricts allowable registers to a,b,c or d. Of course it would be
> much better to fix gcc somehow.
That restricts it more than necessary, doesn't it? I think the correct
constraint here "=qQ", since both l and h registers are allowed.
Joerg
Home |
Main Index |
Thread Index |
Old Index