This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

PATCH 1: Re: BOOTSTRAP FAILURE: segementation fault in genattrtab under hpux


>   > I think the reversal occurs because r3 is being used as an index register.
>   > There is stuff in the machine definition like this:
> I seriously doubt it since hard_frame_pointer_rtx shouldn't have %r3 as
> its value unless %r3 really is the frame pointer.  ie, if the frame pointer
> is eliminated %r3 should not be the value of hard_frame_pointer_rtx.
> jeff

The following patch resolves the above issue (ie, after reload starts,
gen_rtx_REG should should not return the frame_pointer_rtx for the frame
pointer register number).  Tested with a full bootstrap and check under
hpux 10.20.

Please review for installation.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

2000-11-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* emit-rtl.c (gen_rtx_REG): Don't return frame_pointer_rtx after
	reload has completed for the FRAME_POINTER_REGNUM.

--- emit-rtl.c.orig	Fri Nov 10 11:01:13 2000
+++ emit-rtl.c	Fri Nov 17 09:38:08 2000
@@ -299,7 +299,7 @@
      Also don't do this when we are making new REGs in reload, since
      we don't want to get confused with the real pointers.  */
 
-  if (mode == Pmode && !reload_in_progress)
+  if (mode == Pmode && !reload_in_progress && !reload_completed)
     {
       if (regno == FRAME_POINTER_REGNUM)
 	return frame_pointer_rtx;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]