From patchwork Wed Jan 30 03:14:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Biggers X-Patchwork-Id: 10787627 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7F57F6C2 for ; Wed, 30 Jan 2019 03:15:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6EADA2D1E4 for ; Wed, 30 Jan 2019 03:15:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 62E312D1E8; Wed, 30 Jan 2019 03:15:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 1927D2D1E4 for ; Wed, 30 Jan 2019 03:15:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=CNq+thoaMbCrwi6oJB8TrKk7AQUlrsQWXIU46++Yvz0=; b=WAxXjut1baErEX bs4pIkGWHicDsoHUGnoti5SmjV7mqIZMoH38ZOMelJRj4WO3krcuMhvGmlmoleBpw4alWEwMo9oET 7CmuK1nf3lXkC4UXfJUOVFQdtLXpdQ/uX/tl1pdCS6Lg4saV9X1GHxHBFOeam1sOllA27b9L+k4U2 1cLmDKVR5+KPQmjuVvAPup2EojCu8IbLr55qU6DzDy/VxP+ugXUIA4/eBM3jM1mfX6MvGCAAoE7qK oQ4ktqDe2lWvRKepg4u5KgNggca6bksetwM6VgjB3NVPR8f2TOLn6z5ilVjDPWbQEMRNoVCT+E9+H PdKri8fd9FkJ8RJ4s3IQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gogLv-0008C7-1V; Wed, 30 Jan 2019 03:15:51 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gogLr-0008Ag-Rx for linux-arm-kernel@lists.infradead.org; Wed, 30 Jan 2019 03:15:49 +0000 Received: from sol.localdomain (c-107-3-167-184.hsd1.ca.comcast.net [107.3.167.184]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 8098F2175B; Wed, 30 Jan 2019 03:15:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1548818145; bh=R0GaZ1KXQipwlylhKG51FJCcyUMVf8Sm/6cy3V6PR9o=; h=From:To:Cc:Subject:Date:From; b=XYqzTkYIT47IkzNOjLARd8jp6PhmlE0Lx5u/LpKQLYhWr5VEoaN9WV7d9+pCjksm6 2MuuE+mYFBE2wRA67qOb7DKg2f+OMbaC4r810ZvZmJ1p6xTLi79qJ/x7TB3fvb+HaN b2cnT3SFAizMx8hkWr+kwDQxIsm1knLbCAgaDI4U= From: Eric Biggers To: linux-crypto@vger.kernel.org, Herbert Xu Subject: [PATCH v3 0/3] crypto: crct10dif assembly cleanup and optimizations Date: Tue, 29 Jan 2019 19:14:41 -0800 Message-Id: <20190130031444.28935-1-ebiggers@kernel.org> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190129_191547_956840_9DACC993 X-CRM114-Status: UNSURE ( 8.22 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tim Chen , linux-arm-kernel@lists.infradead.org, Ard Biesheuvel Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The x86, arm, and arm64 asm implementations of crct10dif are very difficult to understand partly because many of the comments, labels, and macros are named incorrectly: the lengths mentioned are usually off by a factor of two from the actual code. Many other things are unnecessarily convoluted as well, e.g. there are many more fold constants than actually needed and some aren't fully reduced. This series therefore cleans up all these implementations to be much more maintainable. I also made some small optimizations where I saw opportunities, resulting in slightly better performance. This is based on top of the pending patches from Ard Biesheuvel. These all pass the new extra self-tests. Changed since v2: - Removed the unnecessary '__LINUX_ARM_ARCH__ < 7' case. - Added Ard's Acked-by. Changed since v1: - Moved constants in arm implementation to .rodata. - Eliminated a few instructions from the x86 implementation. - Tweaked a few comments. Eric Biggers (3): crypto: x86/crct10dif-pcl - cleanup and optimizations crypto: arm/crct10dif-ce - cleanup and optimizations crypto: arm64/crct10dif-ce - cleanup and optimizations arch/arm/crypto/crct10dif-ce-core.S | 552 ++++++++-------- arch/arm/crypto/crct10dif-ce-glue.c | 2 +- arch/arm64/crypto/crct10dif-ce-core.S | 496 +++++++------- arch/arm64/crypto/crct10dif-ce-glue.c | 4 +- arch/x86/crypto/crct10dif-pcl-asm_64.S | 844 +++++++++--------------- arch/x86/crypto/crct10dif-pclmul_glue.c | 3 +- 6 files changed, 794 insertions(+), 1107 deletions(-)