@@ -46,3 +46,7 @@ sysdep_headers += sys/platform/ppc.h
tests += test-gettimebase
tests += tst-set_ppr
endif
+
+ifeq ($(subdir),wcsmbs)
+CFLAGS-wcscpy.c += -DUNROLL_NTIMES=8
+endif
deleted file mode 100644
@@ -1,105 +0,0 @@
-/* wcscpy.c - Wide Character Copy for POWER6+.
- Copyright (C) 2012-2019 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <stddef.h>
-#include <wchar.h>
-
-#ifndef WCSCPY
-# define WCSCPY wcscpy
-#endif
-
-/* Copy SRC to DEST. */
-wchar_t *
-WCSCPY (wchar_t *dest, const wchar_t *src)
-{
- wint_t c,d;
- wchar_t *wcp, *wcp2;
-
- if (__alignof__ (wchar_t) >= sizeof (wchar_t))
- {
- const ptrdiff_t off = dest - src;
-
- wcp = (wchar_t *) src;
- wcp2 = wcp + 1 ;
-
- do
- {
- d = *wcp;
- wcp[off] = d;
- if (d == L'\0')
- return dest;
- wcp += 2;
-
- c = *wcp2;
- wcp2[off] = c;
- if (c == L'\0')
- return dest;
- wcp2 += 2;
-
- d = *wcp;
- wcp[off] = d;
- if (d == L'\0')
- return dest;
- wcp += 2;
-
- c = *wcp2;
- wcp2[off] = c;
- if (c == L'\0')
- return dest;
- wcp2 += 2;
-
- d = *wcp;
- wcp[off] = d;
- if (d == L'\0')
- return dest;
- wcp += 2;
-
- c = *wcp2;
- wcp2[off] = c;
- if (c == L'\0')
- return dest;
- wcp2 += 2;
-
- d = *wcp;
- wcp[off] = d;
- if (d == L'\0')
- return dest;
- wcp += 2;
-
- c = *wcp2;
- wcp2[off] = c;
- if (c == L'\0')
- return dest;
- wcp2 += 2;
- }
- while (c != L'\0');
-
- }
- else
- {
- wcp = dest;
-
- do
- {
- c = *src++;
- *wcp++ = c;
- }
- while (c != L'\0');
- }
- return dest;
-}
@@ -18,13 +18,10 @@ endif
ifeq ($(subdir),wcsmbs)
sysdep_routines += wcschr-power7 wcschr-power6 wcschr-ppc32 \
- wcsrchr-power7 wcsrchr-power6 wcsrchr-ppc32 \
- wcscpy-power7 wcscpy-power6 wcscpy-ppc32
+ wcsrchr-power7 wcsrchr-power6 wcsrchr-ppc32
CFLAGS-wcschr-power7.c += -mcpu=power7
CFLAGS-wcschr-power6.c += -mcpu=power6
CFLAGS-wcsrchr-power7.c += -mcpu=power7
CFLAGS-wcsrchr-power6.c += -mcpu=power6
-CFLAGS-wcscpy-power7.c += -mcpu=power7
-CFLAGS-wcscpy-power6.c += -mcpu=power6
endif
@@ -209,16 +209,5 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
IFUNC_IMPL_ADD (array, i, wcsrchr, 1,
__wcsrchr_ppc))
- /* Support sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c. */
- IFUNC_IMPL (i, name, wcscpy,
- IFUNC_IMPL_ADD (array, i, wcscpy,
- hwcap & PPC_FEATURE_HAS_VSX,
- __wcscpy_power7)
- IFUNC_IMPL_ADD (array, i, wcscpy,
- hwcap & PPC_FEATURE_ARCH_2_05,
- __wcscpy_power6)
- IFUNC_IMPL_ADD (array, i, wcscpy, 1,
- __wcscpy_ppc))
-
return i;
}
deleted file mode 100644
@@ -1,22 +0,0 @@
-/* Copyright (C) 2013-2019 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-#define WCSCPY __wcscpy_power6
-
-#include <sysdeps/powerpc/power6/wcscpy.c>
deleted file mode 100644
@@ -1,22 +0,0 @@
-/* Copyright (C) 2013-2019 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-#define WCSCPY __wcscpy_power7
-
-#include <sysdeps/powerpc/power6/wcscpy.c>
deleted file mode 100644
@@ -1,27 +0,0 @@
-/* Copyright (C) 2013-2019 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <wchar.h>
-
-extern __typeof (wcscpy) __wcscpy_ppc;
-
-#define WCSCPY __wcscpy_ppc
-#include <wcsmbs/wcscpy.c>
-
-#ifdef SHARED
-__hidden_ver1 (__wcscpy_ppc, __GI___wcscpy, __wcscpy_ppc);
-#endif
deleted file mode 100644
@@ -1,36 +0,0 @@
-/* Multiple versions of wcscpy
- Copyright (C) 2013-2019 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#if IS_IN (libc)
-# define __wcscpy __redirect_wcscpy
-# include <wchar.h>
-# undef __wcscpy
-# include "init-arch.h"
-
-extern __typeof (__redirect_wcscpy) __wcscpy_ppc attribute_hidden;
-extern __typeof (__redirect_wcscpy) __wcscpy_power6 attribute_hidden;
-extern __typeof (__redirect_wcscpy) __wcscpy_power7 attribute_hidden;
-
-libc_ifunc_redirected (__redirect_wcscpy, __wcscpy,
- (hwcap & PPC_FEATURE_HAS_VSX)
- ? __wcscpy_power7 :
- (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __wcscpy_power6
- : __wcscpy_ppc);
-weak_alias (__wcscpy, wcscpy)
-#endif
@@ -40,13 +40,10 @@ endif
ifeq ($(subdir),wcsmbs)
sysdep_routines += wcschr-power7 wcschr-power6 wcschr-ppc64 \
- wcsrchr-power7 wcsrchr-power6 wcsrchr-ppc64 \
- wcscpy-power7 wcscpy-power6 wcscpy-ppc64 \
+ wcsrchr-power7 wcsrchr-power6 wcsrchr-ppc64
CFLAGS-wcschr-power7.c += -mcpu=power7
CFLAGS-wcschr-power6.c += -mcpu=power6
CFLAGS-wcsrchr-power7.c += -mcpu=power7
CFLAGS-wcsrchr-power6.c += -mcpu=power6
-CFLAGS-wcscpy-power7.c += -mcpu=power7
-CFLAGS-wcscpy-power6.c += -mcpu=power6
endif
@@ -282,17 +282,6 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
IFUNC_IMPL_ADD (array, i, wcsrchr, 1,
__wcsrchr_ppc))
- /* Support sysdeps/powerpc/powerpc64/multiarch/wcscpy.c. */
- IFUNC_IMPL (i, name, wcscpy,
- IFUNC_IMPL_ADD (array, i, wcscpy,
- hwcap & PPC_FEATURE_HAS_VSX,
- __wcscpy_power7)
- IFUNC_IMPL_ADD (array, i, wcscpy,
- hwcap & PPC_FEATURE_ARCH_2_05,
- __wcscpy_power6)
- IFUNC_IMPL_ADD (array, i, wcscpy, 1,
- __wcscpy_ppc))
-
/* Support sysdeps/powerpc/powerpc64/multiarch/strrchr.c. */
IFUNC_IMPL (i, name, strrchr,
IFUNC_IMPL_ADD (array, i, strrchr,
deleted file mode 100644
@@ -1,19 +0,0 @@
-/* wcscpy.c - Wide Character Search for powerpc64/power6.
- Copyright (C) 2013-2019 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power6.c>
deleted file mode 100644
@@ -1,19 +0,0 @@
-/* wcscpy.c - Wide Character Search for powerpc64/power7.
- Copyright (C) 2013-2019 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power7.c>
deleted file mode 100644
@@ -1,18 +0,0 @@
-/* Copyright (C) 2013-2019 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c>
deleted file mode 100644
@@ -1,35 +0,0 @@
-/* Multiple versions of wcscpy.
- Copyright (C) 2013-2019 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define __wcscpy __redirect___wcscpy
-#include <wchar.h>
-#undef __wcscpy
-#include <shlib-compat.h>
-#include "init-arch.h"
-
-extern __typeof (wcscpy) __wcscpy_ppc attribute_hidden;
-extern __typeof (wcscpy) __wcscpy_power6 attribute_hidden;
-extern __typeof (wcscpy) __wcscpy_power7 attribute_hidden;
-
-libc_ifunc_redirected (__redirect___wcscpy, __wcscpy,
- (hwcap & PPC_FEATURE_HAS_VSX)
- ? __wcscpy_power7 :
- (hwcap & PPC_FEATURE_ARCH_2_05)
- ? __wcscpy_power6
- : __wcscpy_ppc);
-weak_alias (__wcscpy, wcscpy)
deleted file mode 100644
@@ -1,4 +0,0 @@
-#define WCSCPY __wcscpy
-#include <sysdeps/powerpc/power6/wcscpy.c>
-libc_hidden_def (__wcscpy)
-weak_alias (__wcscpy, wcscpy)