diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cb9b83535d09..e4ea11f2b79e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2001-01-13 Alexandre Oliva + * 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 diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 1526d78f9300..d0142e6efe4e 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;