aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorKai Tietz <kai.tietz@onevision.com>2010-07-28 18:00:09 +0000
committerKai Tietz <ktietz@gcc.gnu.org>2010-07-28 20:00:09 +0200
commit3c5273a96ba8dbf98c40bc6d9d0a1587b4cfedb2 (patch)
treee9456c08db3a11dbe46b002ed8ff55b4f9ebee25 /gcc/function.c
parentc9d75a48c4ea63ab27ccdb40f993236289b243f2 (diff)
downloadgcc-3c5273a96ba8dbf98c40bc6d9d0a1587b4cfedb2.zip
gcc-3c5273a96ba8dbf98c40bc6d9d0a1587b4cfedb2.tar.gz
gcc-3c5273a96ba8dbf98c40bc6d9d0a1587b4cfedb2.tar.bz2
i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
2010-07-28 Kai Tietz <kai.tietz@onevision.com> * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New. * config/i386/i386.c (ix86_profile_before_prologue): New. (override_options): Add special handling for -mfentry. (ix86_function_regparm): Likewise. (ix86_function_sseregparm): Likewise. (ix86_frame_pointer_required): Likewise. (ix86_expand_prologue): Check for ms_hook_prologue. (x86_function_profiler): Adjust mcount output. (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook. * config/i386/i386.opt (mfentry): New. * doc/invoke.texi (mfentry): Add documentation. * doc/tm.texi: Regenerated.. * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New. * final.c (final_start_function): Replace macro PROFILE_BEFORE_PROLOGUE by target hook. * function.c (thread_prologue_and_epilogue_insns): Likewise. * target.def (profile_before_prologue): New hook. * targhooks.c (default_profile_before_prologue): New. * targhooks.h (default_profile_before_prologue): New. From-SVN: r162651
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 5a308f4..e89a5c9 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -5183,13 +5183,11 @@ thread_prologue_and_epilogue_insns (void)
record_insns (seq, NULL, &prologue_insn_hash);
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 (crtl->profile)
+ if (!targetm.profile_before_prologue () && crtl->profile)
emit_insn (gen_blockage ());
-#endif
seq = get_insns ();
end_sequence ();