From: Aaron Sawdey Date: Thu, 27 Jun 2019 14:45:36 +0000 (+0000) Subject: builtins.c (get_memory_rtx): Fix comment. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=76715c3216cf6ccd071fc852920af55d6b0054ae;p=gcc.git builtins.c (get_memory_rtx): Fix comment. 2019-06-27 Aaron Sawdey * builtins.c (get_memory_rtx): Fix comment. * optabs.def (movmem_optab): Change to cpymem_optab. * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem. (emit_block_move_hints): Change movmem to cpymem. * defaults.h: Change movmem to cpymem. * targhooks.c (get_move_ratio): Change movmem to cpymem. (default_use_by_pieces_infrastructure_p): Ditto. * config/aarch64/aarch64-protos.h: Change movmem to cpymem. * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem to cpymem. * config/aarch64/aarch64.h: Change movmem to cpymem. * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi. * config/alpha/alpha.h: Change movmem to cpymem in comment. * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change movmem to cpymem. * config/arc/arc-protos.h: Change movmem to cpymem. * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem. * config/arc/arc.h: Change movmem to cpymem in comment. * config/arc/arc.md (movmemsi): Change movmem to cpymem. * config/arm/arm-protos.h: Change movmem to cpymem in names. * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi, gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem. * config/arm/arm.md (movmemqi): Change movmem to cpymem. * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem. * config/avr/avr-protos.h: Change movmem to cpymem. * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi, avr_out_movmem): Change movmem to cpymem. * config/avr/avr.md (movmemhi, movmem_, movmemx_): Change movmem to cpymem. * config/bfin/bfin-protos.h: Change movmem to cpymem. * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem): Change movmem to cpymem. * config/bfin/bfin.h: Change movmem to cpymem in comment. * config/bfin/bfin.md (movmemsi): Change name to cpymemsi. * config/c6x/c6x-protos.h: Change movmem to cpymem. * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem. * config/c6x/c6x.md (movmemsi): Change name to cpymemsi. * config/frv/frv.md (movmemsi): Change name to cpymemsi. * config/ft32/ft32.md (movmemsi): Change name to cpymemsi. * config/h8300/h8300.md (movmemsi): Change name to cpymemsi. * config/i386/i386-expand.c (expand_set_or_movmem_via_loop, expand_set_or_movmem_via_rep, expand_movmem_epilogue, expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue, expand_small_cpymem_or_setmem, expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves, expand_set_or_cpymem_constant_prologue, ix86_expand_set_or_cpymem): Change movmem to cpymem. * config/i386/i386-protos.h: Change movmem to cpymem. * config/i386/i386.h: Change movmem to cpymem in comment. * config/i386/i386.md (movmem): Change name to cpymem. (setmem): Change expansion function name. * config/lm32/lm32.md (movmemsi): Change name to cpymemsi. * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op, movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem. * config/m32c/m32c-protos.h: Change movmem to cpymem. * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem. * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem. * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem to cpymem. * config/mcore/mcore.md (movmemsi): Change name to cpymemsi. * config/microblaze/microblaze.c: Change movmem to cpymem in comment. * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi. * config/mips/mips.c (mips_use_by_pieces_infrastructure_p): Change movmem to cpymem. * config/mips/mips.h: Change movmem to cpymem. * config/mips/mips.md (movmemsi): Change name to cpymemsi. * config/nds32/nds32-memory-manipulation.c (nds32_expand_movmemsi_loop_unknown_size, nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop, nds32_expand_movmemsi_unroll, nds32_expand_movmemsi): Change movmem to cpymem. * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi. * config/nds32/nds32-protos.h: Change movmem to cpymem. * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem. (pa_adjust_insn_length): Change call to compute_movmem_length. * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload, movmemdi, movmemdi_prereload, movmemdi_postreload): Change movmem to cpymem. * config/pdp11/pdp11.md (movmemhi, movmemhi1, movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem. * config/riscv/riscv.c: Change movmem to cpymem in comment. * config/riscv/riscv.h: Change movmem to cpymem. * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi. * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi. * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change movmem to cpymem. * config/s390/s390-protos.h: Change movmem to cpymem. * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem, s390_expand_insv): Change movmem to cpymem. * config/s390/s390.md (movmem, movmem_short, *movmem_short, movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem. * config/sh/sh.md (movmemsi): Change name to cpymemsi. * config/sparc/sparc.h: Change movmem to cpymem in comment. * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype for nonexistent function. * config/vax/vax.h: Change movmem to cpymem in comment. * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem. * config/visium/visium.h: Change movmem to cpymem in comment. * config/visium/visium.md (movmemsi): Change name to cpymemsi. * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi. * doc/md.texi: Change movmem to cpymem and update description to match. * doc/rtl.texi: Change movmem to cpymem. * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem. * doc/tm.texi: Regenerate. From-SVN: r272755 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 93dbd4f1604..b548ac3d6ca 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,110 @@ +2019-06-27 Aaron Sawdey + + * builtins.c (get_memory_rtx): Fix comment. + * optabs.def (movmem_optab): Change to cpymem_optab. + * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem. + (emit_block_move_hints): Change movmem to cpymem. + * defaults.h: Change movmem to cpymem. + * targhooks.c (get_move_ratio): Change movmem to cpymem. + (default_use_by_pieces_infrastructure_p): Ditto. + * config/aarch64/aarch64-protos.h: Change movmem to cpymem. + * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem + to cpymem. + * config/aarch64/aarch64.h: Change movmem to cpymem. + * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi. + * config/alpha/alpha.h: Change movmem to cpymem in comment. + * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change + movmem to cpymem. + * config/arc/arc-protos.h: Change movmem to cpymem. + * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem. + * config/arc/arc.h: Change movmem to cpymem in comment. + * config/arc/arc.md (movmemsi): Change movmem to cpymem. + * config/arm/arm-protos.h: Change movmem to cpymem in names. + * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi, + gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem. + * config/arm/arm.md (movmemqi): Change movmem to cpymem. + * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem. + * config/avr/avr-protos.h: Change movmem to cpymem. + * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi, + avr_out_movmem): Change movmem to cpymem. + * config/avr/avr.md (movmemhi, movmem_, movmemx_): + Change movmem to cpymem. + * config/bfin/bfin-protos.h: Change movmem to cpymem. + * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem): + Change movmem to cpymem. + * config/bfin/bfin.h: Change movmem to cpymem in comment. + * config/bfin/bfin.md (movmemsi): Change name to cpymemsi. + * config/c6x/c6x-protos.h: Change movmem to cpymem. + * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem. + * config/c6x/c6x.md (movmemsi): Change name to cpymemsi. + * config/frv/frv.md (movmemsi): Change name to cpymemsi. + * config/ft32/ft32.md (movmemsi): Change name to cpymemsi. + * config/h8300/h8300.md (movmemsi): Change name to cpymemsi. + * config/i386/i386-expand.c (expand_set_or_movmem_via_loop, + expand_set_or_movmem_via_rep, expand_movmem_epilogue, + expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue, + expand_small_cpymem_or_setmem, + expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves, + expand_set_or_cpymem_constant_prologue, + ix86_expand_set_or_cpymem): Change movmem to cpymem. + * config/i386/i386-protos.h: Change movmem to cpymem. + * config/i386/i386.h: Change movmem to cpymem in comment. + * config/i386/i386.md (movmem): Change name to cpymem. + (setmem): Change expansion function name. + * config/lm32/lm32.md (movmemsi): Change name to cpymemsi. + * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op, + movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem. + * config/m32c/m32c-protos.h: Change movmem to cpymem. + * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem. + * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem. + * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem + to cpymem. + * config/mcore/mcore.md (movmemsi): Change name to cpymemsi. + * config/microblaze/microblaze.c: Change movmem to cpymem in comment. + * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi. + * config/mips/mips.c (mips_use_by_pieces_infrastructure_p): + Change movmem to cpymem. + * config/mips/mips.h: Change movmem to cpymem. + * config/mips/mips.md (movmemsi): Change name to cpymemsi. + * config/nds32/nds32-memory-manipulation.c + (nds32_expand_movmemsi_loop_unknown_size, + nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop, + nds32_expand_movmemsi_unroll, + nds32_expand_movmemsi): Change movmem to cpymem. + * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi. + * config/nds32/nds32-protos.h: Change movmem to cpymem. + * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem. + (pa_adjust_insn_length): Change call to compute_movmem_length. + * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload, + movmemdi, movmemdi_prereload, + movmemdi_postreload): Change movmem to cpymem. + * config/pdp11/pdp11.md (movmemhi, movmemhi1, + movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem. + * config/riscv/riscv.c: Change movmem to cpymem in comment. + * config/riscv/riscv.h: Change movmem to cpymem. + * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi. + * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi. + * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change + movmem to cpymem. + * config/s390/s390-protos.h: Change movmem to cpymem. + * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem, + s390_expand_insv): Change movmem to cpymem. + * config/s390/s390.md (movmem, movmem_short, *movmem_short, + movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem. + * config/sh/sh.md (movmemsi): Change name to cpymemsi. + * config/sparc/sparc.h: Change movmem to cpymem in comment. + * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype + for nonexistent function. + * config/vax/vax.h: Change movmem to cpymem in comment. + * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem. + * config/visium/visium.h: Change movmem to cpymem in comment. + * config/visium/visium.md (movmemsi): Change name to cpymemsi. + * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi. + * doc/md.texi: Change movmem to cpymem and update description to match. + * doc/rtl.texi: Change movmem to cpymem. + * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem. + * doc/tm.texi: Regenerate. + 2019-06-27 Bill Schmidt * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable diff --git a/gcc/builtins.c b/gcc/builtins.c index c53afe8b033..2b8914f13ee 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -1416,7 +1416,7 @@ expand_builtin_prefetch (tree exp) } /* Get a MEM rtx for expression EXP which is the address of an operand - to be used in a string instruction (cmpstrsi, movmemsi, ..). LEN is + to be used in a string instruction (cmpstrsi, cpymemsi, ..). LEN is the maximum length of the block of memory that might be accessed or NULL if unknown. */ diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h index 4b207961553..e2f4cc19e68 100644 --- a/gcc/config/aarch64/aarch64-protos.h +++ b/gcc/config/aarch64/aarch64-protos.h @@ -424,12 +424,12 @@ bool aarch64_constant_address_p (rtx); bool aarch64_emit_approx_div (rtx, rtx, rtx); bool aarch64_emit_approx_sqrt (rtx, rtx, bool); void aarch64_expand_call (rtx, rtx, bool); -bool aarch64_expand_movmem (rtx *); +bool aarch64_expand_cpymem (rtx *); bool aarch64_float_const_zero_rtx_p (rtx); bool aarch64_float_const_rtx_p (rtx); bool aarch64_function_arg_regno_p (unsigned); bool aarch64_fusion_enabled_p (enum aarch64_fusion_pairs); -bool aarch64_gen_movmemqi (rtx *); +bool aarch64_gen_cpymemqi (rtx *); bool aarch64_gimple_fold_builtin (gimple_stmt_iterator *); bool aarch64_is_extend_from_extract (scalar_int_mode, rtx, rtx); bool aarch64_is_long_call_p (rtx); diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 285ae1cfa7c..5a923ca006b 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -17386,11 +17386,11 @@ aarch64_copy_one_block_and_progress_pointers (rtx *src, rtx *dst, *dst = aarch64_progress_pointer (*dst); } -/* Expand movmem, as if from a __builtin_memcpy. Return true if +/* Expand cpymem, as if from a __builtin_memcpy. Return true if we succeed, otherwise return false. */ bool -aarch64_expand_movmem (rtx *operands) +aarch64_expand_cpymem (rtx *operands) { int n, mode_bits; rtx dst = operands[0]; diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h index bf06caa06ee..92e38a87a76 100644 --- a/gcc/config/aarch64/aarch64.h +++ b/gcc/config/aarch64/aarch64.h @@ -855,7 +855,7 @@ typedef struct /* MOVE_RATIO dictates when we will use the move_by_pieces infrastructure. move_by_pieces will continually copy the largest safe chunks. So a 7-byte copy is a 4-byte + 2-byte + byte copy. This proves inefficient - for both size and speed of copy, so we will instead use the "movmem" + for both size and speed of copy, so we will instead use the "cpymem" standard name to implement the copy. This logic does not apply when targeting -mstrict-align, so keep a sensible default in that case. */ #define MOVE_RATIO(speed) \ diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index 91e46cf6bf2..7026b3a3b92 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -1375,17 +1375,17 @@ ;; 0 is dst ;; 1 is src -;; 2 is size of move in bytes +;; 2 is size of copy in bytes ;; 3 is alignment -(define_expand "movmemdi" +(define_expand "cpymemdi" [(match_operand:BLK 0 "memory_operand") (match_operand:BLK 1 "memory_operand") (match_operand:DI 2 "immediate_operand") (match_operand:DI 3 "immediate_operand")] "!STRICT_ALIGNMENT" { - if (aarch64_expand_movmem (operands)) + if (aarch64_expand_cpymem (operands)) DONE; FAIL; } diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h index e2008202a53..68eafe194b5 100644 --- a/gcc/config/alpha/alpha.h +++ b/gcc/config/alpha/alpha.h @@ -759,7 +759,7 @@ do { \ #define MOVE_MAX 8 /* If a memory-to-memory move would take MOVE_RATIO or more simple - move-instruction pairs, we will do a movmem or libcall instead. + move-instruction pairs, we will do a cpymem or libcall instead. Without byte/word accesses, we want no more than four instructions; with, several single byte accesses are better. */ diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md index d15295d06f3..b195eb9c698 100644 --- a/gcc/config/alpha/alpha.md +++ b/gcc/config/alpha/alpha.md @@ -4673,7 +4673,7 @@ ;; Argument 2 is the length ;; Argument 3 is the alignment -(define_expand "movmemqi" +(define_expand "cpymemqi" [(parallel [(set (match_operand:BLK 0 "memory_operand") (match_operand:BLK 1 "memory_operand")) (use (match_operand:DI 2 "immediate_operand")) @@ -4686,7 +4686,7 @@ FAIL; }) -(define_expand "movmemdi" +(define_expand "cpymemdi" [(parallel [(set (match_operand:BLK 0 "memory_operand") (match_operand:BLK 1 "memory_operand")) (use (match_operand:DI 2 "immediate_operand")) @@ -4703,7 +4703,7 @@ "TARGET_ABI_OPEN_VMS" "operands[4] = gen_rtx_SYMBOL_REF (Pmode, \"OTS$MOVE\");") -(define_insn "*movmemdi_1" +(define_insn "*cpymemdi_1" [(set (match_operand:BLK 0 "memory_operand" "=m,m") (match_operand:BLK 1 "memory_operand" "m,m")) (use (match_operand:DI 2 "nonmemory_operand" "r,i")) diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h index f501bc30ee7..74e52475066 100644 --- a/gcc/config/arc/arc-protos.h +++ b/gcc/config/arc/arc-protos.h @@ -35,7 +35,7 @@ extern void arc_final_prescan_insn (rtx_insn *, rtx *, int); extern const char *arc_output_libcall (const char *); extern int arc_output_addsi (rtx *operands, bool, bool); extern int arc_output_commutative_cond_exec (rtx *operands, bool); -extern bool arc_expand_movmem (rtx *operands); +extern bool arc_expand_cpymem (rtx *operands); extern bool prepare_move_operands (rtx *operands, machine_mode mode); extern void emit_shift (enum rtx_code, rtx, rtx, rtx); extern void arc_expand_atomic_op (enum rtx_code, rtx, rtx, rtx, rtx, rtx); diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c index 0f80e2ad86d..ff82c9f7136 100644 --- a/gcc/config/arc/arc.c +++ b/gcc/config/arc/arc.c @@ -8778,7 +8778,7 @@ arc_output_commutative_cond_exec (rtx *operands, bool output_p) return 8; } -/* Helper function of arc_expand_movmem. ADDR points to a chunk of memory. +/* Helper function of arc_expand_cpymem. ADDR points to a chunk of memory. Emit code and return an potentially modified address such that offsets up to SIZE are can be added to yield a legitimate address. if REUSE is set, ADDR is a register that may be modified. */ @@ -8812,7 +8812,7 @@ force_offsettable (rtx addr, HOST_WIDE_INT size, bool reuse) offset ranges. Return true on success. */ bool -arc_expand_movmem (rtx *operands) +arc_expand_cpymem (rtx *operands) { rtx dst = operands[0]; rtx src = operands[1]; @@ -10322,7 +10322,7 @@ arc_use_by_pieces_infrastructure_p (unsigned HOST_WIDE_INT size, enum by_pieces_operation op, bool speed_p) { - /* Let the movmem expander handle small block moves. */ + /* Let the cpymem expander handle small block moves. */ if (op == MOVE_BY_PIECES) return false; diff --git a/gcc/config/arc/arc.h b/gcc/config/arc/arc.h index 80dead957cb..4a9dd07f558 100644 --- a/gcc/config/arc/arc.h +++ b/gcc/config/arc/arc.h @@ -1423,7 +1423,7 @@ do { \ in one reasonably fast instruction. */ #define MOVE_MAX 4 -/* Undo the effects of the movmem pattern presence on STORE_BY_PIECES_P . */ +/* Undo the effects of the cpymem pattern presence on STORE_BY_PIECES_P . */ #define MOVE_RATIO(SPEED) ((SPEED) ? 15 : 3) /* Define this to be nonzero if shift instructions ignore all but the diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md index 99a0e337884..b793e5b07a5 100644 --- a/gcc/config/arc/arc.md +++ b/gcc/config/arc/arc.md @@ -5126,13 +5126,13 @@ core_3, archs4x, archs4xd, archs4xd_slow" (set_attr "type" "loop_end") (set_attr "length" "4,20")]) -(define_expand "movmemsi" +(define_expand "cpymemsi" [(match_operand:BLK 0 "" "") (match_operand:BLK 1 "" "") (match_operand:SI 2 "nonmemory_operand" "") (match_operand 3 "immediate_operand" "")] "" - "if (arc_expand_movmem (operands)) DONE; else FAIL;") + "if (arc_expand_cpymem (operands)) DONE; else FAIL;") ;; Close http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35803 if this works ;; to the point that we can generate cmove instructions. diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h index 485bc68a618..bf2bf1c3b05 100644 --- a/gcc/config/arm/arm-protos.h +++ b/gcc/config/arm/arm-protos.h @@ -126,8 +126,8 @@ extern bool offset_ok_for_ldrd_strd (HOST_WIDE_INT); extern bool operands_ok_ldrd_strd (rtx, rtx, rtx, HOST_WIDE_INT, bool, bool); extern bool gen_operands_ldrd_strd (rtx *, bool, bool, bool); extern bool valid_operands_ldrd_strd (rtx *, bool); -extern int arm_gen_movmemqi (rtx *); -extern bool gen_movmem_ldrd_strd (rtx *); +extern int arm_gen_cpymemqi (rtx *); +extern bool gen_cpymem_ldrd_strd (rtx *); extern machine_mode arm_select_cc_mode (RTX_CODE, rtx, rtx); extern machine_mode arm_select_dominance_cc_mode (rtx, rtx, HOST_WIDE_INT); @@ -203,7 +203,7 @@ extern void thumb2_final_prescan_insn (rtx_insn *); extern const char *thumb_load_double_from_address (rtx *); extern const char *thumb_output_move_mem_multiple (int, rtx *); extern const char *thumb_call_via_reg (rtx); -extern void thumb_expand_movmemqi (rtx *); +extern void thumb_expand_cpymemqi (rtx *); extern rtx arm_return_addr (int, rtx); extern void thumb_reload_out_hi (rtx *); extern void thumb_set_return_address (rtx, rtx); diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index e3e71eaf2f6..820502ac8a0 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -14385,7 +14385,7 @@ arm_block_move_unaligned_loop (rtx dest, rtx src, HOST_WIDE_INT length, core type, optimize_size setting, etc. */ static int -arm_movmemqi_unaligned (rtx *operands) +arm_cpymemqi_unaligned (rtx *operands) { HOST_WIDE_INT length = INTVAL (operands[2]); @@ -14422,7 +14422,7 @@ arm_movmemqi_unaligned (rtx *operands) } int -arm_gen_movmemqi (rtx *operands) +arm_gen_cpymemqi (rtx *operands) { HOST_WIDE_INT in_words_to_go, out_words_to_go, last_bytes; HOST_WIDE_INT srcoffset, dstoffset; @@ -14436,7 +14436,7 @@ arm_gen_movmemqi (rtx *operands) return 0; if (unaligned_access && (INTVAL (operands[3]) & 3) != 0) - return arm_movmemqi_unaligned (operands); + return arm_cpymemqi_unaligned (operands); if (INTVAL (operands[3]) & 3) return 0; @@ -14570,7 +14570,7 @@ arm_gen_movmemqi (rtx *operands) return 1; } -/* Helper for gen_movmem_ldrd_strd. Increase the address of memory rtx +/* Helper for gen_cpymem_ldrd_strd. Increase the address of memory rtx by mode size. */ inline static rtx next_consecutive_mem (rtx mem) @@ -14585,7 +14585,7 @@ next_consecutive_mem (rtx mem) /* Copy using LDRD/STRD instructions whenever possible. Returns true upon success. */ bool -gen_movmem_ldrd_strd (rtx *operands) +gen_cpymem_ldrd_strd (rtx *operands) { unsigned HOST_WIDE_INT len; HOST_WIDE_INT align; @@ -14629,7 +14629,7 @@ gen_movmem_ldrd_strd (rtx *operands) /* If we cannot generate any LDRD/STRD, try to generate LDM/STM. */ if (!(dst_aligned || src_aligned)) - return arm_gen_movmemqi (operands); + return arm_gen_cpymemqi (operands); /* If the either src or dst is unaligned we'll be accessing it as pairs of unaligned SImode accesses. Otherwise we can generate DImode @@ -26395,7 +26395,7 @@ thumb_call_via_reg (rtx reg) /* Routines for generating rtl. */ void -thumb_expand_movmemqi (rtx *operands) +thumb_expand_cpymemqi (rtx *operands) { rtx out = copy_to_mode_reg (SImode, XEXP (operands[0], 0)); rtx in = copy_to_mode_reg (SImode, XEXP (operands[1], 0)); @@ -26404,13 +26404,13 @@ thumb_expand_movmemqi (rtx *operands) while (len >= 12) { - emit_insn (gen_movmem12b (out, in, out, in)); + emit_insn (gen_cpymem12b (out, in, out, in)); len -= 12; } if (len >= 8) { - emit_insn (gen_movmem8b (out, in, out, in)); + emit_insn (gen_cpymem8b (out, in, out, in)); len -= 8; } diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index ae582172ab9..a7fa4109df2 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -7250,7 +7250,7 @@ ;; We could let this apply for blocks of less than this, but it clobbers so ;; many registers that there is then probably a better way. -(define_expand "movmemqi" +(define_expand "cpymemqi" [(match_operand:BLK 0 "general_operand" "") (match_operand:BLK 1 "general_operand" "") (match_operand:SI 2 "const_int_operand" "") @@ -7262,12 +7262,12 @@ if (TARGET_LDRD && current_tune->prefer_ldrd_strd && !optimize_function_for_size_p (cfun)) { - if (gen_movmem_ldrd_strd (operands)) + if (gen_cpymem_ldrd_strd (operands)) DONE; FAIL; } - if (arm_gen_movmemqi (operands)) + if (arm_gen_cpymemqi (operands)) DONE; FAIL; } @@ -7277,7 +7277,7 @@ || INTVAL (operands[2]) > 48) FAIL; - thumb_expand_movmemqi (operands); + thumb_expand_cpymemqi (operands); DONE; } " diff --git a/gcc/config/arm/thumb1.md b/gcc/config/arm/thumb1.md index cefd6cfcdcd..b199349b19c 100644 --- a/gcc/config/arm/thumb1.md +++ b/gcc/config/arm/thumb1.md @@ -928,7 +928,7 @@ ;; Thumb block-move insns -(define_insn "movmem12b" +(define_insn "cpymem12b" [(set (mem:SI (match_operand:SI 2 "register_operand" "0")) (mem:SI (match_operand:SI 3 "register_operand" "1"))) (set (mem:SI (plus:SI (match_dup 2) (const_int 4))) @@ -950,7 +950,7 @@ (set_attr "type" "store_12")] ) -(define_insn "movmem8b" +(define_insn "cpymem8b" [(set (mem:SI (match_operand:SI 2 "register_operand" "0")) (mem:SI (match_operand:SI 3 "register_operand" "1"))) (set (mem:SI (plus:SI (match_dup 2) (const_int 4))) diff --git a/gcc/config/avr/avr-protos.h b/gcc/config/avr/avr-protos.h index dd0babbd77e..31fe3a66d9e 100644 --- a/gcc/config/avr/avr-protos.h +++ b/gcc/config/avr/avr-protos.h @@ -82,7 +82,7 @@ extern rtx avr_to_int_mode (rtx); extern void avr_expand_prologue (void); extern void avr_expand_epilogue (bool); -extern bool avr_emit_movmemhi (rtx*); +extern bool avr_emit_cpymemhi (rtx*); extern int avr_epilogue_uses (int regno); extern void avr_output_addr_vec (rtx_insn*, rtx); @@ -92,7 +92,7 @@ extern const char* avr_out_plus (rtx, rtx*, int* =NULL, int* =NULL, bool =true); extern const char* avr_out_round (rtx_insn *, rtx*, int* =NULL); extern const char* avr_out_addto_sp (rtx*, int*); extern const char* avr_out_xload (rtx_insn *, rtx*, int*); -extern const char* avr_out_movmem (rtx_insn *, rtx*, int*); +extern const char* avr_out_cpymem (rtx_insn *, rtx*, int*); extern const char* avr_out_insert_bits (rtx*, int*); extern bool avr_popcount_each_byte (rtx, int, int); extern bool avr_has_nibble_0xf (rtx); diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 873a9da6140..b97faafdc3b 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -9404,7 +9404,7 @@ avr_adjust_insn_length (rtx_insn *insn, int len) case ADJUST_LEN_MOV16: output_movhi (insn, op, &len); break; case ADJUST_LEN_MOV24: avr_out_movpsi (insn, op, &len); break; case ADJUST_LEN_MOV32: output_movsisf (insn, op, &len); break; - case ADJUST_LEN_MOVMEM: avr_out_movmem (insn, op, &len); break; + case ADJUST_LEN_CPYMEM: avr_out_cpymem (insn, op, &len); break; case ADJUST_LEN_XLOAD: avr_out_xload (insn, op, &len); break; case ADJUST_LEN_SEXT: avr_out_sign_extend (insn, op, &len); break; @@ -13321,7 +13321,7 @@ avr_emit3_fix_outputs (rtx (*gen)(rtx,rtx,rtx), rtx *op, } -/* Worker function for movmemhi expander. +/* Worker function for cpymemhi expander. XOP[0] Destination as MEM:BLK XOP[1] Source " " XOP[2] # Bytes to copy @@ -13330,7 +13330,7 @@ avr_emit3_fix_outputs (rtx (*gen)(rtx,rtx,rtx), rtx *op, Return FALSE if the operand compination is not supported. */ bool -avr_emit_movmemhi (rtx *xop) +avr_emit_cpymemhi (rtx *xop) { HOST_WIDE_INT count; machine_mode loop_mode; @@ -13407,14 +13407,14 @@ avr_emit_movmemhi (rtx *xop) Do the copy-loop inline. */ rtx (*fun) (rtx, rtx, rtx) - = QImode == loop_mode ? gen_movmem_qi : gen_movmem_hi; + = QImode == loop_mode ? gen_cpymem_qi : gen_cpymem_hi; insn = fun (xas, loop_reg, loop_reg); } else { rtx (*fun) (rtx, rtx) - = QImode == loop_mode ? gen_movmemx_qi : gen_movmemx_hi; + = QImode == loop_mode ? gen_cpymemx_qi : gen_cpymemx_hi; emit_move_insn (gen_rtx_REG (QImode, 23), a_hi8); @@ -13428,7 +13428,7 @@ avr_emit_movmemhi (rtx *xop) } -/* Print assembler for movmem_qi, movmem_hi insns... +/* Print assembler for cpymem_qi, cpymem_hi insns... $0 : Address Space $1, $2 : Loop register Z : Source address @@ -13436,7 +13436,7 @@ avr_emit_movmemhi (rtx *xop) */ const char* -avr_out_movmem (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *op, int *plen) +avr_out_cpymem (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *op, int *plen) { addr_space_t as = (addr_space_t) INTVAL (op[0]); machine_mode loop_mode = GET_MODE (op[1]); diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md index f263b693cca..e85bf49632d 100644 --- a/gcc/config/avr/avr.md +++ b/gcc/config/avr/avr.md @@ -70,7 +70,7 @@ (define_c_enum "unspec" [UNSPEC_STRLEN - UNSPEC_MOVMEM + UNSPEC_CPYMEM UNSPEC_INDEX_JMP UNSPEC_FMUL UNSPEC_FMULS @@ -158,7 +158,7 @@ tsthi, tstpsi, tstsi, compare, compare64, call, mov8, mov16, mov24, mov32, reload_in16, reload_in24, reload_in32, ufract, sfract, round, - xload, movmem, + xload, cpymem, ashlqi, ashrqi, lshrqi, ashlhi, ashrhi, lshrhi, ashlsi, ashrsi, lshrsi, @@ -992,20 +992,20 @@ ;;========================================================================= ;; move string (like memcpy) -(define_expand "movmemhi" +(define_expand "cpymemhi" [(parallel [(set (match_operand:BLK 0 "memory_operand" "") (match_operand:BLK 1 "memory_operand" "")) (use (match_operand:HI 2 "const_int_operand" "")) (use (match_operand:HI 3 "const_int_operand" ""))])] "" { - if (avr_emit_movmemhi (operands)) + if (avr_emit_cpymemhi (operands)) DONE; FAIL; }) -(define_mode_attr MOVMEM_r_d [(QI "r") +(define_mode_attr CPYMEM_r_d [(QI "r") (HI "wd")]) ;; $0 : Address Space @@ -1013,23 +1013,23 @@ ;; R30 : source address ;; R26 : destination address -;; "movmem_qi" -;; "movmem_hi" -(define_insn "movmem_" +;; "cpymem_qi" +;; "cpymem_hi" +(define_insn "cpymem_" [(set (mem:BLK (reg:HI REG_X)) (mem:BLK (reg:HI REG_Z))) (unspec [(match_operand:QI 0 "const_int_operand" "n")] - UNSPEC_MOVMEM) - (use (match_operand:QIHI 1 "register_operand" "")) + UNSPEC_CPYMEM) + (use (match_operand:QIHI 1 "register_operand" "")) (clobber (reg:HI REG_X)) (clobber (reg:HI REG_Z)) (clobber (reg:QI LPM_REGNO)) (clobber (match_operand:QIHI 2 "register_operand" "=1"))] "" { - return avr_out_movmem (insn, operands, NULL); + return avr_out_cpymem (insn, operands, NULL); } - [(set_attr "adjust_len" "movmem") + [(set_attr "adjust_len" "cpymem") (set_attr "cc" "clobber")]) @@ -1039,14 +1039,14 @@ ;; R23:Z : 24-bit source address ;; R26 : 16-bit destination address -;; "movmemx_qi" -;; "movmemx_hi" -(define_insn "movmemx_" +;; "cpymemx_qi" +;; "cpymemx_hi" +(define_insn "cpymemx_" [(set (mem:BLK (reg:HI REG_X)) (mem:BLK (lo_sum:PSI (reg:QI 23) (reg:HI REG_Z)))) (unspec [(match_operand:QI 0 "const_int_operand" "n")] - UNSPEC_MOVMEM) + UNSPEC_CPYMEM) (use (reg:QIHI 24)) (clobber (reg:HI REG_X)) (clobber (reg:HI REG_Z)) diff --git a/gcc/config/bfin/bfin-protos.h b/gcc/config/bfin/bfin-protos.h index 64a18427547..7d0f705e069 100644 --- a/gcc/config/bfin/bfin-protos.h +++ b/gcc/config/bfin/bfin-protos.h @@ -81,7 +81,7 @@ extern bool expand_move (rtx *, machine_mode); extern void bfin_expand_call (rtx, rtx, rtx, rtx, int); extern bool bfin_longcall_p (rtx, int); extern bool bfin_dsp_memref_p (rtx); -extern bool bfin_expand_movmem (rtx, rtx, rtx, rtx); +extern bool bfin_expand_cpymem (rtx, rtx, rtx, rtx); extern enum reg_class secondary_input_reload_class (enum reg_class, machine_mode, diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c index e520115f741..319d7e2a035 100644 --- a/gcc/config/bfin/bfin.c +++ b/gcc/config/bfin/bfin.c @@ -3208,7 +3208,7 @@ output_pop_multiple (rtx insn, rtx *operands) /* Adjust DST and SRC by OFFSET bytes, and generate one move in mode MODE. */ static void -single_move_for_movmem (rtx dst, rtx src, machine_mode mode, HOST_WIDE_INT offset) +single_move_for_cpymem (rtx dst, rtx src, machine_mode mode, HOST_WIDE_INT offset) { rtx scratch = gen_reg_rtx (mode); rtx srcmem, dstmem; @@ -3224,7 +3224,7 @@ single_move_for_movmem (rtx dst, rtx src, machine_mode mode, HOST_WIDE_INT offse back on a different method. */ bool -bfin_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp) +bfin_expand_cpymem (rtx dst, rtx src, rtx count_exp, rtx align_exp) { rtx srcreg, destreg, countreg; HOST_WIDE_INT align = 0; @@ -3269,7 +3269,7 @@ bfin_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp) { if ((count & ~3) == 4) { - single_move_for_movmem (dst, src, SImode, offset); + single_move_for_cpymem (dst, src, SImode, offset); offset = 4; } else if (count & ~3) @@ -3282,7 +3282,7 @@ bfin_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp) } if (count & 2) { - single_move_for_movmem (dst, src, HImode, offset); + single_move_for_cpymem (dst, src, HImode, offset); offset += 2; } } @@ -3290,7 +3290,7 @@ bfin_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp) { if ((count & ~1) == 2) { - single_move_for_movmem (dst, src, HImode, offset); + single_move_for_cpymem (dst, src, HImode, offset); offset = 2; } else if (count & ~1) @@ -3304,7 +3304,7 @@ bfin_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp) } if (count & 1) { - single_move_for_movmem (dst, src, QImode, offset); + single_move_for_cpymem (dst, src, QImode, offset); } return true; } diff --git a/gcc/config/bfin/bfin.h b/gcc/config/bfin/bfin.h index 19b7f819d0b..4aba596f68e 100644 --- a/gcc/config/bfin/bfin.h +++ b/gcc/config/bfin/bfin.h @@ -793,7 +793,7 @@ typedef struct { #define MOVE_MAX UNITS_PER_WORD /* If a memory-to-memory move would take MOVE_RATIO or more simple - move-instruction pairs, we will do a movmem or libcall instead. */ + move-instruction pairs, we will do a cpymem or libcall instead. */ #define MOVE_RATIO(speed) 5 diff --git a/gcc/config/bfin/bfin.md b/gcc/config/bfin/bfin.md index ac589242413..6ac208d04a5 100644 --- a/gcc/config/bfin/bfin.md +++ b/gcc/config/bfin/bfin.md @@ -2316,14 +2316,14 @@ (set_attr "length" "16") (set_attr "seq_insns" "multi")]) -(define_expand "movmemsi" +(define_expand "cpymemsi" [(match_operand:BLK 0 "general_operand" "") (match_operand:BLK 1 "general_operand" "") (match_operand:SI 2 "const_int_operand" "") (match_operand:SI 3 "const_int_operand" "")] "" { - if (bfin_expand_movmem (operands[0], operands[1], operands[2], operands[3])) + if (bfin_expand_cpymem (operands[0], operands[1], operands[2], operands[3])) DONE; FAIL; }) diff --git a/gcc/config/c6x/c6x-protos.h b/gcc/config/c6x/c6x-protos.h index a657969a266..8c04c315a63 100644 --- a/gcc/config/c6x/c6x-protos.h +++ b/gcc/config/c6x/c6x-protos.h @@ -35,7 +35,7 @@ extern bool c6x_long_call_p (rtx); extern void c6x_expand_call (rtx, rtx, bool); extern rtx c6x_expand_compare (rtx, machine_mode); extern bool c6x_force_op_for_comparison_p (enum rtx_code, rtx); -extern bool c6x_expand_movmem (rtx, rtx, rtx, rtx, rtx, rtx); +extern bool c6x_expand_cpymem (rtx, rtx, rtx, rtx, rtx, rtx); extern rtx c6x_subword (rtx, bool); extern void split_di (rtx *, int, rtx *, rtx *); diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c index 742c54be4bb..93841e4abef 100644 --- a/gcc/config/c6x/c6x.c +++ b/gcc/config/c6x/c6x.c @@ -1686,10 +1686,10 @@ c6x_valid_mask_p (HOST_WIDE_INT val) return true; } -/* Expand a block move for a movmemM pattern. */ +/* Expand a block move for a cpymemM pattern. */ bool -c6x_expand_movmem (rtx dst, rtx src, rtx count_exp, rtx align_exp, +c6x_expand_cpymem (rtx dst, rtx src, rtx count_exp, rtx align_exp, rtx expected_align_exp ATTRIBUTE_UNUSED, rtx expected_size_exp ATTRIBUTE_UNUSED) { diff --git a/gcc/config/c6x/c6x.md b/gcc/config/c6x/c6x.md index 8218e1dad99..f9bf9ba99ab 100644 --- a/gcc/config/c6x/c6x.md +++ b/gcc/config/c6x/c6x.md @@ -2844,7 +2844,7 @@ ;; Block moves ;; ------------------------------------------------------------------------- -(define_expand "movmemsi" +(define_expand "cpymemsi" [(use (match_operand:BLK 0 "memory_operand" "")) (use (match_operand:BLK 1 "memory_operand" "")) (use (match_operand:SI 2 "nonmemory_operand" "")) @@ -2853,7 +2853,7 @@ (use (match_operand:SI 5 "const_int_operand" ""))] "" { - if (c6x_expand_movmem (operands[0], operands[1], operands[2], operands[3], + if (c6x_expand_cpymem (operands[0], operands[1], operands[2], operands[3], operands[4], operands[5])) DONE; else diff --git a/gcc/config/frv/frv.md b/gcc/config/frv/frv.md index 064bf53ea51..6e8db59fdd9 100644 --- a/gcc/config/frv/frv.md +++ b/gcc/config/frv/frv.md @@ -1887,7 +1887,7 @@ ;; Argument 2 is the length ;; Argument 3 is the alignment -(define_expand "movmemsi" +(define_expand "cpymemsi" [(parallel [(set (match_operand:BLK 0 "" "") (match_operand:BLK 1 "" "")) (use (match_operand:SI 2 "" "")) diff --git a/gcc/config/ft32/ft32.md b/gcc/config/ft32/ft32.md index de239464437..9e31f2ca7cb 100644 --- a/gcc/config/ft32/ft32.md +++ b/gcc/config/ft32/ft32.md @@ -851,7 +851,7 @@ "stpcpy %b1,%b2 # %0 %b1 %b2" ) -(define_insn "movmemsi" +(define_insn "cpymemsi" [(set (match_operand:BLK 0 "memory_operand" "=W,BW") (match_operand:BLK 1 "memory_operand" "W,BW")) (use (match_operand:SI 2 "ft32_imm_operand" "KA,KA")) diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index eb0ae835f0a..42610fddb09 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -474,11 +474,11 @@ (set_attr "length_table" "*,movl") (set_attr "cc" "set_zn,set_znv")]) -;; Implement block moves using movmd. Defining movmemsi allows the full +;; Implement block copies using movmd. Defining cpymemsi allows the full ;; range of constant lengths (up to 0x40000 bytes when using movmd.l). ;; See h8sx_emit_movmd for details. -(define_expand "movmemsi" +(define_expand "cpymemsi" [(use (match_operand:BLK 0 "memory_operand" "")) (use (match_operand:BLK 1 "memory_operand" "")) (use (match_operand:SI 2 "" "")) diff --git a/gcc/config/i386/i386-expand.c b/gcc/config/i386/i386-expand.c index 8a4955f87d2..85d74a28636 100644 --- a/gcc/config/i386/i386-expand.c +++ b/gcc/config/i386/i386-expand.c @@ -5801,7 +5801,7 @@ counter_mode (rtx count_exp) static void -expand_set_or_movmem_via_loop (rtx destmem, rtx srcmem, +expand_set_or_cpymem_via_loop (rtx destmem, rtx srcmem, rtx destptr, rtx srcptr, rtx value, rtx count, machine_mode mode, int unroll, int expected_size, bool issetmem) @@ -5954,7 +5954,7 @@ scale_counter (rtx countreg, int scale) Other arguments have same meaning as for previous function. */ static void -expand_set_or_movmem_via_rep (rtx destmem, rtx srcmem, +expand_set_or_cpymem_via_rep (rtx destmem, rtx srcmem, rtx destptr, rtx srcptr, rtx value, rtx orig_value, rtx count, machine_mode mode, bool issetmem) @@ -6121,7 +6121,7 @@ ix86_expand_aligntest (rtx variable, int value, bool epilogue) /* Output code to copy at most count & (max_size - 1) bytes from SRC to DEST. */ static void -expand_movmem_epilogue (rtx destmem, rtx srcmem, +expand_cpymem_epilogue (rtx destmem, rtx srcmem, rtx destptr, rtx srcptr, rtx count, int max_size) { rtx src, dest; @@ -6146,7 +6146,7 @@ expand_movmem_epilogue (rtx destmem, rtx srcmem, { count = expand_simple_binop (GET_MODE (count), AND, count, GEN_INT (max_size - 1), count, 1, OPTAB_DIRECT); - expand_set_or_movmem_via_loop (destmem, srcmem, destptr, srcptr, NULL, + expand_set_or_cpymem_via_loop (destmem, srcmem, destptr, srcptr, NULL, count, QImode, 1, 4, false); return; } @@ -6295,7 +6295,7 @@ expand_setmem_epilogue_via_loop (rtx destmem, rtx destptr, rtx value, { count = expand_simple_binop (counter_mode (count), AND, count, GEN_INT (max_size - 1), count, 1, OPTAB_DIRECT); - expand_set_or_movmem_via_loop (destmem, NULL, destptr, NULL, + expand_set_or_cpymem_via_loop (destmem, NULL, destptr, NULL, gen_lowpart (QImode, value), count, QImode, 1, max_size / 2, true); } @@ -6416,7 +6416,7 @@ ix86_adjust_counter (rtx countreg, HOST_WIDE_INT value) Return value is updated DESTMEM. */ static rtx -expand_set_or_movmem_prologue (rtx destmem, rtx srcmem, +expand_set_or_cpymem_prologue (rtx destmem, rtx srcmem, rtx destptr, rtx srcptr, rtx value, rtx vec_value, rtx count, int align, int desired_alignment, bool issetmem) @@ -6449,7 +6449,7 @@ expand_set_or_movmem_prologue (rtx destmem, rtx srcmem, or setmem sequence that is valid for SIZE..2*SIZE-1 bytes and jump to DONE_LABEL. */ static void -expand_small_movmem_or_setmem (rtx destmem, rtx srcmem, +expand_small_cpymem_or_setmem (rtx destmem, rtx srcmem, rtx destptr, rtx srcptr, rtx value, rtx vec_value, rtx count, int size, @@ -6575,7 +6575,7 @@ expand_small_movmem_or_setmem (rtx destmem, rtx srcmem, done_label: */ static void -expand_set_or_movmem_prologue_epilogue_by_misaligned_moves (rtx destmem, rtx srcmem, +expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves (rtx destmem, rtx srcmem, rtx *destptr, rtx *srcptr, machine_mode mode, rtx value, rtx vec_value, @@ -6616,7 +6616,7 @@ expand_set_or_movmem_prologue_epilogue_by_misaligned_moves (rtx destmem, rtx src /* Handle sizes > 3. */ for (;size2 > 2; size2 >>= 1) - expand_small_movmem_or_setmem (destmem, srcmem, + expand_small_cpymem_or_setmem (destmem, srcmem, *destptr, *srcptr, value, vec_value, *count, @@ -6771,7 +6771,7 @@ expand_set_or_movmem_prologue_epilogue_by_misaligned_moves (rtx destmem, rtx src is returned, but also of SRC, which is passed as a pointer for that reason. */ static rtx -expand_set_or_movmem_constant_prologue (rtx dst, rtx *srcp, rtx destreg, +expand_set_or_cpymem_constant_prologue (rtx dst, rtx *srcp, rtx destreg, rtx srcreg, rtx value, rtx vec_value, int desired_align, int align_bytes, bool issetmem) @@ -7214,7 +7214,7 @@ ix86_copy_addr_to_reg (rtx addr) 3) Main body: the copying loop itself, copying in SIZE_NEEDED chunks with specified algorithm. */ bool -ix86_expand_set_or_movmem (rtx dst, rtx src, rtx count_exp, rtx val_exp, +ix86_expand_set_or_cpymem (rtx dst, rtx src, rtx count_exp, rtx val_exp, rtx align_exp, rtx expected_align_exp, rtx expected_size_exp, rtx min_size_exp, rtx max_size_exp, rtx probable_max_size_exp, @@ -7436,7 +7436,7 @@ ix86_expand_set_or_movmem (rtx dst, rtx src, rtx count_exp, rtx val_exp, if (misaligned_prologue_used) { /* Misaligned move prologue handled small blocks by itself. */ - expand_set_or_movmem_prologue_epilogue_by_misaligned_moves + expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves (dst, src, &destreg, &srcreg, move_mode, promoted_val, vec_promoted_val, &count_exp, @@ -7553,7 +7553,7 @@ ix86_expand_set_or_movmem (rtx dst, rtx src, rtx count_exp, rtx val_exp, dst = change_address (dst, BLKmode, destreg); if (!issetmem) src = change_address (src, BLKmode, srcreg); - dst = expand_set_or_movmem_prologue (dst, src, destreg, srcreg, + dst = expand_set_or_cpymem_prologue (dst, src, destreg, srcreg, promoted_val, vec_promoted_val, count_exp, align, desired_align, issetmem); @@ -7567,7 +7567,7 @@ ix86_expand_set_or_movmem (rtx dst, rtx src, rtx count_exp, rtx val_exp, { /* If we know how many bytes need to be stored before dst is sufficiently aligned, maintain aliasing info accurately. */ - dst = expand_set_or_movmem_constant_prologue (dst, &src, destreg, + dst = expand_set_or_cpymem_constant_prologue (dst, &src, destreg, srcreg, promoted_val, vec_promoted_val, @@ -7626,19 +7626,19 @@ ix86_expand_set_or_movmem (rtx dst, rtx src, rtx count_exp, rtx val_exp, case loop_1_byte: case loop: case unrolled_loop: - expand_set_or_movmem_via_loop (dst, src, destreg, srcreg, promoted_val, + expand_set_or_cpymem_via_loop (dst, src, destreg, srcreg, promoted_val, count_exp, move_mode, unroll_factor, expected_size, issetmem); break; case vector_loop: - expand_set_or_movmem_via_loop (dst, src, destreg, srcreg, + expand_set_or_cpymem_via_loop (dst, src, destreg, srcreg, vec_promoted_val, count_exp, move_mode, unroll_factor, expected_size, issetmem); break; case rep_prefix_8_byte: case rep_prefix_4_byte: case rep_prefix_1_byte: - expand_set_or_movmem_via_rep (dst, src, destreg, srcreg, promoted_val, + expand_set_or_cpymem_via_rep (dst, src, destreg, srcreg, promoted_val, val_exp, count_exp, move_mode, issetmem); break; } @@ -7691,7 +7691,7 @@ ix86_expand_set_or_movmem (rtx dst, rtx src, rtx count_exp, rtx val_exp, vec_promoted_val, count_exp, epilogue_size_needed); else - expand_movmem_epilogue (dst, src, destreg, srcreg, count_exp, + expand_cpymem_epilogue (dst, src, destreg, srcreg, count_exp, epilogue_size_needed); } } diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h index 2faa9f15830..4d6e76d5580 100644 --- a/gcc/config/i386/i386-protos.h +++ b/gcc/config/i386/i386-protos.h @@ -66,7 +66,7 @@ extern int avx_vpermilp_parallel (rtx par, machine_mode mode); extern int avx_vperm2f128_parallel (rtx par, machine_mode mode); extern bool ix86_expand_strlen (rtx, rtx, rtx, rtx); -extern bool ix86_expand_set_or_movmem (rtx, rtx, rtx, rtx, rtx, rtx, +extern bool ix86_expand_set_or_cpymem (rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, rtx, bool); extern bool constant_address_p (rtx); diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 5e670b5fd11..1f70844fc45 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -1901,7 +1901,7 @@ typedef struct ix86_args { ? GET_MODE_SIZE (TImode) : UNITS_PER_WORD) /* If a memory-to-memory move would take MOVE_RATIO or more simple - move-instruction pairs, we will do a movmem or libcall instead. + move-instruction pairs, we will do a cpymem or libcall instead. Increasing the value will always make code faster, but eventually incurs high cost in increased code size. diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 6c14a37ea51..19beeb2a59a 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -16580,7 +16580,7 @@ (set_attr "length_immediate" "0") (set_attr "modrm" "0")]) -(define_expand "movmem" +(define_expand "cpymem" [(use (match_operand:BLK 0 "memory_operand")) (use (match_operand:BLK 1 "memory_operand")) (use (match_operand:SWI48 2 "nonmemory_operand")) @@ -16592,7 +16592,7 @@ (use (match_operand:SI 8 ""))] "" { - if (ix86_expand_set_or_movmem (operands[0], operands[1], + if (ix86_expand_set_or_cpymem (operands[0], operands[1], operands[2], NULL, operands[3], operands[4], operands[5], operands[6], operands[7], @@ -16807,7 +16807,7 @@ (use (match_operand:SI 8 ""))] "" { - if (ix86_expand_set_or_movmem (operands[0], NULL, + if (ix86_expand_set_or_cpymem (operands[0], NULL, operands[1], operands[2], operands[3], operands[4], operands[5], operands[6], diff --git a/gcc/config/lm32/lm32.md b/gcc/config/lm32/lm32.md index c09052c627a..91a5fe1e004 100644 --- a/gcc/config/lm32/lm32.md +++ b/gcc/config/lm32/lm32.md @@ -216,7 +216,7 @@ } }") -(define_expand "movmemsi" +(define_expand "cpymemsi" [(parallel [(set (match_operand:BLK 0 "general_operand" "") (match_operand:BLK 1 "general_operand" "")) (use (match_operand:SI 2 "" "")) diff --git a/gcc/config/m32c/blkmov.md b/gcc/config/m32c/blkmov.md index d7da439c255..e5cdc801fd8 100644 --- a/gcc/config/m32c/blkmov.md +++ b/gcc/config/m32c/blkmov.md @@ -40,14 +40,14 @@ ;; 1 = source (mem:BLK ...) ;; 2 = count ;; 3 = alignment -(define_expand "movmemhi" +(define_expand "cpymemhi" [(match_operand 0 "ap_operand" "") (match_operand 1 "ap_operand" "") (match_operand 2 "m32c_r3_operand" "") (match_operand 3 "" "") ] "" - "if (m32c_expand_movmemhi(operands)) DONE; FAIL;" + "if (m32c_expand_cpymemhi(operands)) DONE; FAIL;" ) ;; We can't use mode iterators for these because M16C uses r1h to extend @@ -60,7 +60,7 @@ ;; 3 = dest (in) ;; 4 = src (in) ;; 5 = count (in) -(define_insn "movmemhi_bhi_op" +(define_insn "cpymemhi_bhi_op" [(set (mem:QI (match_operand:HI 3 "ap_operand" "0")) (mem:QI (match_operand:HI 4 "ap_operand" "1"))) (set (match_operand:HI 2 "m32c_r3_operand" "=R3w") @@ -75,7 +75,7 @@ "TARGET_A16" "mov.b:q\t#0,r1h\n\tsmovf.b\t; %0[0..%2-1]=r1h%1[]" ) -(define_insn "movmemhi_bpsi_op" +(define_insn "cpymemhi_bpsi_op" [(set (mem:QI (match_operand:PSI 3 "ap_operand" "0")) (mem:QI (match_operand:PSI 4 "ap_operand" "1"))) (set (match_operand:HI 2 "m32c_r3_operand" "=R3w") @@ -89,7 +89,7 @@ "TARGET_A24" "smovf.b\t; %0[0..%2-1]=%1[]" ) -(define_insn "movmemhi_whi_op" +(define_insn "cpymemhi_whi_op" [(set (mem:HI (match_operand:HI 3 "ap_operand" "0")) (mem:HI (match_operand:HI 4 "ap_operand" "1"))) (set (match_operand:HI 2 "m32c_r3_operand" "=R3w") @@ -104,7 +104,7 @@ "TARGET_A16" "mov.b:q\t#0,r1h\n\tsmovf.w\t; %0[0..%2-1]=r1h%1[]" ) -(define_insn "movmemhi_wpsi_op" +(define_insn "cpymemhi_wpsi_op" [(set (mem:HI (match_operand:PSI 3 "ap_operand" "0")) (mem:HI (match_operand:PSI 4 "ap_operand" "1"))) (set (match_operand:HI 2 "m32c_r3_operand" "=R3w") diff --git a/gcc/config/m32c/m32c-protos.h b/gcc/config/m32c/m32c-protos.h index 7d4d478fda7..fe926fd507e 100644 --- a/gcc/config/m32c/m32c-protos.h +++ b/gcc/config/m32c/m32c-protos.h @@ -43,7 +43,7 @@ void m32c_emit_eh_epilogue (rtx); int m32c_expand_cmpstr (rtx *); int m32c_expand_insv (rtx *); int m32c_expand_movcc (rtx *); -int m32c_expand_movmemhi (rtx *); +int m32c_expand_cpymemhi (rtx *); int m32c_expand_movstr (rtx *); void m32c_expand_neg_mulpsi3 (rtx *); int m32c_expand_setmemhi (rtx *); diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c index 1a0d0c681b4..d0d24bb5f2b 100644 --- a/gcc/config/m32c/m32c.c +++ b/gcc/config/m32c/m32c.c @@ -3592,7 +3592,7 @@ m32c_expand_setmemhi(rtx *operands) addresses, not [mem] syntax. $0 is the destination (MEM:BLK), $1 is the source (MEM:BLK), and $2 the count (HI). */ int -m32c_expand_movmemhi(rtx *operands) +m32c_expand_cpymemhi(rtx *operands) { rtx desta, srca, count; rtx desto, srco, counto; @@ -3620,9 +3620,9 @@ m32c_expand_movmemhi(rtx *operands) { count = copy_to_mode_reg (HImode, GEN_INT (INTVAL (count) / 2)); if (TARGET_A16) - emit_insn (gen_movmemhi_whi_op (desto, srco, counto, desta, srca, count)); + emit_insn (gen_cpymemhi_whi_op (desto, srco, counto, desta, srca, count)); else - emit_insn (gen_movmemhi_wpsi_op (desto, srco, counto, desta, srca, count)); + emit_insn (gen_cpymemhi_wpsi_op (desto, srco, counto, desta, srca, count)); return 1; } @@ -3632,9 +3632,9 @@ m32c_expand_movmemhi(rtx *operands) count = copy_to_mode_reg (HImode, count); if (TARGET_A16) - emit_insn (gen_movmemhi_bhi_op (desto, srco, counto, desta, srca, count)); + emit_insn (gen_cpymemhi_bhi_op (desto, srco, counto, desta, srca, count)); else - emit_insn (gen_movmemhi_bpsi_op (desto, srco, counto, desta, srca, count)); + emit_insn (gen_cpymemhi_bpsi_op (desto, srco, counto, desta, srca, count)); return 1; } diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c index 6e79b2aec90..ac18aa286c8 100644 --- a/gcc/config/m32r/m32r.c +++ b/gcc/config/m32r/m32r.c @@ -2598,7 +2598,7 @@ m32r_expand_block_move (rtx operands[]) to the word after the end of the source block, and dst_reg to point to the last word of the destination block, provided that the block is MAX_MOVE_BYTES long. */ - emit_insn (gen_movmemsi_internal (dst_reg, src_reg, at_a_time, + emit_insn (gen_cpymemsi_internal (dst_reg, src_reg, at_a_time, new_dst_reg, new_src_reg)); emit_move_insn (dst_reg, new_dst_reg); emit_move_insn (src_reg, new_src_reg); @@ -2612,7 +2612,7 @@ m32r_expand_block_move (rtx operands[]) } if (leftover) - emit_insn (gen_movmemsi_internal (dst_reg, src_reg, GEN_INT (leftover), + emit_insn (gen_cpymemsi_internal (dst_reg, src_reg, GEN_INT (leftover), gen_reg_rtx (SImode), gen_reg_rtx (SImode))); return 1; diff --git a/gcc/config/m32r/m32r.md b/gcc/config/m32r/m32r.md index be5739763b7..e944363fd9b 100644 --- a/gcc/config/m32r/m32r.md +++ b/gcc/config/m32r/m32r.md @@ -2195,7 +2195,7 @@ ;; Argument 2 is the length ;; Argument 3 is the alignment -(define_expand "movmemsi" +(define_expand "cpymemsi" [(parallel [(set (match_operand:BLK 0 "general_operand" "") (match_operand:BLK 1 "general_operand" "")) (use (match_operand:SI 2 "immediate_operand" "")) @@ -2214,7 +2214,7 @@ ;; Insn generated by block moves -(define_insn "movmemsi_internal" +(define_insn "cpymemsi_internal" [(set (mem:BLK (match_operand:SI 0 "register_operand" "r")) ;; destination (mem:BLK (match_operand:SI 1 "register_operand" "r"))) ;; source (use (match_operand:SI 2 "m32r_block_immediate_operand" "J"));; # bytes to move diff --git a/gcc/config/mcore/mcore.md b/gcc/config/mcore/mcore.md index cc84e342b32..c6893518dc0 100644 --- a/gcc/config/mcore/mcore.md +++ b/gcc/config/mcore/mcore.md @@ -2552,7 +2552,7 @@ ;; Block move - adapted from m88k.md ;; ------------------------------------------------------------------------ -(define_expand "movmemsi" +(define_expand "cpymemsi" [(parallel [(set (mem:BLK (match_operand:BLK 0 "" "")) (mem:BLK (match_operand:BLK 1 "" ""))) (use (match_operand:SI 2 "general_operand" "")) diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c index 947eef86730..c2cbe3b016c 100644 --- a/gcc/config/microblaze/microblaze.c +++ b/gcc/config/microblaze/microblaze.c @@ -1250,7 +1250,7 @@ microblaze_block_move_loop (rtx dest, rtx src, HOST_WIDE_INT length) microblaze_block_move_straight (dest, src, leftover); } -/* Expand a movmemsi instruction. */ +/* Expand a cpymemsi instruction. */ bool microblaze_expand_block_move (rtx dest, rtx src, rtx length, rtx align_rtx) diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md index 183afff3725..1509e431859 100644 --- a/gcc/config/microblaze/microblaze.md +++ b/gcc/config/microblaze/microblaze.md @@ -1144,7 +1144,7 @@ ;; Argument 2 is the length ;; Argument 3 is the alignment -(define_expand "movmemsi" +(define_expand "cpymemsi" [(parallel [(set (match_operand:BLK 0 "general_operand") (match_operand:BLK 1 "general_operand")) (use (match_operand:SI 2 "")) diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 0e1a68a9c46..cbebb455fd5 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -7938,15 +7938,15 @@ mips_use_by_pieces_infrastructure_p (unsigned HOST_WIDE_INT size, { if (op == STORE_BY_PIECES) return mips_store_by_pieces_p (size, align); - if (op == MOVE_BY_PIECES && HAVE_movmemsi) + if (op == MOVE_BY_PIECES && HAVE_cpymemsi) { - /* movmemsi is meant to generate code that is at least as good as - move_by_pieces. However, movmemsi effectively uses a by-pieces + /* cpymemsi is meant to generate code that is at least as good as + move_by_pieces. However, cpymemsi effectively uses a by-pieces implementation both for moves smaller than a word and for word-aligned moves of no more than MIPS_MAX_MOVE_BYTES_STRAIGHT bytes. We should allow the tree-level optimisers to do such moves by pieces, as it often exposes other optimization - opportunities. We might as well continue to use movmemsi at + opportunities. We might as well continue to use cpymemsi at the rtl level though, as it produces better code when scheduling is disabled (such as at -O). */ if (currently_expanding_to_rtl) @@ -8165,7 +8165,7 @@ mips_block_move_loop (rtx dest, rtx src, HOST_WIDE_INT length, emit_insn (gen_nop ()); } -/* Expand a movmemsi instruction, which copies LENGTH bytes from +/* Expand a cpymemsi instruction, which copies LENGTH bytes from memory reference SRC to memory reference DEST. */ bool diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 953d82e85c2..a5be7fa394c 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -3099,12 +3099,12 @@ while (0) #define MIPS_MIN_MOVE_MEM_ALIGN 16 /* The maximum number of bytes that can be copied by one iteration of - a movmemsi loop; see mips_block_move_loop. */ + a cpymemsi loop; see mips_block_move_loop. */ #define MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER \ (UNITS_PER_WORD * 4) /* The maximum number of bytes that can be copied by a straight-line - implementation of movmemsi; see mips_block_move_straight. We want + implementation of cpymemsi; see mips_block_move_straight. We want to make sure that any loop-based implementation will iterate at least twice. */ #define MIPS_MAX_MOVE_BYTES_STRAIGHT \ @@ -3119,11 +3119,11 @@ while (0) #define MIPS_CALL_RATIO 8 -/* Any loop-based implementation of movmemsi will have at least +/* Any loop-based implementation of cpymemsi will have at least MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD memory-to-memory moves, so allow individual copies of fewer elements. - When movmemsi is not available, use a value approximating + When cpymemsi is not available, use a value approximating the length of a memcpy call sequence, so that move_by_pieces will generate inline code if it is shorter than a function call. Since move_by_pieces_ninsns counts memory-to-memory moves, but @@ -3131,7 +3131,7 @@ while (0) value of MIPS_CALL_RATIO to take that into account. */ #define MOVE_RATIO(speed) \ - (HAVE_movmemsi \ + (HAVE_cpymemsi \ ? MIPS_MAX_MOVE_BYTES_STRAIGHT / MOVE_MAX \ : MIPS_CALL_RATIO / 2) diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 2ae1f7e0440..d260cf9170c 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -5638,7 +5638,7 @@ ;; Argument 2 is the length ;; Argument 3 is the alignment -(define_expand "movmemsi" +(define_expand "cpymemsi" [(parallel [(set (match_operand:BLK 0 "general_operand") (match_operand:BLK 1 "general_operand")) (use (match_operand:SI 2 "")) diff --git a/gcc/config/nds32/nds32-memory-manipulation.c b/gcc/config/nds32/nds32-memory-manipulation.c index 71b75dca570..b3f2cd69899 100644 --- a/gcc/config/nds32/nds32-memory-manipulation.c +++ b/gcc/config/nds32/nds32-memory-manipulation.c @@ -1,4 +1,4 @@ -/* Auxiliary functions for expand movmem, setmem, cmpmem, load_multiple +/* Auxiliary functions for expand cpymem, setmem, cmpmem, load_multiple and store_multiple pattern of Andes NDS32 cpu for GNU compiler Copyright (C) 2012-2019 Free Software Foundation, Inc. Contributed by Andes Technology Corporation. @@ -120,14 +120,14 @@ nds32_emit_mem_move_block (int base_regno, int count, /* ------------------------------------------------------------------------ */ -/* Auxiliary function for expand movmem pattern. */ +/* Auxiliary function for expand cpymem pattern. */ static bool -nds32_expand_movmemsi_loop_unknown_size (rtx dstmem, rtx srcmem, +nds32_expand_cpymemsi_loop_unknown_size (rtx dstmem, rtx srcmem, rtx size, rtx alignment) { - /* Emit loop version of movmem. + /* Emit loop version of cpymem. andi $size_least_3_bit, $size, #~7 add $dst_end, $dst, $size @@ -254,7 +254,7 @@ nds32_expand_movmemsi_loop_unknown_size (rtx dstmem, rtx srcmem, } static bool -nds32_expand_movmemsi_loop_known_size (rtx dstmem, rtx srcmem, +nds32_expand_cpymemsi_loop_known_size (rtx dstmem, rtx srcmem, rtx size, rtx alignment) { rtx dst_base_reg, src_base_reg; @@ -288,7 +288,7 @@ nds32_expand_movmemsi_loop_known_size (rtx dstmem, rtx srcmem, if (total_bytes < 8) { - /* Emit total_bytes less than 8 loop version of movmem. + /* Emit total_bytes less than 8 loop version of cpymem. add $dst_end, $dst, $size move $dst_itr, $dst .Lbyte_mode_loop: @@ -321,7 +321,7 @@ nds32_expand_movmemsi_loop_known_size (rtx dstmem, rtx srcmem, } else if (total_bytes % 8 == 0) { - /* Emit multiple of 8 loop version of movmem. + /* Emit multiple of 8 loop version of cpymem. add $dst_end, $dst, $size move $dst_itr, $dst @@ -370,7 +370,7 @@ nds32_expand_movmemsi_loop_known_size (rtx dstmem, rtx srcmem, else { /* Handle size greater than 8, and not a multiple of 8. */ - return nds32_expand_movmemsi_loop_unknown_size (dstmem, srcmem, + return nds32_expand_cpymemsi_loop_unknown_size (dstmem, srcmem, size, alignment); } @@ -378,19 +378,19 @@ nds32_expand_movmemsi_loop_known_size (rtx dstmem, rtx srcmem, } static bool -nds32_expand_movmemsi_loop (rtx dstmem, rtx srcmem, +nds32_expand_cpymemsi_loop (rtx dstmem, rtx srcmem, rtx size, rtx alignment) { if (CONST_INT_P (size)) - return nds32_expand_movmemsi_loop_known_size (dstmem, srcmem, + return nds32_expand_cpymemsi_loop_known_size (dstmem, srcmem, size, alignment); else - return nds32_expand_movmemsi_loop_unknown_size (dstmem, srcmem, + return nds32_expand_cpymemsi_loop_unknown_size (dstmem, srcmem, size, alignment); } static bool -nds32_expand_movmemsi_unroll (rtx dstmem, rtx srcmem, +nds32_expand_cpymemsi_unroll (rtx dstmem, rtx srcmem, rtx total_bytes, rtx alignment) { rtx dst_base_reg, src_base_reg; @@ -533,13 +533,13 @@ nds32_expand_movmemsi_unroll (rtx dstmem, rtx srcmem, This is auxiliary extern function to help create rtx template. Check nds32-multiple.md file for the patterns. */ bool -nds32_expand_movmemsi (rtx dstmem, rtx srcmem, rtx total_bytes, rtx alignment) +nds32_expand_cpymemsi (rtx dstmem, rtx srcmem, rtx total_bytes, rtx alignment) { - if (nds32_expand_movmemsi_unroll (dstmem, srcmem, total_bytes, alignment)) + if (nds32_expand_cpymemsi_unroll (dstmem, srcmem, total_bytes, alignment)) return true; if (!optimize_size && optimize > 2) - return nds32_expand_movmemsi_loop (dstmem, srcmem, total_bytes, alignment); + return nds32_expand_cpymemsi_loop (dstmem, srcmem, total_bytes, alignment); return false; } diff --git a/gcc/config/nds32/nds32-multiple.md b/gcc/config/nds32/nds32-multiple.md index a1e10c05563..98d9508c06b 100644 --- a/gcc/config/nds32/nds32-multiple.md +++ b/gcc/config/nds32/nds32-multiple.md @@ -3751,14 +3751,14 @@ ;; operands[3] is the known shared alignment. -(define_expand "movmemsi" +(define_expand "cpymemsi" [(match_operand:BLK 0 "general_operand" "") (match_operand:BLK 1 "general_operand" "") (match_operand:SI 2 "nds32_reg_constant_operand" "") (match_operand:SI 3 "const_int_operand" "")] "" { - if (nds32_expand_movmemsi (operands[0], + if (nds32_expand_cpymemsi (operands[0], operands[1], operands[2], operands[3])) diff --git a/gcc/config/nds32/nds32-protos.h b/gcc/config/nds32/nds32-protos.h index aaa65d6f038..7ae1954d01c 100644 --- a/gcc/config/nds32/nds32-protos.h +++ b/gcc/config/nds32/nds32-protos.h @@ -78,7 +78,7 @@ extern rtx nds32_di_low_part_subreg(rtx); extern rtx nds32_expand_load_multiple (int, int, rtx, rtx, bool, rtx *); extern rtx nds32_expand_store_multiple (int, int, rtx, rtx, bool, rtx *); -extern bool nds32_expand_movmemsi (rtx, rtx, rtx, rtx); +extern bool nds32_expand_cpymemsi (rtx, rtx, rtx, rtx); extern bool nds32_expand_setmem (rtx, rtx, rtx, rtx, rtx, rtx); extern bool nds32_expand_strlen (rtx, rtx, rtx, rtx); diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index deb2d439b09..0d00bf6b4f6 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -107,7 +107,7 @@ static int pa_can_combine_p (rtx_insn *, rtx_insn *, rtx_insn *, int, rtx, static bool forward_branch_p (rtx_insn *); static void compute_zdepwi_operands (unsigned HOST_WIDE_INT, unsigned *); static void compute_zdepdi_operands (unsigned HOST_WIDE_INT, unsigned *); -static int compute_movmem_length (rtx_insn *); +static int compute_cpymem_length (rtx_insn *); static int compute_clrmem_length (rtx_insn *); static bool pa_assemble_integer (rtx, unsigned int, int); static void remove_useless_addtr_insns (int); @@ -2985,7 +2985,7 @@ pa_output_block_move (rtx *operands, int size_is_constant ATTRIBUTE_UNUSED) count insns rather than emit them. */ static int -compute_movmem_length (rtx_insn *insn) +compute_cpymem_length (rtx_insn *insn) { rtx pat = PATTERN (insn); unsigned int align = INTVAL (XEXP (XVECEXP (pat, 0, 7), 0)); @@ -5060,7 +5060,7 @@ pa_adjust_insn_length (rtx_insn *insn, int length) && GET_CODE (XEXP (XVECEXP (pat, 0, 0), 1)) == MEM && GET_MODE (XEXP (XVECEXP (pat, 0, 0), 0)) == BLKmode && GET_MODE (XEXP (XVECEXP (pat, 0, 0), 1)) == BLKmode) - length += compute_movmem_length (insn) - 4; + length += compute_cpymem_length (insn) - 4; /* Block clear pattern. */ else if (NONJUMP_INSN_P (insn) && GET_CODE (pat) == PARALLEL diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index a568e7968a7..809a7b7853c 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -3162,9 +3162,9 @@ ;; 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 a movmemsi operation, and that it will not successfully +;; recognized as a cpymemsi operation, and that it will not successfully ;; combine with anything. -(define_expand "movmemsi" +(define_expand "cpymemsi" [(parallel [(set (match_operand:BLK 0 "" "") (match_operand:BLK 1 "" "")) (clobber (match_dup 4)) @@ -3244,7 +3244,7 @@ ;; operands 0 and 1 are both equivalent to symbolic MEMs. Thus, we are ;; forced to internally copy operands 0 and 1 to operands 7 and 8, ;; respectively. We then split or peephole optimize after reload. -(define_insn "movmemsi_prereload" +(define_insn "cpymemsi_prereload" [(set (mem:BLK (match_operand:SI 0 "register_operand" "r,r")) (mem:BLK (match_operand:SI 1 "register_operand" "r,r"))) (clobber (match_operand:SI 2 "register_operand" "=&r,&r")) ;loop cnt/tmp @@ -3337,7 +3337,7 @@ } }") -(define_insn "movmemsi_postreload" +(define_insn "cpymemsi_postreload" [(set (mem:BLK (match_operand:SI 0 "register_operand" "+r,r")) (mem:BLK (match_operand:SI 1 "register_operand" "+r,r"))) (clobber (match_operand:SI 2 "register_operand" "=&r,&r")) ;loop cnt/tmp @@ -3352,7 +3352,7 @@ "* return pa_output_block_move (operands, !which_alternative);" [(set_attr "type" "multi,multi")]) -(define_expand "movmemdi" +(define_expand "cpymemdi" [(parallel [(set (match_operand:BLK 0 "" "") (match_operand:BLK 1 "" "")) (clobber (match_dup 4)) @@ -3432,7 +3432,7 @@ ;; operands 0 and 1 are both equivalent to symbolic MEMs. Thus, we are ;; forced to internally copy operands 0 and 1 to operands 7 and 8, ;; respectively. We then split or peephole optimize after reload. -(define_insn "movmemdi_prereload" +(define_insn "cpymemdi_prereload" [(set (mem:BLK (match_operand:DI 0 "register_operand" "r,r")) (mem:BLK (match_operand:DI 1 "register_operand" "r,r"))) (clobber (match_operand:DI 2 "register_operand" "=&r,&r")) ;loop cnt/tmp @@ -3525,7 +3525,7 @@ } }") -(define_insn "movmemdi_postreload" +(define_insn "cpymemdi_postreload" [(set (mem:BLK (match_operand:DI 0 "register_operand" "+r,r")) (mem:BLK (match_operand:DI 1 "register_operand" "+r,r"))) (clobber (match_operand:DI 2 "register_operand" "=&r,&r")) ;loop cnt/tmp diff --git a/gcc/config/pdp11/pdp11.md b/gcc/config/pdp11/pdp11.md index ce781db0632..be5ddc4c359 100644 --- a/gcc/config/pdp11/pdp11.md +++ b/gcc/config/pdp11/pdp11.md @@ -26,7 +26,7 @@ UNSPECV_BLOCKAGE UNSPECV_SETD UNSPECV_SETI - UNSPECV_MOVMEM + UNSPECV_CPYMEM ]) (define_constants @@ -664,8 +664,8 @@ [(set_attr "length" "2,2,4,4,2")]) ;; Expand a block move. We turn this into a move loop. -(define_expand "movmemhi" - [(parallel [(unspec_volatile [(const_int 0)] UNSPECV_MOVMEM) +(define_expand "cpymemhi" + [(parallel [(unspec_volatile [(const_int 0)] UNSPECV_CPYMEM) (match_operand:BLK 0 "general_operand" "=g") (match_operand:BLK 1 "general_operand" "g") (match_operand:HI 2 "immediate_operand" "i") @@ -694,8 +694,8 @@ }") ;; Expand a block move. We turn this into a move loop. -(define_insn_and_split "movmemhi1" - [(unspec_volatile [(const_int 0)] UNSPECV_MOVMEM) +(define_insn_and_split "cpymemhi1" + [(unspec_volatile [(const_int 0)] UNSPECV_CPYMEM) (match_operand:HI 0 "register_operand" "+r") (match_operand:HI 1 "register_operand" "+r") (match_operand:HI 2 "register_operand" "+r") @@ -707,7 +707,7 @@ "" "#" "reload_completed" - [(parallel [(unspec_volatile [(const_int 0)] UNSPECV_MOVMEM) + [(parallel [(unspec_volatile [(const_int 0)] UNSPECV_CPYMEM) (match_dup 0) (match_dup 1) (match_dup 2) @@ -719,8 +719,8 @@ (clobber (reg:CC CC_REGNUM))])] "") -(define_insn "movmemhi_nocc" - [(unspec_volatile [(const_int 0)] UNSPECV_MOVMEM) +(define_insn "cpymemhi_nocc" + [(unspec_volatile [(const_int 0)] UNSPECV_CPYMEM) (match_operand:HI 0 "register_operand" "+r") (match_operand:HI 1 "register_operand" "+r") (match_operand:HI 2 "register_operand" "+r") diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c index d61455f6957..8ac09f204d2 100644 --- a/gcc/config/riscv/riscv.c +++ b/gcc/config/riscv/riscv.c @@ -3050,7 +3050,7 @@ riscv_block_move_loop (rtx dest, rtx src, HOST_WIDE_INT length, emit_insn(gen_nop ()); } -/* Expand a movmemsi instruction, which copies LENGTH bytes from +/* Expand a cpymemsi instruction, which copies LENGTH bytes from memory reference SRC to memory reference DEST. */ bool diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h index 8856cee599e..4509d735935 100644 --- a/gcc/config/riscv/riscv.h +++ b/gcc/config/riscv/riscv.h @@ -840,20 +840,20 @@ while (0) #undef PTRDIFF_TYPE #define PTRDIFF_TYPE (POINTER_SIZE == 64 ? "long int" : "int") -/* The maximum number of bytes copied by one iteration of a movmemsi loop. */ +/* The maximum number of bytes copied by one iteration of a cpymemsi loop. */ #define RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER (UNITS_PER_WORD * 4) /* The maximum number of bytes that can be copied by a straight-line - movmemsi implementation. */ + cpymemsi implementation. */ #define RISCV_MAX_MOVE_BYTES_STRAIGHT (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER * 3) /* If a memory-to-memory move would take MOVE_RATIO or more simple - move-instruction pairs, we will do a movmem or libcall instead. + move-instruction pairs, we will do a cpymem or libcall instead. Do not use move_by_pieces at all when strict alignment is not in effect but the target has slow unaligned accesses; in this - case, movmem or libcall is more efficient. */ + case, cpymem or libcall is more efficient. */ #define MOVE_RATIO(speed) \ (!STRICT_ALIGNMENT && riscv_slow_unaligned_access_p ? 1 : \ diff --git a/gcc/config/riscv/riscv.md b/gcc/config/riscv/riscv.md index 8b21c1963d7..309c109db4c 100644 --- a/gcc/config/riscv/riscv.md +++ b/gcc/config/riscv/riscv.md @@ -1498,7 +1498,7 @@ DONE; }) -(define_expand "movmemsi" +(define_expand "cpymemsi" [(parallel [(set (match_operand:BLK 0 "general_operand") (match_operand:BLK 1 "general_operand")) (use (match_operand:SI 2 "")) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 9445d5ff3d4..1b4a43e5d50 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -9113,7 +9113,7 @@ ;; Argument 2 is the length ;; Argument 3 is the alignment -(define_expand "movmemsi" +(define_expand "cpymemsi" [(parallel [(set (match_operand:BLK 0 "") (match_operand:BLK 1 "")) (use (match_operand:SI 2 "")) diff --git a/gcc/config/rx/rx.md b/gcc/config/rx/rx.md index 2790882c90a..9df73e6efc6 100644 --- a/gcc/config/rx/rx.md +++ b/gcc/config/rx/rx.md @@ -46,7 +46,7 @@ (UNSPEC_CONST 13) (UNSPEC_MOVSTR 20) - (UNSPEC_MOVMEM 21) + (UNSPEC_CPYMEM 21) (UNSPEC_SETMEM 22) (UNSPEC_STRLEN 23) (UNSPEC_CMPSTRN 24) @@ -2449,13 +2449,13 @@ (set_attr "timings" "1111")] ;; The timing is a guesstimate. ) -(define_expand "movmemsi" +(define_expand "cpymemsi" [(parallel [(set (match_operand:BLK 0 "memory_operand") ;; Dest (match_operand:BLK 1 "memory_operand")) ;; Source (use (match_operand:SI 2 "register_operand")) ;; Length in bytes (match_operand 3 "immediate_operand") ;; Align - (unspec_volatile:BLK [(reg:SI 1) (reg:SI 2) (reg:SI 3)] UNSPEC_MOVMEM)] + (unspec_volatile:BLK [(reg:SI 1) (reg:SI 2) (reg:SI 3)] UNSPEC_CPYMEM)] )] "rx_allow_string_insns" { @@ -2486,16 +2486,16 @@ emit_move_insn (len, force_operand (operands[2], NULL_RTX)); operands[0] = replace_equiv_address_nv (operands[0], addr1); operands[1] = replace_equiv_address_nv (operands[1], addr2); - emit_insn (gen_rx_movmem ()); + emit_insn (gen_rx_cpymem ()); DONE; } ) -(define_insn "rx_movmem" +(define_insn "rx_cpymem" [(set (mem:BLK (reg:SI 1)) (mem:BLK (reg:SI 2))) (use (reg:SI 3)) - (unspec_volatile:BLK [(reg:SI 1) (reg:SI 2) (reg:SI 3)] UNSPEC_MOVMEM) + (unspec_volatile:BLK [(reg:SI 1) (reg:SI 2) (reg:SI 3)] UNSPEC_CPYMEM) (clobber (reg:SI 1)) (clobber (reg:SI 2)) (clobber (reg:SI 3))] diff --git a/gcc/config/s390/s390-protos.h b/gcc/config/s390/s390-protos.h index aa04479ec67..b162b26b344 100644 --- a/gcc/config/s390/s390-protos.h +++ b/gcc/config/s390/s390-protos.h @@ -104,7 +104,7 @@ extern void s390_reload_symref_address (rtx , rtx , rtx , bool); extern void s390_expand_plus_operand (rtx, rtx, rtx); extern void emit_symbolic_move (rtx *); extern void s390_load_address (rtx, rtx); -extern bool s390_expand_movmem (rtx, rtx, rtx); +extern bool s390_expand_cpymem (rtx, rtx, rtx); extern void s390_expand_setmem (rtx, rtx, rtx); extern bool s390_expand_cmpmem (rtx, rtx, rtx, rtx); extern void s390_expand_vec_strlen (rtx, rtx, rtx); diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 3ae12190265..5ec26a0592b 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -5394,7 +5394,7 @@ legitimize_reload_address (rtx ad, machine_mode mode ATTRIBUTE_UNUSED, /* Emit code to move LEN bytes from DST to SRC. */ bool -s390_expand_movmem (rtx dst, rtx src, rtx len) +s390_expand_cpymem (rtx dst, rtx src, rtx len) { /* When tuning for z10 or higher we rely on the Glibc functions to do the right thing. Only for constant lengths below 64k we will @@ -5419,14 +5419,14 @@ s390_expand_movmem (rtx dst, rtx src, rtx len) { rtx newdst = adjust_address (dst, BLKmode, o); rtx newsrc = adjust_address (src, BLKmode, o); - emit_insn (gen_movmem_short (newdst, newsrc, + emit_insn (gen_cpymem_short (newdst, newsrc, GEN_INT (l > 256 ? 255 : l - 1))); } } else if (TARGET_MVCLE) { - emit_insn (gen_movmem_long (dst, src, convert_to_mode (Pmode, len, 1))); + emit_insn (gen_cpymem_long (dst, src, convert_to_mode (Pmode, len, 1))); } else @@ -5488,7 +5488,7 @@ s390_expand_movmem (rtx dst, rtx src, rtx len) emit_insn (prefetch); } - emit_insn (gen_movmem_short (dst, src, GEN_INT (255))); + emit_insn (gen_cpymem_short (dst, src, GEN_INT (255))); s390_load_address (dst_addr, gen_rtx_PLUS (Pmode, dst_addr, GEN_INT (256))); s390_load_address (src_addr, @@ -5505,7 +5505,7 @@ s390_expand_movmem (rtx dst, rtx src, rtx len) emit_jump (loop_start_label); emit_label (loop_end_label); - emit_insn (gen_movmem_short (dst, src, + emit_insn (gen_cpymem_short (dst, src, convert_to_mode (Pmode, count, 1))); emit_label (end_label); } @@ -5557,7 +5557,7 @@ s390_expand_setmem (rtx dst, rtx len, rtx val) if (l > 1) { rtx newdstp1 = adjust_address (dst, BLKmode, o + 1); - emit_insn (gen_movmem_short (newdstp1, newdst, + emit_insn (gen_cpymem_short (newdstp1, newdst, GEN_INT (l > 257 ? 255 : l - 2))); } } @@ -5664,7 +5664,7 @@ s390_expand_setmem (rtx dst, rtx len, rtx val) /* Set the first byte in the block to the value and use an overlapping mvc for the block. */ emit_move_insn (adjust_address (dst, QImode, 0), val); - emit_insn (gen_movmem_short (dstp1, dst, GEN_INT (254))); + emit_insn (gen_cpymem_short (dstp1, dst, GEN_INT (254))); } s390_load_address (dst_addr, gen_rtx_PLUS (Pmode, dst_addr, GEN_INT (256))); @@ -5688,7 +5688,7 @@ s390_expand_setmem (rtx dst, rtx len, rtx val) emit_move_insn (adjust_address (dst, QImode, 0), val); /* execute only uses the lowest 8 bits of count that's exactly what we need here. */ - emit_insn (gen_movmem_short (dstp1, dst, + emit_insn (gen_cpymem_short (dstp1, dst, convert_to_mode (Pmode, count, 1))); } @@ -6330,7 +6330,7 @@ s390_expand_insv (rtx dest, rtx op1, rtx op2, rtx src) dest = adjust_address (dest, BLKmode, 0); set_mem_size (dest, size); - s390_expand_movmem (dest, src_mem, GEN_INT (size)); + s390_expand_cpymem (dest, src_mem, GEN_INT (size)); return true; } diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md index 714d8b00a80..d06aea93128 100644 --- a/gcc/config/s390/s390.md +++ b/gcc/config/s390/s390.md @@ -3196,17 +3196,17 @@ ; -; movmemM instruction pattern(s). +; cpymemM instruction pattern(s). ; -(define_expand "movmem" +(define_expand "cpymem" [(set (match_operand:BLK 0 "memory_operand" "") ; destination (match_operand:BLK 1 "memory_operand" "")) ; source (use (match_operand:GPR 2 "general_operand" "")) ; count (match_operand 3 "" "")] "" { - if (s390_expand_movmem (operands[0], operands[1], operands[2])) + if (s390_expand_cpymem (operands[0], operands[1], operands[2])) DONE; else FAIL; @@ -3215,7 +3215,7 @@ ; Move a block that is up to 256 bytes in length. ; The block length is taken as (operands[2] % 256) + 1. -(define_expand "movmem_short" +(define_expand "cpymem_short" [(parallel [(set (match_operand:BLK 0 "memory_operand" "") (match_operand:BLK 1 "memory_operand" "")) @@ -3225,7 +3225,7 @@ "" "operands[3] = gen_rtx_SCRATCH (Pmode);") -(define_insn "*movmem_short" +(define_insn "*cpymem_short" [(set (match_operand:BLK 0 "memory_operand" "=Q,Q,Q,Q") (match_operand:BLK 1 "memory_operand" "Q,Q,Q,Q")) (use (match_operand 2 "nonmemory_operand" "n,a,a,a")) @@ -3293,7 +3293,7 @@ ; Move a block of arbitrary length. -(define_expand "movmem_long" +(define_expand "cpymem_long" [(parallel [(clobber (match_dup 2)) (clobber (match_dup 3)) @@ -3327,7 +3327,7 @@ operands[3] = reg1; }) -(define_insn "*movmem_long" +(define_insn "*cpymem_long" [(clobber (match_operand: 0 "register_operand" "=d")) (clobber (match_operand: 1 "register_operand" "=d")) (set (mem:BLK (subreg:P (match_operand: 2 "register_operand" "0") 0)) @@ -3340,7 +3340,7 @@ [(set_attr "length" "8") (set_attr "type" "vs")]) -(define_insn "*movmem_long_31z" +(define_insn "*cpymem_long_31z" [(clobber (match_operand:TI 0 "register_operand" "=d")) (clobber (match_operand:TI 1 "register_operand" "=d")) (set (mem:BLK (subreg:SI (match_operand:TI 2 "register_operand" "0") 4)) diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index 83543778619..ed70e344dfa 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -8906,7 +8906,7 @@ ;; String/block move insn. -(define_expand "movmemsi" +(define_expand "cpymemsi" [(parallel [(set (mem:BLK (match_operand:BLK 0)) (mem:BLK (match_operand:BLK 1))) (use (match_operand:SI 2 "nonmemory_operand")) diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index 015065ffb81..2dd765bca18 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -1412,7 +1412,7 @@ do { \ #define MOVE_MAX 8 /* If a memory-to-memory move would take MOVE_RATIO or more simple - move-instruction pairs, we will do a movmem or libcall instead. */ + move-instruction pairs, we will do a cpymem or libcall instead. */ #define MOVE_RATIO(speed) ((speed) ? 8 : 3) diff --git a/gcc/config/vax/vax-protos.h b/gcc/config/vax/vax-protos.h index a76cf023916..a85cf36114c 100644 --- a/gcc/config/vax/vax-protos.h +++ b/gcc/config/vax/vax-protos.h @@ -31,7 +31,6 @@ extern void vax_expand_addsub_di_operands (rtx *, enum rtx_code); extern const char * vax_output_int_move (rtx, rtx *, machine_mode); extern const char * vax_output_int_add (rtx_insn *, rtx *, machine_mode); extern const char * vax_output_int_subtract (rtx_insn *, rtx *, machine_mode); -extern const char * vax_output_movmemsi (rtx, rtx *); #endif /* RTX_CODE */ #ifdef REAL_VALUE_TYPE diff --git a/gcc/config/vax/vax.h b/gcc/config/vax/vax.h index a6a8227f7c2..e7137dc09e6 100644 --- a/gcc/config/vax/vax.h +++ b/gcc/config/vax/vax.h @@ -430,7 +430,7 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES }; #define MOVE_MAX 8 /* If a memory-to-memory move would take MOVE_RATIO or more simple - move-instruction pairs, we will do a movmem or libcall instead. */ + move-instruction pairs, we will do a cpymem or libcall instead. */ #define MOVE_RATIO(speed) ((speed) ? 6 : 3) #define CLEAR_RATIO(speed) ((speed) ? 6 : 2) diff --git a/gcc/config/vax/vax.md b/gcc/config/vax/vax.md index bfeae7f80e1..298f3393d2d 100644 --- a/gcc/config/vax/vax.md +++ b/gcc/config/vax/vax.md @@ -206,8 +206,8 @@ }") ;; This is here to accept 4 arguments and pass the first 3 along -;; to the movmemhi1 pattern that really does the work. -(define_expand "movmemhi" +;; to the cpymemhi1 pattern that really does the work. +(define_expand "cpymemhi" [(set (match_operand:BLK 0 "general_operand" "=g") (match_operand:BLK 1 "general_operand" "g")) (use (match_operand:HI 2 "general_operand" "g")) @@ -215,7 +215,7 @@ "" " { - emit_insn (gen_movmemhi1 (operands[0], operands[1], operands[2])); + emit_insn (gen_cpymemhi1 (operands[0], operands[1], operands[2])); DONE; }") @@ -224,7 +224,7 @@ ;; that anything generated as this insn will be recognized as one ;; and that it won't successfully combine with anything. -(define_insn "movmemhi1" +(define_insn "cpymemhi1" [(set (match_operand:BLK 0 "memory_operand" "=o") (match_operand:BLK 1 "memory_operand" "o")) (use (match_operand:HI 2 "general_operand" "g")) diff --git a/gcc/config/visium/visium.h b/gcc/config/visium/visium.h index 817e7dc70fc..c9376b28fff 100644 --- a/gcc/config/visium/visium.h +++ b/gcc/config/visium/visium.h @@ -1138,8 +1138,8 @@ do \ always make code faster, but eventually incurs high cost in increased code size. - Since we have a movmemsi pattern, the default MOVE_RATIO is 2, which - is too low given that movmemsi will invoke a libcall. */ + Since we have a cpymemsi pattern, the default MOVE_RATIO is 2, which + is too low given that cpymemsi will invoke a libcall. */ #define MOVE_RATIO(speed) ((speed) ? 9 : 3) /* `CLEAR_RATIO (SPEED)` diff --git a/gcc/config/visium/visium.md b/gcc/config/visium/visium.md index f5354413427..e146b89d1da 100644 --- a/gcc/config/visium/visium.md +++ b/gcc/config/visium/visium.md @@ -3006,7 +3006,7 @@ ;; Argument 2 is the length ;; Argument 3 is the alignment -(define_expand "movmemsi" +(define_expand "cpymemsi" [(parallel [(set (match_operand:BLK 0 "memory_operand" "") (match_operand:BLK 1 "memory_operand" "")) (use (match_operand:SI 2 "general_operand" "")) diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md index 362e5ff3c1f..d1448a02f20 100644 --- a/gcc/config/xtensa/xtensa.md +++ b/gcc/config/xtensa/xtensa.md @@ -1026,7 +1026,7 @@ ;; Block moves -(define_expand "movmemsi" +(define_expand "cpymemsi" [(parallel [(set (match_operand:BLK 0 "" "") (match_operand:BLK 1 "" "")) (use (match_operand:SI 2 "arith_operand" "")) diff --git a/gcc/defaults.h b/gcc/defaults.h index b7534256119..af7ea185f1e 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -1318,10 +1318,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #endif /* If a memory-to-memory move would take MOVE_RATIO or more simple - move-instruction sequences, we will do a movmem or libcall instead. */ + move-instruction sequences, we will do a cpymem or libcall instead. */ #ifndef MOVE_RATIO -#if defined (HAVE_movmemqi) || defined (HAVE_movmemhi) || defined (HAVE_movmemsi) || defined (HAVE_movmemdi) || defined (HAVE_movmemti) +#if defined (HAVE_cpymemqi) || defined (HAVE_cpymemhi) || defined (HAVE_cpymemsi) || defined (HAVE_cpymemdi) || defined (HAVE_cpymemti) #define MOVE_RATIO(speed) 2 #else /* If we are optimizing for space (-Os), cut down the default move ratio. */ @@ -1342,7 +1342,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #endif /* If a memory set (to value other than zero) operation would take - SET_RATIO or more simple move-instruction sequences, we will do a movmem + SET_RATIO or more simple move-instruction sequences, we will do a setmem or libcall instead. */ #ifndef SET_RATIO #define SET_RATIO(speed) MOVE_RATIO (speed) diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi index b45b4bebce0..3f9d545a1a5 100644 --- a/gcc/doc/md.texi +++ b/gcc/doc/md.texi @@ -6200,13 +6200,13 @@ This pattern is not allowed to @code{FAIL}. @item @samp{one_cmpl@var{m}2} Store the bitwise-complement of operand 1 into operand 0. -@cindex @code{movmem@var{m}} instruction pattern -@item @samp{movmem@var{m}} -Block move instruction. The destination and source blocks of memory +@cindex @code{cpymem@var{m}} instruction pattern +@item @samp{cpymem@var{m}} +Block copy instruction. The destination and source blocks of memory are the first two operands, and both are @code{mem:BLK}s with an address in mode @code{Pmode}. -The number of bytes to move is the third operand, in mode @var{m}. +The number of bytes to copy is the third operand, in mode @var{m}. Usually, you specify @code{Pmode} for @var{m}. However, if you can generate better code knowing the range of valid lengths is smaller than those representable in a full Pmode pointer, you should provide @@ -6226,14 +6226,16 @@ in a way that the blocks are not required to be aligned according to it in all cases. This expected alignment is also in bytes, just like operand 4. Expected size, when unknown, is set to @code{(const_int -1)}. -Descriptions of multiple @code{movmem@var{m}} patterns can only be +Descriptions of multiple @code{cpymem@var{m}} patterns can only be beneficial if the patterns for smaller modes have fewer restrictions on their first, second and fourth operands. Note that the mode @var{m} -in @code{movmem@var{m}} does not impose any restriction on the mode of -individually moved data units in the block. +in @code{cpymem@var{m}} does not impose any restriction on the mode of +individually copied data units in the block. -These patterns need not give special consideration to the possibility -that the source and destination strings might overlap. +The @code{cpymem@var{m}} patterns need not give special consideration +to the possibility that the source and destination strings might +overlap. These patterns are used to do inline expansion of +@code{__builtin_memcpy}. @cindex @code{movstr} instruction pattern @item @samp{movstr} @@ -6254,7 +6256,7 @@ given as a @code{mem:BLK} whose address is in mode @code{Pmode}. The number of bytes to set is the second operand, in mode @var{m}. The value to initialize the memory with is the third operand. Targets that only support the clearing of memory should reject any value that is not the constant 0. See -@samp{movmem@var{m}} for a discussion of the choice of mode. +@samp{cpymem@var{m}} for a discussion of the choice of mode. The fourth operand is the known alignment of the destination, in the form of a @code{const_int} rtx. Thus, if the compiler knows that the @@ -6272,13 +6274,13 @@ Operand 9 is the probable maximal size (i.e.@: we cannot rely on it for correctness, but it can be used for choosing proper code sequence for a given size). -The use for multiple @code{setmem@var{m}} is as for @code{movmem@var{m}}. +The use for multiple @code{setmem@var{m}} is as for @code{cpymem@var{m}}. @cindex @code{cmpstrn@var{m}} instruction pattern @item @samp{cmpstrn@var{m}} String compare instruction, with five operands. Operand 0 is the output; it has mode @var{m}. The remaining four operands are like the operands -of @samp{movmem@var{m}}. The two memory blocks specified are compared +of @samp{cpymem@var{m}}. The two memory blocks specified are compared byte by byte in lexicographic order starting at the beginning of each string. The instruction is not allowed to prefetch more than one byte at a time since either string may end in the first byte and reading past diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi index f5f2de75683..0814b66a486 100644 --- a/gcc/doc/rtl.texi +++ b/gcc/doc/rtl.texi @@ -3341,7 +3341,7 @@ that the register is live. You should think twice before adding instead. The @code{use} RTX is most commonly useful to describe that a fixed register is implicitly used in an insn. It is also safe to use in patterns where the compiler knows for other reasons that the result -of the whole pattern is variable, such as @samp{movmem@var{m}} or +of the whole pattern is variable, such as @samp{cpymem@var{m}} or @samp{call} patterns. During the reload phase, an insn that has a @code{use} as pattern diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index c2aa4d04777..14c1ea6a323 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -6661,7 +6661,7 @@ two areas of memory, or to set, clear or store to memory, for example when copying a @code{struct}. The @code{by_pieces} infrastructure implements such memory operations as a sequence of load, store or move insns. Alternate strategies are to expand the -@code{movmem} or @code{setmem} optabs, to emit a library call, or to emit +@code{cpymem} or @code{setmem} optabs, to emit a library call, or to emit unit-by-unit, loop-based operations. This target hook should return true if, for a memory operation with a @@ -6680,7 +6680,7 @@ optimized for speed rather than size. Returning true for higher values of @var{size} can improve code generation for speed if the target does not provide an implementation of the -@code{movmem} or @code{setmem} standard names, if the @code{movmem} or +@code{cpymem} or @code{setmem} standard names, if the @code{cpymem} or @code{setmem} implementation would be more expensive than a sequence of insns, or if the overhead of a library call would dominate that of the body of the memory operation. diff --git a/gcc/expr.c b/gcc/expr.c index c78bc74c0d9..4d395697645 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -73,7 +73,7 @@ along with GCC; see the file COPYING3. If not see int cse_not_expected; static bool block_move_libcall_safe_for_call_parm (void); -static bool emit_block_move_via_movmem (rtx, rtx, rtx, unsigned, unsigned, HOST_WIDE_INT, +static bool emit_block_move_via_cpymem (rtx, rtx, rtx, unsigned, unsigned, HOST_WIDE_INT, unsigned HOST_WIDE_INT, unsigned HOST_WIDE_INT, unsigned HOST_WIDE_INT); static void emit_block_move_via_loop (rtx, rtx, rtx, unsigned); @@ -1624,7 +1624,7 @@ emit_block_move_hints (rtx x, rtx y, rtx size, enum block_op_methods method, if (CONST_INT_P (size) && can_move_by_pieces (INTVAL (size), align)) move_by_pieces (x, y, INTVAL (size), align, RETURN_BEGIN); - else if (emit_block_move_via_movmem (x, y, size, align, + else if (emit_block_move_via_cpymem (x, y, size, align, expected_align, expected_size, min_size, max_size, probable_max_size)) ; @@ -1722,11 +1722,11 @@ block_move_libcall_safe_for_call_parm (void) return true; } -/* A subroutine of emit_block_move. Expand a movmem pattern; +/* A subroutine of emit_block_move. Expand a cpymem pattern; return true if successful. */ static bool -emit_block_move_via_movmem (rtx x, rtx y, rtx size, unsigned int align, +emit_block_move_via_cpymem (rtx x, rtx y, rtx size, unsigned int align, unsigned int expected_align, HOST_WIDE_INT expected_size, unsigned HOST_WIDE_INT min_size, unsigned HOST_WIDE_INT max_size, @@ -1755,7 +1755,7 @@ emit_block_move_via_movmem (rtx x, rtx y, rtx size, unsigned int align, FOR_EACH_MODE_IN_CLASS (mode_iter, MODE_INT) { scalar_int_mode mode = mode_iter.require (); - enum insn_code code = direct_optab_handler (movmem_optab, mode); + enum insn_code code = direct_optab_handler (cpymem_optab, mode); if (code != CODE_FOR_nothing /* We don't need MODE to be narrower than BITS_PER_HOST_WIDE_INT diff --git a/gcc/optabs.def b/gcc/optabs.def index feee96f31eb..03a08da575a 100644 --- a/gcc/optabs.def +++ b/gcc/optabs.def @@ -256,7 +256,7 @@ OPTAB_D (umul_highpart_optab, "umul$a3_highpart") OPTAB_D (cmpmem_optab, "cmpmem$a") OPTAB_D (cmpstr_optab, "cmpstr$a") OPTAB_D (cmpstrn_optab, "cmpstrn$a") -OPTAB_D (movmem_optab, "movmem$a") +OPTAB_D (cpymem_optab, "cpymem$a") OPTAB_D (setmem_optab, "setmem$a") OPTAB_D (strlen_optab, "strlen$a") diff --git a/gcc/target.def b/gcc/target.def index 71b69723b75..41654054ad8 100644 --- a/gcc/target.def +++ b/gcc/target.def @@ -3531,7 +3531,7 @@ two areas of memory, or to set, clear or store to memory, for example\n\ when copying a @code{struct}. The @code{by_pieces} infrastructure\n\ implements such memory operations as a sequence of load, store or move\n\ insns. Alternate strategies are to expand the\n\ -@code{movmem} or @code{setmem} optabs, to emit a library call, or to emit\n\ +@code{cpymem} or @code{setmem} optabs, to emit a library call, or to emit\n\ unit-by-unit, loop-based operations.\n\ \n\ This target hook should return true if, for a memory operation with a\n\ @@ -3550,7 +3550,7 @@ optimized for speed rather than size.\n\ \n\ Returning true for higher values of @var{size} can improve code generation\n\ for speed if the target does not provide an implementation of the\n\ -@code{movmem} or @code{setmem} standard names, if the @code{movmem} or\n\ +@code{cpymem} or @code{setmem} standard names, if the @code{cpymem} or\n\ @code{setmem} implementation would be more expensive than a sequence of\n\ insns, or if the overhead of a library call would dominate that of\n\ the body of the memory operation.\n\ diff --git a/gcc/targhooks.c b/gcc/targhooks.c index 0da885ec152..676885bb32e 100644 --- a/gcc/targhooks.c +++ b/gcc/targhooks.c @@ -1746,9 +1746,9 @@ get_move_ratio (bool speed_p ATTRIBUTE_UNUSED) #ifdef MOVE_RATIO move_ratio = (unsigned int) MOVE_RATIO (speed_p); #else -#if defined (HAVE_movmemqi) || defined (HAVE_movmemhi) || defined (HAVE_movmemsi) || defined (HAVE_movmemdi) || defined (HAVE_movmemti) +#if defined (HAVE_cpymemqi) || defined (HAVE_cpymemhi) || defined (HAVE_cpymemsi) || defined (HAVE_cpymemdi) || defined (HAVE_cpymemti) move_ratio = 2; -#else /* No movmem patterns, pick a default. */ +#else /* No cpymem patterns, pick a default. */ move_ratio = ((speed_p) ? 15 : 3); #endif #endif @@ -1756,7 +1756,7 @@ get_move_ratio (bool speed_p ATTRIBUTE_UNUSED) } /* Return TRUE if the move_by_pieces/set_by_pieces infrastructure should be - used; return FALSE if the movmem/setmem optab should be expanded, or + used; return FALSE if the cpymem/setmem optab should be expanded, or a call to memcpy emitted. */ bool