This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PA PIC fix
- To: gcc-patches at gcc dot gnu dot org
- Subject: PA PIC fix
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Thu, 17 May 2001 15:54:09 -0700
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 ();
}