(gen_input_reload): In PLUS, if OP0 and OP1 are the same, use
authorRichard Kenner <kenner@gcc.gnu.org>
Wed, 28 Oct 1992 22:05:59 +0000 (17:05 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 28 Oct 1992 22:05:59 +0000 (17:05 -0500)
RELOADREG when generating the addition.

From-SVN: r2643

gcc/reload1.c

index 88c5e6dd2e344255400e2bb2ee0e86adef50d20b..f1933d730f21d4342725882568121068a41e8806 100644 (file)
@@ -5753,6 +5753,14 @@ gen_input_reload (reloadreg, in, before_insn)
        tem = op0, op0 = op1, op1 = tem;
 
       emit_insn_before (gen_move_insn (reloadreg, op0), before_insn);
+
+      /* If OP0 and OP1 are the same, we can use RELOADREG for OP1.
+        This fixes a problem on the 32K where the stack pointer cannot
+        be used as an operand of an add insn.  */
+
+      if (rtx_equal_p (op0, op1))
+       op1 = reloadreg;
+
       emit_insn_before (gen_add2_insn (reloadreg, op1), before_insn);
     }