diff options
author | Alan Modra <amodra@gmail.com> | 2017-06-14 10:44:59 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2017-06-14 10:44:59 +0930 |
commit | de7ee73d6f5000478173ac065ded4077fd6ddee2 (patch) | |
tree | c02db136edac440e4b9ff9cbdb2466d098ea0a22 /sysdeps/powerpc/powerpc64/power7/strncpy.S | |
parent | 4b6e7667db6983fa953c1cac7671f68edacca0b4 (diff) | |
download | glibc-de7ee73d6f5000478173ac065ded4077fd6ddee2.tar.gz glibc-de7ee73d6f5000478173ac065ded4077fd6ddee2.tar.xz glibc-de7ee73d6f5000478173ac065ded4077fd6ddee2.zip |
PowerPC64 strncpy, stpncpy and strstr fixes
Makes __stpncpy_power8 call __memset_power8 directly rather than via an IFUNC. Fixes a missing _mcount, and removes some redundant NOPS. The *_is_local defines are also used in a followup patch. * sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S: Define MEMSET_is_local. * sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S: Likewise. Define MEMSET. * sysdeps/powerpc/powerpc64/multiarch/strstr-power7.S: Define STRLEN_is_local, STRNLEN_is_local, and STRCHR_is_local. * sysdeps/powerpc/powerpc64/power7/strstr.S: Likewise. Don't add nop after local calls. * sysdeps/powerpc/powerpc64/power7/strncpy.S: Define MEMSET_is_local. Don't add nop after local call. * sysdeps/powerpc/powerpc64/power8/strncpy.S: Likewise. Add missing CALL_MCOUNT.
Diffstat (limited to 'sysdeps/powerpc/powerpc64/power7/strncpy.S')
-rw-r--r-- | sysdeps/powerpc/powerpc64/power7/strncpy.S | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/power7/strncpy.S b/sysdeps/powerpc/powerpc64/power7/strncpy.S index 0224f74898..88d797908c 100644 --- a/sysdeps/powerpc/powerpc64/power7/strncpy.S +++ b/sysdeps/powerpc/powerpc64/power7/strncpy.S @@ -59,6 +59,7 @@ /* For builds with no IFUNC support, local calls should be made to internal GLIBC symbol (created by libc_hidden_builtin_def). */ # ifdef SHARED +# define MEMSET_is_local # define MEMSET __GI_memset # else # define MEMSET memset @@ -223,7 +224,9 @@ L(zeroFill): li r4, 0 /* zero fill buffer */ mr r5, r8 /* how many bytes to fill buffer with */ bl MEMSET /* call optimized memset */ +#ifndef MEMSET_is_local nop +#endif L(update3return): #ifdef USE_AS_STPNCPY |