This is the mail archive of the libc-alpha@sourceware.org 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/27] S390: Optimize string, wcsmbs and memory functions.


Hi,

this patch set introduces optimized string, wcsmbs and memory functions for
S390/S390x. The functions are accelerated by the usage of the new z13 vector
instructions.

The Principles of Operations manual for IBM z13 is publically available:
http://publibfi.boulder.ibm.com/epubs/pdf/dz9zr010.pdf

The support for these instructions in assembler was introduced by commit
"[Committed] S/390: Add support for IBM z13."
(https://sourceware.org/ml/binutils/2015-01/msg00197.html)

The first patches do preparation for the latter optimization patches.
The floating point exception handling - fetestexcept(), ... - is fixed and
the platform and hwcap strings are extended.
The current ifunc routines memset, memcpy and memcmp are refactored and the
ifunc test-framework is now enabled.
A S390 specific configure-check tests if the used binutils supports the new
vector instructions. The optimized functions are provided via ifunc if the
binutils supports the vector instructions. Otherwise a message is dumped to
configure output and only the currently used common code functions are
available.

The optimized functions are implemented in common for s390-32 and s390-64
and the few differences are handled via #ifdef.

The ifunc-resolvers are defined in files sysdeps/s390/multiarch/<func>.c,
which choose either the current implementation __<func>_c() or the vector
implementation __<func>_vx() depending on the HWCAP_S390_VX flag bit in
AT_HWCAP field. If the bit is set, the hardware and the kernel are supporting
vector registers and instructions. If the used binutils lacks vector-support,
then the default implementation in string or wcsmbs directory is included
here instead.
The file sysdeps/s390/multiarch/<func>-c.c includes the current implementation
and defines the function name __<func>_c.
The assembler files sysdeps/s390/multiarch/<func>-vx.S with the vector
instructions are using the directive '.machine "z13"' to allow building glibc
without option '-march=z13'. Additionally the directive '.machinemode 
"zarch_nohighgprs"' is needed for the 31bit glibc. This mode does not set the
highgprs flag in ELF header, which would lead to an unloadable libc on a 31bit
kernel.

The most optimized string functions are structured in the same way:
Align the string pointer to 16byte boundary with 'vector load with length'
and process the string in a 16byte aligned loop, which loads the string with
'vector load' instruction. The loop is unrolled four times, because benchmark
results measured improvements compared to a non unrolled loop.
The alignment is not needed for the 'vector load' instruction, but to prevent
the algorithm to load over a page boundary if the string ends before.

The optimized wide string functions can only handle 4byte aligned string
pointers. Although a wchar_t pointer should always be 4byte aligned, the most
current common code wide string functions can handle non aligned strings.
Thus the optimized functions will fall back to the common code functions in
case of a non aligned wide string to behave the same as before this patch.

Some string tests can test the string and the wide string version of a function.
The remaining ones are extended and new wide string tests are added.
This is the same in case of the benchtests.

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?

A NEWS entry could be:
* Optimized string, wcsmbs and memory functions for IBM z13.
  Implemented by Stefan Liebler.

Bye
Stefan

Stefan Liebler (27):
  S390: Fix handling of DXC-byte in FPC-register.
  S390: Refactor ifunc implementations and enable ifunc-test-framework.
  S390: Add hwcaps value for vector facility.
  S390: Add new s390 platform.
  S390: configure check for vector instruction support in assembler.
  S390: Ifunc resolver macro for vector instructions.
  S390: Optimize strlen and wcslen.
  S390: Optimize strnlen and wcsnlen.
  S390: Optimize strcpy and wcscpy.
  S390: Optimize stpcpy and wcpcpy.
  S390: Optimize strncpy and wcsncpy.
  S390: Optimize stpncpy and wcpncpy.
  S390: Optimize strcat and wcscat.
  S390: Optimize strncat wcsncat.
  S390: Optimize strcmp and wcscmp.
  S390: Optimize strncmp and wcsncmp.
  S390: Optimize strchr and wcschr.
  S390: Optimize strchrnul and wcschrnul.
  S390: Optimize strrchr and wcsrchr.
  S390: Optimize strspn and wcsspn.
  S390: Optimize strpbrk and wcspbrk.
  S390: Optimize strcspn and wcscspn.
  S390: Optimize memchr, rawmemchr and wmemchr.
  S390: Optimize memccpy.
  S390: Optimize wmemset.
  S390: Optimize wmemcmp.
  S390: Optimize memrchr.

 benchtests/Makefile                            |   5 +-
 benchtests/bench-memchr.c                      |  69 ++++--
 benchtests/bench-memset.c                      |  63 +++--
 benchtests/bench-stpcpy.c                      |  33 ++-
 benchtests/bench-stpncpy.c                     |  41 +++-
 benchtests/bench-strcat.c                      |  88 ++++---
 benchtests/bench-strchr.c                      |  24 +-
 benchtests/bench-strcspn.c                     |  45 +++-
 benchtests/bench-strncat.c                     |  97 +++++---
 benchtests/bench-strncmp.c                     | 110 +++++++--
 benchtests/bench-strncpy.c                     | 110 ++++++---
 benchtests/bench-strnlen.c                     |  71 ++++--
 benchtests/bench-strpbrk.c                     | 100 +++++---
 benchtests/bench-strspn.c                      |  73 ++++--
 benchtests/bench-wcpcpy.c                      |  20 ++
 benchtests/bench-wcpncpy.c                     |  20 ++
 benchtests/bench-wcscat.c                      |  20 ++
 benchtests/bench-wcschr.c                      |  20 ++
 benchtests/bench-wcschrnul.c                   |  20 ++
 benchtests/bench-wcscmp.c                      |  20 ++
 benchtests/bench-wcscpy.c                      |  20 ++
 benchtests/bench-wcscspn.c                     |  20 ++
 benchtests/bench-wcslen.c                      |  20 ++
 benchtests/bench-wcsncat.c                     |  20 ++
 benchtests/bench-wcsncmp.c                     |  20 ++
 benchtests/bench-wcsncpy.c                     |  20 ++
 benchtests/bench-wcsnlen.c                     |  20 ++
 benchtests/bench-wcspbrk.c                     |  20 ++
 benchtests/bench-wcsrchr.c                     |  20 ++
 benchtests/bench-wcsspn.c                      |  20 ++
 benchtests/bench-wmemchr.c                     |  20 ++
 benchtests/bench-wmemcmp.c                     |  20 ++
 benchtests/bench-wmemset.c                     |  20 ++
 config.h.in                                    |   3 +
 string/memccpy.c                               |   4 +
 string/stpcpy.c                                |   6 +
 string/strcat.c                                |   6 +-
 string/strchr.c                                |   8 +-
 string/strcmp.c                                |   6 +-
 string/strlen.c                                |   6 +-
 string/test-memchr.c                           |  91 ++++---
 string/test-memset.c                           |  90 ++++---
 string/test-stpcpy.c                           |  35 ++-
 string/test-stpncpy.c                          |  41 +++-
 string/test-strcat.c                           | 126 ++++++----
 string/test-strchr.c                           |  26 +-
 string/test-strcspn.c                          |  47 +++-
 string/test-strncat.c                          | 138 +++++++----
 string/test-strncpy.c                          | 131 ++++++----
 string/test-strnlen.c                          |  87 ++++---
 string/test-strpbrk.c                          | 130 ++++++----
 string/test-strspn.c                           |  99 +++++---
 sysdeps/s390/bits/string.h                     |   4 +-
 sysdeps/s390/configure                         |  40 ++++
 sysdeps/s390/configure.ac                      |  28 +++
 sysdeps/s390/dl-procinfo.c                     |   8 +-
 sysdeps/s390/dl-procinfo.h                     |   5 +-
 sysdeps/s390/fpu/bits/fenv.h                   |   6 +-
 sysdeps/s390/fpu/fclrexcpt.c                   |   7 +-
 sysdeps/s390/fpu/fesetenv.c                    |   2 -
 sysdeps/s390/fpu/fgetexcptflg.c                |   8 +-
 sysdeps/s390/fpu/fpu_control.h                 |   6 +-
 sysdeps/s390/fpu/fsetexcptflg.c                |  15 +-
 sysdeps/s390/fpu/ftestexcept.c                 |  12 +-
 sysdeps/s390/multiarch/Makefile                |  44 ++++
 sysdeps/s390/multiarch/ifunc-impl-list.c       | 145 ++++++++++++
 sysdeps/s390/multiarch/ifunc-resolve.h         |  94 ++++++++
 sysdeps/s390/multiarch/memccpy-c.c             |  25 ++
 sysdeps/s390/multiarch/memccpy-vx.S            | 156 ++++++++++++
 sysdeps/s390/multiarch/memccpy.c               |  28 +++
 sysdeps/s390/multiarch/memchr-vx.S             | 134 +++++++++++
 sysdeps/s390/multiarch/memchr.c                |  24 ++
 sysdeps/s390/multiarch/memrchr-c.c             |  25 ++
 sysdeps/s390/multiarch/memrchr-vx.S            | 116 +++++++++
 sysdeps/s390/multiarch/memrchr.c               |  28 +++
 sysdeps/s390/multiarch/rawmemchr-c.c           |  34 +++
 sysdeps/s390/multiarch/rawmemchr-vx.S          |  96 ++++++++
 sysdeps/s390/multiarch/rawmemchr.c             |  28 +++
 sysdeps/s390/multiarch/stpcpy-c.c              |  34 +++
 sysdeps/s390/multiarch/stpcpy-vx.S             | 102 ++++++++
 sysdeps/s390/multiarch/stpcpy.c                |  30 +++
 sysdeps/s390/multiarch/stpncpy-c.c             |  28 +++
 sysdeps/s390/multiarch/stpncpy-vx.S            | 174 ++++++++++++++
 sysdeps/s390/multiarch/stpncpy.c               |  28 +++
 sysdeps/s390/multiarch/strcat-c.c              |  28 +++
 sysdeps/s390/multiarch/strcat-vx.S             | 158 +++++++++++++
 sysdeps/s390/multiarch/strcat.c                |  27 +++
 sysdeps/s390/multiarch/strchr-c.c              |  29 +++
 sysdeps/s390/multiarch/strchr-vx.S             | 100 ++++++++
 sysdeps/s390/multiarch/strchr.c                |  28 +++
 sysdeps/s390/multiarch/strchrnul-c.c           |  26 ++
 sysdeps/s390/multiarch/strchrnul-vx.S          |  91 +++++++
 sysdeps/s390/multiarch/strchrnul.c             |  28 +++
 sysdeps/s390/multiarch/strcmp-vx.S             | 116 +++++++++
 sysdeps/s390/multiarch/strcmp.c                |  26 ++
 sysdeps/s390/multiarch/strcpy-vx.S             | 107 +++++++++
 sysdeps/s390/multiarch/strcpy.c                |  24 ++
 sysdeps/s390/multiarch/strcspn-c.c             |  28 +++
 sysdeps/s390/multiarch/strcspn-vx.S            | 279 ++++++++++++++++++++++
 sysdeps/s390/multiarch/strcspn.c               |  27 +++
 sysdeps/s390/multiarch/strlen-c.c              |  28 +++
 sysdeps/s390/multiarch/strlen-vx.S             |  83 +++++++
 sysdeps/s390/multiarch/strlen.c                |  27 +++
 sysdeps/s390/multiarch/strncat-c.c             |  23 ++
 sysdeps/s390/multiarch/strncat-vx.S            | 214 +++++++++++++++++
 sysdeps/s390/multiarch/strncat.c               |  27 +++
 sysdeps/s390/multiarch/strncmp-c.c             |  28 +++
 sysdeps/s390/multiarch/strncmp-vx.S            | 137 +++++++++++
 sysdeps/s390/multiarch/strncmp.c               |  30 +++
 sysdeps/s390/multiarch/strncpy-vx.S            | 181 ++++++++++++++
 sysdeps/s390/multiarch/strncpy.c               |  24 ++
 sysdeps/s390/multiarch/strnlen-c.c             |  30 +++
 sysdeps/s390/multiarch/strnlen-vx.S            | 102 ++++++++
 sysdeps/s390/multiarch/strnlen.c               |  29 +++
 sysdeps/s390/multiarch/strpbrk-c.c             |  28 +++
 sysdeps/s390/multiarch/strpbrk-vx.S            | 300 +++++++++++++++++++++++
 sysdeps/s390/multiarch/strpbrk.c               |  27 +++
 sysdeps/s390/multiarch/strrchr-c.c             |  29 +++
 sysdeps/s390/multiarch/strrchr-vx.S            | 133 +++++++++++
 sysdeps/s390/multiarch/strrchr.c               |  28 +++
 sysdeps/s390/multiarch/strspn-c.c              |  28 +++
 sysdeps/s390/multiarch/strspn-vx.S             | 254 ++++++++++++++++++++
 sysdeps/s390/multiarch/strspn.c                |  27 +++
 sysdeps/s390/multiarch/wcpcpy-c.c              |  25 ++
 sysdeps/s390/multiarch/wcpcpy-vx.S             | 136 +++++++++++
 sysdeps/s390/multiarch/wcpcpy.c                |  28 +++
 sysdeps/s390/multiarch/wcpncpy-c.c             |  25 ++
 sysdeps/s390/multiarch/wcpncpy-vx.S            | 192 +++++++++++++++
 sysdeps/s390/multiarch/wcpncpy.c               |  28 +++
 sysdeps/s390/multiarch/wcscat-c.c              |  25 ++
 sysdeps/s390/multiarch/wcscat-vx.S             | 170 +++++++++++++
 sysdeps/s390/multiarch/wcscat.c                |  28 +++
 sysdeps/s390/multiarch/wcschr-c.c              |  37 +++
 sysdeps/s390/multiarch/wcschr-vx.S             | 102 ++++++++
 sysdeps/s390/multiarch/wcschr.c                |  29 +++
 sysdeps/s390/multiarch/wcschrnul-c.c           |  25 ++
 sysdeps/s390/multiarch/wcschrnul-vx.S          |  94 ++++++++
 sysdeps/s390/multiarch/wcschrnul.c             |  28 +++
 sysdeps/s390/multiarch/wcscmp-c.c              |  32 +++
 sysdeps/s390/multiarch/wcscmp-vx.S             | 131 ++++++++++
 sysdeps/s390/multiarch/wcscmp.c                |  28 +++
 sysdeps/s390/multiarch/wcscpy-c.c              |  25 ++
 sysdeps/s390/multiarch/wcscpy-vx.S             | 134 +++++++++++
 sysdeps/s390/multiarch/wcscpy.c                |  27 +++
 sysdeps/s390/multiarch/wcscspn-c.c             |  26 ++
 sysdeps/s390/multiarch/wcscspn-vx.S            | 293 +++++++++++++++++++++++
 sysdeps/s390/multiarch/wcscspn.c               |  27 +++
 sysdeps/s390/multiarch/wcslen-c.c              |  25 ++
 sysdeps/s390/multiarch/wcslen-vx.S             |  89 +++++++
 sysdeps/s390/multiarch/wcslen.c                |  28 +++
 sysdeps/s390/multiarch/wcsncat-c.c             |  25 ++
 sysdeps/s390/multiarch/wcsncat-vx.S            | 233 ++++++++++++++++++
 sysdeps/s390/multiarch/wcsncat.c               |  27 +++
 sysdeps/s390/multiarch/wcsncmp-c.c             |  25 ++
 sysdeps/s390/multiarch/wcsncmp-vx.S            | 177 ++++++++++++++
 sysdeps/s390/multiarch/wcsncmp.c               |  27 +++
 sysdeps/s390/multiarch/wcsncpy-c.c             |  25 ++
 sysdeps/s390/multiarch/wcsncpy-vx.S            | 193 +++++++++++++++
 sysdeps/s390/multiarch/wcsncpy.c               |  28 +++
 sysdeps/s390/multiarch/wcsnlen-c.c             |  25 ++
 sysdeps/s390/multiarch/wcsnlen-vx.S            | 119 ++++++++++
 sysdeps/s390/multiarch/wcsnlen.c               |  28 +++
 sysdeps/s390/multiarch/wcspbrk-c.c             |  31 +++
 sysdeps/s390/multiarch/wcspbrk-vx.S            | 316 +++++++++++++++++++++++++
 sysdeps/s390/multiarch/wcspbrk.c               |  27 +++
 sysdeps/s390/multiarch/wcsrchr-c.c             |  25 ++
 sysdeps/s390/multiarch/wcsrchr-vx.S            | 135 +++++++++++
 sysdeps/s390/multiarch/wcsrchr.c               |  27 +++
 sysdeps/s390/multiarch/wcsspn-c.c              |  31 +++
 sysdeps/s390/multiarch/wcsspn-vx.S             | 268 +++++++++++++++++++++
 sysdeps/s390/multiarch/wcsspn.c                |  27 +++
 sysdeps/s390/multiarch/wmemchr-c.c             |  37 +++
 sysdeps/s390/multiarch/wmemchr-vx.S            | 141 +++++++++++
 sysdeps/s390/multiarch/wmemchr.c               |  29 +++
 sysdeps/s390/multiarch/wmemcmp-c.c             |  26 ++
 sysdeps/s390/multiarch/wmemcmp-vx.S            | 149 ++++++++++++
 sysdeps/s390/multiarch/wmemcmp.c               |  27 +++
 sysdeps/s390/multiarch/wmemset-c.c             |  37 +++
 sysdeps/s390/multiarch/wmemset-vx.S            | 142 +++++++++++
 sysdeps/s390/multiarch/wmemset.c               |  29 +++
 sysdeps/s390/s390-32/memcmp.S                  |  46 ++--
 sysdeps/s390/s390-32/memcpy.S                  |  50 ++--
 sysdeps/s390/s390-32/memset.S                  |  44 ++--
 sysdeps/s390/s390-32/multiarch/Makefile        |   3 +-
 sysdeps/s390/s390-32/multiarch/ifunc-resolve.c |  72 ------
 sysdeps/s390/s390-32/multiarch/memchr.c        |  21 ++
 sysdeps/s390/s390-32/multiarch/memcmp-s390.S   | 104 ++++++++
 sysdeps/s390/s390-32/multiarch/memcmp.S        | 104 --------
 sysdeps/s390/s390-32/multiarch/memcmp.c        |  24 ++
 sysdeps/s390/s390-32/multiarch/memcpy-s390.S   |  98 ++++++++
 sysdeps/s390/s390-32/multiarch/memcpy.S        |  98 --------
 sysdeps/s390/s390-32/multiarch/memcpy.c        |  24 ++
 sysdeps/s390/s390-32/multiarch/memset-s390.S   | 113 +++++++++
 sysdeps/s390/s390-32/multiarch/memset.S        | 113 ---------
 sysdeps/s390/s390-32/multiarch/memset.c        |  23 ++
 sysdeps/s390/s390-32/multiarch/strcmp.c        |  21 ++
 sysdeps/s390/s390-32/multiarch/strcpy.c        |  21 ++
 sysdeps/s390/s390-32/multiarch/strncpy.c       |  21 ++
 sysdeps/s390/s390-64/memcmp.S                  |  42 ++--
 sysdeps/s390/s390-64/memcpy.S                  |  40 ++--
 sysdeps/s390/s390-64/memset.S                  |  40 ++--
 sysdeps/s390/s390-64/multiarch/Makefile        |   3 +-
 sysdeps/s390/s390-64/multiarch/ifunc-resolve.c |  76 ------
 sysdeps/s390/s390-64/multiarch/memchr.c        |  21 ++
 sysdeps/s390/s390-64/multiarch/memcmp-s390x.S  | 101 ++++++++
 sysdeps/s390/s390-64/multiarch/memcmp.S        | 101 --------
 sysdeps/s390/s390-64/multiarch/memcmp.c        |  24 ++
 sysdeps/s390/s390-64/multiarch/memcpy-s390x.S  |  94 ++++++++
 sysdeps/s390/s390-64/multiarch/memcpy.S        |  94 --------
 sysdeps/s390/s390-64/multiarch/memcpy.c        |  24 ++
 sysdeps/s390/s390-64/multiarch/memset-s390x.S  | 109 +++++++++
 sysdeps/s390/s390-64/multiarch/memset.S        | 109 ---------
 sysdeps/s390/s390-64/multiarch/memset.c        |  23 ++
 sysdeps/s390/s390-64/multiarch/strcmp.c        |  21 ++
 sysdeps/s390/s390-64/multiarch/strcpy.c        |  21 ++
 sysdeps/s390/s390-64/multiarch/strncpy.c       |  21 ++
 sysdeps/unix/sysv/linux/s390/bits/hwcap.h      |   1 +
 wcsmbs/Makefile                                |   4 +-
 wcsmbs/test-wcpcpy.c                           |  20 ++
 wcsmbs/test-wcpncpy.c                          |  20 ++
 wcsmbs/test-wcscat.c                           |  20 ++
 wcsmbs/test-wcschrnul.c                        |  20 ++
 wcsmbs/test-wcscspn.c                          |  20 ++
 wcsmbs/test-wcsncat.c                          |  20 ++
 wcsmbs/test-wcsncpy.c                          |  20 ++
 wcsmbs/test-wcsnlen.c                          |  20 ++
 wcsmbs/test-wcspbrk.c                          |  20 ++
 wcsmbs/test-wcsspn.c                           |  20 ++
 wcsmbs/test-wmemchr.c                          |  20 ++
 wcsmbs/test-wmemset.c                          |  20 ++
 wcsmbs/wcpcpy.c                                |   6 +-
 wcsmbs/wcpncpy.c                               |   5 +
 wcsmbs/wcscat.c                                |   5 +
 wcsmbs/wcschrnul.c                             |   5 +
 wcsmbs/wcscspn.c                               |   3 +
 wcsmbs/wcsncat.c                               |   5 +-
 wcsmbs/wcsncmp.c                               |   5 +-
 wcsmbs/wcsncpy.c                               |   5 +
 wcsmbs/wcsnlen.c                               |   7 +-
 wcsmbs/wcspbrk.c                               |   3 +
 wcsmbs/wcsspn.c                                |   3 +
 wcsmbs/wmemchr.c                               |   4 +
 wcsmbs/wmemset.c                               |   3 +
 243 files changed, 11783 insertions(+), 1600 deletions(-)
 create mode 100644 benchtests/bench-wcpcpy.c
 create mode 100644 benchtests/bench-wcpncpy.c
 create mode 100644 benchtests/bench-wcscat.c
 create mode 100644 benchtests/bench-wcschr.c
 create mode 100644 benchtests/bench-wcschrnul.c
 create mode 100644 benchtests/bench-wcscmp.c
 create mode 100644 benchtests/bench-wcscpy.c
 create mode 100644 benchtests/bench-wcscspn.c
 create mode 100644 benchtests/bench-wcslen.c
 create mode 100644 benchtests/bench-wcsncat.c
 create mode 100644 benchtests/bench-wcsncmp.c
 create mode 100644 benchtests/bench-wcsncpy.c
 create mode 100644 benchtests/bench-wcsnlen.c
 create mode 100644 benchtests/bench-wcspbrk.c
 create mode 100644 benchtests/bench-wcsrchr.c
 create mode 100644 benchtests/bench-wcsspn.c
 create mode 100644 benchtests/bench-wmemchr.c
 create mode 100644 benchtests/bench-wmemcmp.c
 create mode 100644 benchtests/bench-wmemset.c
 create mode 100644 sysdeps/s390/multiarch/Makefile
 create mode 100644 sysdeps/s390/multiarch/ifunc-impl-list.c
 create mode 100644 sysdeps/s390/multiarch/ifunc-resolve.h
 create mode 100644 sysdeps/s390/multiarch/memccpy-c.c
 create mode 100644 sysdeps/s390/multiarch/memccpy-vx.S
 create mode 100644 sysdeps/s390/multiarch/memccpy.c
 create mode 100644 sysdeps/s390/multiarch/memchr-vx.S
 create mode 100644 sysdeps/s390/multiarch/memchr.c
 create mode 100644 sysdeps/s390/multiarch/memrchr-c.c
 create mode 100644 sysdeps/s390/multiarch/memrchr-vx.S
 create mode 100644 sysdeps/s390/multiarch/memrchr.c
 create mode 100644 sysdeps/s390/multiarch/rawmemchr-c.c
 create mode 100644 sysdeps/s390/multiarch/rawmemchr-vx.S
 create mode 100644 sysdeps/s390/multiarch/rawmemchr.c
 create mode 100644 sysdeps/s390/multiarch/stpcpy-c.c
 create mode 100644 sysdeps/s390/multiarch/stpcpy-vx.S
 create mode 100644 sysdeps/s390/multiarch/stpcpy.c
 create mode 100644 sysdeps/s390/multiarch/stpncpy-c.c
 create mode 100644 sysdeps/s390/multiarch/stpncpy-vx.S
 create mode 100644 sysdeps/s390/multiarch/stpncpy.c
 create mode 100644 sysdeps/s390/multiarch/strcat-c.c
 create mode 100644 sysdeps/s390/multiarch/strcat-vx.S
 create mode 100644 sysdeps/s390/multiarch/strcat.c
 create mode 100644 sysdeps/s390/multiarch/strchr-c.c
 create mode 100644 sysdeps/s390/multiarch/strchr-vx.S
 create mode 100644 sysdeps/s390/multiarch/strchr.c
 create mode 100644 sysdeps/s390/multiarch/strchrnul-c.c
 create mode 100644 sysdeps/s390/multiarch/strchrnul-vx.S
 create mode 100644 sysdeps/s390/multiarch/strchrnul.c
 create mode 100644 sysdeps/s390/multiarch/strcmp-vx.S
 create mode 100644 sysdeps/s390/multiarch/strcmp.c
 create mode 100644 sysdeps/s390/multiarch/strcpy-vx.S
 create mode 100644 sysdeps/s390/multiarch/strcpy.c
 create mode 100644 sysdeps/s390/multiarch/strcspn-c.c
 create mode 100644 sysdeps/s390/multiarch/strcspn-vx.S
 create mode 100644 sysdeps/s390/multiarch/strcspn.c
 create mode 100644 sysdeps/s390/multiarch/strlen-c.c
 create mode 100644 sysdeps/s390/multiarch/strlen-vx.S
 create mode 100644 sysdeps/s390/multiarch/strlen.c
 create mode 100644 sysdeps/s390/multiarch/strncat-c.c
 create mode 100644 sysdeps/s390/multiarch/strncat-vx.S
 create mode 100644 sysdeps/s390/multiarch/strncat.c
 create mode 100644 sysdeps/s390/multiarch/strncmp-c.c
 create mode 100644 sysdeps/s390/multiarch/strncmp-vx.S
 create mode 100644 sysdeps/s390/multiarch/strncmp.c
 create mode 100644 sysdeps/s390/multiarch/strncpy-vx.S
 create mode 100644 sysdeps/s390/multiarch/strncpy.c
 create mode 100644 sysdeps/s390/multiarch/strnlen-c.c
 create mode 100644 sysdeps/s390/multiarch/strnlen-vx.S
 create mode 100644 sysdeps/s390/multiarch/strnlen.c
 create mode 100644 sysdeps/s390/multiarch/strpbrk-c.c
 create mode 100644 sysdeps/s390/multiarch/strpbrk-vx.S
 create mode 100644 sysdeps/s390/multiarch/strpbrk.c
 create mode 100644 sysdeps/s390/multiarch/strrchr-c.c
 create mode 100644 sysdeps/s390/multiarch/strrchr-vx.S
 create mode 100644 sysdeps/s390/multiarch/strrchr.c
 create mode 100644 sysdeps/s390/multiarch/strspn-c.c
 create mode 100644 sysdeps/s390/multiarch/strspn-vx.S
 create mode 100644 sysdeps/s390/multiarch/strspn.c
 create mode 100644 sysdeps/s390/multiarch/wcpcpy-c.c
 create mode 100644 sysdeps/s390/multiarch/wcpcpy-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcpcpy.c
 create mode 100644 sysdeps/s390/multiarch/wcpncpy-c.c
 create mode 100644 sysdeps/s390/multiarch/wcpncpy-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcpncpy.c
 create mode 100644 sysdeps/s390/multiarch/wcscat-c.c
 create mode 100644 sysdeps/s390/multiarch/wcscat-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcscat.c
 create mode 100644 sysdeps/s390/multiarch/wcschr-c.c
 create mode 100644 sysdeps/s390/multiarch/wcschr-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcschr.c
 create mode 100644 sysdeps/s390/multiarch/wcschrnul-c.c
 create mode 100644 sysdeps/s390/multiarch/wcschrnul-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcschrnul.c
 create mode 100644 sysdeps/s390/multiarch/wcscmp-c.c
 create mode 100644 sysdeps/s390/multiarch/wcscmp-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcscmp.c
 create mode 100644 sysdeps/s390/multiarch/wcscpy-c.c
 create mode 100644 sysdeps/s390/multiarch/wcscpy-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcscpy.c
 create mode 100644 sysdeps/s390/multiarch/wcscspn-c.c
 create mode 100644 sysdeps/s390/multiarch/wcscspn-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcscspn.c
 create mode 100644 sysdeps/s390/multiarch/wcslen-c.c
 create mode 100644 sysdeps/s390/multiarch/wcslen-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcslen.c
 create mode 100644 sysdeps/s390/multiarch/wcsncat-c.c
 create mode 100644 sysdeps/s390/multiarch/wcsncat-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcsncat.c
 create mode 100644 sysdeps/s390/multiarch/wcsncmp-c.c
 create mode 100644 sysdeps/s390/multiarch/wcsncmp-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcsncmp.c
 create mode 100644 sysdeps/s390/multiarch/wcsncpy-c.c
 create mode 100644 sysdeps/s390/multiarch/wcsncpy-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcsncpy.c
 create mode 100644 sysdeps/s390/multiarch/wcsnlen-c.c
 create mode 100644 sysdeps/s390/multiarch/wcsnlen-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcsnlen.c
 create mode 100644 sysdeps/s390/multiarch/wcspbrk-c.c
 create mode 100644 sysdeps/s390/multiarch/wcspbrk-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcspbrk.c
 create mode 100644 sysdeps/s390/multiarch/wcsrchr-c.c
 create mode 100644 sysdeps/s390/multiarch/wcsrchr-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcsrchr.c
 create mode 100644 sysdeps/s390/multiarch/wcsspn-c.c
 create mode 100644 sysdeps/s390/multiarch/wcsspn-vx.S
 create mode 100644 sysdeps/s390/multiarch/wcsspn.c
 create mode 100644 sysdeps/s390/multiarch/wmemchr-c.c
 create mode 100644 sysdeps/s390/multiarch/wmemchr-vx.S
 create mode 100644 sysdeps/s390/multiarch/wmemchr.c
 create mode 100644 sysdeps/s390/multiarch/wmemcmp-c.c
 create mode 100644 sysdeps/s390/multiarch/wmemcmp-vx.S
 create mode 100644 sysdeps/s390/multiarch/wmemcmp.c
 create mode 100644 sysdeps/s390/multiarch/wmemset-c.c
 create mode 100644 sysdeps/s390/multiarch/wmemset-vx.S
 create mode 100644 sysdeps/s390/multiarch/wmemset.c
 delete mode 100644 sysdeps/s390/s390-32/multiarch/ifunc-resolve.c
 create mode 100644 sysdeps/s390/s390-32/multiarch/memchr.c
 create mode 100644 sysdeps/s390/s390-32/multiarch/memcmp-s390.S
 delete mode 100644 sysdeps/s390/s390-32/multiarch/memcmp.S
 create mode 100644 sysdeps/s390/s390-32/multiarch/memcmp.c
 create mode 100644 sysdeps/s390/s390-32/multiarch/memcpy-s390.S
 delete mode 100644 sysdeps/s390/s390-32/multiarch/memcpy.S
 create mode 100644 sysdeps/s390/s390-32/multiarch/memcpy.c
 create mode 100644 sysdeps/s390/s390-32/multiarch/memset-s390.S
 delete mode 100644 sysdeps/s390/s390-32/multiarch/memset.S
 create mode 100644 sysdeps/s390/s390-32/multiarch/memset.c
 create mode 100644 sysdeps/s390/s390-32/multiarch/strcmp.c
 create mode 100644 sysdeps/s390/s390-32/multiarch/strcpy.c
 create mode 100644 sysdeps/s390/s390-32/multiarch/strncpy.c
 delete mode 100644 sysdeps/s390/s390-64/multiarch/ifunc-resolve.c
 create mode 100644 sysdeps/s390/s390-64/multiarch/memchr.c
 create mode 100644 sysdeps/s390/s390-64/multiarch/memcmp-s390x.S
 delete mode 100644 sysdeps/s390/s390-64/multiarch/memcmp.S
 create mode 100644 sysdeps/s390/s390-64/multiarch/memcmp.c
 create mode 100644 sysdeps/s390/s390-64/multiarch/memcpy-s390x.S
 delete mode 100644 sysdeps/s390/s390-64/multiarch/memcpy.S
 create mode 100644 sysdeps/s390/s390-64/multiarch/memcpy.c
 create mode 100644 sysdeps/s390/s390-64/multiarch/memset-s390x.S
 delete mode 100644 sysdeps/s390/s390-64/multiarch/memset.S
 create mode 100644 sysdeps/s390/s390-64/multiarch/memset.c
 create mode 100644 sysdeps/s390/s390-64/multiarch/strcmp.c
 create mode 100644 sysdeps/s390/s390-64/multiarch/strcpy.c
 create mode 100644 sysdeps/s390/s390-64/multiarch/strncpy.c
 create mode 100644 wcsmbs/test-wcpcpy.c
 create mode 100644 wcsmbs/test-wcpncpy.c
 create mode 100644 wcsmbs/test-wcscat.c
 create mode 100644 wcsmbs/test-wcschrnul.c
 create mode 100644 wcsmbs/test-wcscspn.c
 create mode 100644 wcsmbs/test-wcsncat.c
 create mode 100644 wcsmbs/test-wcsncpy.c
 create mode 100644 wcsmbs/test-wcsnlen.c
 create mode 100644 wcsmbs/test-wcspbrk.c
 create mode 100644 wcsmbs/test-wcsspn.c
 create mode 100644 wcsmbs/test-wmemchr.c
 create mode 100644 wcsmbs/test-wmemset.c

-- 
1.8.4.2


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