* sh.md (mulsi3): End mul.l sequence with a no-op move.
authorJ"orn Rennecke <amylaar@cygnus.co.uk>
Thu, 11 Mar 1999 09:31:33 +0000 (09:31 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Thu, 11 Mar 1999 09:31:33 +0000 (09:31 +0000)
From-SVN: r25699

gcc/ChangeLog
gcc/config/sh/sh.md

index 0fb226889c2dc3b800547b2d980cff51cb35c956..7c4a105044ce33c748dd171730286a707efa924a 100644 (file)
@@ -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
index 55c5745b6b12dd669639307e9638e1f4f491230f..a3b8e9142a9594231fa048ae65fe76c4774d3d5c 100644 (file)
     {
       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.  */