From ac6bc31942e58c8893c0695d9766d0f3e39335fe Mon Sep 17 00:00:00 2001 From: Christopher Ferris Date: Tue, 15 Oct 2013 14:54:02 -0700 Subject: [PATCH] Remove new aligned memcpy path for cortex-a15. For some reason the new cortex-a15 memcpy code from ARM is really bad for really large copies. This change forces us to go down the old path for all copies. All of my benchmarks show the new version is faster for large copies, but something is going on that I don't understand. Bug: 10838353 Change-Id: I01c16d4a2575e76f4c69862c6f78fd9024eb3fb8 --- libc/arch-arm/cortex-a15/bionic/memcpy_base.S | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libc/arch-arm/cortex-a15/bionic/memcpy_base.S b/libc/arch-arm/cortex-a15/bionic/memcpy_base.S index 015467607..de9e33b64 100644 --- a/libc/arch-arm/cortex-a15/bionic/memcpy_base.S +++ b/libc/arch-arm/cortex-a15/bionic/memcpy_base.S @@ -74,8 +74,10 @@ ENTRY(MEMCPY_BASE) cmp r2, #16 blo .L_copy_less_than_16_unknown_align - cmp r2, #832 - bge .L_check_alignment + // TODO: The aligned copy code is extremely slow copying some large + // buffers so always go through the unaligned path for now. + //cmp r2, #832 + //bge .L_check_alignment .L_copy_unknown_alignment: // Unknown alignment of src and dst.