diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1993-04-25 14:18:26 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1993-04-25 14:18:26 -0700 |
commit | 9fe5bce9bbfe44ab8a8873d000f7ba90672bd0a8 (patch) | |
tree | 2de6eb78500cd35828858b09d2d1cb1dc87ea8ee /gcc | |
parent | 09aa65598b8246bd1aa136802017a7f190aba022 (diff) | |
download | gcc-9fe5bce9bbfe44ab8a8873d000f7ba90672bd0a8.zip gcc-9fe5bce9bbfe44ab8a8873d000f7ba90672bd0a8.tar.gz gcc-9fe5bce9bbfe44ab8a8873d000f7ba90672bd0a8.tar.bz2 |
(movstrsi): Comment out.
From-SVN: r4220
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/sparc/sparc.md | 80 |
1 files changed, 41 insertions, 39 deletions
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index 1aafb67..dd34100 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -1028,50 +1028,52 @@ [(set_attr "type" "store") (set_attr "length" "2")]) +;; ??? We get better code without it. See output_block_move in sparc.c. + ;; The definition of this insn does not really explain what it does, ;; but it should suffice ;; that anything generated as this insn will be recognized as one ;; and that it will not successfully combine with anything. -(define_expand "movstrsi" - [(parallel [(set (mem:BLK (match_operand:BLK 0 "general_operand" "")) - (mem:BLK (match_operand:BLK 1 "general_operand" ""))) - (use (match_operand:SI 2 "nonmemory_operand" "")) - (use (match_operand:SI 3 "immediate_operand" "")) - (clobber (match_dup 0)) - (clobber (match_dup 1)) - (clobber (match_scratch:SI 4 "")) - (clobber (reg:SI 0)) - (clobber (reg:SI 1))])] - "" - " -{ - /* If the size isn't known, don't emit inline code. output_block_move - would output code that's much slower than the library function. - Also don't output code for large blocks. */ - if (GET_CODE (operands[2]) != CONST_INT - || GET_CODE (operands[3]) != CONST_INT - || INTVAL (operands[2]) / INTVAL (operands[3]) > 16) - FAIL; +;(define_expand "movstrsi" +; [(parallel [(set (mem:BLK (match_operand:BLK 0 "general_operand" "")) +; (mem:BLK (match_operand:BLK 1 "general_operand" ""))) +; (use (match_operand:SI 2 "nonmemory_operand" "")) +; (use (match_operand:SI 3 "immediate_operand" "")) +; (clobber (match_dup 0)) +; (clobber (match_dup 1)) +; (clobber (match_scratch:SI 4 "")) +; (clobber (reg:SI 0)) +; (clobber (reg:SI 1))])] +; "" +; " +;{ +; /* If the size isn't known, don't emit inline code. output_block_move +; would output code that's much slower than the library function. +; Also don't output code for large blocks. */ +; if (GET_CODE (operands[2]) != CONST_INT +; || GET_CODE (operands[3]) != CONST_INT +; || INTVAL (operands[2]) / INTVAL (operands[3]) > 16) +; FAIL; +; +; operands[0] = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); +; operands[1] = copy_to_mode_reg (Pmode, XEXP (operands[1], 0)); +; operands[2] = force_not_mem (operands[2]); +;}") - operands[0] = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); - operands[1] = copy_to_mode_reg (Pmode, XEXP (operands[1], 0)); - operands[2] = force_not_mem (operands[2]); -}") - -(define_insn "" - [(set (mem:BLK (match_operand:SI 0 "register_operand" "+r")) - (mem:BLK (match_operand:SI 1 "register_operand" "+r"))) - (use (match_operand:SI 2 "nonmemory_operand" "rn")) - (use (match_operand:SI 3 "immediate_operand" "i")) - (clobber (match_dup 0)) - (clobber (match_dup 1)) - (clobber (match_scratch:SI 4 "=&r")) - (clobber (reg:SI 0)) - (clobber (reg:SI 1))] - "" - "* return output_block_move (operands);" - [(set_attr "type" "multi") - (set_attr "length" "6")]) +;(define_insn "" +; [(set (mem:BLK (match_operand:SI 0 "register_operand" "+r")) +; (mem:BLK (match_operand:SI 1 "register_operand" "+r"))) +; (use (match_operand:SI 2 "nonmemory_operand" "rn")) +; (use (match_operand:SI 3 "immediate_operand" "i")) +; (clobber (match_dup 0)) +; (clobber (match_dup 1)) +; (clobber (match_scratch:SI 4 "=&r")) +; (clobber (reg:SI 0)) +; (clobber (reg:SI 1))] +; "" +; "* return output_block_move (operands);" +; [(set_attr "type" "multi") +; (set_attr "length" "6")]) ;; Floating point move insns |