Commit ae959397 by Michael Hayes Committed by Michael Hayes

* config/c4x/c4x.md: Delete parallel instruction peepholes.

From-SVN: r29581
parent 7ae0297f
Wed Sep 22 20:25:00 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.md: Delete parallel instruction peepholes.
Wed Sep 22 19:59:19 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> Wed Sep 22 19:59:19 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots. * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
......
...@@ -6675,45 +6675,6 @@ ...@@ -6675,45 +6675,6 @@
return \"br%#\\t%C1\";" return \"br%#\\t%C1\";"
[(set_attr "type" "jump")]) [(set_attr "type" "jump")])
;
; Peepholes for parallel instructions
;
(define_peephole
[(set (match_operand:QI 0 "ext_low_reg_operand" "")
(match_operand:QI 1 "par_ind_operand" ""))
(set (match_operand:QI 2 "ext_low_reg_operand" "")
(match_operand:QI 3 "par_ind_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[2]))
&& ! c4x_address_conflict (operands[1], operands[3], 0, 0)"
"ldi1\\t%1,%0\\n||\\tldi2\\t%3,%2")
; load occurs before store if 1 and 2 point to same address
(define_peephole
[(set (match_operand:QI 0 "ext_low_reg_operand" "")
(match_operand:QI 1 "par_ind_operand" ""))
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))
&& ! c4x_address_conflict (operands[1], operands[2], 0, 1)"
"ldi\\t%1,%0\\n||\\tsti\\t%3,%2")
; load occurs before store if 0 and 3 point to same address
(define_peephole
[(set (match_operand:QI 0 "par_ind_operand" "")
(match_operand:QI 1 "ext_low_reg_operand" ""))
(set (match_operand:QI 2 "ext_low_reg_operand" "")
(match_operand:QI 3 "par_ind_operand" ""))]
"(REGNO (operands[1]) != REGNO (operands[2]))
&& ! c4x_address_conflict (operands[0], operands[3], 1, 0)"
"ldi\\t%3,%2\\n||\\tsti\\t%1,%0")
(define_peephole
[(set (match_operand:QI 0 "par_ind_operand" "")
(match_operand:QI 1 "ext_low_reg_operand" ""))
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"! c4x_address_conflict (operands[0], operands[2], 1, 1)"
"sti\\t%1,%0\\n||\\tsti\\t%3,%2")
; This peephole should be unnecessary with my patches to flow.c ; This peephole should be unnecessary with my patches to flow.c
; for better autoincrement detection ; for better autoincrement detection
...@@ -6727,15 +6688,6 @@ ...@@ -6727,15 +6688,6 @@
"" ""
"ldf\\t*%1++,%0\\n\\tldf\\t*%1++,%2") "ldf\\t*%1++,%0\\n\\tldf\\t*%1++,%2")
(define_peephole
[(set (match_operand:QF 0 "ext_low_reg_operand" "")
(match_operand:QF 1 "par_ind_operand" ""))
(set (match_operand:QF 2 "ext_low_reg_operand" "")
(match_operand:QF 3 "par_ind_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[2]))
&& ! c4x_address_conflict (operands[1], operands[3], 0, 1)"
"ldf1\\t%1,%0\\n||\\tldf2\\t%3,%2")
; This peephole should be unnecessary with my patches to flow.c ; This peephole should be unnecessary with my patches to flow.c
; for better autoincrement detection ; for better autoincrement detection
(define_peephole (define_peephole
...@@ -6748,541 +6700,6 @@ ...@@ -6748,541 +6700,6 @@
"" ""
"stf\\t%1,*%0++\\n\\tstf\\t%2,*%0++") "stf\\t%1,*%0++\\n\\tstf\\t%2,*%0++")
(define_peephole
[(set (match_operand:QF 0 "ext_low_reg_operand" "")
(match_operand:QF 1 "par_ind_operand" ""))
(set (match_operand:QF 2 "par_ind_operand" "")
(match_operand:QF 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"ldf\\t%1,%0\\n||\\tstf\\t%3,%2")
(define_peephole
[(set (match_operand:QF 0 "par_ind_operand" "")
(match_operand:QF 1 "ext_low_reg_operand" ""))
(set (match_operand:QF 2 "ext_low_reg_operand" "")
(match_operand:QF 3 "par_ind_operand" ""))]
"! c4x_address_conflict (operands[0], operands[3], 1, 1)"
"ldf\\t%3,%2\\n||\\tstf\\t%1,%0")
(define_peephole
[(set (match_operand:QF 0 "par_ind_operand" "")
(match_operand:QF 1 "ext_low_reg_operand" ""))
(set (match_operand:QF 2 "par_ind_operand" "")
(match_operand:QF 3 "ext_low_reg_operand" ""))]
"! c4x_address_conflict (operands[0], operands[2], 1, 1)"
"stf1\\t%1,%0\\n||\\tstf2\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (abs:QF (match_operand:QF 1 "par_ind_operand" ""))
(match_operand:QF 2 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(abs:QF (match_dup 1)))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"absf\\t%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(abs:QF (match_operand:QF 1 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QF 2 "par_ind_operand" "")
(match_operand:QF 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"absf\\t%1,%0\\n||\\tstf\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (abs:QI (match_operand:QI 1 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(abs:QI (match_dup 1)))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"absi\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(abs:QI (match_operand:QI 1 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"absi\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (plus:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(plus:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"addi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (plus:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(plus:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"addi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(plus:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"addi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(plus:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"addi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (plus:QF (match_operand:QF 1 "ext_low_reg_operand" "")
(match_operand:QF 2 "par_ind_operand" ""))
(match_operand:QF 3 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(plus:QF (match_dup 1) (match_dup 2)))])
(set (match_operand:QF 4 "par_ind_operand" "")
(match_operand:QF 5 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[5]))"
"addf3\\t%2,%1,%0\\n||\\tstf\\t%5,%4")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (plus:QF (match_operand:QF 1 "par_ind_operand" "")
(match_operand:QF 2 "ext_low_reg_operand" ""))
(match_operand:QF 3 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(plus:QF (match_dup 1) (match_dup 2)))])
(set (match_operand:QF 4 "par_ind_operand" "")
(match_operand:QF 5 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[5]))"
"addf3\\t%2,%1,%0\\n||\\tstf\\t%5,%4")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(plus:QF (match_operand:QF 1 "ext_low_reg_operand" "")
(match_operand:QF 2 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"addf3\\t%2,%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(plus:QF (match_operand:QF 1 "par_ind_operand" "")
(match_operand:QF 2 "ext_low_reg_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"addf3\\t%2,%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (and:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(and:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"and3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (and:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(and:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"and3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(and:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"and3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(and:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"and3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(ashift:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"ash3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(ashiftrt:QI (match_operand:QI 1 "par_ind_operand" "")
(neg:QI (match_operand:QI 2 "ext_low_reg_operand" ""))))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"ash3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (fix:QI (match_operand:QF 1 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(fix:QI (match_dup 1)))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"fix\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(fix:QI (match_operand:QF 1 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"fix\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (float:QF (match_operand:QI 1 "par_ind_operand" ""))
(match_operand:QF 2 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(float:QF (match_dup 1)))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"float\\t%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(float:QF (match_operand:QI 1 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QF 2 "par_ind_operand" "")
(match_operand:QF 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"float\\t%1,%0\\n||\\tstf\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (mult:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(mult:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"mpyi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (mult:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(mult:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"mpyi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(mult:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"mpyi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(mult:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"mpyi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (mult:QF (match_operand:QF 1 "ext_low_reg_operand" "")
(match_operand:QF 2 "par_ind_operand" ""))
(match_operand:QF 3 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(mult:QF (match_dup 1) (match_dup 2)))])
(set (match_operand:QF 4 "par_ind_operand" "")
(match_operand:QF 5 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[5]))"
"mpyf3\\t%2,%1,%0\\n||\\tstf\\t%5,%4")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (mult:QF (match_operand:QF 1 "par_ind_operand" "")
(match_operand:QF 2 "ext_low_reg_operand" ""))
(match_operand:QF 3 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(mult:QF (match_dup 1) (match_dup 2)))])
(set (match_operand:QF 4 "par_ind_operand" "")
(match_operand:QF 5 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[5]))"
"mpyf3\\t%2,%1,%0\\n||\\tstf\\t%5,%4")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(mult:QF (match_operand:QF 1 "ext_low_reg_operand" "")
(match_operand:QF 2 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"mpyf3\\t%2,%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(mult:QF (match_operand:QF 1 "par_ind_operand" "")
(match_operand:QF 2 "ext_low_reg_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"mpyf3\\t%2,%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (neg:QF (match_operand:QF 1 "par_ind_operand" ""))
(match_operand:QF 2 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(neg:QF (match_dup 1)))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"negf\\t%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(neg:QF (match_operand:QF 1 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QF 2 "par_ind_operand" "")
(match_operand:QF 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"negf\\t%1,%0\\n||\\tstf\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (neg:QI (match_operand:QI 1 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(neg:QI (match_dup 1)))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"negi\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(neg:QI (match_operand:QI 1 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"negi\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (not:QI (match_operand:QI 1 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(not:QI (match_dup 1)))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"not\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(not:QI (match_operand:QI 1 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 2 "par_ind_operand" "")
(match_operand:QI 3 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[3]))"
"not\\t%1,%0\\n||\\tsti\\t%3,%2")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (ior:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(ior:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"or3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (ior:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(ior:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"or3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(ior:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"or3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(ior:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"or3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (minus:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(minus:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"subi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(minus:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"subi3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC_NOOV 21)
(compare:CC_NOOV (minus:QF (match_operand:QF 1 "ext_low_reg_operand" "")
(match_operand:QF 2 "par_ind_operand" ""))
(match_operand:QF 3 "fp_zero_operand" "")))
(set (match_operand:QF 0 "ext_low_reg_operand" "")
(minus:QF (match_dup 1) (match_dup 2)))])
(set (match_operand:QF 4 "par_ind_operand" "")
(match_operand:QF 5 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[5]))"
"subf3\\t%2,%1,%0\\n||\\tstf\\t%5,%4")
(define_peephole
[(parallel [(set (match_operand:QF 0 "ext_low_reg_operand" "")
(minus:QF (match_operand:QF 1 "ext_low_reg_operand" "")
(match_operand:QF 2 "par_ind_operand" "")))
(clobber (reg:CC_NOOV 21))])
(set (match_operand:QF 3 "par_ind_operand" "")
(match_operand:QF 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"subf3\\t%2,%1,%0\\n||\\tstf\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (xor:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(xor:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"xor3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (reg:CC 21)
(compare:CC (xor:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" ""))
(const_int 0)))
(set (match_operand:QI 0 "ext_low_reg_operand" "")
(xor:QI (match_dup 1) (match_dup 2)))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"xor3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(xor:QI (match_operand:QI 1 "ext_low_reg_operand" "")
(match_operand:QI 2 "par_ind_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"xor3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
(define_peephole
[(parallel [(set (match_operand:QI 0 "ext_low_reg_operand" "")
(xor:QI (match_operand:QI 1 "par_ind_operand" "")
(match_operand:QI 2 "ext_low_reg_operand" "")))
(clobber (reg:CC 21))])
(set (match_operand:QI 3 "par_ind_operand" "")
(match_operand:QI 4 "ext_low_reg_operand" ""))]
"(REGNO (operands[0]) != REGNO (operands[4]))"
"xor3\\t%2,%1,%0\\n||\\tsti\\t%4,%3")
; The following two peepholes remove an unecessary load ; The following two peepholes remove an unecessary load
; often found at the end of a function. These peepholes ; often found at the end of a function. These peepholes
......
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