Commit Graph

4 Commits

Author SHA1 Message Date
Wilco Dijkstra 127c38bd44 [AArch64] Rewrite optimized memset.
This is an optimized memset for AArch64.  Memset is split into 4 main
cases: small sets of up to 16 bytes, medium of 16..96 bytes which are
fully unrolled.  Large memsets of more than 96 bytes align the
destination and use an unrolled loop processing 64 bytes per
iteration.  Memsets of zero of more than 256 use the dc zva
instruction, and there are faster versions for the common ZVA sizes 64
or 128.  STP of Q registers is used to reduce codesize without loss of
performance.
2015-07-30 12:51:34 +01:00
Marcus Shawcroft c7806ef76a [AArch64] Reverting recent optimized memset(). 2015-07-15 13:34:58 +01:00
Wilco Dijkstra 3263f90ef7 [AArch64] Optimized memset.
This is an optimized memset for AArch64.  Memset is split into 4 main
cases: small sets of up to 16 bytes, medium of 16..96 bytes which are
fully unrolled.  Large memsets of more than 96 bytes align the
destination and use an unrolled loop processing 64 bytes per
iteration.  Memsets of zero of more than 256 use the dc zva
instruction, and there are faster versions for the common ZVA sizes 64
or 128.  STP of Q registers is used to reduce codesize without loss of
performance.
2015-07-13 13:17:16 +01:00
Marcus Shawcroft 080e96f57c 2013-01-10 Marcus Shawcroft <marcus.shawcroft@linaro.org>
* libc/machine/aarch64/Makefile.am (lib_a_SOURCES): Add
	    memcpy.c memcpy-stub.c memset.S memset-stub.c strcmp.S
	    strcmp-stub.c.
	    * libc/machine/aarch64/Makefile.in: Regenerated.
	    * libc/machine/aarch64/memcpy-stub.c: New file.
	    * libc/machine/aarch64/memcpy.S: New file.
	    * libc/machine/aarch64/memset-stub.c: New file.
	    * libc/machine/aarch64/memset.S: New file.
	    * libc/machine/aarch64/strcmp.S: New file.
	    * libc/machine/aarch64/strcmp-stub.c: New file.
2013-01-10 12:44:50 +00:00