Commit a67bac5f by Stephane Carrez Committed by Stephane Carrez

m68hc11.md ("bitcmpqi" split): No need to test the mode of operand 0.

	* 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.

From-SVN: r65524
parent 09214424
2003-04-12 Stephane Carrez <stcarrez@nerim.fr> 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. * config/m68hc11/m68hc11.md (SOFT_Z_REGNUM): New constant.
("tstqi_z_used" split): Use it. ("tstqi_z_used" split): Use it.
("cmphi_z_used"): Likewise. ("cmphi_z_used"): Likewise.
......
...@@ -445,7 +445,7 @@ ...@@ -445,7 +445,7 @@
[(set (cc0) [(set (cc0)
(and:QI (match_operand:QI 0 "tst_operand" "") (and:QI (match_operand:QI 0 "tst_operand" "")
(match_operand:QI 1 "hard_addr_reg_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 (match_dup 3) (match_dup 2))
(set (cc0) (and:QI (match_dup 0) (match_dup 4)))] (set (cc0) (and:QI (match_dup 0) (match_dup 4)))]
"operands[2] = gen_rtx (REG, HImode, REGNO (operands[1])); "operands[2] = gen_rtx (REG, HImode, REGNO (operands[1]));
...@@ -4472,15 +4472,21 @@ ...@@ -4472,15 +4472,21 @@
(set (match_dup 4) (match_dup 2)) (set (match_dup 4) (match_dup 2))
(set (match_dup 2) (match_dup 5)) (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 6) (match_dup 2))
(set (match_dup 2) (match_dup 7)) (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 8) (match_dup 2))
(set (match_dup 2) (match_dup 9)) (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))] (set (match_dup 10) (match_dup 2))]
"operands[3] = m68hc11_gen_lowpart (SImode, operands[1]); "operands[3] = m68hc11_gen_lowpart (SImode, operands[1]);
operands[5] = m68hc11_gen_highpart (HImode, operands[3]); operands[5] = m68hc11_gen_highpart (HImode, operands[3]);
...@@ -5335,15 +5341,18 @@ ...@@ -5335,15 +5341,18 @@
(set (match_dup 4) (match_dup 2)) (set (match_dup 4) (match_dup 2))
(set (match_dup 2) (match_dup 5)) (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 6) (match_dup 2))
(set (match_dup 2) (match_dup 7)) (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 8) (match_dup 2))
(set (match_dup 2) (match_dup 9)) (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))] (set (match_dup 10) (match_dup 2))]
"operands[3] = m68hc11_gen_highpart (SImode, operands[1]); "operands[3] = m68hc11_gen_highpart (SImode, operands[1]);
operands[5] = m68hc11_gen_lowpart (HImode, operands[3]); operands[5] = m68hc11_gen_lowpart (HImode, operands[3]);
...@@ -5770,7 +5779,8 @@ ...@@ -5770,7 +5779,8 @@
(define_insn "*rotlhi3_with_carry" (define_insn "*rotlhi3_with_carry"
[(set (match_operand:HI 0 "register_operand" "=d") [(set (match_operand:HI 0 "register_operand" "=d")
(rotate:HI (match_operand:HI 1 "register_operand" "0") (rotate:HI (match_operand:HI 1 "register_operand" "0")
(reg:HI CC_REGNUM)))] (const_int 1)))
(clobber (reg:HI CC_REGNUM))]
"" ""
"* "*
{ {
...@@ -5781,7 +5791,8 @@ ...@@ -5781,7 +5791,8 @@
(define_insn "*rotrhi3_with_carry" (define_insn "*rotrhi3_with_carry"
[(set (match_operand:HI 0 "register_operand" "=d") [(set (match_operand:HI 0 "register_operand" "=d")
(rotatert:HI (match_operand:HI 1 "register_operand" "0") (rotatert:HI (match_operand:HI 1 "register_operand" "0")
(reg:HI CC_REGNUM)))] (const_int 1)))
(clobber (reg:HI CC_REGNUM))]
"" ""
"* "*
{ {
...@@ -6713,8 +6724,7 @@ ...@@ -6713,8 +6724,7 @@
(set (match_operand:HI 2 "hard_reg_operand" "") (set (match_operand:HI 2 "hard_reg_operand" "")
(match_dup 1))] (match_dup 1))]
"(D_REG_P (operands[2]) || X_REG_P (operands[2]) || Y_REG_P (operands[2])) "(D_REG_P (operands[2]) || X_REG_P (operands[2]) || Y_REG_P (operands[2]))
&& !reg_mentioned_p (operands[2], operands[0]) && !reg_mentioned_p (operands[2], operands[0])"
&& GET_MODE (operands[2]) == HImode"
[(set (match_dup 2) (match_dup 1)) [(set (match_dup 2) (match_dup 1))
(set (match_dup 0) (match_dup 2))] (set (match_dup 0) (match_dup 2))]
"") "")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment