From d57c0139831d98f97ee0ea892b5cf4e728ecf508 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 23 Sep 2009 00:23:24 +0000 Subject: 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: r152056 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/rs6000.c | 12 +++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1f1a797..eece990 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-22 Loren J. Rittle Joseph S. Myers diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 83d9ee8..c4a7152 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -19111,6 +19111,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 @@ -19130,10 +19132,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++; -- cgit v1.1