mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-27 13:10:29 +00:00
5bd11b1909
This patch reworks the s390 specific module to convert between utf8 and utf16. Now ifunc is used to choose either the c or etf3eh (with convert utf instruction) variants at runtime. Furthermore a new vector variant for z13 is introduced which will be build and chosen if vector support is available at build / runtime. In case of converting utf 8 to utf16, the vector variant optimizes input of 1byte utf8 characters. The convert utf instruction is used if a multibyte utf8 character is found. For the other direction utf16 to utf8, the cu21 instruction can't be re-enabled, because it does not report an error, if the input-stream consists of a single low surrogate utf16 char (e.g. 0xdc00). This applies to the newest z13, too. Thus there is only the c or the new vector variant, which can handle 1..4 byte utf8 characters. The c variant from utf16 to utf8 has beed fixed. If a high surrogate was at the end of the input-buffer, then errno was set to EINVAL and the input-pointer pointed just after the high surrogate. Now it points to the beginning of the high surrogate. This patch also fixes some whitespace errors. The c variant from utf8 to utf16 is now checking that tail-bytes starts with 0b10... and the value is not in range of an utf16 surrogate. Furthermore, the etf3eh variants are handling the "UTF-xx//IGNORE" case now. Before they ignored the ignore-case and always stopped at an error. ChangeLog: * sysdeps/s390/s390-64/utf8-utf16-z9.c: Use ifunc to select c, etf3eh or new vector loop-variant. |
||
---|---|---|
.. | ||
bits | ||
multiarch | ||
__longjmp.c | ||
add_n.S | ||
backtrace.c | ||
bcopy.S | ||
bsd-_setjmp.S | ||
bsd-setjmp.S | ||
bzero.S | ||
crti.S | ||
crtn.S | ||
dl-machine.h | ||
dl-trampoline.h | ||
dl-trampoline.S | ||
Implies | ||
iso-8859-1_cp037_z900.c | ||
Makefile | ||
memchr.S | ||
memcmp.S | ||
memcpy.S | ||
memset.S | ||
s390x-mcount.S | ||
setjmp.S | ||
stackguard-macros.h | ||
start.S | ||
strcmp.S | ||
strcpy.S | ||
strncpy.S | ||
sub_n.S | ||
sysdep.h | ||
tls-macros.h | ||
tst-audit.h | ||
utf8-utf16-z9.c | ||
utf8-utf32-z9.c | ||
utf16-utf32-z9.c |