ia64.h (NO_PROFILE_COUNTERS): New.
authorRichard Henderson <rth@redhat.com>
Wed, 8 Jun 2005 21:29:36 +0000 (14:29 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 8 Jun 2005 21:29:36 +0000 (14:29 -0700)
        * config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
        * config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
        Emit out3 load right after alloc.

From-SVN: r100781

gcc/ChangeLog
gcc/config/ia64/ia64.c
gcc/config/ia64/ia64.h

index d900474a6918b5b385ef6a597d5069deb349f945..910f991425ef2b9f07ad7438eba6b93a059444c2 100644 (file)
@@ -1,3 +1,9 @@
+2005-06-08  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
+       * config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
+       Emit out3 load right after alloc.
+
 2005-06-08  Aldy Hernandez  <aldyh@redhat.com>
 
        * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
index 5297f5efe7982a01de1b86db9ce393a7e0c00683..3531d0735b39e47a11c43b7b1c2bf9e3425878f0 100644 (file)
@@ -8554,26 +8554,33 @@ ia64_vector_mode_supported_p (enum machine_mode mode)
 void
 ia64_output_function_profiler (FILE *file, int labelno)
 {
-  char buf[20];
-  ASM_GENERATE_INTERNAL_LABEL (buf, "LP", labelno);
-
   if (TARGET_GNU_AS)
     fputs ("\t.prologue 4, r40\n", file);
   else
     fputs ("\t.prologue\n\t.save ar.pfs, r40\n", file);
   fputs ("\talloc out0 = ar.pfs, 8, 0, 4, 0\n", file);
+
+  if (NO_PROFILE_COUNTERS)
+    fputs ("\tmov out3 = r0\n\t;;\n", file);
+  else
+    {
+      char buf[20];
+      ASM_GENERATE_INTERNAL_LABEL (buf, "LP", labelno);
+
+      if (TARGET_AUTO_PIC)
+       fputs ("\tmovl out3 = @gprel(", file);
+      else
+       fputs ("\taddl out3 = @ltoff(", file);
+      assemble_name (file, buf);
+      if (TARGET_AUTO_PIC)
+       fputs (")\n\t;;\n", file);
+      else
+       fputs ("), r1\n\t;;\n", file);
+    }
+
   fputs ("\t.save rp, r42\n", file);
-  fputs ("\tmov out2 = b0\n\t;;\n", file);
+  fputs ("\tmov out2 = b0\n", file);
   fputs ("\t.body\n", file);
-  if (TARGET_AUTO_PIC)
-    fputs ("\tmovl out3 = @gprel(", file);
-  else
-    fputs ("\taddl out3 = @ltoff(", file);
-  assemble_name (file, buf);
-  if (TARGET_AUTO_PIC)
-    fputs (")\n", file);
-  else
-    fputs ("), r1\n", file);
   fputs ("\tmov out1 = r1\n", file);
   fputs ("\tbr.call.sptk.many b0 = _mcount\n\t;;\n", file);
 }
index b9b431a8c4f93c9dfc418a1595d0ae2279b494f2..9753a5dc6c24b59e5b3aea0d7bbea985d0c35470 100644 (file)
@@ -1267,6 +1267,9 @@ do {                                                                      \
 #undef FUNCTION_PROFILER
 #define FUNCTION_PROFILER(FILE, LABELNO) \
   ia64_output_function_profiler(FILE, LABELNO)
+
+/* Neither hpux nor linux use profile counters.  */
+#define NO_PROFILE_COUNTERS 1
 \f
 /* Trampolines for Nested Functions.  */