aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1999-03-11 09:31:33 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>1999-03-11 09:31:33 +0000
commit44ccea4059a2085af0dd71d033781cc4a12a1104 (patch)
tree70840dfc5924db59262ebf87d8c15cd745f40541 /gcc
parent4f3ae93c0dc323dbf98ba318f35516813620e266 (diff)
downloadgcc-44ccea4059a2085af0dd71d033781cc4a12a1104.zip
gcc-44ccea4059a2085af0dd71d033781cc4a12a1104.tar.gz
gcc-44ccea4059a2085af0dd71d033781cc4a12a1104.tar.bz2
* sh.md (mulsi3): End mul.l sequence with a no-op move.
From-SVN: r25699
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/sh/sh.md5
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0fb2268..7c4a105 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Thu Mar 11 17:28:32 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * sh.md (mulsi3): End mul.l sequence with a no-op move.
+
Thu Mar 11 08:52:02 1999 Bruce Korb <korb@datadesign.com>
* Makefile.in: activated fixinc/mkfixinc.sh
* configure.in: activated fixinc/mkfixinc.sh
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index 55c5745..a3b8e91 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -1113,7 +1113,10 @@
{
rtx macl = gen_rtx_REG (SImode, MACL_REG);
first = emit_insn (gen_mul_l (operands[1], operands[2]));
- last = emit_insn (gen_movsi_i ((operands[0]), macl));
+ emit_insn (gen_movsi_i ((operands[0]), macl));
+ /* 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]));
}
/* Wrap the sequence in REG_LIBCALL / REG_RETVAL notes so that loop
invariant code motion can move it. */