From cf45bb06184a5bfd13308f3124435e99bdefc779 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Fri, 8 Oct 1999 14:54:12 -0700 Subject: [PATCH] mips.md (movstrsi+[123]): Combine these into a single pattern. * config/mips/mips.md (movstrsi+[123]) : Combine these into a single pattern. Scrap the 'd' versions as unnecessary. * config/mips/mips.md (tablejump_internal3,tablejump_mips161, tablejump_mips162,tablejump_internal4): The operands to a label_ref must be VOIDmode. From-SVN: r29874 --- gcc/ChangeLog | 9 +++++++ gcc/config/mips/mips.md | 66 +++++++------------------------------------------ 2 files changed, 18 insertions(+), 57 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7f41669..70880e9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +Fri Oct 8 17:49:08 1999 Richard Henderson + + * config/mips/mips.md (movstrsi+[123]) : Combine these into + a single pattern. Scrap the 'd' versions as unnecessary. + + * config/mips/mips.md (tablejump_internal3,tablejump_mips161, + tablejump_mips162,tablejump_internal4): The operands to a + label_ref must be VOIDmode. + Fri Oct 8 16:12:42 1999 Kaveh R. Ghazi * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'. diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 3941294..1943168 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -6161,40 +6161,8 @@ move\\t%0,%z4\\n\\ ;; byte loads. (define_insn "" - [(set (match_operand:BLK 0 "memory_operand" "=d") ;; destination - (match_operand:BLK 1 "memory_operand" "d")) ;; source - (clobber (match_scratch:SI 4 "=&d")) ;; temp 1 - (clobber (match_scratch:SI 5 "=&d")) ;; temp 2 - (clobber (match_scratch:SI 6 "=&d")) ;; temp 3 - (clobber (match_scratch:SI 7 "=&d")) ;; temp 4 - (use (match_operand:SI 2 "small_int" "I")) ;; # bytes to move - (use (match_operand:SI 3 "small_int" "I")) ;; alignment - (use (const_int 0))] ;; normal block move - "TARGET_MIPS16" - "* return output_block_move (insn, operands, 4, BLOCK_MOVE_NORMAL);" - [(set_attr "type" "multi") - (set_attr "mode" "none") - (set_attr "length" "80")]) - -(define_insn "" - [(set (match_operand:BLK 0 "memory_operand" "=d") ;; destination - (match_operand:BLK 1 "memory_operand" "o")) ;; source - (clobber (match_scratch:SI 4 "=&d")) ;; temp 1 - (clobber (match_scratch:SI 5 "=&d")) ;; temp 2 - (clobber (match_scratch:SI 6 "=&d")) ;; temp 3 - (clobber (match_scratch:SI 7 "=&d")) ;; temp 4 - (use (match_operand:SI 2 "small_int" "I")) ;; # bytes to move - (use (match_operand:SI 3 "small_int" "I")) ;; alignment - (use (const_int 0))] ;; normal block move - "TARGET_MIPS16" - "* return output_block_move (insn, operands, 4, BLOCK_MOVE_NORMAL);" - [(set_attr "type" "multi") - (set_attr "mode" "none") - (set_attr "length" "80")]) - -(define_insn "" [(set (match_operand:BLK 0 "memory_operand" "=o") ;; destination - (match_operand:BLK 1 "memory_operand" "d")) ;; source + (match_operand:BLK 1 "memory_operand" "o")) ;; source (clobber (match_scratch:SI 4 "=&d")) ;; temp 1 (clobber (match_scratch:SI 5 "=&d")) ;; temp 2 (clobber (match_scratch:SI 6 "=&d")) ;; temp 3 @@ -6268,8 +6236,8 @@ move\\t%0,%z4\\n\\ (set_attr "length" "80")]) (define_insn "" - [(set (match_operand:BLK 0 "memory_operand" "=d") ;; destination - (match_operand:BLK 1 "memory_operand" "d")) ;; source + [(set (match_operand:BLK 0 "memory_operand" "=o") ;; destination + (match_operand:BLK 1 "memory_operand" "o")) ;; source (clobber (match_scratch:SI 4 "=&d")) ;; temp 1 (clobber (match_scratch:SI 5 "=&d")) ;; temp 2 (clobber (match_scratch:SI 6 "=&d")) ;; temp 3 @@ -6297,22 +6265,6 @@ move\\t%0,%z4\\n\\ "* return output_block_move (insn, operands, 4, BLOCK_MOVE_LAST);" [(set_attr "type" "store") (set_attr "mode" "none")]) - -(define_insn "" - [(set (match_operand:BLK 0 "memory_operand" "=d") ;; destination - (match_operand:BLK 1 "memory_operand" "d")) ;; source - (clobber (match_scratch:SI 4 "=&d")) ;; temp 1 - (clobber (match_scratch:SI 5 "=&d")) ;; temp 2 - (clobber (match_scratch:SI 6 "=&d")) ;; temp 3 - (clobber (match_scratch:SI 7 "=&d")) ;; temp 4 - (use (match_operand:SI 2 "small_int" "I")) ;; # bytes to move - (use (match_operand:SI 3 "small_int" "I")) ;; alignment - (use (const_int 2))] ;; just last store of block move - "TARGET_MIPS16" - "* return output_block_move (insn, operands, 4, BLOCK_MOVE_LAST);" - [(set_attr "type" "store") - (set_attr "mode" "none")]) - ;; ;; .................... @@ -9141,7 +9093,7 @@ move\\t%0,%z4\\n\\ (define_expand "tablejump_internal3" [(parallel [(set (pc) (plus:SI (match_operand:SI 0 "register_operand" "d") - (label_ref:SI (match_operand:SI 1 "" "")))) + (label_ref:SI (match_operand 1 "" "")))) (use (label_ref:SI (match_dup 1)))])] "" "") @@ -9149,7 +9101,7 @@ move\\t%0,%z4\\n\\ (define_expand "tablejump_mips161" [(set (pc) (plus:SI (sign_extend:SI (match_operand:HI 0 "register_operand" "d")) - (label_ref:SI (match_operand:SI 1 "" ""))))] + (label_ref:SI (match_operand 1 "" ""))))] "TARGET_MIPS16 && !(Pmode == DImode)" " { @@ -9171,7 +9123,7 @@ move\\t%0,%z4\\n\\ (define_expand "tablejump_mips162" [(set (pc) (plus:DI (sign_extend:DI (match_operand:HI 0 "register_operand" "d")) - (label_ref:DI (match_operand:SI 1 "" ""))))] + (label_ref:DI (match_operand 1 "" ""))))] "TARGET_MIPS16 && Pmode == DImode" " { @@ -9200,7 +9152,7 @@ move\\t%0,%z4\\n\\ (define_insn "" [(set (pc) (plus:SI (match_operand:SI 0 "register_operand" "d") - (label_ref:SI (match_operand:SI 1 "" "")))) + (label_ref:SI (match_operand 1 "" "")))) (use (label_ref:SI (match_dup 1)))] "!(Pmode == DImode) && next_active_insn (insn) != 0 && GET_CODE (PATTERN (next_active_insn (insn))) == ADDR_DIFF_VEC @@ -9219,7 +9171,7 @@ move\\t%0,%z4\\n\\ (define_expand "tablejump_internal4" [(parallel [(set (pc) (plus:DI (match_operand:DI 0 "se_register_operand" "d") - (label_ref:DI (match_operand:SI 1 "" "")))) + (label_ref:DI (match_operand 1 "" "")))) (use (label_ref:DI (match_dup 1)))])] "" "") @@ -9231,7 +9183,7 @@ move\\t%0,%z4\\n\\ (define_insn "" [(set (pc) (plus:DI (match_operand:DI 0 "se_register_operand" "d") - (label_ref:DI (match_operand:SI 1 "" "")))) + (label_ref:DI (match_operand 1 "" "")))) (use (label_ref:DI (match_dup 1)))] "Pmode == DImode && next_active_insn (insn) != 0 && GET_CODE (PATTERN (next_active_insn (insn))) == ADDR_DIFF_VEC -- 2.7.4