summaryrefslogtreecommitdiff
path: root/lang/gcc27/files/patch-final.c
diff options
context:
space:
mode:
Diffstat (limited to 'lang/gcc27/files/patch-final.c')
-rw-r--r--lang/gcc27/files/patch-final.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/lang/gcc27/files/patch-final.c b/lang/gcc27/files/patch-final.c
new file mode 100644
index 000000000000..d930738eac1f
--- /dev/null
+++ b/lang/gcc27/files/patch-final.c
@@ -0,0 +1,60 @@
+--- final.c.orig Sun Nov 26 10:50:00 1995
++++ final.c Mon Mar 20 13:29:11 2000
+@@ -345,6 +345,8 @@
+ /* zero word */
+ assemble_integer (const0_rtx, UNITS_PER_WORD, 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), UNITS_PER_WORD, 1);
+@@ -914,6 +916,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
+@@ -971,14 +976,18 @@
+ profile_function (file)
+ FILE *file;
+ {
++#ifndef NO_PROFILE_DATA
+ int align = MIN (BIGGEST_ALIGNMENT, POINTER_SIZE);
++#endif /* not NO_PROFILE_DATA */
+ int sval = current_function_returns_struct;
+ int cxt = current_function_needs_context;
+
++#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, POINTER_SIZE / BITS_PER_UNIT, 1);
++#endif /* not NO_PROFILE_DATA */
+
+ text_section ();
+
+@@ -1066,6 +1075,9 @@
+ FUNCTION_EPILOGUE (file, get_frame_size ());
+ #endif
+
++ if (profile_block_flag)
++ add_bb (file);
++
+ #ifdef SDB_DEBUGGING_INFO
+ if (write_symbols == SDB_DEBUG)
+ sdbout_end_epilogue ();
+@@ -1487,6 +1499,9 @@
+ if (prescan > 0)
+ break;
+ new_block = 1;
++#ifdef FINAL_PRESCAN_INSN
++ FINAL_PRESCAN_INSN (insn, NULL_RTX, 0);
++#endif
+ #ifdef SDB_DEBUGGING_INFO
+ if (write_symbols == SDB_DEBUG && LABEL_NAME (insn))
+ sdbout_label (insn);