diff options
author | Stefan Liebler <stli@linux.vnet.ibm.com> | 2017-06-27 17:09:43 +0200 |
---|---|---|
committer | Stefan Liebler <stli@linux.vnet.ibm.com> | 2017-06-27 17:09:43 +0200 |
commit | 593e4da186906525e2a0bdc4d87601bd0c2625eb (patch) | |
tree | c66ef4eb008f4a5ba94ea7605827f348fdf44ea8 /sysdeps/s390/multiarch/utf16-utf32-z9.c | |
parent | 23ea69a9d6e9ab28c66a232b767a800b04eaa938 (diff) | |
download | glibc-593e4da186906525e2a0bdc4d87601bd0c2625eb.zip glibc-593e4da186906525e2a0bdc4d87601bd0c2625eb.tar.gz glibc-593e4da186906525e2a0bdc4d87601bd0c2625eb.tar.bz2 |
S390: Use cu42 instruction for converting from utf32 to utf16.
This patch adds an ifunc variant to use the cu instruction on arch12 CPUs.
This new ifunc variant can be built if binutils support z13 vector
instructions. At runtime, HWCAP_S390_VXE decides if we can use the
cu42 instruction.
ChangeLog:
* sysdeps/s390/utf16-utf32-z9.c (__to_utf16_loop_vx_cu):
Use vector and cu42 instruction.
* sysdeps/s390/multiarch/utf16-utf32-z9.c:
Add __to_utf16_loop_vx_cu in ifunc resolver.
Diffstat (limited to 'sysdeps/s390/multiarch/utf16-utf32-z9.c')
-rw-r--r-- | sysdeps/s390/multiarch/utf16-utf32-z9.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sysdeps/s390/multiarch/utf16-utf32-z9.c b/sysdeps/s390/multiarch/utf16-utf32-z9.c index 6e64169..ded3cc2 100644 --- a/sysdeps/s390/multiarch/utf16-utf32-z9.c +++ b/sysdeps/s390/multiarch/utf16-utf32-z9.c @@ -37,8 +37,10 @@ s390_libc_ifunc_expr (FROM_LOOP_DEFAULT, FROM_LOOP, : FROM_LOOP_DEFAULT); s390_libc_ifunc_expr (TO_LOOP_DEFAULT, TO_LOOP, - (HAVE_TO_VX && (hwcap & HWCAP_S390_VX)) - ? TO_LOOP_VX - : TO_LOOP_DEFAULT); + (HAVE_TO_VX_CU && (hwcap & HWCAP_S390_VXE)) + ? TO_LOOP_VX_CU + : (HAVE_TO_VX && (hwcap & HWCAP_S390_VX)) + ? TO_LOOP_VX + : TO_LOOP_DEFAULT); #include <iconv/skeleton.c> |