freebsd-ports/lang/gcc31/files/patch-ai
1998-10-08 21:33:02 +00:00

55 lines
1.6 KiB
Plaintext

--- gcc/final.c.orig Sat Sep 5 22:52:01 1998
+++ gcc/final.c Wed Oct 7 17:06:58 1998
@@ -383,6 +383,8 @@
/* zero word */
assemble_integer (const0_rtx, long_bytes, 1);
+ fprintf(asm_out_file,".stabs \"bbset\", 25, 0, 0, LPBX0\n");
+
/* address of filename */
ASM_GENERATE_INTERNAL_LABEL (name, "LPBX", 1);
assemble_integer (gen_rtx_SYMBOL_REF (Pmode, name), pointer_bytes, 1);
@@ -1635,6 +1637,9 @@
leaf_renumber_regs (first);
#endif
+ if (profile_block_flag)
+ add_bb (file);
+
/* The Sun386i and perhaps other machines don't work right
if the profiling code comes after the prologue. */
#ifdef PROFILE_BEFORE_PROLOGUE
@@ -1696,7 +1701,9 @@
profile_function (file)
FILE *file;
{
+#ifndef NO_PROFILE_DATA
int align = MIN (BIGGEST_ALIGNMENT, LONG_TYPE_SIZE);
+#endif /* not NO_PROFILE_DATA */
#if defined(ASM_OUTPUT_REG_PUSH)
#if defined(STRUCT_VALUE_INCOMING_REGNUM) || defined(STRUCT_VALUE_REGNUM)
int sval = current_function_returns_struct;
@@ -1706,10 +1713,12 @@
#endif
#endif /* ASM_OUTPUT_REG_PUSH */
+#ifndef NO_PROFILE_DATA
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 /* not NO_PROFILE_DATA */
function_section (current_function_decl);
@@ -1800,6 +1809,9 @@
code to restore the stack frame and return to the caller. */
FUNCTION_EPILOGUE (file, get_frame_size ());
#endif
+
+ if (profile_block_flag)
+ add_bb (file);
#ifdef SDB_DEBUGGING_INFO
if (write_symbols == SDB_DEBUG)