From: Alan Modra Date: Wed, 23 Sep 2009 22:30:05 +0000 (+0000) Subject: re PR target/40473 (-mno-sched-prolog breaks function parameter debug location lists) X-Git-Tag: releases/gcc-4.3.5~370 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0858c47e31efeeaf56c8c3df582192dfa5f098fa;p=thirdparty%2Fgcc.git 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 --- 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++;