This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: pgcc-1.1.1 glibc-2.1.1 strptime.c forbidden register
- To: law at cygnus dot com, Joe Buck <jbuck at Synopsys dot COM>
- Subject: Re: pgcc-1.1.1 glibc-2.1.1 strptime.c forbidden register
- From: Richard Henderson <rth at cygnus dot com>
- Date: Fri, 9 Apr 1999 14:58:46 -0700
- Cc: jkinsley at bticc dot net, bug-glibc at gnu dot org, pgcc at delorie dot com, pcg at goof dot com, egcs at egcs dot cygnus dot com, egcs-bugs at egcs dot cygnus dot com
- References: <199904092102.OAA13655@atrus.synopsys.com> <27769.923693658@upchuck>
On Fri, Apr 09, 1999 at 03:34:18PM -0600, Jeffrey A Law wrote:
> For example consider an input operand that is an array element. If we use
> indexed addressing to access the element, then it needs two registers even
> though (at the source level) is uses only one. For these cases it would be
> nice if we reloaded the address as a whole so that the asm itself only needed
> a single register for the asm itself.
This is largely fixed in current cvs. Previously for something like
a = foo[x];
b = bar[y];
c = baz[z];
asm ("" : "=r"(out) : "r"(a), "r"(b), "r"(c))
we could wind up needing 6 registers, since combine would happily
merge the array references back in to the asm. This is now prevented
by forcing the asm arguments to more closely match their reload
constraints.
r~