This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: pgcc-1.1.1 glibc-2.1.1 strptime.c forbidden register


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~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]