This is the mail archive of the mailing list for the glibc project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 00/14] S390: Optimize iconv modules.


this patch set introduces optimized iconv modules for S390/S390x.

The first patches prepare for the latter optimizations.
A make warning is eliminated, the order in gconv-modules file is
changed for the s390 specific modules and a new configure check
is introduced.

The next patches optimize the current s390 specific iconv modules
and generic or built-in ones. The optimizations are done e.g. with
vector instructions, if gcc, binutils can handle those.
At compile time, the relevant functions are build with/without the
vector instructions. On runtime, the appropiate function is choosen
with an ifunc resolver.

The current s390-specific iconv-modules are used on 64bit only.
These modules are reworked to run on S390 31bit, too.

The last patches fixes some errors. Unfortunately, some of the s390
convert instructions do not report errors on UTF-16 low surrogates,
thus those failing instructions has to be disabled. Perhaps those
instructions can be reenabled in future. Some common-code modules
have similar problems, which are fixed, too.

The testsuite runs without new test failures. Tests were executed for 31/64bit
with binutils that do/don't support the z13 vector instructions.

Please review.
Ok to commit?

Stefan Liebler (14):
  S390: Get rid of make warning: overriding recipe for target
  S390: Mention s390-specific gconv-modues before common ones.
  S390: Configure check for vector support in gcc.
  S390: Optimize 8bit-generic iconv modules.
  S390: Optimize builtin iconv-modules.
  S390: Optimize iso-8859-1 to ibm037 iconv-module.
  S390: Optimize utf8-utf32 module.
  S390: Optimize utf8-utf16 module.
  S390: Optimize utf16-utf32 module.
  S390: Use s390-64 specific ionv-modules on s390-32, too.
  S390: Fix utf32 to utf8 handling of low surrogates (disable cu41).
  S390: Fix utf32 to utf16 handling of low surrogates (disable cu42).
  Fix ucs4le_internal_loop in error case.
  Fix UTF-16 surrogate handling.                                  |    4 +
 iconv/gconv_simple.c                         |    5 +-
 iconvdata/Makefile                           |   15 +-
 iconvdata/utf-16.c                           |   12 +
 iconvdata/utf-32.c                           |    2 +-
 sysdeps/s390/Makefile                        |   83 ++
 sysdeps/s390/configure                       |   32 +
 sysdeps/s390/                    |   21 +
 sysdeps/s390/iso-8859-1_cp037_z900.c         |  262 ++++++
 sysdeps/s390/multiarch/8bit-generic.c        |  485 ++++++++++
 sysdeps/s390/multiarch/Makefile              |    4 +
 sysdeps/s390/multiarch/gconv_simple.c        | 1266 ++++++++++++++++++++++++++
 sysdeps/s390/multiarch/iconv/skeleton.c      |   21 +
 sysdeps/s390/s390-64/Makefile                |   81 --
 sysdeps/s390/s390-64/iso-8859-1_cp037_z900.c |  237 -----
 sysdeps/s390/s390-64/utf16-utf32-z9.c        |  337 -------
 sysdeps/s390/s390-64/utf8-utf16-z9.c         |  471 ----------
 sysdeps/s390/s390-64/utf8-utf32-z9.c         |  511 -----------
 sysdeps/s390/utf16-utf32-z9.c                |  605 ++++++++++++
 sysdeps/s390/utf8-utf16-z9.c                 |  818 +++++++++++++++++
 sysdeps/s390/utf8-utf32-z9.c                 |  862 ++++++++++++++++++
 21 files changed, 4493 insertions(+), 1641 deletions(-)
 create mode 100644 sysdeps/s390/Makefile
 create mode 100644 sysdeps/s390/iso-8859-1_cp037_z900.c
 create mode 100644 sysdeps/s390/multiarch/8bit-generic.c
 create mode 100644 sysdeps/s390/multiarch/gconv_simple.c
 create mode 100644 sysdeps/s390/multiarch/iconv/skeleton.c
 delete mode 100644 sysdeps/s390/s390-64/iso-8859-1_cp037_z900.c
 delete mode 100644 sysdeps/s390/s390-64/utf16-utf32-z9.c
 delete mode 100644 sysdeps/s390/s390-64/utf8-utf16-z9.c
 delete mode 100644 sysdeps/s390/s390-64/utf8-utf32-z9.c
 create mode 100644 sysdeps/s390/utf16-utf32-z9.c
 create mode 100644 sysdeps/s390/utf8-utf16-z9.c
 create mode 100644 sysdeps/s390/utf8-utf32-z9.c


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]