Message-ID: <19990409145846.B28336@cygnus.com> Date: Fri, 9 Apr 1999 14:58:46 -0700 From: Richard Henderson To: law AT cygnus DOT com, Joe Buck 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 Content-Type: text/plain; charset=us-ascii 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 Precedence: bulk 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~