diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-09-28 08:18:10 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-09-28 08:18:10 -0400 |
commit | a0044fb10e9cb75d5a146c19fb2badc7e067c828 (patch) | |
tree | c235eb4a582be374bfe4bf161b6e98fb553813d7 /gcc | |
parent | 84b55618e8191479ebc1935149354793faa27020 (diff) | |
download | gcc-a0044fb10e9cb75d5a146c19fb2badc7e067c828.zip gcc-a0044fb10e9cb75d5a146c19fb2badc7e067c828.tar.gz gcc-a0044fb10e9cb75d5a146c19fb2badc7e067c828.tar.bz2 |
(subsi3): Remove last change.
(allocate_stack): Go back to calling subsi3.
From-SVN: r2265
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index cbcb156..a47eaf2 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -259,7 +259,15 @@ (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 @@ -2893,8 +2901,7 @@ 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; }") |