diff options
author | David S. Miller <davem@davemloft.net> | 2012-10-05 14:46:47 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-10-05 14:46:47 -0700 |
commit | 3baddb72a4181e05d0d279a6b345635641e13a18 (patch) | |
tree | 502af4b61251ea10b01aa227bc327c01accd281f /sysdeps/sparc/sparc64/multiarch/memset.S | |
parent | d7e0dab96d1a855f7ff779195010c188c334669e (diff) | |
download | glibc-3baddb72a4181e05d0d279a6b345635641e13a18.tar.gz |
Add Niagara-4 optimized memset/bzero implementation.
* sysdeps/sparc/sparc64/multiarch/memset-niagara4.S: New file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/memset-niagara4.S: New
file.
* sysdeps/sparc/sparc64/multiarch/Makefile: Add to
sysdep_routines.
* sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile: Likewise.
* sysdeps/sparc/sparc64/multiarch/memset.S: Use Niagara-4 memset
and bzero when HWCAP_SPARC_CRYPTO is present.
Diffstat (limited to 'sysdeps/sparc/sparc64/multiarch/memset.S')
-rw-r--r-- | sysdeps/sparc/sparc64/multiarch/memset.S | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/sysdeps/sparc/sparc64/multiarch/memset.S b/sysdeps/sparc/sparc64/multiarch/memset.S index 26cc669d6f..8b3faee915 100644 --- a/sysdeps/sparc/sparc64/multiarch/memset.S +++ b/sysdeps/sparc/sparc64/multiarch/memset.S @@ -26,8 +26,19 @@ ENTRY(memset) # ifdef SHARED SETUP_PIC_REG_LEAF(o3, o5) # endif - andcc %o0, HWCAP_SPARC_BLKINIT, %g0 - be 9f + set HWCAP_SPARC_CRYPTO, %o1 + andcc %o0, %o1, %g0 + be 1f + andcc %o0, HWCAP_SPARC_BLKINIT, %g0 +# ifdef SHARED + sethi %gdop_hix22(__memset_niagara4), %o1 + xor %o1, %gdop_lox10(__memset_niagara4), %o1 +# else + set __memset_niagara4, %o1 +# endif + ba 10f + nop +1: be 9f nop # ifdef SHARED sethi %gdop_hix22(__memset_niagara1), %o1 @@ -57,8 +68,19 @@ ENTRY(__bzero) # ifdef SHARED SETUP_PIC_REG_LEAF(o3, o5) # endif - andcc %o0, HWCAP_SPARC_BLKINIT, %g0 - be 9f + set HWCAP_SPARC_CRYPTO, %o1 + andcc %o0, %o1, %g0 + be 1f + andcc %o0, HWCAP_SPARC_BLKINIT, %g0 +# ifdef SHARED + sethi %gdop_hix22(__bzero_niagara4), %o1 + xor %o1, %gdop_lox10(__bzero_niagara4), %o1 +# else + set __bzero_niagara4, %o1 +# endif + ba 10f + nop +1: be 9f nop # ifdef SHARED sethi %gdop_hix22(__bzero_niagara1), %o1 |