From patchwork Wed Dec 13 04:07:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick McGehearty X-Patchwork-Id: 847730 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-88095-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="Q/0h/C+f"; dkim-atps=neutral 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 3yxNTC5CjPz9ryQ for ; Wed, 13 Dec 2017 15:07:59 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id:mime-version :content-type:content-transfer-encoding; q=dns; s=default; b=yhS +/+7AKDSkti+HVfnSGViFBAcfyqk0LubTvAkPlWOqdZ9YrpFpW3+rIhbPyo4dnK+ 8q/2gNZnVOXgj9KSOfEdElyv5zxWJKohXu9MxV4QV9ybzu/C1RcOUwbmq5atReP0 W1aUfPwkioL3IMG10UXEH9SYUHXonTz65bbwzSgo= 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:from:to:subject:date:message-id:mime-version :content-type:content-transfer-encoding; s=default; bh=Xikv57ovv 1PfCspaG0LpCLpmJzE=; b=Q/0h/C+fy3QJ+XXoJ4rcgXmOH4g/JjHEoTxSn965O ScVihINvZxvDWO65hLmIt8DAoNXpDiteM47A7sRFUZrjIhvA8TfMOs3SWJ9x0Du7 7fpafSvJMc41WsMIqnGw33HjcM1q8oVJ3lj7uFzBcLEJ0PovTJl4rvwPUCnBAabG sM= Received: (qmail 8632 invoked by alias); 13 Dec 2017 04:07:41 -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 8596 invoked by uid 89); 13 Dec 2017 04:07:41 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-6.9 required=5.0 tests=BAYES_00, GIT_PATCH_3, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.2 spammy=HContent-Transfer-Encoding:8bit X-HELO: userp2120.oracle.com From: Patrick McGehearty To: libc-alpha@sourceware.org Subject: [PATCH 0/4] sparc M7 optimized memcpy/memset Date: Tue, 12 Dec 2017 23:07:26 -0500 Message-Id: <1513138050-65509-1-git-send-email-patrick.mcgehearty@oracle.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8743 signatures=668646 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=1 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=622 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1712130056 The following patch set provides optimized versions of memcpy/mempcpy/memmove/memset/bzero for Sparc versions M7 (and later). Support for recognizing M7 is also provided. An assembly version of memmove for ultra1+ is provided. Jose E. Marchesi (1): sparc: support the ADP hw capability. Jose E. Marchesi (2): sparc: assembly version of memmove for ultra1+ Patrick McGehearty (3): sparc: M7 optimized memcpy/mempcpy/memmove Patrick McGehearty (4): sparc: M7 optimized memset/bzero ChangeLog | 43 + sysdeps/sparc/bits/hwcap.h | 1 + sysdeps/sparc/dl-procinfo.c | 4 +- sysdeps/sparc/dl-procinfo.h | 2 +- sysdeps/sparc/sparc32/sparcv9/memmove.S | 2 + sysdeps/sparc/sparc32/sparcv9/multiarch/Makefile | 3 +- .../sparcv9/multiarch/memcpy-memmove-niagara7.S | 2 + .../sparc32/sparcv9/multiarch/memmove-ultra1.S | 4 + .../sparc32/sparcv9/multiarch/memset-niagara7.S | 2 + .../sparc/sparc32/sparcv9/multiarch/rtld-memmove.c | 1 + sysdeps/sparc/sparc32/sparcv9/rtld-memmove.c | 1 + sysdeps/sparc/sparc64/memmove.S | 186 ++++ sysdeps/sparc/sparc64/multiarch/Makefile | 3 +- sysdeps/sparc/sparc64/multiarch/ifunc-impl-list.c | 13 + sysdeps/sparc/sparc64/multiarch/ifunc-memcpy.h | 3 + sysdeps/sparc/sparc64/multiarch/ifunc-memmove.h | 31 + sysdeps/sparc/sparc64/multiarch/ifunc-memset.h | 3 + .../sparc64/multiarch/memcpy-memmove-niagara7.S | 980 ++++++++++++++++++++ sysdeps/sparc/sparc64/multiarch/memmove-ultra1.S | 4 + sysdeps/sparc/sparc64/multiarch/memmove.c | 33 + sysdeps/sparc/sparc64/multiarch/memset-niagara7.S | 334 +++++++ sysdeps/sparc/sparc64/multiarch/rtld-memmove.c | 1 + sysdeps/sparc/sparc64/rtld-memmove.c | 2 + 23 files changed, 1653 insertions(+), 5 deletions(-) create mode 100644 sysdeps/sparc/sparc32/sparcv9/memmove.S create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memcpy-memmove-niagara7.S create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memmove-ultra1.S create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/memset-niagara7.S create mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/rtld-memmove.c create mode 100644 sysdeps/sparc/sparc32/sparcv9/rtld-memmove.c create mode 100644 sysdeps/sparc/sparc64/memmove.S create mode 100644 sysdeps/sparc/sparc64/multiarch/ifunc-memmove.h create mode 100644 sysdeps/sparc/sparc64/multiarch/memcpy-memmove-niagara7.S create mode 100644 sysdeps/sparc/sparc64/multiarch/memmove-ultra1.S create mode 100644 sysdeps/sparc/sparc64/multiarch/memmove.c create mode 100644 sysdeps/sparc/sparc64/multiarch/memset-niagara7.S create mode 100644 sysdeps/sparc/sparc64/multiarch/rtld-memmove.c create mode 100644 sysdeps/sparc/sparc64/rtld-memmove.c