From fa5679bb7f9bfd4a47059a9fa62f304aef606eaf Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Mon, 12 Apr 1993 15:28:24 -0400 Subject: [PATCH] (adddi3/subdi3): Allow immediate constants. From-SVN: r4101 --- gcc/config/rs6000/rs6000.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index f6a9d21d342..5d476aca949 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -1992,18 +1992,22 @@ ;; Define the DImode operations that can be done in a small number ;; of instructions. (define_insn "adddi3" - [(set (match_operand:DI 0 "gpc_reg_operand" "=r") - (plus:DI (match_operand:DI 1 "gpc_reg_operand" "%r") - (match_operand:DI 2 "gpc_reg_operand" "r")))] + [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r") + (plus:DI (match_operand:DI 1 "gpc_reg_operand" "%r,r") + (match_operand:DI 2 "reg_or_short_operand" "r,I")))] "" - "a %L0,%L1,%L2\;ae %0,%1,%2") + "@ + a %L0,%L1,%L2\;ae %0,%1,%2 + ai %L0,%L1,%2\;a%G2e %0,%1") (define_insn "subdi3" - [(set (match_operand:DI 0 "gpc_reg_operand" "=r") - (minus:DI (match_operand:DI 1 "gpc_reg_operand" "r") - (match_operand:DI 2 "gpc_reg_operand" "r")))] + [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r") + (minus:DI (match_operand:DI 1 "reg_or_short_operand" "r,I") + (match_operand:DI 2 "gpc_reg_operand" "r,r")))] "" - "sf %L0,%L2,%L1\;sfe %0,%2,%1") + "@ + sf %L0,%L2,%L1\;sfe %0,%2,%1 + sfi %L0,%L2,%1\;sf%G1e %0,%2") (define_insn "negdi2" [(set (match_operand:DI 0 "gpc_reg_operand" "=r") -- 2.30.2