system.h (BLOCK_PROFILER, [...]): Poison.
* system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE, FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison. * toplev.c (display_help): Kill -a -ax help. * config/1750a/1750a.h, config/alpha/alpha.h, config/clipper/clipper.h, config/dsp16xx/dsp16xx.h, config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h, config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h: (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill. * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill. * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill. * config/i386/i386-protos.h (ix86_output_block_profiler): Kill. (ix86_output_function_block_profiler): Kill. * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill. (m68hc11_function_block_profiler): Kill. * config/m68hc11/m68hc11-protos.h: Update. * config/m88k/m88k.c (output_block_profiler): Kill. (output_function_block_profiler): Kill. * config/m88k/m88k-protos.h: Update. From-SVN: r53617
This commit is contained in:
parent
772c526579
commit
fc8813382e
20 changed files with 30 additions and 305 deletions
|
@ -1,3 +1,29 @@
|
|||
2002-05-19 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
|
||||
FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
|
||||
MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
|
||||
|
||||
* toplev.c (display_help): Kill -a -ax help.
|
||||
|
||||
* config/1750a/1750a.h, config/alpha/alpha.h,
|
||||
config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
|
||||
config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
|
||||
config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
|
||||
(FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
|
||||
|
||||
* libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
|
||||
* config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
|
||||
|
||||
* config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
|
||||
(ix86_output_function_block_profiler): Kill.
|
||||
* config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
|
||||
(m68hc11_function_block_profiler): Kill.
|
||||
* config/m68hc11/m68hc11-protos.h: Update.
|
||||
* config/m88k/m88k.c (output_block_profiler): Kill.
|
||||
(output_function_block_profiler): Kill.
|
||||
* config/m88k/m88k-protos.h: Update.
|
||||
|
||||
2002-05-19 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* system.h (STRIP_NAME_ENCODING): Poison it.
|
||||
|
|
|
@ -542,16 +542,6 @@ enum reg_class { NO_REGS, R2, R0_1, INDEX_REGS, BASE_REGS, ALL_REGS, LIM_REG_CLA
|
|||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||||
fprintf (FILE, "; got into FUNCTION_PROFILER with label # %d\n", (LABELNO))
|
||||
|
||||
/* Output assembler code to FILE to initialize this source file's
|
||||
basic block profiling info, if that has not already been done. */
|
||||
#define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \
|
||||
fprintf (FILE, "; got into FUNCTION_BLOCK_PROFILER with label # %d\n",LABELNO)
|
||||
|
||||
/* Output assembler code to FILE to increment the entry-count for
|
||||
the BLOCKNO'th basic block in this source file. */
|
||||
#define BLOCK_PROFILER(FILE, BLOCKNO) \
|
||||
fprintf (FILE, "; got into BLOCK_PROFILER with block # %d\n",BLOCKNO)
|
||||
|
||||
/* EXIT_IGNORE_STACK should be nonzero if, when returning from a function,
|
||||
the stack pointer does not matter. The value is tested only in
|
||||
functions that have frame pointers.
|
||||
|
|
|
@ -1182,42 +1182,6 @@ extern struct alpha_compare alpha_compare;
|
|||
|
||||
#define FUNCTION_PROFILER(FILE, LABELNO)
|
||||
|
||||
/* Output assembler code to FILE to initialize this source file's
|
||||
basic block profiling info, if that has not already been done.
|
||||
This assumes that __bb_init_func doesn't garble a1-a5. */
|
||||
|
||||
#define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \
|
||||
do { \
|
||||
ASM_OUTPUT_REG_PUSH (FILE, 16); \
|
||||
fputs ("\tlda $16,$PBX32\n", (FILE)); \
|
||||
fputs ("\tldq $26,0($16)\n", (FILE)); \
|
||||
fputs ("\tbne $26,1f\n", (FILE)); \
|
||||
fputs ("\tlda $27,__bb_init_func\n", (FILE)); \
|
||||
fputs ("\tjsr $26,($27),__bb_init_func\n", (FILE)); \
|
||||
fputs ("\tldgp $29,0($26)\n", (FILE)); \
|
||||
fputs ("1:\n", (FILE)); \
|
||||
ASM_OUTPUT_REG_POP (FILE, 16); \
|
||||
} while (0);
|
||||
|
||||
/* Output assembler code to FILE to increment the entry-count for
|
||||
the BLOCKNO'th basic block in this source file. */
|
||||
|
||||
#define BLOCK_PROFILER(FILE, BLOCKNO) \
|
||||
do { \
|
||||
int blockn = (BLOCKNO); \
|
||||
fputs ("\tsubq $30,16,$30\n", (FILE)); \
|
||||
fputs ("\tstq $26,0($30)\n", (FILE)); \
|
||||
fputs ("\tstq $27,8($30)\n", (FILE)); \
|
||||
fputs ("\tlda $26,$PBX34\n", (FILE)); \
|
||||
fprintf ((FILE), "\tldq $27,%d($26)\n", 8*blockn); \
|
||||
fputs ("\taddq $27,1,$27\n", (FILE)); \
|
||||
fprintf ((FILE), "\tstq $27,%d($26)\n", 8*blockn); \
|
||||
fputs ("\tldq $26,0($30)\n", (FILE)); \
|
||||
fputs ("\tldq $27,8($30)\n", (FILE)); \
|
||||
fputs ("\taddq $30,16,$30\n", (FILE)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
/* EXIT_IGNORE_STACK should be nonzero if, when returning from a function,
|
||||
the stack pointer does not matter. The value is tested only in
|
||||
functions that have frame pointers.
|
||||
|
|
|
@ -538,16 +538,6 @@ do \
|
|||
|
||||
#define FUNCTION_PROFILER(FILE, LABELNO) /* FIXME */
|
||||
|
||||
/* Output assembler code to FILE to initialize this source file's
|
||||
basic block profiling info, if that has not already been done. */
|
||||
|
||||
#define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) /* FIXME */
|
||||
|
||||
/* Output assembler code to FILE to increment the entry-count for
|
||||
the BLOCKNO'th basic block in this source file. */
|
||||
|
||||
#define BLOCK_PROFILER(FILE, BLOCKNO) /* FIXME */
|
||||
|
||||
/* EXIT_IGNORE_STACK should be nonzero if, when returning from a function,
|
||||
the stack pointer does not matter. The value is tested only in
|
||||
functions that have frame pointers.
|
||||
|
|
|
@ -1202,17 +1202,6 @@ extern struct dsp16xx_frame_info current_frame_info;
|
|||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||||
internal_error ("profiling not implemented yet")
|
||||
|
||||
/* Output assembler code to FILE to initialize this source file's
|
||||
basic block profiling info, if that has not already been done. */
|
||||
#define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \
|
||||
internal_error ("profiling not implemented yet")
|
||||
|
||||
/* Output assembler code to FILE to increment the entry-count for
|
||||
the BLOCKNO'th basic block in this source file. */
|
||||
#define BLOCK_PROFILER(FILE, BLOCKNO) \
|
||||
internal_error ("profiling not implemented yet")
|
||||
|
||||
|
||||
/* EXIT_IGNORE_STACK should be nonzero if, when returning from a function,
|
||||
the stack pointer does not matter. The value is tested only in
|
||||
functions that have frame pointers.
|
||||
|
|
|
@ -674,33 +674,6 @@ struct cum_arg
|
|||
fprintf (FILE, "\t%s\t#LP%d,%s\n\tjsr @mcount\n", \
|
||||
h8_mov_op, (LABELNO), h8_reg_names[0]);
|
||||
|
||||
/* Output assembler code to FILE to initialize this source file's
|
||||
basic block profiling info, if that has not already been done. */
|
||||
/* ??? @LPBX0 is moved into r0 twice. */
|
||||
|
||||
#define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \
|
||||
fprintf (FILE, "\t%s\t%s\n\t%s\t@LPBX0,%s\n\tbne LPI%d\n\t%s\t@LPBX0,%s\n\t%s\t%s\n\tjsr\t@__bb_init_func\nLPI%d:\t%s\t%s\n", \
|
||||
h8_push_op, h8_reg_names[0], \
|
||||
h8_mov_op, h8_reg_names[0], \
|
||||
(LABELNO), \
|
||||
h8_mov_op, h8_reg_names[0], \
|
||||
h8_push_op, h8_reg_names[0], \
|
||||
(LABELNO), \
|
||||
h8_pop_op, h8_reg_names[0]);
|
||||
|
||||
/* Output assembler code to FILE to increment the entry-count for
|
||||
the BLOCKNO'th basic block in this source file. This is a real pain in the
|
||||
sphincter on a VAX, since we do not want to change any of the bits in the
|
||||
processor status word. The way it is done here, it is pushed onto the stack
|
||||
before any flags have changed, and then the stack is fixed up to account for
|
||||
the fact that the instruction to restore the flags only reads a word.
|
||||
It may seem a bit clumsy, but at least it works. */
|
||||
/* ??? This one needs work. */
|
||||
|
||||
#define BLOCK_PROFILER(FILE, BLOCKNO) \
|
||||
fprintf (FILE, "\tmovpsl -(sp)\n\tmovw (sp),2(sp)\n\taddl2 $2,sp\n\taddl2 $1,LPBX2+%d\n\tbicpsw $255\n\tbispsw (sp)+\n", \
|
||||
4 * BLOCKNO)
|
||||
|
||||
/* EXIT_IGNORE_STACK should be nonzero if, when returning from a function,
|
||||
the stack pointer does not matter. The value is tested only in
|
||||
functions that have frame pointers.
|
||||
|
|
|
@ -33,9 +33,6 @@ extern HOST_WIDE_INT ix86_initial_elimination_offset PARAMS((int, int));
|
|||
extern void ix86_expand_prologue PARAMS ((void));
|
||||
extern void ix86_expand_epilogue PARAMS ((int));
|
||||
|
||||
extern void ix86_output_function_block_profiler PARAMS ((FILE *, int));
|
||||
extern void ix86_output_block_profiler PARAMS ((FILE *, int));
|
||||
|
||||
extern void ix86_output_addr_vec_elt PARAMS ((FILE *, int));
|
||||
extern void ix86_output_addr_diff_elt PARAMS ((FILE *, int, int));
|
||||
|
||||
|
|
|
@ -1440,25 +1440,6 @@ extern struct rtx_def *i960_compare_op0, *i960_compare_op1;
|
|||
( (OUTPUT) = (char *) alloca (strlen ((NAME)) + 10), \
|
||||
sprintf ((OUTPUT), "%s.%d", (NAME), (LABELNO)))
|
||||
|
||||
/* Output assembler code to FILE to initialize this source file's
|
||||
basic block profiling info, if that has not already been done. */
|
||||
|
||||
#define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \
|
||||
{ fprintf (FILE, "\tld LPBX0,g12\n"); \
|
||||
fprintf (FILE, "\tcmpobne 0,g12,LPY%d\n",LABELNO);\
|
||||
fprintf (FILE, "\tlda LPBX0,g12\n"); \
|
||||
fprintf (FILE, "\tcall ___bb_init_func\n"); \
|
||||
fprintf (FILE, "LPY%d:\n",LABELNO); }
|
||||
|
||||
/* Output assembler code to FILE to increment the entry-count for
|
||||
the BLOCKNO'th basic block in this source file. */
|
||||
|
||||
#define BLOCK_PROFILER(FILE, BLOCKNO) \
|
||||
{ int blockn = (BLOCKNO); \
|
||||
fprintf (FILE, "\tld LPBX2+%d,g12\n", 4 * blockn); \
|
||||
fprintf (FILE, "\taddo g12,1,g12\n"); \
|
||||
fprintf (FILE, "\tst g12,LPBX2+%d\n", 4 * blockn); }
|
||||
|
||||
/* Print operand X (an rtx) in assembler syntax to file FILE.
|
||||
CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.
|
||||
For `%' followed by punctuation, CODE is the punctuation and X is null. */
|
||||
|
|
|
@ -30,9 +30,6 @@ extern int m68hc11_initial_elimination_offset PARAMS((int, int));
|
|||
|
||||
extern void expand_prologue PARAMS((void));
|
||||
extern void expand_epilogue PARAMS((void));
|
||||
extern int m68hc11_function_block_profiler PARAMS((FILE*,int));
|
||||
|
||||
extern int m68hc11_block_profiler PARAMS((FILE*,int));
|
||||
|
||||
extern void m68hc11_asm_file_start PARAMS((FILE*, const char*));
|
||||
|
||||
|
|
|
@ -1131,25 +1131,6 @@ m68hc11_unary_operator (op, mode)
|
|||
|| GET_CODE (op) == SIGN_EXTEND || GET_CODE (op) == ZERO_EXTEND;
|
||||
}
|
||||
|
||||
|
||||
/* Profiling. */
|
||||
|
||||
int
|
||||
m68hc11_block_profiler (out, blockno)
|
||||
FILE *out ATTRIBUTE_UNUSED;
|
||||
int blockno ATTRIBUTE_UNUSED;
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
m68hc11_function_block_profiler (out, block_or_label)
|
||||
FILE *out ATTRIBUTE_UNUSED;
|
||||
int block_or_label ATTRIBUTE_UNUSED;
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Emit the code to build the trampoline used to call a nested function.
|
||||
|
||||
68HC11 68HC12
|
||||
|
|
|
@ -232,21 +232,3 @@ Boston, MA 02111-1307, USA. */
|
|||
asm_fprintf (FILE, "%I0r%s", dstr); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#if 0
|
||||
/* This was turned off as it caused linking errors on sunos4.1.
|
||||
`gcc -a' links in /usr/lib/bb_link.o which does not provide __bb_link
|
||||
but its own version of __bb_init_func. */
|
||||
#undef BLOCK_PROFILER_CODE
|
||||
#define BLOCK_PROFILER_CODE \
|
||||
extern int ___tcov_init; \
|
||||
\
|
||||
__bb_init_func (blocks) \
|
||||
struct bb *blocks; \
|
||||
{ \
|
||||
if (! ___tcov_init) \
|
||||
___tcov_init_func (); \
|
||||
\
|
||||
___bb_link (blocks->filename, blocks->counts, blocks->ncounts); \
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -157,26 +157,6 @@ Boston, MA 02111-1307, USA. */
|
|||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fprintf (stderr, " (68k, Motorola/SGS/Tower32 syntax)");
|
||||
|
||||
#undef FUNCTION_BLOCK_PROFILER
|
||||
#define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \
|
||||
do { \
|
||||
char label1[20], label2[20]; \
|
||||
ASM_GENERATE_INTERNAL_LABEL (label1, "LPBX", 0); \
|
||||
ASM_GENERATE_INTERNAL_LABEL (label2, "LPI", LABELNO); \
|
||||
fprintf (FILE, "\ttst.l %s\n\tbne %s\n\tpea %s\n\tjsr __bb_init_func\n\taddq.l &4,%%sp\n", \
|
||||
label1, label2, label1); \
|
||||
ASM_OUTPUT_INTERNAL_LABEL (FILE, "LPI", LABELNO); \
|
||||
putc ('\n', FILE); \
|
||||
} while (0)
|
||||
|
||||
#undef BLOCK_PROFILER
|
||||
#define BLOCK_PROFILER(FILE, BLOCKNO) \
|
||||
do { \
|
||||
char label[20]; \
|
||||
ASM_GENERATE_INTERNAL_LABEL (label, "LPBX", 2); \
|
||||
fprintf (FILE, "\taddq.l &1,%s+%d\n", label, 4 * BLOCKNO); \
|
||||
} while (0)
|
||||
|
||||
#undef FUNCTION_PROFILER
|
||||
#define FUNCTION_PROFILER(FILE, LABEL_NO) \
|
||||
fprintf (FILE, "\tmov.l &LP%%%d,%%a0\n\tjsr mcount%%\n", (LABEL_NO))
|
||||
|
|
|
@ -86,8 +86,6 @@ extern void m88k_layout_frame PARAMS ((void));
|
|||
extern void m88k_expand_prologue PARAMS ((void));
|
||||
extern void m88k_expand_epilogue PARAMS ((void));
|
||||
extern void output_function_profiler PARAMS ((FILE *, int, const char *, int));
|
||||
extern void output_function_block_profiler PARAMS ((FILE *, int));
|
||||
extern void output_block_profiler PARAMS ((FILE *, int));
|
||||
extern void output_ascii PARAMS ((FILE *, const char *, int,
|
||||
const char *, int));
|
||||
extern void output_label PARAMS ((int));
|
||||
|
|
|
@ -2471,73 +2471,6 @@ output_function_profiler (file, labelno, name, savep)
|
|||
fprintf (file, "\taddu\t %s,%s,64\n", reg_names[31], reg_names[31]);
|
||||
}
|
||||
}
|
||||
|
||||
/* Output assembler code to FILE to initialize basic-block profiling for
|
||||
the current module. LABELNO is unique to each instance. */
|
||||
|
||||
void
|
||||
output_function_block_profiler (file, labelno)
|
||||
FILE *file;
|
||||
int labelno;
|
||||
{
|
||||
char block[256];
|
||||
char label[256];
|
||||
|
||||
/* Remember to update FUNCTION_BLOCK_PROFILER_LENGTH. */
|
||||
|
||||
ASM_GENERATE_INTERNAL_LABEL (block, "LPBX", 0);
|
||||
ASM_GENERATE_INTERNAL_LABEL (label, "LPY", labelno);
|
||||
|
||||
/* @@ Need to deal with PIC. I'm not sure what the requirements are on
|
||||
register usage, so I used r26/r27 to be safe. */
|
||||
fprintf (file, "\tor.u\t %s,%s,%shi16(%s)\n", reg_names[27], reg_names[0],
|
||||
m88k_pound_sign, &block[1]);
|
||||
fprintf (file, "\tld\t %s,%s,%slo16(%s)\n", reg_names[26], reg_names[27],
|
||||
m88k_pound_sign, &block[1]);
|
||||
fprintf (file, "\tbcnd\t %sne0,%s,%s\n",
|
||||
m88k_pound_sign, reg_names[26], &label[1]);
|
||||
fprintf (file, "\tsubu\t %s,%s,64\n", reg_names[31], reg_names[31]);
|
||||
fprintf (file, "\tst.d\t %s,%s,32\n", reg_names[2], reg_names[31]);
|
||||
fprintf (file, "\tst.d\t %s,%s,40\n", reg_names[4], reg_names[31]);
|
||||
fprintf (file, "\tst.d\t %s,%s,48\n", reg_names[6], reg_names[31]);
|
||||
fprintf (file, "\tst.d\t %s,%s,56\n", reg_names[8], reg_names[31]);
|
||||
fputs ("\tbsr.n\t ", file);
|
||||
ASM_OUTPUT_LABELREF (file, "__bb_init_func");
|
||||
putc ('\n', file);
|
||||
fprintf (file, "\tor\t %s,%s,%slo16(%s)\n", reg_names[2], reg_names[27],
|
||||
m88k_pound_sign, &block[1]);
|
||||
fprintf (file, "\tld.d\t %s,%s,32\n", reg_names[2], reg_names[31]);
|
||||
fprintf (file, "\tld.d\t %s,%s,40\n", reg_names[4], reg_names[31]);
|
||||
fprintf (file, "\tld.d\t %s,%s,48\n", reg_names[6], reg_names[31]);
|
||||
fprintf (file, "\tld.d\t %s,%s,56\n", reg_names[8], reg_names[31]);
|
||||
fprintf (file, "\taddu\t %s,%s,64\n", reg_names[31], reg_names[31]);
|
||||
ASM_OUTPUT_INTERNAL_LABEL (file, "LPY", labelno);
|
||||
}
|
||||
|
||||
/* Output assembler code to FILE to increment the count associated with
|
||||
the basic block number BLOCKNO. */
|
||||
|
||||
void
|
||||
output_block_profiler (file, blockno)
|
||||
FILE *file;
|
||||
int blockno;
|
||||
{
|
||||
char block[256];
|
||||
|
||||
/* Remember to update BLOCK_PROFILER_LENGTH. */
|
||||
|
||||
ASM_GENERATE_INTERNAL_LABEL (block, "LPBX", 2);
|
||||
|
||||
/* @@ Need to deal with PIC. I'm not sure what the requirements are on
|
||||
register usage, so I used r26/r27 to be safe. */
|
||||
fprintf (file, "\tor.u\t %s,%s,%shi16(%s+%d)\n", reg_names[27], reg_names[0],
|
||||
m88k_pound_sign, &block[1], 4 * blockno);
|
||||
fprintf (file, "\tld\t %s,%s,%slo16(%s+%d)\n", reg_names[26], reg_names[27],
|
||||
m88k_pound_sign, &block[1], 4 * blockno);
|
||||
fprintf (file, "\taddu\t %s,%s,1\n", reg_names[26], reg_names[26]);
|
||||
fprintf (file, "\tst\t %s,%s,%slo16(%s+%d)\n", reg_names[26], reg_names[27],
|
||||
m88k_pound_sign, &block[1], 4 * blockno);
|
||||
}
|
||||
|
||||
/* Determine whether a function argument is passed in a register, and
|
||||
which register.
|
||||
|
|
|
@ -1041,22 +1041,6 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS,
|
|||
/* Maximum length in instructions of the code output by FUNCTION_PROFILER. */
|
||||
#define FUNCTION_PROFILER_LENGTH (5+3+1+5)
|
||||
|
||||
/* Output assembler code to FILE to initialize basic-block profiling for
|
||||
the current module. LABELNO is unique to each instance. */
|
||||
#define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \
|
||||
output_function_block_profiler (FILE, LABELNO)
|
||||
|
||||
/* Maximum length in instructions of the code output by
|
||||
FUNCTION_BLOCK_PROFILER. */
|
||||
#define FUNCTION_BLOCK_PROFILER_LENGTH (3+5+2+5)
|
||||
|
||||
/* Output assembler code to FILE to increment the count associated with
|
||||
the basic block number BLOCKNO. */
|
||||
#define BLOCK_PROFILER(FILE, BLOCKNO) output_block_profiler (FILE, BLOCKNO)
|
||||
|
||||
/* Maximum length in instructions of the code output by BLOCK_PROFILER. */
|
||||
#define BLOCK_PROFILER_LENGTH 4
|
||||
|
||||
/* EXIT_IGNORE_STACK should be nonzero if, when returning from a function,
|
||||
the stack pointer does not matter. The value is tested only in
|
||||
functions that have frame pointers.
|
||||
|
|
|
@ -438,26 +438,6 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES };
|
|||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||||
fprintf (FILE, "\tmovab LP%d,r0\n\tjsb mcount\n", (LABELNO));
|
||||
|
||||
/* Output assembler code to FILE to initialize this source file's
|
||||
basic block profiling info, if that has not already been done. */
|
||||
|
||||
#define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \
|
||||
fprintf (FILE, "\ttstl LPBX0\n\tjneq LPI%d\n\tpushal LPBX0\n\tcalls $1,__bb_init_func\nLPI%d:\n", \
|
||||
LABELNO, LABELNO);
|
||||
|
||||
/* Output assembler code to FILE to increment the entry-count for
|
||||
the BLOCKNO'th basic block in this source file. This is a real pain in the
|
||||
sphincter on a VAX, since we do not want to change any of the bits in the
|
||||
processor status word. The way it is done here, it is pushed onto the stack
|
||||
before any flags have changed, and then the stack is fixed up to account for
|
||||
the fact that the instruction to restore the flags only reads a word.
|
||||
It may seem a bit clumsy, but at least it works.
|
||||
*/
|
||||
|
||||
#define BLOCK_PROFILER(FILE, BLOCKNO) \
|
||||
fprintf (FILE, "\tmovpsl -(sp)\n\tmovw (sp),2(sp)\n\taddl2 $2,sp\n\taddl2 $1,LPBX2+%d\n\tbicpsw $255\n\tbispsw (sp)+\n", \
|
||||
4 * BLOCKNO)
|
||||
|
||||
/* EXIT_IGNORE_STACK should be nonzero if, when returning from a function,
|
||||
the stack pointer does not matter. The value is tested only in
|
||||
functions that have frame pointers.
|
||||
|
|
|
@ -389,19 +389,6 @@ enum reg_class { NO_REGS, GENERAL_REGS,
|
|||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||||
fprintf (FILE, "\tmovw &.LP%d,%%r0\n\tjsb _mcount\n", (LABELNO))
|
||||
|
||||
/* Output assembler code to FILE to initialize this source file's
|
||||
basic block profiling info, if that has not already been done. */
|
||||
|
||||
#define FUNCTION_BLOCK_PROFILER(FILE, LABELNO) \
|
||||
fprintf (FILE, "\tcmpw .LPBX0,&0\n\tjne .LPI%d\n\tpushw &.LPBX0\n\tcall &1,__bb_init_func\n.LPI%d:\n", \
|
||||
LABELNO, LABELNO);
|
||||
|
||||
/* Output assembler code to FILE to increment the entry-count for
|
||||
the BLOCKNO'th basic block in this source file. */
|
||||
|
||||
#define BLOCK_PROFILER(FILE, BLOCKNO) \
|
||||
fprintf (FILE, "\taddw2 &1,.LPBX2+%d\n", 4 * BLOCKNO)
|
||||
|
||||
/* EXIT_IGNORE_STACK should be nonzero if, when returning from a function,
|
||||
the stack pointer does not matter. The value is tested only in
|
||||
functions that have frame pointers.
|
||||
|
|
|
@ -1258,9 +1258,6 @@ struct bb
|
|||
struct bb_function_info *function_infos;
|
||||
};
|
||||
|
||||
#ifdef BLOCK_PROFILER_CODE
|
||||
BLOCK_PROFILER_CODE
|
||||
#else
|
||||
#ifndef inhibit_libc
|
||||
|
||||
/* Simple minded basic block profiling output dumper for
|
||||
|
@ -1492,7 +1489,6 @@ __bb_fork_func (void)
|
|||
}
|
||||
|
||||
#endif /* not inhibit_libc */
|
||||
#endif /* not BLOCK_PROFILER_CODE */
|
||||
#endif /* L_bb */
|
||||
|
||||
#ifdef L_clear_cache
|
||||
|
|
|
@ -609,7 +609,10 @@ typedef char _Bool;
|
|||
STDC_VALUE TRAMPOLINE_ALIGN ASM_IDENTIFY_GCC_AFTER_SOURCE \
|
||||
SLOW_ZERO_EXTEND SUBREG_REGNO_OFFSET DWARF_LINE_MIN_INSTR_LENGTH \
|
||||
TRADITIONAL_RETURN_FLOAT NO_BUILTIN_SIZE_TYPE \
|
||||
NO_BUILTIN_PTRDIFF_TYPE NO_BUILTIN_WCHAR_TYPE NO_BUILTIN_WINT_TYPE
|
||||
NO_BUILTIN_PTRDIFF_TYPE NO_BUILTIN_WCHAR_TYPE NO_BUILTIN_WINT_TYPE \
|
||||
BLOCK_PROFILER BLOCK_PROFILER_CODE FUNCTION_BLOCK_PROFILER \
|
||||
FUNCTION_BLOCK_PROFILER_EXIT MACHINE_STATE_SAVE \
|
||||
MACHINE_STATE_RESTORE
|
||||
|
||||
#endif /* IN_GCC */
|
||||
|
||||
|
|
|
@ -3587,12 +3587,6 @@ display_help ()
|
|||
printf (_(" -Wunused Enable unused warnings\n"));
|
||||
printf (_(" -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"));
|
||||
printf (_(" -p Enable function profiling\n"));
|
||||
#if defined (BLOCK_PROFILER) || defined (FUNCTION_BLOCK_PROFILER)
|
||||
printf (_(" -a Enable block profiling \n"));
|
||||
#endif
|
||||
#if defined (BLOCK_PROFILER) || defined (FUNCTION_BLOCK_PROFILER) || defined FUNCTION_BLOCK_PROFILER_EXIT
|
||||
printf (_(" -ax Enable jump profiling \n"));
|
||||
#endif
|
||||
printf (_(" -o <file> Place output into <file> \n"));
|
||||
printf (_("\
|
||||
-G <number> Put global and static data smaller than <number>\n\
|
||||
|
|
Loading…
Add table
Reference in a new issue