From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21229 invoked by alias); 16 Apr 2002 20:13:52 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 21205 invoked from network); 16 Apr 2002 20:13:49 -0000 Received: from unknown (HELO cygnus.com) (205.180.83.203) by sources.redhat.com with SMTP; 16 Apr 2002 20:13:49 -0000 Received: from porcupine.cygnus.com (romulus.sfbay.redhat.com [172.16.27.251]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id NAA10749 for ; Tue, 16 Apr 2002 13:13:47 -0700 (PDT) Received: from porcupine.cygnus.com (IDENT:Dwxi2lwuRf+hV8s/OtT8bXp0w4y3mWUN@localhost.localdomain [127.0.0.1]) by porcupine.cygnus.com (8.12.2/8.12.2) with ESMTP id g3GKIUnp020382; Tue, 16 Apr 2002 14:18:30 -0600 Received: from porcupine.cygnus.com (law@localhost) by porcupine.cygnus.com (8.12.2/8.12.2/Submit) with ESMTP id g3GKITgJ020378; Tue, 16 Apr 2002 14:18:29 -0600 To: "John David Anglin" cc: h.m.brand@hccnet.nl, gcc@gcc.gnu.org Subject: Re: gcc-64 on HP-UX 11.00 Reply-To: law@redhat.com From: law@redhat.com In-reply-to: Your message of Mon, 15 Apr 2002 16:27:21 EDT. <200204152027.g3FKRLuZ009642@hiauly1.hia.nrc.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 16 Apr 2002 13:14:00 -0000 Message-ID: <20377.1018988309@porcupine.cygnus.com> X-SW-Source: 2002-04/txt/msg00739.txt.bz2 In message <200204152027.g3FKRLuZ009642@hiauly1.hia.nrc.ca>, "John David Anglin " writes: > > However, the code from the actual perl function looks like: > > > > cmpib,= 0,%r3,L$1012 > > addil LT'PL_sv_no,%r27 > > addil LT'PL_sv_yes,%r27 > > b L$1013 > > fldd RT'PL_sv_yes(%r1),%fr22 > > L$1012 > > fldd RT'PL_sv_no(%r1),%fr22 > > L$1013 > > fstd %fr22,-272(%r30) > > b L$0783 > > ldd -272(%r30),%r25 > > [...] > > L$1017 > > copy %r28,%r25 > > L$0783 > > copy %r25,%r28 > > [restore registers and return] > > I tested this with gcc 3.0.3 -O -mpa-risc-2-0 -fPIC (32bit) and the code is: > > cmpib,= 0,%r28,L$0940 > addil LT'PL_sv_yes,%r19 > b L$0733 > ldw RT'PL_sv_yes(%r1),%r28 > L$0940 > addil LT'PL_sv_no,%r19 > b L$0733 > ldw RT'PL_sv_no(%r1),%r28 > > So, this worked with 3.0.3 and we have a regression. I don't doubt that it worked in the past. My point is that selecting an FP register to hold an address like this is an exceedingly bad thing to do. In fact, not assigning the value to a register and instead leaving it in memory is actually cheaper than assigning it to an FP register. In fact, from the fragments, it looks like we did something insanely stupid, why don't we assign the value to %r28 or %r25? jeff