diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2001-01-13 07:21:35 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2001-01-13 07:21:35 +0000 |
commit | b90dbca6f3b2770ce7b2553b06f8883d74f0ad0b (patch) | |
tree | 178289ddbae9b1681acb795ceac3e2606306ad77 | |
parent | 39f12501d5210c5f214044bedbcbf0b8c78b71de (diff) | |
download | gcc-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/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/config/sh/sh.c | 11 |
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; |