aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c
diff options
context:
space:
mode:
authorRaphael M Zinsly <rzinsly@linux.ibm.com>2020-11-12 13:12:24 -0300
committerTulio Magno Quites Machado Filho <tuliom@linux.ibm.com>2020-11-12 13:16:36 -0300
commit7beee7b39adeda657f45989b0635033dae25a1fd (patch)
tree003641c1011e226ea6e5234c560f302e6d3f00ff /sysdeps/powerpc/powerpc64/multiarch/stpncpy.c
parentb9d83bf3eb57e1cf8ef785f1a58e13ddf162b6f3 (diff)
downloadglibc-7beee7b39adeda657f45989b0635033dae25a1fd.tar
glibc-7beee7b39adeda657f45989b0635033dae25a1fd.tar.gz
glibc-7beee7b39adeda657f45989b0635033dae25a1fd.tar.bz2
glibc-7beee7b39adeda657f45989b0635033dae25a1fd.zip
powerpc: Add optimized stpncpy for POWER9
Add stpncpy support into the POWER9 strncpy. Reviewed-by: Matheus Castanho <msc@linux.ibm.com> Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Diffstat (limited to 'sysdeps/powerpc/powerpc64/multiarch/stpncpy.c')
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpncpy.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c b/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c
index 17df886431..3758f29ad1 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy.c
@@ -26,10 +26,18 @@
extern __typeof (__stpncpy) __stpncpy_ppc attribute_hidden;
extern __typeof (__stpncpy) __stpncpy_power7 attribute_hidden;
extern __typeof (__stpncpy) __stpncpy_power8 attribute_hidden;
+# ifdef __LITTLE_ENDIAN__
+extern __typeof (__stpncpy) __stpncpy_power9 attribute_hidden;
+# endif
# undef stpncpy
# undef __stpncpy
libc_ifunc_redirected (__redirect___stpncpy, __stpncpy,
+# ifdef __LITTLE_ENDIAN__
+ (hwcap2 & PPC_FEATURE2_ARCH_3_00) &&
+ (hwcap & PPC_FEATURE_HAS_VSX)
+ ? __stpncpy_power9 :
+# endif
(hwcap2 & PPC_FEATURE2_ARCH_2_07)
? __stpncpy_power8
: (hwcap & PPC_FEATURE_HAS_VSX)