From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8847 invoked by alias); 7 Jul 2007 22:02:24 -0000 Received: (qmail 8809 invoked by alias); 7 Jul 2007 22:02:13 -0000 Date: Sat, 07 Jul 2007 22:02:00 -0000 Message-ID: <20070707220213.8808.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/32398] [4.3 Regression] checking for suffix of object files... configure: error: cannot compute suffix of f object files: cannot compile In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "dave at hiauly1 dot hia dot nrc dot ca" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-07/txt/msg00881.txt.bz2 ------- Comment #8 from dave at hiauly1 dot hia dot nrc dot ca 2007-07-07 22:02 ------- Subject: Re: [4.3 Regression] checking for suffix of object files... configure: error: cannot compute suffix of f objeRO The REG_DEAD problem is a red herring. The notes are recomputed after the sched1 dump. The real problem is that the argument point register isn't marked as being alive on entry. On hppa64, the argument pointer isn't a fixed register, it's not the same as the frame pointer, and it can't be eliminated. I'm trying the fix below. However, I think df-scan.c needs fixing. Dave -- J. David Anglin dave.anglin@nrc-cnrc.gc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6602) Index: config/pa/pa.c =================================================================== --- config/pa/pa.c (revision 126442) +++ config/pa/pa.c (working copy) @@ -156,8 +156,8 @@ static enum reg_class pa_secondary_reload (bool, rtx, enum reg_class, enum machine_mode, secondary_reload_info *); +static void pa_extra_live_on_entry (bitmap); - /* The following extra sections are only used for SOM. */ static GTY(()) section *som_readonly_data_section; static GTY(()) section *som_one_only_readonly_data_section; @@ -313,6 +313,9 @@ #undef TARGET_SECONDARY_RELOAD #define TARGET_SECONDARY_RELOAD pa_secondary_reload +#undef TARGET_EXTRA_LIVE_ON_ENTRY +#define TARGET_EXTRA_LIVE_ON_ENTRY pa_extra_live_on_entry + struct gcc_target targetm = TARGET_INITIALIZER; /* Parse the -mfixed-range= option string. */ @@ -5735,6 +5738,17 @@ return NO_REGS; } +/* Implement TARGET_EXTRA_LIVE_ON_ENTRY. The argument pointer + isn't a fixed register in the 64-bit runtime and we need to + record it as live on entry. */ + +static void +pa_extra_live_on_entry (bitmap regs) +{ + if (TARGET_64BIT) + bitmap_set_bit (regs, ARG_POINTER_REGNUM); +} + /* In the 32-bit runtime, arguments larger than eight bytes are passed by invisible reference. As a GCC extension, we also pass anything with a zero or variable size by reference. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32398