about summary refs log tree commit diff
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.gz
glibc-7beee7b39adeda657f45989b0635033dae25a1fd.tar.xz
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)