This is the mail archive of the gcc-patches@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]

PA PIC fix



Sigh.  Will it ever end.

PA64 stopped bootstrapping after hppa_init_pic_save was changed to
update last_parm_insn.

The problem is that integrate treats things up to and including
last_parm_insn specially with the net result being that we could
generate incorrect code for inline functions when generating PIC
code.  This shows up nicely as a fault in init_ggc when bootstrapping
the PA64 port.

Luckily the need to update last_parm_insn was specific to the old
EH model and is no longer needed.  Removing the update allows the 
PA64 compiler to bootstrap without affecting the g++ or libstdc++-v3
testsuites for the PA32 compiler.

Whee...  Installed on the branch.  The mainline didn't update 
last_parm_insn, so we're OK there.


	* pa.c (hppa_init_pic_save): No longer update last_parm_insn.

Index: pa.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/pa/pa.c,v
retrieving revision 1.93.2.9
diff -c -3 -p -r1.93.2.9 pa.c
*** pa.c	2001/05/12 20:32:51	1.93.2.9
--- pa.c	2001/05/17 22:57:58
*************** void hppa_init_pic_save ()
*** 3358,3365 ****
  
    /* Emit the insn at the beginning of the function after the prologue.  */
    push_topmost_sequence ();
!   last_parm_insn =
!     emit_insn_after (insn, last_parm_insn ? last_parm_insn : get_insns ());
    pop_topmost_sequence ();
  }
  
--- 3358,3364 ----
  
    /* Emit the insn at the beginning of the function after the prologue.  */
    push_topmost_sequence ();
!   emit_insn_after (insn, last_parm_insn ? last_parm_insn : get_insns ());
    pop_topmost_sequence ();
  }
  










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