ia64.h (NO_PROFILE_COUNTERS): New.
* 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
This commit is contained in:
parent
8713190c2b
commit
bd8633a3c0
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
/* Trampolines for Nested Functions. */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user