m68hc11.md ("cmpqi_1"): Fix constraints.
authorStephane Carrez <Stephane.Carrez@worldnet.fr>
Sun, 30 Sep 2001 17:33:18 +0000 (19:33 +0200)
committerStephane Carrez <ciceron@gcc.gnu.org>
Sun, 30 Sep 2001 17:33:18 +0000 (19:33 +0200)
* config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
("tsthi_1"): Avoid allocation in register y.
("*movqi_68hc12"): Reorganize and fix constraints.
("zero_extendqisi2"): Prefer d over x and y for operand 1.
("addqi3"): Likewise.
("addhi3"): Fix constraints.
("*logicalhi3_zexthi"): Disparage soft registers.

From-SVN: r45908

gcc/ChangeLog
gcc/config/m68hc11/m68hc11.md

index 9d4f389..c6f6f39 100644 (file)
@@ -1,5 +1,15 @@
 2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
 
+       * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints.
+       ("tsthi_1"): Avoid allocation in register y.
+       ("*movqi_68hc12"): Reorganize and fix constraints.
+       ("zero_extendqisi2"): Prefer d over x and y for operand 1.
+       ("addqi3"): Likewise.
+       ("addhi3"): Fix constraints.
+       ("*logicalhi3_zexthi"): Disparage soft registers.
+
+2001-09-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
        * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp
        to tmp reg.
 
index 171d6e8..a5e1787 100644 (file)
 
 (define_insn "tsthi_1"
   [(set (cc0)
-       (match_operand:HI 0 "tst_operand" "dx,y"))]
+       (match_operand:HI 0 "tst_operand" "dx,*y"))]
   ""
   "*
 {
 
 (define_insn "cmpqi_1"
   [(set (cc0)
-       (compare (match_operand:QI 0 "tst_operand" "d,m,d,!u,*B,d")
-                (match_operand:QI 1 "cmp_operand" "im,d,!u,d,?dim*B,*u")))]
+       (compare (match_operand:QI 0 "tst_operand" "d,m,d,!u,*B,d*B")
+                (match_operand:QI 1 "cmp_operand" "im,d,!u,d,dim*A,*u")))]
   ""
   "*
 {
 }")
 
 (define_insn "*movqi_68hc12"
-  [(set (match_operand:QI 0 "nonimmediate_operand" "=d*AuU*q,d*A*qu,d*A*q,m,m")
-       (match_operand:QI 1 "general_operand" "rui*q,U,m,d*q,!A"))]
+  [(set (match_operand:QI 0 "nonimmediate_operand" 
+                               "=d*AU*q,d*A*q,*u,d*A*q,m,m")
+       (match_operand:QI 1 "general_operand" 
+                               "*ri*q,U,*ri*qU,m,d*q,!A"))]
   "TARGET_M6812"
   "*
 {
 }")
 
 (define_insn "zero_extendqisi2"
-  [(set (match_operand:SI 0 "non_push_operand" "=D,m,u")
+  [(set (match_operand:SI 0 "non_push_operand" "=D,D,m,m,u")
       (zero_extend:SI 
-         (match_operand:QI 1 "nonimmediate_operand" "dxymu,dxy,dxy")))]
+         (match_operand:QI 1 "nonimmediate_operand" "dmu,xy,d,xy,dxy")))]
   ""
   "#")
 
   "")
 
 (define_insn "*addhi3"
-  [(set (match_operand:HI 0 "hard_reg_operand" "=A,d,!A,d*A,!d")
+  [(set (match_operand:HI 0 "hard_reg_operand" "=A,d,!A,d*A,!d*A")
        (plus:HI (match_operand:HI 1 "general_operand" "%0,0,0,0,0")
                 (match_operand:HI 2 "general_operand" "N,i,I,mi*A*d,!u*d*w")))]
   "TARGET_M6811"
   "")
 
 (define_insn "addqi3"
-  [(set (match_operand:QI 0 "nonimmediate_operand" "=!*rm,dq*A")
-        (plus:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0")
-                 (match_operand:QI 2 "general_operand" "N,ium*A*d")))]
+  [(set (match_operand:QI 0 "nonimmediate_operand" "=!d*rm,dq,!*A")
+        (plus:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0,0")
+                 (match_operand:QI 2 "general_operand" "N,ium*A*d,ium*A*d")))]
   ""
   "*
 {
   "#")
 
 (define_insn "*logicalhi3_zexthi"
-  [(set (match_operand:HI 0 "register_operand" "=d")
+  [(set (match_operand:HI 0 "register_operand" "=d,d")
        (match_operator:HI 3 "m68hc11_logical_operator"
                [(zero_extend:HI
-                    (match_operand:QI 1 "general_operand" "imud"))
-                (match_operand:HI 2 "general_operand" "dimu")]))]
+                    (match_operand:QI 1 "general_operand" "imd*A,?u"))
+                (match_operand:HI 2 "general_operand" "dim,?dimu")]))]
   ""
   "#")