+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
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);
}