From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16896 invoked by alias); 28 Jan 2002 23:57:02 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 16851 invoked from network); 28 Jan 2002 23:57:00 -0000 Received: from unknown (HELO hiauly1.hia.nrc.ca) (132.246.100.193) by sources.redhat.com with SMTP; 28 Jan 2002 23:57:00 -0000 Received: from hiauly1.hia.nrc.ca (localhost [127.0.0.1]) by hiauly1.hia.nrc.ca (8.12.0.Beta16/8.12.0.Beta16) with ESMTP id g0SNuvFN022178; Mon, 28 Jan 2002 18:56:58 -0500 (EST) Received: (from dave@localhost) by hiauly1.hia.nrc.ca (8.12.0.Beta16/8.12.0.Beta16) id g0SNuvQc022177; Mon, 28 Jan 2002 18:56:57 -0500 (EST) Message-Id: <200201282356.g0SNuvQc022177@hiauly1.hia.nrc.ca> Subject: Re: gcc failed to bootstrap on Linux/mipsel To: rth@redhat.com (Richard Henderson) Date: Mon, 28 Jan 2002 16:04:00 -0000 From: "John David Anglin" Cc: geoffk@geoffk.org, gcc-patches@gcc.gnu.org In-Reply-To: <20020128115438.B26034@redhat.com> from "Richard Henderson" at Jan 28, 2002 11:54:38 am X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-SW-Source: 2002-01/txt/msg02028.txt.bz2 > > What about testing to see if the PIC_OFFSET_TABLE_REGNUM isn't a fixed > > register? > > I guess that would be ok. Actualy, should change gen_reg_RTX > to check that and have loop test vs pic_offset_table_rtx. This fixes cxa_vec.C and several hundred objc failures. Tested on hppa2.0w-hp-hpux11.11. OK? Dave -- J. David Anglin dave.anglin@nrc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6605) 2002-01-28 John David Anglin * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM is a fixed register before returning pic_offset_table_rtx. * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined. --- emit-rtl.c.orig Mon Jan 28 12:11:37 2002 +++ emit-rtl.c Mon Jan 28 15:06:47 2002 @@ -411,7 +411,8 @@ if (regno == RETURN_ADDRESS_POINTER_REGNUM) return return_address_pointer_rtx; #endif - if (regno == PIC_OFFSET_TABLE_REGNUM) + if (regno == PIC_OFFSET_TABLE_REGNUM + && fixed_regs[PIC_OFFSET_TABLE_REGNUM]) return pic_offset_table_rtx; if (regno == STACK_POINTER_REGNUM) return stack_pointer_rtx; --- loop.c.orig Fri Jan 25 00:04:25 2002 +++ loop.c Mon Jan 28 15:00:03 2002 @@ -762,6 +762,9 @@ if (GET_CODE (p) == INSN && (set = single_set (p)) && GET_CODE (SET_DEST (set)) == REG +#ifdef PIC_OFFSET_TABLE_REG_CALL_CLOBBERED + && SET_DEST (set) != pic_offset_table_rtx +#endif && ! regs->array[REGNO (SET_DEST (set))].may_not_optimize) { int tem1 = 0;