From patchwork Fri Jul 18 13:27:38 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella X-Patchwork-Id: 371532 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 9726014011D for ; Fri, 18 Jul 2014 23:27:58 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:subject :content-type:content-transfer-encoding; q=dns; s=default; b=YpU Fc3k0Uyr8t0cZumLGqxiQDvqIkM5M78tD4ImeBriJ1DpAfkDZjhN/DpONHUxSWUF x2QQ9jGzQ5CKV/R89uAxde1K7KyPpf758gt9NbSDBpyazeYjFdYrAQcee3uhwByc kCEqoz5LmVmsYu6Hd+ShqNVy4pdnVK3ftxkrnrEQ= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:subject :content-type:content-transfer-encoding; s=default; bh=XwBv2xm/0 b4kN8PQNnyaNdQ73tA=; b=ZWfZnEc3SJrRX9zj0JBVC2T8OeM4APLQDi43t695H k/DZHOrzI6SWrXqbA5e04svdOyzw5jUHqXxtBkRWPG5y3SYr+QdMI08W1ZRjr/mG H9nxoP2iZQccJpQZeIe04kAH/vhT7h9G2X5bdi9pBVann+cMI+ZWPZvKxyItrBSR 3k= Received: (qmail 4544 invoked by alias); 18 Jul 2014 13:27:51 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 4484 invoked by uid 89); 18 Jul 2014 13:27:50 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: e24smtp05.br.ibm.com Message-ID: <53C920CA.3030904@linux.vnet.ibm.com> Date: Fri, 18 Jul 2014 10:27:38 -0300 From: Adhemerval Zanella User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: "GNU C. Library" Subject: PowerPC: multiarch bzero cleanup for PPC64 X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14071813-1798-0000-0000-0000000619B2 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). Tested on powerpc64 and powerpc64le. --- * 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. --- diff --git a/sysdeps/powerpc/powerpc64/multiarch/Makefile b/sysdeps/powerpc/powerpc64/multiarch/Makefile index 82722fb..0de3804 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/Makefile +++ b/sysdeps/powerpc/powerpc64/multiarch/Makefile @@ -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 \ diff --git a/sysdeps/powerpc/powerpc64/multiarch/bzero-power4.S b/sysdeps/powerpc/powerpc64/multiarch/bzero-power4.S deleted file mode 100644 index 72b75ac..0000000 --- a/sysdeps/powerpc/powerpc64/multiarch/bzero-power4.S +++ /dev/null @@ -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 - . */ - -#include - -ENTRY (__bzero_power4) - CALL_MCOUNT 3 - mr r5,r4 - li r4,0 - b __memset_power4 -END_GEN_TB (__bzero_power4,TB_TOCLESS) diff --git a/sysdeps/powerpc/powerpc64/multiarch/bzero-power6.S b/sysdeps/powerpc/powerpc64/multiarch/bzero-power6.S deleted file mode 100644 index d0917c5..0000000 --- a/sysdeps/powerpc/powerpc64/multiarch/bzero-power6.S +++ /dev/null @@ -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 - . */ - -#include - -ENTRY (__bzero_power6) - CALL_MCOUNT 3 - mr r5,r4 - li r4,0 - b __memset_power6 -END_GEN_TB (__bzero_power6,TB_TOCLESS) diff --git a/sysdeps/powerpc/powerpc64/multiarch/bzero-power7.S b/sysdeps/powerpc/powerpc64/multiarch/bzero-power7.S deleted file mode 100644 index 0ec285a..0000000 --- a/sysdeps/powerpc/powerpc64/multiarch/bzero-power7.S +++ /dev/null @@ -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 - . */ - -#include - -ENTRY (__bzero_power7) - CALL_MCOUNT 3 - mr r5,r4 - li r4,0 - b __memset_power7 -END_GEN_TB (__bzero_power7,TB_TOCLESS) diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S index 968dc24..1291fb7 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power4.S @@ -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 diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S index 65519b9..3dc199c 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power6.S @@ -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 diff --git a/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S b/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S index 86765e7..fb1a342 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/memset-power7.S @@ -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 diff --git a/sysdeps/powerpc/powerpc64/power4/memset.S b/sysdeps/powerpc/powerpc64/power4/memset.S index 3a1e9dc..96a5825 100644 --- a/sysdeps/powerpc/powerpc64/power4/memset.S +++ b/sysdeps/powerpc/powerpc64/power4/memset.S @@ -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 weak_alias weak_alias (__bzero, bzero) #endif diff --git a/sysdeps/powerpc/powerpc64/power6/memset.S b/sysdeps/powerpc/powerpc64/power6/memset.S index b5115a7..6fffe0e 100644 --- a/sysdeps/powerpc/powerpc64/power6/memset.S +++ b/sysdeps/powerpc/powerpc64/power6/memset.S @@ -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 diff --git a/sysdeps/powerpc/powerpc64/power7/memset.S b/sysdeps/powerpc/powerpc64/power7/memset.S index 6b8999d..14df042 100644 --- a/sysdeps/powerpc/powerpc64/power7/memset.S +++ b/sysdeps/powerpc/powerpc64/power7/memset.S @@ -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