(adddi3/subdi3): Allow immediate constants.
authorRichard Kenner <kenner@gcc.gnu.org>
Mon, 12 Apr 1993 19:28:24 +0000 (15:28 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Mon, 12 Apr 1993 19:28:24 +0000 (15:28 -0400)
From-SVN: r4101

gcc/config/rs6000/rs6000.md

index f6a9d21d342e2c54b2045d0212d75ba213523eaf..5d476aca9496e49e65b902a2a691d7d4f0214f1a 100644 (file)
 ;; 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")