Internal memcpy using LDRD/STRD
authorGreta Yorsh <greta.yorsh@arm.com>
Thu, 16 May 2013 12:02:06 +0000 (13:02 +0100)
committerGreta Yorsh <gretay@gcc.gnu.org>
Thu, 16 May 2013 12:02:06 +0000 (13:02 +0100)
commit798d3d0454c3f8de61f95f9d8ff53da3465f19fa
tree28b8ace00c5999333e50f2f7c6f89542be4caa3a
parent0baddc4592fcdcb85d1417e7f06c2666eb7912e8
Internal memcpy using LDRD/STRD

2013-05-16  Greta Yorsh  <Greta.Yorsh@arm.com>

gcc/

* config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
* config/arm/arm.c (next_consecutive_mem): New function.
(gen_movmem_ldrd_strd): Likewise.
* config/arm/arm.md (movmemqi): Update condition and code.
(unaligned_loaddi, unaligned_storedi): New patterns.

gcc/testsuite

* gcc.target/arm/unaligned-memcpy-2.c: Adjust expected output.
* gcc.target/arm/unaligned-memcpy-3.c: Likewise.
* gcc.target/arm/unaligned-memcpy-4.c: Likewise.

From-SVN: r198970
gcc/ChangeLog
gcc/config/arm/arm-protos.h
gcc/config/arm/arm.c
gcc/config/arm/arm.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/unaligned-memcpy-2.c
gcc/testsuite/gcc.target/arm/unaligned-memcpy-3.c
gcc/testsuite/gcc.target/arm/unaligned-memcpy-4.c