aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2009-09-23 00:23:24 +0000
committerAlan Modra <amodra@gcc.gnu.org>2009-09-23 09:53:24 +0930
commitd57c0139831d98f97ee0ea892b5cf4e728ecf508 (patch)
treea3362538cff4bef5248ef4ec05f1384ad7e7864a /gcc
parent254767816f7e4c91d645e676a688fab53f59b971 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.c12
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++;