sparc.c (sparc_profile_hook): If NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.

* config/sparc/sparc.c (sparc_profile_hook): If
	NO_PROFILE_COUNTERS, don't generate and pass a label
	into mcount.
	* config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
	* config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.

From-SVN: r135284
This commit is contained in:
David S. Miller 2008-05-14 08:39:46 +00:00 committed by David S. Miller
parent eaa2f8c7e6
commit cc44abe6a5
4 changed files with 24 additions and 4 deletions

View File

@ -1,3 +1,11 @@
2008-05-14 David S. Miller <davem@davemloft.net>
* config/sparc/sparc.c (sparc_profile_hook): If
NO_PROFILE_COUNTERS, don't generate and pass a label
into mcount.
* config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
* config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
* cse.c (cse_cc_succs): Invoke delete_insn_and_edges.

View File

@ -175,3 +175,6 @@ do { \
/* Define if long doubles should be mangled as 'g'. */
#define TARGET_ALTERNATE_LONG_DOUBLE_MANGLING
/* We use glibc _mcount for profiling. */
#define NO_PROFILE_COUNTERS 1

View File

@ -309,3 +309,6 @@ do { \
/* Define if long doubles should be mangled as 'g'. */
#define TARGET_ALTERNATE_LONG_DOUBLE_MANGLING
/* We use glibc _mcount for profiling. */
#define NO_PROFILE_COUNTERS 1

View File

@ -7800,11 +7800,17 @@ sparc_profile_hook (int labelno)
char buf[32];
rtx lab, fun;
ASM_GENERATE_INTERNAL_LABEL (buf, "LP", labelno);
lab = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
fun = gen_rtx_SYMBOL_REF (Pmode, MCOUNT_FUNCTION);
emit_library_call (fun, LCT_NORMAL, VOIDmode, 1, lab, Pmode);
if (NO_PROFILE_COUNTERS)
{
emit_library_call (fun, LCT_NORMAL, VOIDmode, 0);
}
else
{
ASM_GENERATE_INTERNAL_LABEL (buf, "LP", labelno);
lab = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
emit_library_call (fun, LCT_NORMAL, VOIDmode, 1, lab, Pmode);
}
}
#ifdef OBJECT_FORMAT_ELF