From 0858c47e31efeeaf56c8c3df582192dfa5f098fa Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 23 Sep 2009 22:30:05 +0000 Subject: [PATCH] re PR target/40473 (-mno-sched-prolog breaks function parameter debug location lists) PR target/40473 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't call final to emit non-scheduled prologue, instead insert at entry. From-SVN: r152105 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/rs6000.c | 12 +++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ea2bfc48b2b2..76efd04f3a97 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-09-23 Alan Modra + + PR target/40473 + * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't + call final to emit non-scheduled prologue, instead insert at entry. + 2009-09-23 Uros Bizjak PR c/39779 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 8b1965d35023..b39c456720d2 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -16223,6 +16223,8 @@ rs6000_output_function_prologue (FILE *file, if (! HAVE_prologue) { + rtx prologue; + start_sequence (); /* A NOTE_INSN_DELETED is supposed to be at the start and end of @@ -16242,10 +16244,14 @@ rs6000_output_function_prologue (FILE *file, } } - if (TARGET_DEBUG_STACK) - debug_rtx_list (get_insns (), 100); - final (get_insns (), file, FALSE); + prologue = get_insns (); end_sequence (); + + if (TARGET_DEBUG_STACK) + debug_rtx_list (prologue, 100); + + emit_insn_before_noloc (prologue, BB_HEAD (ENTRY_BLOCK_PTR->next_bb), + ENTRY_BLOCK_PTR); } rs6000_pic_labelno++; -- 2.47.2