final.c (profile_function): Do not emit profile counters in the data section, if NO_PROFILE_COUNTERS is defined.
* final.c (profile_function): Do not emit profile counters in the data section, if NO_PROFILE_COUNTERS is defined. * tm.texi: Document NO_PROFILE_COUNTERS. Update doc for FUNCTION_PROFILER. * config/i386/linux.h (NO_PROFILE_COUNTERS): Define. (FUNCTION_PROFILER): Just emit a call to mcount. From-SVN: r35005
This commit is contained in:
parent
6e993bdb62
commit
dcacfa04fe
3 changed files with 21 additions and 11 deletions
|
@ -1,3 +1,13 @@
|
|||
2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
|
||||
|
||||
* final.c (profile_function): Do not emit profile counters in
|
||||
the data section, if NO_PROFILE_COUNTERS is defined.
|
||||
* tm.texi: Document NO_PROFILE_COUNTERS. Update doc for
|
||||
FUNCTION_PROFILER.
|
||||
|
||||
* config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
|
||||
(FUNCTION_PROFILER): Just emit a call to mcount.
|
||||
|
||||
2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
|
||||
|
||||
* tradcpp.c (main): Rename 'perror' label to 'sys_error'.
|
||||
|
|
|
@ -54,23 +54,19 @@ Boston, MA 02111-1307, USA. */
|
|||
#undef DBX_REGISTER_NUMBER
|
||||
#define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n]
|
||||
|
||||
/* Output assembler code to FILE to increment profiler label # LABELNO
|
||||
for profiling a function entry. */
|
||||
/* Output assembler code to FILE to call the profiler.
|
||||
To the best of my knowledge, no Linux libc has required the label
|
||||
argument to mcount. */
|
||||
|
||||
#define NO_PROFILE_COUNTERS
|
||||
|
||||
#undef FUNCTION_PROFILER
|
||||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||||
{ \
|
||||
if (flag_pic) \
|
||||
{ \
|
||||
fprintf (FILE, "\tleal %sP%d@GOTOFF(%%ebx),%%edx\n", \
|
||||
LPREFIX, (LABELNO)); \
|
||||
fprintf (FILE, "\tcall *mcount@GOT(%%ebx)\n"); \
|
||||
} \
|
||||
fprintf (FILE, "\tcall\t*mcount@GOT(%%ebx)\n"); \
|
||||
else \
|
||||
{ \
|
||||
fprintf (FILE, "\tmovl $%sP%d,%%edx\n", LPREFIX, (LABELNO)); \
|
||||
fprintf (FILE, "\tcall mcount\n"); \
|
||||
} \
|
||||
fprintf (FILE, "\tcall\tmcount\n"); \
|
||||
}
|
||||
|
||||
#undef SIZE_TYPE
|
||||
|
|
|
@ -1705,7 +1705,9 @@ static void
|
|||
profile_function (file)
|
||||
FILE *file;
|
||||
{
|
||||
#ifndef NO_PROFILE_COUNTERS
|
||||
int align = MIN (BIGGEST_ALIGNMENT, LONG_TYPE_SIZE);
|
||||
#endif
|
||||
#if defined(ASM_OUTPUT_REG_PUSH)
|
||||
#if defined(STRUCT_VALUE_INCOMING_REGNUM) || defined(STRUCT_VALUE_REGNUM)
|
||||
int sval = current_function_returns_struct;
|
||||
|
@ -1715,10 +1717,12 @@ profile_function (file)
|
|||
#endif
|
||||
#endif /* ASM_OUTPUT_REG_PUSH */
|
||||
|
||||
#ifndef NO_PROFILE_COUNTERS
|
||||
data_section ();
|
||||
ASM_OUTPUT_ALIGN (file, floor_log2 (align / BITS_PER_UNIT));
|
||||
ASM_OUTPUT_INTERNAL_LABEL (file, "LP", profile_label_no);
|
||||
assemble_integer (const0_rtx, LONG_TYPE_SIZE / BITS_PER_UNIT, 1);
|
||||
#endif
|
||||
|
||||
function_section (current_function_decl);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue