This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[PATCH]: Use (define_constants) in m68hc11.md


Hi!

Some time ago, Zack Weinberg suggested to use 'define_constants' in
the MD file instead of hard coded numbers.

I implemented his idea for m68hc11.md and replaced all occurences
of register numbers by a constant identifying the register.

I've committed this patch on the gcc 3.0 branch.

	Stephane

2001-03-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.md (X_REGNUM, D_REGNUM): New constant.
	(Y_REGNUM, SP_REGNUM, PC_REGNUM, A_REGNUM, B_REGNUM): Likewise.
	(CC_REGNUM): Likewise.
	(*unnamed splits): Use above constants instead of hard coded numbers.
	(*adcq, *subcq, *addsi_carry, *rotlqi3_with_carry): Likewise.
	(*rotlhi3_with_carry, *rotrhi3_with_carry): Likewise.
	(*return_16bit, *unnamed peepholes): Likewise.
Index: config/m68hc11/m68hc11.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/m68hc11/m68hc11.md,v
retrieving revision 1.3
diff -u -r1.3 m68hc11.md
--- m68hc11.md	2001/01/11 22:13:52	1.3
+++ m68hc11.md	2001/03/04 09:39:58
@@ -115,7 +115,21 @@
 ;;   Such split pattern must also be valid when z_replacement_completed == 2
 ;;   because flow/cse is not aware that D is composed of {a, b}.
 ;;
+;;---------------------------------------------------------------------------
+;; Constants
 
+(define_constants [
+   ;; Register numbers
+   (X_REGNUM	    0)		; Index X register
+   (D_REGNUM	    1)		; Data register
+   (Y_REGNUM        2)		; Index Y register
+   (SP_REGNUM       3)          ; Stack pointer
+   (PC_REGNUM	    4)		; Program counter
+   (A_REGNUM        5)		; A (high part of D)
+   (B_REGNUM        6)		; B (low part of D)
+   (CC_REGNUM       7)		; Condition code register
+])
+
 ;;--------------------------------------------------------------------
 ;;-  Test
 ;;--------------------------------------------------------------------
@@ -222,10 +236,10 @@
    (use (match_operand:HI 1 "hard_reg_operand" "dxy"))
    (use (reg:HI 11))]
   "z_replacement_completed == 2"
-  [(set (mem:HI (pre_dec:HI (reg:HI 3))) (match_dup 1))
+  [(set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_dup 1))
    (set (match_dup 1) (match_dup 2))
    (set (cc0) (match_dup 0))
-   (set (match_dup 1) (mem:HI (post_inc:HI (reg:HI 3))))]
+   (set (match_dup 1) (mem:HI (post_inc:HI (reg:HI SP_REGNUM))))]
   "operands[2] = gen_rtx (REG, HImode, SOFT_Z_REGNUM);")
 
 
@@ -313,10 +327,10 @@
    (use (match_operand:HI 2 "hard_reg_operand" "dxy"))
    (use (reg:HI 11))]
   "z_replacement_completed == 2"
-  [(set (mem:HI (pre_dec:HI (reg:HI 3))) (match_dup 2))
+  [(set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_dup 2))
    (set (match_dup 2) (match_dup 3))
    (set (cc0) (compare (match_dup 0) (match_dup 1)))
-   (set (match_dup 2) (mem:HI (post_inc:HI (reg:HI 3))))]
+   (set (match_dup 2) (mem:HI (post_inc:HI (reg:HI SP_REGNUM))))]
   "operands[3] = gen_rtx (REG, HImode, SOFT_Z_REGNUM);")
 
 ;;
@@ -330,12 +344,12 @@
 	(compare (match_operand:QI 0 "hard_addr_reg_operand" "xy")
 		 (match_operand:QI 1 "cmp_operand" "uimA")))]
   "z_replacement_completed == 2 && GET_MODE (operands[0]) == QImode"
-  [(parallel [(set (reg:HI 1) (match_dup 3))
-              (set (match_dup 3) (reg:HI 1))])
+  [(parallel [(set (reg:HI D_REGNUM) (match_dup 3))
+              (set (match_dup 3) (reg:HI D_REGNUM))])
    (set (cc0)
-        (compare (reg:QI 1) (match_dup 1)))
-   (parallel [(set (reg:HI 1) (match_dup 3))
-              (set (match_dup 3) (reg:HI 1))])]
+        (compare (reg:QI D_REGNUM) (match_dup 1)))
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 3))
+              (set (match_dup 3) (reg:HI D_REGNUM))])]
   "operands[3] = gen_rtx (REG, HImode, REGNO (operands[0]));")
 
 (define_split
@@ -392,10 +406,10 @@
    (use (match_operand:HI 2 "hard_reg_operand" "dxy"))
    (use (reg:HI 11))]
   "z_replacement_completed == 2"
-  [(set (mem:HI (pre_dec:HI (reg:HI 3))) (match_dup 2))
+  [(set (mem:HI (pre_dec:HI (reg:HI SP_REGNUM))) (match_dup 2))
    (set (match_dup 2) (match_dup 3))
    (set (cc0) (compare (match_dup 0) (match_dup 1)))
-   (set (match_dup 2) (mem:HI (post_inc:HI (reg:HI 3))))]
+   (set (match_dup 2) (mem:HI (post_inc:HI (reg:HI SP_REGNUM))))]
   "operands[3] = gen_rtx (REG, HImode, SOFT_Z_REGNUM);")
 
 (define_expand "cmpdf"
@@ -703,11 +717,11 @@
   "z_replacement_completed == 2 && GET_MODE (operands[0]) == QImode
    && !reg_mentioned_p (operands[0], operands[1])
    && !D_REG_P (operands[1])"
-  [(parallel [(set (reg:HI 1) (match_dup 2))
-              (set (match_dup 2) (reg:HI 1))])
-   (set (reg:QI 1) (match_dup 1))
-   (parallel [(set (reg:HI 1) (match_dup 2))
-              (set (match_dup 2) (reg:HI 1))])]
+  [(parallel [(set (reg:HI D_REGNUM) (match_dup 2))
+              (set (match_dup 2) (reg:HI D_REGNUM))])
+   (set (reg:QI D_REGNUM) (match_dup 1))
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 2))
+              (set (match_dup 2) (reg:HI D_REGNUM))])]
   "operands[2] = gen_rtx (REG, HImode, REGNO (operands[0]));")
 
 ;;
@@ -719,11 +733,11 @@
   "z_replacement_completed == 2 && GET_MODE (operands[1]) == QImode
    && !reg_mentioned_p (operands[1], operands[0])
    && !D_REG_P (operands[0])"
-  [(parallel [(set (reg:HI 1) (match_dup 2))
-              (set (match_dup 2) (reg:HI 1))])
-   (set (match_dup 0) (reg:QI 1))
-   (parallel [(set (reg:HI 1) (match_dup 2))
-              (set (match_dup 2) (reg:HI 1))])]
+  [(parallel [(set (reg:HI D_REGNUM) (match_dup 2))
+              (set (match_dup 2) (reg:HI D_REGNUM))])
+   (set (match_dup 0) (reg:QI D_REGNUM))
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 2))
+              (set (match_dup 2) (reg:HI D_REGNUM))])]
   "operands[2] = gen_rtx (REG, HImode, REGNO (operands[1]));")
 
 (define_insn "*movqi2_push"
@@ -1320,8 +1334,8 @@
   [(set (match_operand:SI 0 "register_operand" "=D")
 	(sign_extend:SI (match_operand:HI 1 "register_operand" "A")))]
   "reload_completed && (Y_REG_P (operands[1]) || Z_REG_P (operands[1]))"
-  [(set (reg:HI 1) (match_dup 1))
-   (set (match_dup 0) (sign_extend:SI (reg:HI 1)))]
+  [(set (reg:HI D_REGNUM) (match_dup 1))
+   (set (match_dup 0) (sign_extend:SI (reg:HI D_REGNUM)))]
   "")
 
 (define_insn "extendhisi2"
@@ -1409,13 +1423,13 @@
 		 (match_dup 0)))
    (clobber (match_scratch:HI 1 "=X"))]
   "reload_completed && z_replacement_completed == 2"
-  [(set (reg:HI 1) (ashift:HI (reg:HI 1) (const_int 1)))
-   (parallel [(set (reg:HI 1) (reg:HI 0))
-              (set (reg:HI 0) (reg:HI 1))])
-   (set (reg:QI 6) (rotate:QI (reg:QI 6) (reg:QI 7)))
-   (set (reg:QI 5) (rotate:QI (reg:QI 5) (reg:QI 7)))
-   (parallel [(set (reg:HI 1) (reg:HI 0))
-              (set (reg:HI 0) (reg:HI 1))])]
+  [(set (reg:HI D_REGNUM) (ashift:HI (reg:HI D_REGNUM) (const_int 1)))
+   (parallel [(set (reg:HI D_REGNUM) (reg:HI X_REGNUM))
+              (set (reg:HI X_REGNUM) (reg:HI D_REGNUM))])
+   (set (reg:QI B_REGNUM) (rotate:QI (reg:QI B_REGNUM) (reg:QI CC_REGNUM)))
+   (set (reg:QI A_REGNUM) (rotate:QI (reg:QI A_REGNUM) (reg:QI CC_REGNUM)))
+   (parallel [(set (reg:HI D_REGNUM) (reg:HI X_REGNUM))
+              (set (reg:HI X_REGNUM) (reg:HI D_REGNUM))])]
   "")
 
 
@@ -1472,9 +1486,9 @@
 		 (match_operand:SI 2 "memory_operand" "m,m")))
    (clobber (match_scratch:HI 3 "=X,X"))]
   "reload_completed"
-  [(set (reg:HI 1) (zero_extend:HI (match_dup 1)))
+  [(set (reg:HI D_REGNUM) (zero_extend:HI (match_dup 1)))
    (parallel [(set (match_dup 0) 
-		   (plus:SI (zero_extend:SI (reg:HI 1)) (match_dup 2)))
+		   (plus:SI (zero_extend:SI (reg:HI D_REGNUM)) (match_dup 2)))
 	      (clobber (match_dup 3))])]
   "")
 
@@ -1658,7 +1672,7 @@
    (clobber (match_scratch:HI 3 "=X"))]
   "reload_completed && z_replacement_completed == 2
    && ((INTVAL (operands[2]) & 0x0FFFF) == 0)"
-  [(set (reg:HI 0) (plus:HI (reg:HI 0) (match_dup 3)))]
+  [(set (reg:HI X_REGNUM) (plus:HI (reg:HI X_REGNUM) (match_dup 3)))]
   "operands[3] = m68hc11_gen_highpart (HImode, operands[2]);")
 
 (define_split
@@ -1669,13 +1683,13 @@
   "reload_completed && z_replacement_completed == 2
    && (GET_CODE (operands[2]) != CONST_INT || 
         (!(INTVAL (operands[2]) >= -65536 && INTVAL (operands[2]) <= 65535)))"
-  [(set (reg:HI 1) (plus:HI (reg:HI 1) (match_dup 3)))
-   (parallel [(set (reg:HI 1) (reg:HI 0))
-              (set (reg:HI 0) (reg:HI 1))])
-   (set (reg:QI 6) (plus:QI (plus:QI (reg:QI 7) (reg:QI 6)) (match_dup 4)))
-   (set (reg:QI 5) (plus:QI (plus:QI (reg:QI 7) (reg:QI 5)) (match_dup 5)))
-   (parallel [(set (reg:HI 1) (reg:HI 0))
-              (set (reg:HI 0) (reg:HI 1))])]
+  [(set (reg:HI D_REGNUM) (plus:HI (reg:HI D_REGNUM) (match_dup 3)))
+   (parallel [(set (reg:HI D_REGNUM) (reg:HI X_REGNUM))
+              (set (reg:HI X_REGNUM) (reg:HI D_REGNUM))])
+   (set (reg:QI B_REGNUM) (plus:QI (plus:QI (reg:QI CC_REGNUM) (reg:QI B_REGNUM)) (match_dup 4)))
+   (set (reg:QI A_REGNUM) (plus:QI (plus:QI (reg:QI CC_REGNUM) (reg:QI A_REGNUM)) (match_dup 5)))
+   (parallel [(set (reg:HI D_REGNUM) (reg:HI X_REGNUM))
+              (set (reg:HI X_REGNUM) (reg:HI D_REGNUM))])]
   "operands[3] = m68hc11_gen_lowpart (HImode, operands[2]);
    operands[4] = m68hc11_gen_highpart (HImode, operands[2]);
    operands[5] = m68hc11_gen_highpart (QImode, operands[4]);
@@ -1689,7 +1703,7 @@
   [(set (match_operand:HI 0 "register_operand" "=x")
            (plus:HI (plus:HI (match_operand:HI 1 "register_operand" "0")
 		             (const_int 0)) 
-		    (reg:HI 7)))]
+		    (reg:HI CC_REGNUM)))]
   ""
   "*
 {
@@ -2110,7 +2124,7 @@
 ;;
 (define_insn "*adcq"
   [(set (match_operand:QI 0 "register_operand" "=q")
-        (plus:QI (plus:QI (reg:QI 7)
+        (plus:QI (plus:QI (reg:QI CC_REGNUM)
                           (match_operand:QI 1 "register_operand" "%0"))
                  (match_operand:QI 2 "general_operand" "ium")))]
   ""
@@ -2201,13 +2215,13 @@
    (clobber (match_scratch:HI 3 "=X"))]
   "reload_completed && z_replacement_completed == 2
    && X_REG_P (operands[1])"
-  [(set (reg:HI 1) (minus:HI (reg:HI 1) (match_dup 3)))
-   (parallel [(set (reg:HI 0) (reg:HI 1))
-              (set (reg:HI 1) (reg:HI 0))])
-   (set (reg:QI 6) (minus:QI (minus:QI (reg:QI 7) (reg:QI 6)) (match_dup 4)))
-   (set (reg:QI 5) (minus:QI (minus:QI (reg:QI 7) (reg:QI 5)) (match_dup 5)))
-   (parallel [(set (reg:HI 0) (reg:HI 1))
-              (set (reg:HI 1) (reg:HI 0))])]
+  [(set (reg:HI D_REGNUM) (minus:HI (reg:HI D_REGNUM) (match_dup 3)))
+   (parallel [(set (reg:HI X_REGNUM) (reg:HI D_REGNUM))
+              (set (reg:HI D_REGNUM) (reg:HI X_REGNUM))])
+   (set (reg:QI B_REGNUM) (minus:QI (minus:QI (reg:QI CC_REGNUM) (reg:QI B_REGNUM)) (match_dup 4)))
+   (set (reg:QI A_REGNUM) (minus:QI (minus:QI (reg:QI CC_REGNUM) (reg:QI A_REGNUM)) (match_dup 5)))
+   (parallel [(set (reg:HI X_REGNUM) (reg:HI D_REGNUM))
+              (set (reg:HI D_REGNUM) (reg:HI X_REGNUM))])]
   "operands[3] = m68hc11_gen_lowpart (HImode, operands[2]);
    operands[4] = m68hc11_gen_highpart (HImode, operands[2]);
    operands[5] = m68hc11_gen_highpart (QImode, operands[4]);
@@ -2220,13 +2234,13 @@
    (clobber (match_scratch:HI 3 "=X"))]
   "reload_completed && z_replacement_completed == 2
    && X_REG_P (operands[2])"
-  [(set (reg:HI 1) (minus:HI (reg:HI 1) (match_dup 3)))
-   (parallel [(set (reg:HI 0) (reg:HI 1))
-              (set (reg:HI 1) (reg:HI 0))])
-   (set (reg:QI 6) (minus:QI (minus:QI (reg:QI 7) (reg:QI 6)) (match_dup 4)))
-   (set (reg:QI 5) (minus:QI (minus:QI (reg:QI 7) (reg:QI 5)) (match_dup 5)))
-   (parallel [(set (reg:HI 0) (reg:HI 1))
-              (set (reg:HI 1) (reg:HI 0))])
+  [(set (reg:HI D_REGNUM) (minus:HI (reg:HI D_REGNUM) (match_dup 3)))
+   (parallel [(set (reg:HI X_REGNUM) (reg:HI D_REGNUM))
+              (set (reg:HI D_REGNUM) (reg:HI X_REGNUM))])
+   (set (reg:QI B_REGNUM) (minus:QI (minus:QI (reg:QI CC_REGNUM) (reg:QI B_REGNUM)) (match_dup 4)))
+   (set (reg:QI A_REGNUM) (minus:QI (minus:QI (reg:QI CC_REGNUM) (reg:QI A_REGNUM)) (match_dup 5)))
+   (parallel [(set (reg:HI X_REGNUM) (reg:HI D_REGNUM))
+              (set (reg:HI D_REGNUM) (reg:HI X_REGNUM))])
    (set (reg:SI 0) (neg:SI (reg:SI 0)))]
   "operands[3] = m68hc11_gen_lowpart (HImode, operands[1]);
    operands[4] = m68hc11_gen_highpart (HImode, operands[1]);
@@ -2365,7 +2379,7 @@
 ;;
 (define_insn "*subcq"
   [(set (match_operand:QI 0 "register_operand" "=q")
-        (minus:QI (minus:QI (reg:QI 7)
+        (minus:QI (minus:QI (reg:QI CC_REGNUM)
                             (match_operand:QI 1 "register_operand" "0"))
                   (match_operand:QI 2 "general_operand" "ium")))]
   ""
@@ -2927,10 +2941,10 @@
 		     (match_operand:QI 1 "general_operand" "dxy,imu"))
 		  (match_operand:SI 2 "general_operand" "imuD,imuD")]))]
   "z_replacement_completed == 2"
-  [(set (reg:QI 5) (match_dup 4))
-   (set (reg:QI 1) (match_dup 7))
-   (set (reg:QI 6) (match_op_dup 3 [(reg:QI 6) (match_dup 5)]))
-   (set (reg:HI 0) (match_dup 6))]
+  [(set (reg:QI A_REGNUM) (match_dup 4))
+   (set (reg:QI D_REGNUM) (match_dup 7))
+   (set (reg:QI B_REGNUM) (match_op_dup 3 [(reg:QI B_REGNUM) (match_dup 5)]))
+   (set (reg:HI X_REGNUM) (match_dup 6))]
   "PUT_MODE (operands[3], QImode);
    if (X_REG_P (operands[2]))
      {
@@ -2957,9 +2971,9 @@
 		     (match_operand:HI 1 "general_operand" "dA,imu"))
 		  (match_operand:SI 2 "general_operand" "imuD,imuD")]))]
   "reload_completed"
-  [(set (reg:HI 1) (match_dup 4))
-   (set (reg:HI 1) (match_op_dup 3 [(reg:HI 1) (match_dup 5)]))
-   (set (reg:HI 0) (match_dup 6))]
+  [(set (reg:HI D_REGNUM) (match_dup 4))
+   (set (reg:HI D_REGNUM) (match_op_dup 3 [(reg:HI D_REGNUM) (match_dup 5)]))
+   (set (reg:HI X_REGNUM) (match_dup 6))]
   "PUT_MODE (operands[3], HImode);
    if (X_REG_P (operands[2]))
      {
@@ -3003,9 +3017,9 @@
 		     (match_operand:QI 1 "general_operand" "imud"))
 		 (match_operand:HI 2 "general_operand" "dimu")]))]
   "z_replacement_completed == 2"
-  [(set (reg:QI 6) (match_dup 6))
-   (set (reg:QI 5) (match_dup 4))
-   (set (reg:QI 6) (match_op_dup 3 [(reg:QI 6) (match_dup 5)]))]
+  [(set (reg:QI B_REGNUM) (match_dup 6))
+   (set (reg:QI A_REGNUM) (match_dup 4))
+   (set (reg:QI B_REGNUM) (match_op_dup 3 [(reg:QI B_REGNUM) (match_dup 5)]))]
   "
    PUT_MODE (operands[3], QImode);
    if (D_REG_P (operands[2]))
@@ -3034,8 +3048,8 @@
 		     (match_operand:HI 2 "general_operand" "dimu")
 		     (const_int 8))]))]
   "z_replacement_completed == 2"
-  [(set (reg:QI 6) (match_dup 5))
-   (set (reg:QI 5) (match_dup 4))]
+  [(set (reg:QI A_REGNUM) (match_dup 4))
+   (set (reg:QI B_REGNUM) (match_dup 5))]
   "
    if (GET_CODE (operands[3]) == AND)
      {
@@ -3074,9 +3088,9 @@
 			(const_int 16))
 		 (match_operand:SI 2 "general_operand" "uim,0")]))]
   "reload_completed"
-  [(set (reg:HI 1) (match_dup 4))
-   (set (reg:HI 1) (match_op_dup 3 [(reg:HI 1) (match_dup 5)]))
-   (set (reg:HI 0) (match_dup 6))]
+  [(set (reg:HI D_REGNUM) (match_dup 4))
+   (set (reg:HI D_REGNUM) (match_op_dup 3 [(reg:HI D_REGNUM) (match_dup 5)]))
+   (set (reg:HI X_REGNUM) (match_dup 6))]
   "operands[5] = m68hc11_gen_highpart (HImode, operands[1]);
    if (X_REG_P (operands[2]))
      {
@@ -3110,11 +3124,11 @@
 			(const_int 16))
 		 (match_operand:SI 2 "general_operand" "0,0")]))]
   "z_replacement_completed == 2"
-  [(parallel [(set (reg:HI 1) (reg:HI 0))
-              (set (reg:HI 0) (reg:HI 1))])
-  (set (reg:HI 1) (match_op_dup 3 [(reg:HI 1) (match_dup 4)]))
-  (parallel [(set (reg:HI 1) (reg:HI 0))
-             (set (reg:HI 0) (reg:HI 1))])]
+  [(parallel [(set (reg:HI D_REGNUM) (reg:HI X_REGNUM))
+              (set (reg:HI X_REGNUM) (reg:HI D_REGNUM))])
+  (set (reg:HI D_REGNUM) (match_op_dup 3 [(reg:HI D_REGNUM) (match_dup 4)]))
+  (parallel [(set (reg:HI D_REGNUM) (reg:HI X_REGNUM))
+             (set (reg:HI X_REGNUM) (reg:HI D_REGNUM))])]
   "operands[4] = m68hc11_gen_lowpart (HImode, operands[1]);
    PUT_MODE (operands[3], HImode);")
 
@@ -3183,11 +3197,11 @@
 	        && INTVAL (operands[2]) <= 4)))"
   [(set (match_dup 4) (match_dup 5))
    (set (match_dup 8) (match_dup 7))
-   (parallel [(set (reg:HI 1) (match_dup 0))
-              (set (match_dup 0) (reg:HI 1))])
-   (set (reg:HI 1) (match_op_dup 3 [(reg:HI 1) (match_dup 6)]))
-   (parallel [(set (reg:HI 1) (match_dup 0))
-              (set (match_dup 0) (reg:HI 1))])]
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 0))
+              (set (match_dup 0) (reg:HI D_REGNUM))])
+   (set (reg:HI D_REGNUM) (match_op_dup 3 [(reg:HI D_REGNUM) (match_dup 6)]))
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 0))
+              (set (match_dup 0) (reg:HI D_REGNUM))])]
   "
    /* Save the operand2 in a temporary location and use it. */
    if (H_REG_P (operands[2])
@@ -3229,11 +3243,11 @@
 	        && INTVAL (operands[2]) >= -4
 	        && INTVAL (operands[2]) <= 4)))"
   [(set (match_dup 0) (match_dup 1))
-   (parallel [(set (reg:HI 1) (match_dup 0))
-              (set (match_dup 0) (reg:HI 1))])
-   (set (reg:HI 1) (match_op_dup 3 [(reg:HI 1) (match_dup 2)]))
-   (parallel [(set (reg:HI 1) (match_dup 0))
-              (set (match_dup 0) (reg:HI 1))])]
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 0))
+              (set (match_dup 0) (reg:HI D_REGNUM))])
+   (set (reg:HI D_REGNUM) (match_op_dup 3 [(reg:HI D_REGNUM) (match_dup 2)]))
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 0))
+              (set (match_dup 0) (reg:HI D_REGNUM))])]
   "
    ")
 
@@ -3283,11 +3297,11 @@
             [(match_operand 1 "general_operand" "uim*d*A")]))]
   "z_replacement_completed == 2"
   [(set (match_dup 4) (match_dup 5))
-   (parallel [(set (reg:HI 1) (match_dup 0))
-              (set (match_dup 0) (reg:HI 1))])
-   (set (reg:HI 1) (match_op_dup 2 [(match_dup 3)]))
-   (parallel [(set (reg:HI 1) (match_dup 0))
-              (set (match_dup 0) (reg:HI 1))])]
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 0))
+              (set (match_dup 0) (reg:HI D_REGNUM))])
+   (set (reg:HI D_REGNUM) (match_op_dup 2 [(match_dup 3)]))
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 0))
+              (set (match_dup 0) (reg:HI D_REGNUM))])]
   "
 {
   if ((H_REG_P (operands[1])
@@ -3331,11 +3345,11 @@
         && GET_CODE (operands[2]) == CONST_INT
         && (INTVAL (operands[2]) == 1 || INTVAL (operands[2]) == -1))"
   [(set (match_dup 5) (match_dup 6))
-   (parallel [(set (reg:HI 1) (match_dup 4))
-              (set (match_dup 4) (reg:HI 1))])
-   (set (reg:QI 1) (match_op_dup 3 [(reg:QI 1) (match_dup 7)]))
-   (parallel [(set (reg:HI 1) (match_dup 4))
-              (set (match_dup 4) (reg:HI 1))])]
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 4))
+              (set (match_dup 4) (reg:HI D_REGNUM))])
+   (set (reg:QI D_REGNUM) (match_op_dup 3 [(reg:QI D_REGNUM) (match_dup 7)]))
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 4))
+              (set (match_dup 4) (reg:HI D_REGNUM))])]
   "operands[4] = gen_rtx (REG, HImode, REGNO (operands[0]));
 
    /* For the second operand is a hard register or if the address
@@ -3410,11 +3424,11 @@
             [(match_operand:QI 1 "general_operand" "uim*d*x*y")]))]
   "z_replacement_completed == 2"
   [(set (match_dup 4) (match_dup 5))
-   (parallel [(set (reg:HI 1) (match_dup 3))
-              (set (match_dup 3) (reg:HI 1))])
-   (set (reg:QI 1) (match_op_dup 2 [(match_dup 6)]))
-   (parallel [(set (reg:HI 1) (match_dup 3))
-              (set (match_dup 3) (reg:HI 1))])]
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 3))
+              (set (match_dup 3) (reg:HI D_REGNUM))])
+   (set (reg:QI D_REGNUM) (match_op_dup 2 [(match_dup 6)]))
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 3))
+              (set (match_dup 3) (reg:HI D_REGNUM))])]
   "
 {
   operands[3] = gen_rtx (REG, HImode, REGNO (operands[0]));
@@ -3530,12 +3544,12 @@
 	(not:SI (match_operand:SI 1 "non_push_operand" "0")))]
   "z_replacement_completed == 2
    && (!D_REG_P (operands[0]) || (optimize && optimize_size == 0))"
-  [(set (reg:HI 1) (not:HI (reg:HI 1)))
-   (parallel [(set (reg:HI 0) (reg:HI 1))
-              (set (reg:HI 1) (reg:HI 0))])
-   (set (reg:HI 1) (not:HI (reg:HI 1)))
-   (parallel [(set (reg:HI 0) (reg:HI 1))
-              (set (reg:HI 1) (reg:HI 0))])]
+  [(set (reg:HI D_REGNUM) (not:HI (reg:HI D_REGNUM)))
+   (parallel [(set (reg:HI X_REGNUM) (reg:HI D_REGNUM))
+              (set (reg:HI D_REGNUM) (reg:HI X_REGNUM))])
+   (set (reg:HI D_REGNUM) (not:HI (reg:HI D_REGNUM)))
+   (parallel [(set (reg:HI X_REGNUM) (reg:HI D_REGNUM))
+              (set (reg:HI D_REGNUM) (reg:HI X_REGNUM))])]
   "
 {
   /* The result pattern only works for D register.
@@ -3623,15 +3637,15 @@
     (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 7)))
+    (set (match_dup 2) (rotate:HI (match_dup 2) (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 7)))
+    (set (match_dup 2) (rotate:HI (match_dup 2) (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 7)))
+    (set (match_dup 2) (rotate:HI (match_dup 2) (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]);
@@ -3663,8 +3677,8 @@
 				(const_int 16))
 		   (match_operand:SI 2 "general_operand" "0")))]
   "z_replacement_completed == 2"
-  [(set (reg:HI 1) (plus:HI (reg:HI 1) (match_dup 3)))
-   (set (reg:HI 0) (plus:HI (plus:HI (reg:HI 0) (const_int 0)) (reg:HI 7)))]
+  [(set (reg:HI D_REGNUM) (plus:HI (reg:HI D_REGNUM) (match_dup 3)))
+   (set (reg:HI X_REGNUM) (plus:HI (plus:HI (reg:HI X_REGNUM) (const_int 0)) (reg:HI CC_REGNUM)))]
   "operands[3] = m68hc11_gen_highpart (HImode, operands[1]);")
 
 (define_insn "addsi_ashift16"
@@ -3685,7 +3699,7 @@
 		   (match_operand:SI 1 "general_operand" "0")))
    (clobber (match_scratch:HI 3 "=X"))]
   "0 && reload_completed && z_replacement_completed == 2"
-  [(set (reg:HI 0) (plus:HI (reg:HI 0) (match_dup 4)))]
+  [(set (reg:HI X_REGNUM) (plus:HI (reg:HI X_REGNUM) (match_dup 4)))]
   "
 {
   operands[4] = m68hc11_gen_lowpart (HImode, operands[2]);
@@ -3705,8 +3719,8 @@
 			   (const_int 65535))
 		   (match_operand:SI 2 "general_operand" "0")))]
   "z_replacement_completed == 2"
-  [(set (reg:HI 1) (plus:HI (reg:HI 1) (match_dup 3)))
-   (set (reg:HI 0) (plus:HI (plus:HI (reg:HI 0) (const_int 0)) (reg:HI 7)))]
+  [(set (reg:HI D_REGNUM) (plus:HI (reg:HI D_REGNUM) (match_dup 3)))
+   (set (reg:HI X_REGNUM) (plus:HI (plus:HI (reg:HI X_REGNUM) (const_int 0)) (reg:HI CC_REGNUM)))]
   "operands[3] = m68hc11_gen_lowpart (HImode, operands[1]);")
 
 ;;
@@ -3766,8 +3780,8 @@
 	           (const_int 16)))
    (clobber (match_scratch:HI 2 "=X"))]
    "reload_completed"
-   [(set (reg:HI 0) (match_dup 1))
-    (set (reg:HI 1) (const_int 0))]
+   [(set (reg:HI X_REGNUM) (match_dup 1))
+    (set (reg:HI D_REGNUM) (const_int 0))]
    "")
 
 (define_insn "*ashlsi3_const1"
@@ -4387,14 +4401,14 @@
 		     (match_operand:DI 2 "const_int_operand" "")))
    (clobber (match_scratch:HI 3 "=d"))]
    "z_replacement_completed && INTVAL (operands[2]) >= 56"
-   [(set (reg:QI 1) (match_dup 9))
-    (set (reg:QI 1) (lshiftrt:QI (reg:QI 1) (match_dup 8)))
-    (set (reg:HI 1) (zero_extend:HI (reg:QI 1)))
-    (set (match_dup 4) (reg:HI 1))
-    (set (reg:QI 1) (const_int 0))
-    (set (match_dup 5) (reg:HI 1))
-    (set (match_dup 6) (reg:HI 1))
-    (set (match_dup 7) (reg:HI 1))]
+   [(set (reg:QI D_REGNUM) (match_dup 9))
+    (set (reg:QI D_REGNUM) (lshiftrt:QI (reg:QI D_REGNUM) (match_dup 8)))
+    (set (reg:HI D_REGNUM) (zero_extend:HI (reg:QI D_REGNUM)))
+    (set (match_dup 4) (reg:HI D_REGNUM))
+    (set (reg:QI D_REGNUM) (const_int 0))
+    (set (match_dup 5) (reg:HI D_REGNUM))
+    (set (match_dup 6) (reg:HI D_REGNUM))
+    (set (match_dup 7) (reg:HI D_REGNUM))]
    "operands[8] = gen_rtx (CONST_INT, VOIDmode, INTVAL (operands[2]) - 56);
     operands[4] = m68hc11_gen_lowpart (SImode, operands[0]);
     operands[5] = m68hc11_gen_highpart (HImode, operands[4]);
@@ -4415,13 +4429,13 @@
    (clobber (match_scratch:HI 3 "=d"))]
    "z_replacement_completed && INTVAL (operands[2]) >= 48 
     && INTVAL (operands[2]) < 56"
-   [(set (reg:HI 1) (match_dup 9))
-    (set (reg:HI 1) (lshiftrt:HI (reg:HI 1) (match_dup 8)))
-    (set (match_dup 4) (reg:HI 1))
-    (set (reg:HI 1) (const_int 0))
-    (set (match_dup 5) (reg:HI 1))
-    (set (match_dup 6) (reg:HI 1))
-    (set (match_dup 7) (reg:HI 1))]
+   [(set (reg:HI D_REGNUM) (match_dup 9))
+    (set (reg:HI D_REGNUM) (lshiftrt:HI (reg:HI D_REGNUM) (match_dup 8)))
+    (set (match_dup 4) (reg:HI D_REGNUM))
+    (set (reg:HI D_REGNUM) (const_int 0))
+    (set (match_dup 5) (reg:HI D_REGNUM))
+    (set (match_dup 6) (reg:HI D_REGNUM))
+    (set (match_dup 7) (reg:HI D_REGNUM))]
    "operands[8] = gen_rtx (CONST_INT, VOIDmode, INTVAL (operands[2]) - 48);
     operands[4] = m68hc11_gen_lowpart (SImode, operands[0]);
     operands[5] = m68hc11_gen_highpart (HImode, operands[4]);
@@ -4452,15 +4466,15 @@
     (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 7)))
+    (set (match_dup 2) (rotatert:HI (match_dup 2) (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 7)))
+    (set (match_dup 2) (rotatert:HI (match_dup 2) (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 7)))
+    (set (match_dup 2) (rotatert:HI (match_dup 2) (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]);
@@ -4868,7 +4882,7 @@
 (define_insn "*rotlqi3_with_carry"
   [(set (match_operand:QI 0 "register_operand" "=d,!q")
 	(rotate:QI (match_operand:QI 1 "register_operand" "0,0")
-		   (reg:QI 7)))]
+		   (reg:QI CC_REGNUM)))]
   ""
   "*
 {
@@ -4881,7 +4895,7 @@
 (define_insn "*rotlhi3_with_carry"
   [(set (match_operand:HI 0 "register_operand" "=d")
 	(rotate:HI (match_operand:HI 1 "register_operand" "0")
-		   (reg:HI 7)))]
+		   (reg:HI CC_REGNUM)))]
   ""
   "*
 {
@@ -4892,7 +4906,7 @@
 (define_insn "*rotrhi3_with_carry"
   [(set (match_operand:HI 0 "register_operand" "=d")
 	(rotatert:HI (match_operand:HI 1 "register_operand" "0")
-		     (reg:HI 7)))]
+		     (reg:HI CC_REGNUM)))]
   ""
   "*
 {
@@ -5478,7 +5492,7 @@
 
 (define_insn "*return_16bit"
   [(return)
-   (use (reg:HI 1))]
+   (use (reg:HI D_REGNUM))]
   "reload_completed && m68hc11_total_frame_size () == 0"
   "*
 {
@@ -5545,13 +5559,13 @@
 (define_peephole
   [(set (match_operand:HI 0 "hard_reg_operand" "xy")
 	(match_operand:HI 1 "const_int_operand" ""))
-   (parallel [(set (reg:HI 1) (match_dup 0))
-	      (set (match_dup 0) (reg:HI 1))])
-   (set (reg:HI 1)
-	(plus (reg:HI 1)
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 0))
+	      (set (match_dup 0) (reg:HI D_REGNUM))])
+   (set (reg:HI D_REGNUM)
+	(plus (reg:HI D_REGNUM)
 	      (match_operand:HI 2 "general_operand" "")))
-   (parallel [(set (reg:HI 1) (match_dup 0))
-	      (set (match_dup 0) (reg:HI 1))])]
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 0))
+	      (set (match_dup 0) (reg:HI D_REGNUM))])]
   "(INTVAL (operands[1]) & 0x0FF) == 0"
   "*
 {
@@ -5634,9 +5648,9 @@
 ;; (set ...) insn.
 ;;
 (define_peephole
-  [(set (match_operand:HI 0 "hard_reg_operand" "A") (reg:HI 1))
-   (parallel [(set (reg:HI 1) (match_dup 0))
-              (set (match_dup 0) (reg:HI 1))])]
+  [(set (match_operand:HI 0 "hard_reg_operand" "A") (reg:HI D_REGNUM))
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 0))
+              (set (match_dup 0) (reg:HI D_REGNUM))])]
   "find_regno_note (ins1, REG_DEAD, HARD_D_REGNUM)"
   "*
 {
@@ -5648,10 +5662,10 @@
 ;; Same as above but due to some split, there may be a noop set
 ;; between the two.
 (define_peephole
-  [(set (match_operand:HI 0 "hard_reg_operand" "A") (reg:HI 1))
+  [(set (match_operand:HI 0 "hard_reg_operand" "A") (reg:HI D_REGNUM))
    (set (match_dup 0) (match_dup 0))
-   (parallel [(set (reg:HI 1) (match_dup 0))
-              (set (match_dup 0) (reg:HI 1))])]
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 0))
+              (set (match_dup 0) (reg:HI D_REGNUM))])]
   "find_regno_note (ins1, REG_DEAD, HARD_D_REGNUM)"
   "*
 {
@@ -5665,9 +5679,9 @@
 ;; and we must, at least, setup X/Y with value of D.
 ;;
 (define_peephole
-  [(set (match_operand:HI 0 "hard_reg_operand" "A") (reg:HI 1))
-   (parallel [(set (reg:HI 1) (match_dup 0))
-              (set (match_dup 0) (reg:HI 1))])]
+  [(set (match_operand:HI 0 "hard_reg_operand" "A") (reg:HI D_REGNUM))
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 0))
+              (set (match_dup 0) (reg:HI D_REGNUM))])]
   ""
   "*
 {
@@ -5685,9 +5699,9 @@
 ;;; need to emit anything. Otherwise, we just need an copy of D to X/Y.
 ;;;
 (define_peephole
-  [(parallel [(set (reg:HI 1) (match_operand:HI 0 "hard_reg_operand" "A"))
-              (set (match_dup 0) (reg:HI 1))])
-   (set (reg:HI 1) (match_dup 0))]
+  [(parallel [(set (reg:HI D_REGNUM) (match_operand:HI 0 "hard_reg_operand" "A"))
+              (set (match_dup 0) (reg:HI D_REGNUM))])
+   (set (reg:HI D_REGNUM) (match_dup 0))]
   "find_regno_note (insn, REG_DEAD, REGNO (operands[0]))"
   "*
 {
@@ -5701,9 +5715,9 @@
 ;;; need to emit anything. Otherwise, we just need an copy of D to X/Y.
 ;;;
 (define_peephole
-  [(parallel [(set (reg:HI 1) (match_operand:HI 0 "hard_reg_operand" "A"))
-              (set (match_dup 0) (reg:HI 1))])
-   (set (reg:QI 1) (match_operand:QI 1 "hard_reg_operand" "A"))]
+  [(parallel [(set (reg:HI D_REGNUM) (match_operand:HI 0 "hard_reg_operand" "A"))
+              (set (match_dup 0) (reg:HI D_REGNUM))])
+   (set (reg:QI D_REGNUM) (match_operand:QI 1 "hard_reg_operand" "A"))]
   "REGNO (operands[0]) == REGNO (operands[1])
    && find_regno_note (insn, REG_DEAD, REGNO (operands[0]))"
   "*
@@ -5718,9 +5732,9 @@
 ;;; need to emit anything. Otherwise, we just need a copy of D to X/Y.
 ;;;
 (define_peephole
-  [(parallel [(set (reg:HI 1) (match_operand:HI 0 "hard_reg_operand" "A"))
-              (set (match_dup 0) (reg:HI 1))])
-   (set (reg:HI 1) (match_dup 0))]
+  [(parallel [(set (reg:HI D_REGNUM) (match_operand:HI 0 "hard_reg_operand" "A"))
+              (set (match_dup 0) (reg:HI D_REGNUM))])
+   (set (reg:HI D_REGNUM) (match_dup 0))]
   ""
   "*
 {
@@ -5738,9 +5752,9 @@
 ;;; with the xgdx.
 ;;;
 (define_peephole
-  [(parallel [(set (reg:HI 1) (match_operand:HI 0 "hard_reg_operand" "A"))
-              (set (match_dup 0) (reg:HI 1))])
-   (set (reg:QI 1) (match_operand:QI 1 "hard_reg_operand" "A"))]
+  [(parallel [(set (reg:HI D_REGNUM) (match_operand:HI 0 "hard_reg_operand" "A"))
+              (set (match_dup 0) (reg:HI D_REGNUM))])
+   (set (reg:QI D_REGNUM) (match_operand:QI 1 "hard_reg_operand" "A"))]
   "REGNO (operands[0]) == REGNO (operands[1])"
   "*
 {
@@ -5757,10 +5771,10 @@
 ;;; Catch two consecutive xgdx or xgdy, emit nothing.
 ;;;
 (define_peephole
-  [(parallel [(set (reg:HI 1) (match_operand:HI 0 "hard_reg_operand" "A"))
-              (set (match_dup 0) (reg:HI 1))])
-   (parallel [(set (reg:HI 1) (match_dup 0))
-              (set (match_dup 0) (reg:HI 1))])]
+  [(parallel [(set (reg:HI D_REGNUM) (match_operand:HI 0 "hard_reg_operand" "A"))
+              (set (match_dup 0) (reg:HI D_REGNUM))])
+   (parallel [(set (reg:HI D_REGNUM) (match_dup 0))
+              (set (match_dup 0) (reg:HI D_REGNUM))])]
   ""
   "*
 {
@@ -5834,7 +5848,7 @@
 ;;
 (define_peephole
   [(set (match_operand:HI 0 "hard_reg_operand" "dA") (const_int -1))
-   (set (match_dup 0) (plus:HI (match_dup 0) (reg:HI 3)))]
+   (set (match_dup 0) (plus:HI (match_dup 0) (reg:HI SP_REGNUM)))]
   "TARGET_M6811"
   "*
 {

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]