sparc.c (sparc_profile_hook): If NO_PROFILE_COUNTERS, don't generate and pass a label...
authorDavid S. Miller <davem@davemloft.net>
Wed, 14 May 2008 08:39:46 +0000 (08:39 +0000)
committerDavid S. Miller <davem@gcc.gnu.org>
Wed, 14 May 2008 08:39:46 +0000 (01:39 -0700)
* 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

gcc/ChangeLog
gcc/config/sparc/linux.h
gcc/config/sparc/linux64.h
gcc/config/sparc/sparc.c

index d5b6672174f6b42e46c88a4af86b3a42dc291ac1..c9f46852f68080f47c99a160de97b834605113fe 100644 (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.
index 67b6412d2e93bb9e465422cd41c8e2d91b616b3d..ab2ab308c9198010c30f94e402bd41c70b5e3fa6 100644 (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
index f8c87b95c86c125bd8e5432c9eb9fec7bcbf2235..cd156673fafb5e6faa34f4387fd54a6622a20ec1 100644 (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
index 2758e4d848539f7670bdd56f19f3dab54f7840d2..c1cc725334cc1a6b64316271889454bcbfa564b2 100644 (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);
+    }
 }
 \f
 #ifdef OBJECT_FORMAT_ELF