(subsi3): Remove last change.
authorRichard Kenner <kenner@gcc.gnu.org>
Mon, 28 Sep 1992 12:18:10 +0000 (08:18 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Mon, 28 Sep 1992 12:18:10 +0000 (08:18 -0400)
(allocate_stack): Go back to calling subsi3.

From-SVN: r2265

gcc/config/rs6000/rs6000.md

index cbcb156ae0e29195603883cc00806bcbf8a2623f..a47eaf256ce9109eecd2f4de0873333d8fe150cd 100644 (file)
        (minus:SI (match_operand:SI 1 "reg_or_short_operand" "")
                  (match_operand:SI 2 "reg_or_cint_operand" "")))]
   ""
-  "")
+  "
+{
+  if (GET_CODE (operands[2]) == CONST_INT)
+    {
+      emit_insn (gen_addsi3 (operands[0], operands[1],
+                            negate_rtx (SImode, operands[2])));
+      DONE;
+    }
+}")
 
 ;; For SMIN, SMAX, UMIN, and UMAX, we use DEFINE_EXPAND's that involve a doz[i]
 ;; instruction and some auxiliary computations.  Then we just have a single
   rtx stack_bot = gen_rtx (MEM, Pmode, stack_pointer_rtx);
 
   emit_move_insn (chain, stack_bot);
-  emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx,
-                        negate_rtx (SImode, operands[0])));
+  emit_insn (gen_subsi3 (stack_pointer_rtx, stack_pointer_rtx, operands[0]));
   emit_move_insn (stack_bot, chain);
   DONE;
 }")