summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/function.c
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2007-08-14 03:04:42 +0000
committerkan <kan@FreeBSD.org>2007-08-14 03:04:42 +0000
commite2c3cc81d7b61b33dac7f34a4b2b8f142f1769c5 (patch)
tree334e75b18983b8ad03a6aca858b24881e459bc42 /contrib/gcc/function.c
parent3cae63863eacd38993fa9e33009b556f3c3877bd (diff)
downloadFreeBSD-src-e2c3cc81d7b61b33dac7f34a4b2b8f142f1769c5.zip
FreeBSD-src-e2c3cc81d7b61b33dac7f34a4b2b8f142f1769c5.tar.gz
Update locally changed files to GCC 4.2.1.
Approved by: re (kensmith)
Diffstat (limited to 'contrib/gcc/function.c')
-rw-r--r--contrib/gcc/function.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/contrib/gcc/function.c b/contrib/gcc/function.c
index d0c383e..7549ec4 100644
--- a/contrib/gcc/function.c
+++ b/contrib/gcc/function.c
@@ -5093,6 +5093,14 @@ thread_prologue_and_epilogue_insns (rtx f ATTRIBUTE_UNUSED)
/* Retain a map of the prologue insns. */
record_insns (seq, &prologue);
prologue_end = emit_note (NOTE_INSN_PROLOGUE_END);
+
+#ifndef PROFILE_BEFORE_PROLOGUE
+ /* Ensure that instructions are not moved into the prologue when
+ profiling is on. The call to the profiling routine can be
+ emitted within the live range of a call-clobbered register. */
+ if (current_function_profile)
+ emit_insn (gen_rtx_ASM_INPUT (VOIDmode, ""));
+#endif
seq = get_insns ();
end_sequence ();
OpenPOWER on IntegriCloud