diff options
author | J"orn Rennecke <amylaar@cygnus.co.uk> | 1999-03-29 11:39:22 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 1999-03-29 12:39:22 +0100 |
commit | aa4778b68476a63cc7e54a9cee1664a2ad0fcacc (patch) | |
tree | 366c4e4f98f233c8a3984239bb3ced468a1a7db6 | |
parent | 51c2de46b8059227227b8ab064752d5d4e346ae1 (diff) | |
download | gcc-aa4778b68476a63cc7e54a9cee1664a2ad0fcacc.zip gcc-aa4778b68476a63cc7e54a9cee1664a2ad0fcacc.tar.gz gcc-aa4778b68476a63cc7e54a9cee1664a2ad0fcacc.tar.bz2 |
* sh.md (mulsi3): Tag an extra REG_EQUAL note to the middle insn.
From-SVN: r26055
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/sh/sh.md | 11 |
2 files changed, 14 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7a3bdee..c0461f4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Mon Mar 29 20:35:49 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * sh.md (mulsi3): Tag an extra REG_EQUAL note to the middle insn. + Mon Mar 29 11:50:34 1999 Jerry Quinn <jquinn@nortelnetworks.com> * pa.h (HAVE_PRE_INCREMENT): Disable when optimizing for a PA8000 diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index f572d6f..f5bd532 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -1112,8 +1112,17 @@ else { rtx macl = gen_rtx_REG (SImode, MACL_REG); + rtx giv_insn; + first = emit_insn (gen_mul_l (operands[1], operands[2])); - emit_insn (gen_movsi_i ((operands[0]), macl)); + /* consec_sets_giv can only recognize the first insn that sets a + giv as the giv insn. So we must tag this also with a REG_EQUAL + note. */ + giv_insn = emit_insn (gen_movsi_i ((operands[0]), macl)); + REG_NOTES (giv_insn) + = gen_rtx_EXPR_LIST (REG_EQUAL, + gen_rtx_MULT (SImode, operands[1], operands[2]), + REG_NOTES (giv_insn)); /* The sequence must end in a no-op move, lest cse puts macl in its tables and does invalid substitutions. */ last = emit_insn (gen_movsi_i ((operands[0]), operands[0])); |