Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp525429pxk; Wed, 2 Sep 2020 08:00:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxIo0M/Nbk8v2AOKKHXOVQKYboyVQGPklYt19dy0DL3gcgZJWi0Amy0aKySFOsanO3i1sWJ X-Received: by 2002:a17:906:5fc5:: with SMTP id k5mr375910ejv.63.1599058828652; Wed, 02 Sep 2020 08:00:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599058828; cv=none; d=google.com; s=arc-20160816; b=ZsshuhFQhZ1pg1ZOSDqOgJi0vvm296jke31JhGFM8EC4gG0FSwtq4Mt7FTZJK3rynr FYs15qgHpad+OGLz9clYeOyw53n5RqlKTDrPtUhpmmeSj/Xrni7fOpJdE6/5f15MUzd0 Mcf5CMHR3NZ1k0pyz4SVbgP+yuVWXt3nVYcmJ18PEQCIReWHL4sGSbWugF1CcapkXxOg k4ex7E33vsHTNRM7RmUxHde7M+EGHNw4eAVsiMPDJPM4ae30w6RMpbPErlAXGl0Y0R1X V6JLDMBAB4ecZduSmHIsV3lWvlqJzEdHqC7UvdtjIZ/QIIPJYWDpIv+wkQz27pa/uDBH qSag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=48rbvOcJ9iIaGzZt9knAQOB7LByIo0WE7k/qpPsLWMA=; b=I0C7k3vE5dJIqi4WcdgtJbVu2z0iUvl5+aLdKTOjdWyDSsXP0SDLsn9sgqf7wburKp X17fBkrfhfeqMLzjh3xhEugn2x7WqTT68EiPFpa4ARvwyHOq4su5j2Zx5J7LkcJXRzyM SvSRShpld7x6goFAV3X0JRu48m0b3gNqKKTgC3yOs70R2oRIgDvo8LMfkIQNM1Di5R/t mnlQ3cyGNDwu5cYTk7pFFdjF7ORtHW2A3kUbXYYcIMH1mh0pGK72weu1WML2wuZe/X4C Ga6CtS0AbegRvScbXslPG06nFVsru4gErWQvThl55+MLABHh7cp8GYOZiUOT0UAx5FbX OraQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@zx2c4.com header.s=mail header.b=02gapqX7; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zx2c4.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ld12si2847448ejb.329.2020.09.02.07.59.54; Wed, 02 Sep 2020 08:00:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@zx2c4.com header.s=mail header.b=02gapqX7; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zx2c4.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727980AbgIBO6z (ORCPT + 99 others); Wed, 2 Sep 2020 10:58:55 -0400 Received: from mail.zx2c4.com ([192.95.5.64]:34591 "EHLO mail.zx2c4.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726406AbgIBO6Z (ORCPT ); Wed, 2 Sep 2020 10:58:25 -0400 Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTP id 11d4df21 for ; Wed, 2 Sep 2020 14:30:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=zx2c4.com; h=mime-version :references:in-reply-to:from:date:message-id:subject:to:cc :content-type; s=mail; bh=0nCqNljMSjwOAKDwdZdX8MZKQ+8=; b=02gapq X7UC/SHQx3rh1OxxnQoh5pfOoSgp2IwRAVxhQ2en0yRGw9I04IQ/yt5+7zTzw5DX VkkmDXwShxsbfGiFy6K4WwSyjtDQwFlXyRHtWD3SnX3aOpJchwpLAucclsVo3voV Ma9ZXEwZW6okLVDdeH84WYchJby6dwI8RXaZMVc8VlqoA0sP82tKiNHkeSItvZOf m3Zk/ctLf76ACkedGcKeKpmRVOyi0pl+epGLkTeAjk6pdYS3rC6r/mtq+Y6PbYSf lewSq3FRQkvcNwpMBSY16q9Gw6+P6vCfIeTqnih9R0C6k8WDJUrO79FfECa4kMob vYUtulzOngP//GWQ== Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTPSA id 192d5b0b (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for ; Wed, 2 Sep 2020 14:30:11 +0000 (UTC) Received: by mail-io1-f46.google.com with SMTP id m23so6084018iol.8 for ; Wed, 02 Sep 2020 07:58:19 -0700 (PDT) X-Gm-Message-State: AOAM530xao7rAs3Kai7SmzGtbFHRe7GVnzCj5/hUUZ5LBG257JcxRolE Uqm7Vm1mYCwJt+UHrbjdRqp3+i3E2tFMRO7Ck8o= X-Received: by 2002:a6b:b98a:: with SMTP id j132mr3767983iof.67.1599058698024; Wed, 02 Sep 2020 07:58:18 -0700 (PDT) MIME-Version: 1.0 References: <20200827173058.94519-1-ubizjak@gmail.com> <20200902091741.GX1362448@hirez.programming.kicks-ass.net> In-Reply-To: <20200902091741.GX1362448@hirez.programming.kicks-ass.net> From: "Jason A. Donenfeld" Date: Wed, 2 Sep 2020 16:58:06 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] crypto/x86: Use XORL r32,32 in curve25519-x86_64.c To: Peter Zijlstra Cc: Uros Bizjak , Karthik Bhargavan , Chris.Hawblitzel@microsoft.com, Jonathan Protzenko , Aymeric Fromherz , Linux Crypto Mailing List , X86 ML , Herbert Xu , "David S. Miller" , Ard Biesheuvel Content-Type: text/plain; charset="UTF-8" Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org On Wed, Sep 2, 2020 at 11:44 AM wrote: > > On Wed, Sep 02, 2020 at 07:50:36AM +0200, Uros Bizjak wrote: > > On Tue, Sep 1, 2020 at 9:12 PM Jason A. Donenfeld wrote: > > > > > > On Tue, Sep 1, 2020 at 8:13 PM Jason A. Donenfeld wrote: > > > > operands are the same. Also, have you seen any measurable differences > > > > when benching this? I can stick it into kbench9000 to see if you > > > > haven't looked yet. > > > > > > On a Skylake server (Xeon Gold 5120), I'm unable to see any measurable > > > difference with this, at all, no matter how much I median or mean or > > > reduce noise by disabling interrupts. > > > > > > One thing that sticks out is that all the replacements of r8-r15 by > > > their %r8d-r15d counterparts still have the REX prefix, as is > > > necessary to access those registers. The only ones worth changing, > > > then, are the legacy registers, and on a whole, this amounts to only > > > 48 bytes of difference. > > > > The patch implements one of x86 target specific optimizations, > > performed by gcc. The optimization results in code size savings of one > > byte, where REX prefix is omitted with legacy registers, but otherwise > > should have no measurable runtime effect. Since gcc applies this > > optimization universally to all integer registers, I took the same > > approach and implemented the same change to legacy and REX registers. > > As measured above, 48 bytes saved is a good result for such a trivial > > optimization. > > Could we instead implement this optimization in GAS ? Then we can leave > the code as-is. I rather like that idea. Though I wonder if some would balk at it for smelling a bit like the MIPS assembler with its optimization pass...