delorie.com/archives/browse.cgi   search  
Mail Archives: pgcc/1999/04/09/17:59:41

Message-ID: <19990409145846.B28336@cygnus.com>
Date: Fri, 9 Apr 1999 14:58:46 -0700
From: Richard Henderson <rth AT cygnus DOT com>
To: law AT cygnus DOT com, Joe Buck <jbuck AT Synopsys DOT COM>
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
Subject: Re: pgcc-1.1.1 glibc-2.1.1 strptime.c forbidden register
References: <199904092102 DOT OAA13655 AT atrus DOT synopsys DOT com> <27769 DOT 923693658 AT upchuck>
Mime-Version: 1.0
X-Mailer: Mutt 0.91.1
In-Reply-To: <27769.923693658@upchuck>; from Jeffrey A Law on Fri, Apr 09, 1999 at 03:34:18PM -0600
Reply-To: pgcc AT delorie DOT com
X-Mailing-List: pgcc AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

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~

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019