summaryrefslogtreecommitdiffstats
path: root/libc
diff options
context:
space:
mode:
authorChristopher Ferris <cferris@google.com>2013-10-15 12:10:06 -0700
committerChristopher Ferris <cferris@google.com>2013-10-15 15:44:00 -0700
commitfbefb252b09634114977dbd1b48dd42bb2629b83 (patch)
tree478bcb7ce1c824034b05624de125c57d32148de5 /libc
parentac6bc31942e58c8893c0695d9766d0f3e39335fe (diff)
downloadbionic-fbefb252b09634114977dbd1b48dd42bb2629b83.zip
bionic-fbefb252b09634114977dbd1b48dd42bb2629b83.tar.gz
bionic-fbefb252b09634114977dbd1b48dd42bb2629b83.tar.bz2
Modify prefetch for krait memcpy.
I originally modified the krait mainloop prefetch from cacheline * 8 to * 2. This causes a perf degradation for copies bigger than will fit in the cache. Fixing this back to the original * 8. I tried other multiples, but * 8 is th sweet spot on krait. Bug: 11221806 (cherry picked from commit c3c58fb560fcf1225d4bfb533ba41add8de910e4) Change-Id: I369f81d91ba97a3fcecac84ac57dec921b4758c8
Diffstat (limited to 'libc')
-rw-r--r--libc/arch-arm/krait/bionic/memcpy_base.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/libc/arch-arm/krait/bionic/memcpy_base.S b/libc/arch-arm/krait/bionic/memcpy_base.S
index d87a542..009c8f9 100644
--- a/libc/arch-arm/krait/bionic/memcpy_base.S
+++ b/libc/arch-arm/krait/bionic/memcpy_base.S
@@ -79,7 +79,7 @@ ENTRY(MEMCPY_BASE)
1: /* The main loop copies 64 bytes at a time */
vld1.8 {d0 - d3}, [r1]!
vld1.8 {d4 - d7}, [r1]!
- pld [r1, #(32*2)]
+ pld [r1, #(32*8)]
subs r2, r2, #64
vst1.8 {d0 - d3}, [r0, :128]!
vst1.8 {d4 - d7}, [r0, :128]!