OSDN Git Service

* config/sparc/sparc.c (sparc_profile_hook): If
authordavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 May 2008 08:39:46 +0000 (08:39 +0000)
committerdavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 May 2008 08:39:46 +0000 (08:39 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135284 138bc75d-0d04-0410-961f-82ee72b054a4

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

index d5b6672..c9f4685 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 67b6412..ab2ab30 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 f8c87b9..cd15667 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 2758e4d..c1cc725 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