diff options
author | Michael Hayes <m.hayes@elec.canterbury.ac.nz> | 1999-10-16 00:43:59 +0000 |
---|---|---|
committer | Michael Hayes <m.hayes@gcc.gnu.org> | 1999-10-16 00:43:59 +0000 |
commit | a9d3cc3f1a1da3d0e5044249891594933e37ab20 (patch) | |
tree | 43a44a1fac01916d75ec2c4c370a2e40efb6fc20 /gcc | |
parent | 0dced2c729c164873a10bccdbfff8d5dc6d2a820 (diff) | |
download | gcc-a9d3cc3f1a1da3d0e5044249891594933e37ab20.zip gcc-a9d3cc3f1a1da3d0e5044249891594933e37ab20.tar.gz gcc-a9d3cc3f1a1da3d0e5044249891594933e37ab20.tar.bz2 |
* config/c4x/c4x.md (HF mode patterns): Add missing modes.
From-SVN: r30034
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/c4x/c4x.md | 27 |
2 files changed, 18 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3b4c118..5471510 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Sat Oct 16 13:42:29 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> + + * config/c4x/c4x.md (HF mode patterns): Add missing modes. + Sat Oct 16 13:37:46 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz> * config/c4x/c4x.md (movstrqi_small): Utilise parallel move diff --git a/gcc/config/c4x/c4x.md b/gcc/config/c4x/c4x.md index 7ef0d32..238a8e6 100644 --- a/gcc/config/c4x/c4x.md +++ b/gcc/config/c4x/c4x.md @@ -5562,7 +5562,8 @@ (match_operand:HF 1 "memory_operand" ""))] "reload_completed" [(set (match_dup 0) (float_extend:HF (match_dup 2))) - (set (match_dup 0) (unspec[(subreg:QI (match_dup 0) 0) (match_dup 3)] 8))] + (set (match_dup 0) (unspec:HF [(subreg:QI (match_dup 0) 0) + (match_dup 3)] 8))] "operands[2] = c4x_operand_subword (operands[1], 0, 1, HFmode); operands[3] = c4x_operand_subword (operands[1], 1, 1, HFmode); PUT_MODE (operands[2], QFmode); @@ -5573,7 +5574,8 @@ (match_operand:HF 1 "const_operand" ""))] "reload_completed && 0" [(set (match_dup 0) (float_extend:HF (match_dup 2))) - (set (match_dup 0) (unspec[(subreg:QI (match_dup 0) 0) (match_dup 3)] 8))] + (set (match_dup 0) (unspec:HF [(subreg:QI (match_dup 0) 0) + (match_dup 3)] 8))] "operands[2] = c4x_operand_subword (operands[1], 0, 1, HFmode); operands[3] = c4x_operand_subword (operands[1], 1, 1, HFmode); PUT_MODE (operands[2], QFmode); @@ -5601,7 +5603,7 @@ (define_insn "*loadhf_int" [(set (match_operand:HF 0 "reg_operand" "=h") (unspec:HF [(subreg:QI (match_dup 0) 0) - (match_operand:QI 1 "src_operand" "rIm")] 8))] + (match_operand:QI 1 "src_operand" "rIm")] 8))] "" "@ ldiu\\t%1,%0" @@ -5689,7 +5691,7 @@ (float_extend:HF (mem:QF (post_dec:QI (reg:QI 20))))) (clobber (reg:CC 21))]) (parallel [(set (match_dup 0) - (unspec[(subreg:QI (match_dup 0) 0) + (unspec:HF [(subreg:QI (match_dup 0) 0) (mem:QI (post_dec:QI (reg:QI 20)))] 8)) (clobber (reg:CC 21))])] "") @@ -5697,7 +5699,7 @@ (define_insn "*pophf_int" [(set (match_operand:HF 0 "reg_operand" "=h") (unspec:HF [(subreg:QI (match_dup 0) 0) - (mem:QI (post_dec:QI (reg:QI 20)))] 8)) + (mem:QI (post_dec:QI (reg:QI 20)))] 8)) (clobber (reg:CC 21))] "" "@ @@ -6808,7 +6810,7 @@ (define_insn "cmphi_cc" [(set (reg:CC 21) (unspec:CC [(compare:CC (match_operand:HI 0 "src_operand" "rR,rS<>") - (match_operand:HI 1 "src_operand" "R,rS<>"))] 4)) + (match_operand:HI 1 "src_operand" "R,rS<>"))] 4)) (clobber (match_scratch:QI 2 "=&d,&d")) (clobber (match_scratch:QI 3 "=&c,&c"))] "valid_operands (COMPARE, operands, HImode)" @@ -6823,9 +6825,8 @@ (define_insn "cmphi_cc_noov" [(set (reg:CC_NOOV 21) - (unspec:CC_NOOV [ - (compare:CC_NOOV (match_operand:HI 0 "src_operand" "rR,rS<>") - (match_operand:HI 1 "src_operand" "R,rS<>"))] 4)) + (unspec:CC_NOOV [(compare:CC_NOOV (match_operand:HI 0 "src_operand" "rR,rS<>") + (match_operand:HI 1 "src_operand" "R,rS<>"))] 4)) (clobber (match_scratch:QI 2 "=&d,&d")) (clobber (match_scratch:QI 3 "=&c,&c"))] "valid_operands (COMPARE, operands, HImode)" @@ -6903,6 +6904,7 @@ ; ; Which moves the bCC condition outside the inner loop for free. ; + (define_peephole [(set (pc) (if_then_else (match_operator 3 "comparison_operator" [(reg:CC 21) (const_int 0)]) @@ -6918,8 +6920,7 @@ (pc))) (set (match_dup 0) (plus:QI (match_dup 0) - (const_int -1))) - (clobber (reg:CC_NOOV 21))])] + (const_int -1)))])] "! c4x_label_conflict (insn, operands[2], operands[1])" "db%I3\\t%0,%l1\\n\\tb%3\\t%l2" [(set_attr "type" "multi")]) @@ -6938,8 +6939,7 @@ (pc))) (set (match_dup 0) (plus:QI (match_dup 0) - (const_int -1))) - (clobber (reg:CC_NOOV 21))])] + (const_int -1)))])] "! c4x_label_conflict (insn, operands[2], operands[1])" "db%I3\\t%0,%l1\\n\\tb%3\\t%l2" [(set_attr "type" "multi")]) @@ -6987,6 +6987,7 @@ "" "ldf\\t*%1++,%0\\n\\tldf\\t*%1++,%2") + ; This peephole should be unnecessary with my patches to flow.c ; for better autoincrement detection (define_peephole |