OSDN Git Service

* config/m68hc11/m68hc11.md ("bitcmpqi" split): No need to test the
authorciceron <ciceron@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 12 Apr 2003 20:35:28 +0000 (20:35 +0000)
committerciceron <ciceron@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 12 Apr 2003 20:35:28 +0000 (20:35 +0000)
mode of operand 0.
(peephole2 optimize const load): Likewise for operand 2.
("*rotlhi3_with_carry"): Change pattern to a const 1 rotate which
clobbers CC_REGNUM.
("*rotrhi3_with_carry"): Likewise.
(ashift:DI 1 split): Update pattern to create the above rotate.
(lshiftrt:DI 1 split): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65524 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 5108099..b29c50a 100644 (file)
@@ -1,5 +1,16 @@
 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
 
+       * config/m68hc11/m68hc11.md ("bitcmpqi" split): No need to test the
+       mode of operand 0.
+       (peephole2 optimize const load): Likewise for operand 2.
+       ("*rotlhi3_with_carry"): Change pattern to a const 1 rotate which
+       clobbers CC_REGNUM.
+       ("*rotrhi3_with_carry"): Likewise.
+       (ashift:DI 1 split): Update pattern to create the above rotate.
+       (lshiftrt:DI 1 split): Likewise.
+
+2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
+
        * config/m68hc11/m68hc11.md (SOFT_Z_REGNUM): New constant.
        ("tstqi_z_used" split): Use it.
        ("cmphi_z_used"): Likewise.
index f578502..6fd9d0e 100644 (file)
   [(set (cc0)
        (and:QI (match_operand:QI 0 "tst_operand" "")
                (match_operand:QI 1 "hard_addr_reg_operand" "")))]
-  "z_replacement_completed == 2 && GET_MODE (operands[0]) == QImode"
+  "z_replacement_completed == 2"
   [(set (match_dup 3) (match_dup 2))
    (set (cc0) (and:QI (match_dup 0) (match_dup 4)))]
   "operands[2] = gen_rtx (REG, HImode, REGNO (operands[1]));
     (set (match_dup 4) (match_dup 2))
 
     (set (match_dup 2) (match_dup 5))
-    (set (match_dup 2) (rotate:HI (match_dup 2) (reg:HI CC_REGNUM)))
+    (parallel [(set (match_dup 2)
+                      (rotate:HI (match_dup 2) (const_int 1)))
+              (clobber (reg:HI CC_REGNUM))])
     (set (match_dup 6) (match_dup 2))
 
     (set (match_dup 2) (match_dup 7))
-    (set (match_dup 2) (rotate:HI (match_dup 2) (reg:HI CC_REGNUM)))
+    (parallel [(set (match_dup 2)
+                      (rotate:HI (match_dup 2) (const_int 1)))
+              (clobber (reg:HI CC_REGNUM))])
     (set (match_dup 8) (match_dup 2))
 
     (set (match_dup 2) (match_dup 9))
-    (set (match_dup 2) (rotate:HI (match_dup 2) (reg:HI CC_REGNUM)))
+    (parallel [(set (match_dup 2)
+                      (rotate:HI (match_dup 2) (const_int 1)))
+              (clobber (reg:HI CC_REGNUM))])
     (set (match_dup 10) (match_dup 2))]
    "operands[3] = m68hc11_gen_lowpart (SImode, operands[1]);
     operands[5] = m68hc11_gen_highpart (HImode, operands[3]);
     (set (match_dup 4) (match_dup 2))
 
     (set (match_dup 2) (match_dup 5))
-    (set (match_dup 2) (rotatert:HI (match_dup 2) (reg:HI CC_REGNUM)))
+    (parallel [(set (match_dup 2) (rotatert:HI (match_dup 2) (const_int 1)))
+               (clobber (reg:HI CC_REGNUM))])
     (set (match_dup 6) (match_dup 2))
 
     (set (match_dup 2) (match_dup 7))
-    (set (match_dup 2) (rotatert:HI (match_dup 2) (reg:HI CC_REGNUM)))
+    (parallel [(set (match_dup 2) (rotatert:HI (match_dup 2) (const_int 1)))
+               (clobber (reg:HI CC_REGNUM))])
     (set (match_dup 8) (match_dup 2))
 
     (set (match_dup 2) (match_dup 9))
-    (set (match_dup 2) (rotatert:HI (match_dup 2) (reg:HI CC_REGNUM)))
+    (parallel [(set (match_dup 2) (rotatert:HI (match_dup 2) (const_int 1)))
+               (clobber (reg:HI CC_REGNUM))])
     (set (match_dup 10) (match_dup 2))]
    "operands[3] = m68hc11_gen_highpart (SImode, operands[1]);
     operands[5] = m68hc11_gen_lowpart (HImode, operands[3]);
 (define_insn "*rotlhi3_with_carry"
   [(set (match_operand:HI 0 "register_operand" "=d")
        (rotate:HI (match_operand:HI 1 "register_operand" "0")
-                  (reg:HI CC_REGNUM)))]
+                  (const_int 1)))
+   (clobber (reg:HI CC_REGNUM))]
   ""
   "*
 {
 (define_insn "*rotrhi3_with_carry"
   [(set (match_operand:HI 0 "register_operand" "=d")
        (rotatert:HI (match_operand:HI 1 "register_operand" "0")
-                    (reg:HI CC_REGNUM)))]
+                    (const_int 1)))
+   (clobber (reg:HI CC_REGNUM))]
   ""
   "*
 {
    (set (match_operand:HI 2 "hard_reg_operand" "")
         (match_dup 1))]
   "(D_REG_P (operands[2]) || X_REG_P (operands[2]) || Y_REG_P (operands[2]))
-   && !reg_mentioned_p (operands[2], operands[0])
-   && GET_MODE (operands[2]) == HImode"
+   && !reg_mentioned_p (operands[2], operands[0])"
   [(set (match_dup 2) (match_dup 1))
    (set (match_dup 0) (match_dup 2))]
   "")