]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Add optimized block copy and zero functions using vis instructions, which
authorJake Burkholder <jake@FreeBSD.org>
Thu, 3 Apr 2003 18:43:40 +0000 (18:43 +0000)
committerJake Burkholder <jake@FreeBSD.org>
Thu, 3 Apr 2003 18:43:40 +0000 (18:43 +0000)
commit6412c65cf08aea78d979f15bd2fd495d232cf6ab
tree70a23fb5f3c2600b3419c28b73852f077c6a483a
parentc2a2b443e288220c01b7399149f13f0e7b5866b5
Add optimized block copy and zero functions using vis instructions, which
can do 64 bytes at a time and don't allocate lines in the L2 cache.  These
assume that everything is 64 byte aligned, and that there's more than 128
bytes of data (best for whole pages).  The block load and store instructions
don't follow normal memory ordering rules and require either a memory barrier
or move between registers before the data can actually be used.  This
implementation correctly shuffles around 3 out of the 4 sets of registers
in order to avoid memory barriers expect for the last 2 blocks.
sys/sparc64/include/cpufunc.h
sys/sparc64/sparc64/support.S