aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/sh/sh.md10
2 files changed, 5 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4f16993..73fd4f9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Thu Jun 17 01:45:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * sh.md (mulsi3): Don't add a no-op move at the end.
+
Wed Jun 16 20:29:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* cse.c (cse_insn): Don't put hard register source into tables for
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index 2acbb0f..38732e6 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -1112,20 +1112,12 @@
else
{
rtx macl = gen_rtx_REG (SImode, MACL_REG);
- rtx giv_insn;
first = emit_insn (gen_mul_l (operands[1], operands[2]));
/* 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]));
+ last = emit_insn (gen_movsi_i ((operands[0]), macl));
}
/* Wrap the sequence in REG_LIBCALL / REG_RETVAL notes so that loop
invariant code motion can move it. */