(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;
}")