Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src/sys/lib/libkern/arch/arm
Module Name: src
Committed By: scw
Date: Mon Oct 13 19:59:24 UTC 2003
Modified Files:
src/sys/lib/libkern/arch/arm: memcmp.S memcpy.S memmove.S memset.S
Added Files:
src/sys/lib/libkern/arch/arm: memcpy_arm.S memcpy_xscale.S
Log Message:
Xscale-optimised mem* functions, contributed by Wasabi Systems.
(Note: memcmp/memset improvements also benefit non-Xscale).
memcmp() - Compare 32-bits at a time if possible. Special-case 6-byte
comparisons, for the benefit of the network stack.
memset() - More loop unrolling, plus use of 'strd' instruction,
results in > 100% speedup on Xscale.
memcpy() - Big-endian support, unrolled loops, 'strd/ldrd/pld', plus
special-cases for very common length/alignment combinations
(at least in the kernel). Benchmarks show ~50% improvment on
Xscale.
memmove() - Big-endian support. Use fast memcpy(), above, if the regions
don't overlap. Otherwise unchanged.
To generate a diff of this commit:
cvs rdiff -r1.2 -r1.3 src/sys/lib/libkern/arch/arm/memcmp.S \
src/sys/lib/libkern/arch/arm/memmove.S
cvs rdiff -r1.5 -r1.6 src/sys/lib/libkern/arch/arm/memcpy.S
cvs rdiff -r0 -r1.1 src/sys/lib/libkern/arch/arm/memcpy_arm.S \
src/sys/lib/libkern/arch/arm/memcpy_xscale.S
cvs rdiff -r1.3 -r1.4 src/sys/lib/libkern/arch/arm/memset.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index