From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id ADFEC385800E for ; Mon, 30 Aug 2021 17:35:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org ADFEC385800E Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-42-LqPjy_HwNGSy_grA09jSeA-1; Mon, 30 Aug 2021 13:35:50 -0400 X-MC-Unique: LqPjy_HwNGSy_grA09jSeA-1 Received: by mail-qt1-f199.google.com with SMTP id m6-20020ac807c6000000b0029994381c5fso1848qth.5 for ; Mon, 30 Aug 2021 10:35:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=de7LdS0Hi/pMPCgn6e2GHneBnfFGYyUD7e4UpTttago=; b=gKr5PNiuriTqvjB9DJBakg6mCltPMeQDwJBl7GtLYcy18n9z3m4njmjTS4s035whGX gTSwb0Zt8f97KJYoN/TdQTHkg2mhYLH2tqe6vL1N+hrHBeFYmVuwF00crsvepHOe7gwh 7z/SL/7NlHuIJKTWXT4SpA/66DOPjgFzPfGos/sXeh3cxCw0Tn6KJ3FqLthzQL124D4I 1yt79FDIx0kNPfutVIdpwbT39NHxf6tZxI95kVTotYaZu//Jt+ebBAMuSf+H14nEVtXB 2AoeOwXJjOfd4QnMLJYqu5H2ooJJYxEe92Gh0ObdYXsaLpXtOaFPTOIgDsiEfJQYGOl1 sqsg== X-Gm-Message-State: AOAM5309P8AaszZ+NPg60RaT7Z2lbjtXhUi1XgUsTaiHL4W3cvqA1pmp nyWV4BPHRXiRDXqq2oYsofL4mqJAE0k0WsBuCTkfitsCgtdiMXIiB007OfBZ/FdrUkf7nb1/7Hz 3gGO4i4N2RE553vs1Aw60zBP97pHcGx48dGBxm5ShI2jtotOiw45/xNPxaWwazqrs5wM1YA== X-Received: by 2002:a0c:e70f:: with SMTP id d15mr23918848qvn.47.1630344949336; Mon, 30 Aug 2021 10:35:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyH9ZdDeHii9NNFnta230mMt/kS6DeJdcd5W+XByJaFQLp2YcgVs2cLrQx17fup7HnArw2JkQ== X-Received: by 2002:a0c:e70f:: with SMTP id d15mr23918830qvn.47.1630344949147; Mon, 30 Aug 2021 10:35:49 -0700 (PDT) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id s18sm11934121qkj.87.2021.08.30.10.35.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 30 Aug 2021 10:35:48 -0700 (PDT) Subject: Re: [PATCH] x86-64: Use testl to check __x86_string_control To: "H.J. Lu" , libc-alpha@sourceware.org References: <20210828131530.539387-1-hjl.tools@gmail.com> From: Carlos O'Donell Organization: Red Hat Message-ID: <3cbda329-bc8a-3076-f7c6-89491788fcf8@redhat.com> Date: Mon, 30 Aug 2021 13:35:47 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210828131530.539387-1-hjl.tools@gmail.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Aug 2021 17:35:52 -0000 On 8/28/21 9:15 AM, H.J. Lu via Libc-alpha wrote: > Use testl, instead of andl, to check __x86_string_control to avoid > updating __x86_string_control. The __x86_string_control is a global variable that is hidden from external linkage and used internally by various routines. Today the value is RW, but in the future it could become RO (and probably should after a call to init_cacheinfo()). We don't want to do an idempotent update (we have only one bit constant for now), but instead just want to check for the bit. This code will break when we get another bit, or when it becomes RO. LGTM. Reviewed-by: Carlos O'Donell > --- > sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S b/sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S > index 9f02624375..abde8438d4 100644 > --- a/sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S > +++ b/sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S > @@ -325,7 +325,7 @@ L(movsb): > /* Avoid slow backward REP MOVSB. */ > jb L(more_8x_vec_backward) > # if AVOID_SHORT_DISTANCE_REP_MOVSB > - andl $X86_STRING_CONTROL_AVOID_SHORT_DISTANCE_REP_MOVSB, __x86_string_control(%rip) > + testl $X86_STRING_CONTROL_AVOID_SHORT_DISTANCE_REP_MOVSB, __x86_string_control(%rip) > jz 3f > movq %rdi, %rcx > subq %rsi, %rcx > @@ -333,7 +333,7 @@ L(movsb): > # endif > 1: > # if AVOID_SHORT_DISTANCE_REP_MOVSB > - andl $X86_STRING_CONTROL_AVOID_SHORT_DISTANCE_REP_MOVSB, __x86_string_control(%rip) > + testl $X86_STRING_CONTROL_AVOID_SHORT_DISTANCE_REP_MOVSB, __x86_string_control(%rip) > jz 3f > movq %rsi, %rcx > subq %rdi, %rcx > -- Cheers, Carlos.