diff options
author | Alan Modra <amodra@bigpond.net.au> | 2009-09-23 00:23:24 +0000 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2009-09-23 09:53:24 +0930 |
commit | d57c0139831d98f97ee0ea892b5cf4e728ecf508 (patch) | |
tree | a3362538cff4bef5248ef4ec05f1384ad7e7864a /gcc | |
parent | 254767816f7e4c91d645e676a688fab53f59b971 (diff) | |
download | gcc-d57c0139831d98f97ee0ea892b5cf4e728ecf508.zip gcc-d57c0139831d98f97ee0ea892b5cf4e728ecf508.tar.gz gcc-d57c0139831d98f97ee0ea892b5cf4e728ecf508.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 12 |
2 files changed, 15 insertions, 3 deletions
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 <amodra@bigpond.net.au> + + 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 <ljrittle@acm.org> Joseph S. Myers <joseph@codesourcery.com> 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++; |