aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2001-01-13 07:21:35 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2001-01-13 07:21:35 +0000
commitb90dbca6f3b2770ce7b2553b06f8883d74f0ad0b (patch)
tree178289ddbae9b1681acb795ceac3e2606306ad77
parent39f12501d5210c5f214044bedbcbf0b8c78b71de (diff)
downloadgcc-b90dbca6f3b2770ce7b2553b06f8883d74f0ad0b.zip
gcc-b90dbca6f3b2770ce7b2553b06f8883d74f0ad0b.tar.gz
gcc-b90dbca6f3b2770ce7b2553b06f8883d74f0ad0b.tar.bz2
sh.c (sh_expand_prologue): Let the second toggle_sz be optimized away.
* config/sh/sh.c (sh_expand_prologue): Let the second toggle_sz be optimized away. From-SVN: r38976
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/sh/sh.c11
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cb9b835..e4ea11f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2001-01-13 Alexandre Oliva <aoliva@redhat.com>
+ * config/sh/sh.c (sh_expand_prologue): Let the second toggle_sz be
+ optimized away.
+
* config/sh/sh.c (mova_p): Fix test for mova_const.
2001-01-13 Neil Booth <neil@daikokuya.demon.co.uk>
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 1526d78..d0142e6 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -3969,7 +3969,16 @@ sh_expand_prologue ()
emit_insn (gen_GOTaddr2picreg ());
if (target_flags != save_flags)
- emit_insn (gen_toggle_sz ());
+ {
+ rtx insn = emit_insn (gen_toggle_sz ());
+
+ /* If we're lucky, a mode switch in the function body will
+ overwrite fpscr, turning this insn dead. Tell flow this
+ insn is ok to delete. */
+ REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_MAYBE_DEAD,
+ const0_rtx,
+ REG_NOTES (insn));
+ }
target_flags = save_flags;