PowerPC: multiarch bzero cleanup for PPC64

This patch cleanups the multiarch bzero for powerpc64 by remove
the multiarch objects and use instead the the memset embedded
implementation presented in each multiarch optimization.  The
code generate is essentially the same, but the TB_TOCLESS (which
is not essential).
This commit is contained in:
Adhemerval Zanella 2014-07-15 16:54:46 -04:00
parent e6fb95871c
commit 3b473fecdf
11 changed files with 32 additions and 91 deletions

View File

@ -1,3 +1,20 @@
2014-09-10 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* sysdeps/powerpc/powerpc64/multiarch/Makefile [sysdep_routines]:
Remove bzero multiarch objects.
* sysdeps/powerpc/powerpc64/multiarch/bzero-power4.S: Remove file.
* sysdeps/powerpc/powerpc64/multiarch/bzero-power6.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/bzero-power7.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/memset-power4.S [NO_BZERO_IMPL]:
Remove define.
[__bzero]: Redefine to specific name.
* sysdeps/powerpc/powerpc64/multiarch/memset-power6.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/memset-power7.S: Likewise.
* sysdeps/powerpc/powerpc64/power4/memset.S [NO_BZERO_IMPL]: Remove
define.
* sysdeps/powerpc/powerpc64/power6/memset.S: Likewise.
* sysdeps/powerpc/powerpc64/power7/memset.S: Likewise.
2014-09-10 Florian Weimer <fweimer@redhat.com>
* Makeconfig (gccwarn-c): Turn implicit-function-declaration

View File

@ -2,7 +2,7 @@ ifeq ($(subdir),string)
sysdep_routines += memcpy-power7 memcpy-a2 memcpy-power6 memcpy-cell \
memcpy-power4 memcpy-ppc64 memcmp-power7 memcmp-power4 \
memcmp-ppc64 memset-power7 memset-power6 memset-power4 \
memset-ppc64 bzero-power4 bzero-power6 bzero-power7 \
memset-ppc64 \
mempcpy-power7 mempcpy-ppc64 memchr-power7 memchr-ppc64 \
memrchr-power7 memrchr-ppc64 rawmemchr-power7 \
rawmemchr-ppc64 strlen-power7 strlen-ppc64 strnlen-power7 \

View File

@ -1,26 +0,0 @@
/* Optimized bzero implementation for PowerPC64/POWER4.
Copyright (C) 2013-2014 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 <sysdep.h>
ENTRY (__bzero_power4)
CALL_MCOUNT 3
mr r5,r4
li r4,0
b __memset_power4
END_GEN_TB (__bzero_power4,TB_TOCLESS)

View File

@ -1,26 +0,0 @@
/* Optimized bzero implementation for PowerPC64/POWER6.
Copyright (C) 2013-2014 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 <sysdep.h>
ENTRY (__bzero_power6)
CALL_MCOUNT 3
mr r5,r4
li r4,0
b __memset_power6
END_GEN_TB (__bzero_power6,TB_TOCLESS)

View File

@ -1,26 +0,0 @@
/* Optimized bzero implementation for PowerPC64/POWER7.
Copyright (C) 2013-2014 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 <sysdep.h>
ENTRY (__bzero_power7)
CALL_MCOUNT 3
mr r5,r4
li r4,0
b __memset_power7
END_GEN_TB (__bzero_power7,TB_TOCLESS)

View File

@ -37,5 +37,7 @@
#undef libc_hidden_builtin_def
#define libc_hidden_builtin_def(name)
#define NO_BZERO_IMPL
#undef __bzero
#define __bzero __bzero_power4
#include <sysdeps/powerpc/powerpc64/power4/memset.S>

View File

@ -37,5 +37,7 @@
#undef libc_hidden_builtin_def
#define libc_hidden_builtin_def(name)
#define NO_BZERO_IMPL
#undef __bzero
#define __bzero __bzero_power6
#include <sysdeps/powerpc/powerpc64/power6/memset.S>

View File

@ -37,5 +37,6 @@
#undef libc_hidden_builtin_def
#define libc_hidden_builtin_def(name)
#define NO_BZERO_IMPL
#undef __bzero
#define __bzero __bzero_power7
#include <sysdeps/powerpc/powerpc64/power7/memset.S>

View File

@ -235,7 +235,6 @@ L(medium_28t):
END_GEN_TB (memset,TB_TOCLESS)
libc_hidden_builtin_def (memset)
#ifndef NO_BZERO_IMPL
/* Copied from bzero.S to prevent the linker from inserting a stub
between bzero and memset. */
ENTRY (__bzero)
@ -243,7 +242,7 @@ ENTRY (__bzero)
mr r5,r4
li r4,0
b L(_memset)
END_GEN_TB (__bzero,TB_TOCLESS)
END (__bzero)
#ifndef __bzero
weak_alias (__bzero, bzero)
#endif

View File

@ -379,7 +379,6 @@ L(medium_28t):
END_GEN_TB (memset,TB_TOCLESS)
libc_hidden_builtin_def (memset)
#ifndef NO_BZERO_IMPL
/* Copied from bzero.S to prevent the linker from inserting a stub
between bzero and memset. */
ENTRY (__bzero)
@ -387,7 +386,7 @@ ENTRY (__bzero)
mr r5,r4
li r4,0
b L(_memset)
END_GEN_TB (__bzero,TB_TOCLESS)
END (__bzero)
#ifndef __bzero
weak_alias (__bzero, bzero)
#endif

View File

@ -383,7 +383,6 @@ L(small):
END_GEN_TB (memset,TB_TOCLESS)
libc_hidden_builtin_def (memset)
#ifndef NO_BZERO_IMPL
/* Copied from bzero.S to prevent the linker from inserting a stub
between bzero and memset. */
ENTRY (__bzero)
@ -391,7 +390,7 @@ ENTRY (__bzero)
mr r5,r4
li r4,0
b L(_memset)
END_GEN_TB (__bzero,TB_TOCLESS)
END (__bzero)
#ifndef __bzero
weak_alias (__bzero, bzero)
#endif