From 55a97ca82bc388c612a4de28ad6c9054cd5baa9d Mon Sep 17 00:00:00 2001 From: aoliva Date: Sat, 13 Jan 2001 07:21:35 +0000 Subject: [PATCH] * config/sh/sh.c (sh_expand_prologue): Let the second toggle_sz be optimized away. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38976 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 3 +++ gcc/config/sh/sh.c | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) 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 + * 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 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; -- 2.7.4