diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-06-03 08:57:55 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-06-03 08:57:55 +0000 |
commit | 9fe0e1b8f7411a3eaa3e4f96db117498975d36d2 (patch) | |
tree | 969f8e454fe8799c43c000ed725898b0593270ff /gcc/config | |
parent | 182ee2ea81fb204da11a66f1f54d6be9be834b5a (diff) | |
download | ppe42-gcc-9fe0e1b8f7411a3eaa3e4f96db117498975d36d2.tar.gz ppe42-gcc-9fe0e1b8f7411a3eaa3e4f96db117498975d36d2.zip |
* builtins.c (expand_builtin_memcpy): Remove endp argument and endp
!= 0 handling. Pass 0 to store_by_pieces.
(expand_builtin_mempcpy): Add endp argument. Don't call
expand_builtin_memcpy, call store_by_pieces resp. move_by_pieces
directly. If ignoring result, only do expand_call.
(expand_builtin_stpcpy): Likewise. Call expand_builtin_mempcpy
otherwise.
(expand_builtin_strncpy, expand_builtin_memset): Adjust
store_by_pices callers.
(expand_builtin): Adjust expand_builtin_memcpy and
expand_builtin_mempcpy callers.
* expr.c (can_move_by_pieces): New function.
(move_by_pieces): Add endp argument, return to resp. memory at end
or one byte earlier depending on endp.
(store_by_pieces): Likewise.
(emit_block_move): Adjust call to move_by_pieces.
(emit_push_insn): Adjust move_by_pieces caller.
* expr.h (can_move_by_pieces): New prototype.
(store_by_pieces): Adjust prototypes.
* rtl.h (move_by_pieces): Adjust prototype.
* config/mips/mips.c (expand_block_move): Adjust move_by_pieces
caller.
* gcc.c-torture/execute/builtins/string-4.c (main_test): Remove
mempcpy test with post-increments.
* gcc.c-torture/execute/string-opt-3.c: New test.
* gcc.dg/string-opt-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67358 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/mips/mips.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index e3921fbb764..0b216105e0a 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -3821,7 +3821,7 @@ expand_block_move (operands) else if (constp && bytes <= (unsigned)2 * MAX_MOVE_BYTES && align == (unsigned) UNITS_PER_WORD) - move_by_pieces (orig_dest, orig_src, bytes, align * BITS_PER_WORD); + move_by_pieces (orig_dest, orig_src, bytes, align * BITS_PER_WORD, 0); else if (constp && bytes <= (unsigned)2 * MAX_MOVE_BYTES) emit_insn (gen_movstrsi_internal (replace_equiv_address (orig_dest, |