mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-17 12:09:35 +08:00
* config/c4x/c4x.md: Delete parallel instruction peepholes.
From-SVN: r29581
This commit is contained in:
parent
7ae0297fa4
commit
ae95939774
@ -1,3 +1,7 @@
|
||||
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>
|
||||
|
||||
* config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
|
||||
|
@ -6675,45 +6675,6 @@
|
||||
return \"br%#\\t%C1\";"
|
||||
[(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
|
||||
; for better autoincrement detection
|
||||
@ -6727,15 +6688,6 @@
|
||||
""
|
||||
"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
|
||||
; for better autoincrement detection
|
||||
(define_peephole
|
||||
@ -6748,541 +6700,6 @@
|
||||
""
|
||||
"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
|
||||
; often found at the end of a function. These peepholes
|
||||
|
Loading…
Reference in New Issue
Block a user