[{"id":1776576,"web_url":"http://patchwork.ozlabs.org/comment/1776576/","msgid":"<20170927195637.GB15193@ravnborg.org>","list_archive_url":null,"date":"2017-09-27T19:56:37","subject":"Re: [PATCH v2 2/2] sparc64: Use lzcnt instruction for fls and __fls","submitter":{"id":1009,"url":"http://patchwork.ozlabs.org/api/people/1009/","name":"Sam Ravnborg","email":"sam@ravnborg.org"},"content":"Hi Vijay.\n\nOn Wed, Sep 27, 2017 at 01:25:26PM -0600, Vijay Kumar wrote:\n> For T4 and above, patch fls and __fls functions\n> at the boot time to use lzcnt instruction.\n> \n> Signed-off-by: Vijay Kumar <vijay.ac.kumar@oracle.com>\n> Reviewed-by: Babu Moger <babu.moger@oracle.com>\n> ---\n>  arch/sparc/Makefile         |    1 +\n>  arch/sparc/kernel/head_64.S |    2 ++\n>  arch/sparc/lib/Makefile     |    3 +++\n>  arch/sparc/lib/NG4fls.S     |   30 ++++++++++++++++++++++++++++++\n>  arch/sparc/lib/NG4patch.S   |    9 +++++++++\n>  5 files changed, 45 insertions(+), 0 deletions(-)\n> \n> diff --git a/arch/sparc/Makefile b/arch/sparc/Makefile\n> index 8496a07..0763cd8 100644\n> --- a/arch/sparc/Makefile\n> +++ b/arch/sparc/Makefile\n> @@ -48,6 +48,7 @@ KBUILD_CFLAGS += -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare\n>  KBUILD_CFLAGS += -Wa,--undeclared-regs\n>  KBUILD_CFLAGS += $(call cc-option,-mtune=ultrasparc3)\n>  KBUILD_AFLAGS += -m64 -mcpu=ultrasparc -Wa,--undeclared-regs\n> +KBUILD_AFLAGS += -Wa,-Asparc4\nThis change is not justified anywhere??\n\n>  \n>  ifeq ($(CONFIG_MCOUNT),y)\n>    KBUILD_CFLAGS += -pg\n> diff --git a/arch/sparc/kernel/head_64.S b/arch/sparc/kernel/head_64.S\n> index 78e0211..1165254 100644\n> --- a/arch/sparc/kernel/head_64.S\n> +++ b/arch/sparc/kernel/head_64.S\n> @@ -628,6 +628,8 @@ niagara4_patch:\n>  \t nop\n>  \tcall\tniagara4_patch_pageops\n>  \t nop\n> +\tcall\tniagara4_patch_fls\n> +\t nop\n>  \n>  \tba,a,pt\t%xcc, 80f\n>  \t nop\n> diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile\n> index eefbb9c..72d2d8c 100644\n> --- a/arch/sparc/lib/Makefile\n> +++ b/arch/sparc/lib/Makefile\n> @@ -46,3 +46,6 @@ lib-$(CONFIG_SPARC64) += mcount.o ipcsum.o xor.o hweight.o ffs.o\n>  obj-$(CONFIG_SPARC64) += iomap.o\n>  obj-$(CONFIG_SPARC32) += atomic32.o ucmpdi2.o\n>  obj-$(CONFIG_SPARC64) += PeeCeeI.o\n> +\n> +obj-$(CONFIG_SPARC64) += fls.o\n> +obj-$(CONFIG_SPARC64) += NG4fls.o\n> diff --git a/arch/sparc/lib/NG4fls.S b/arch/sparc/lib/NG4fls.S\n> new file mode 100644\n> index 0000000..eb239aa\n> --- /dev/null\n> +++ b/arch/sparc/lib/NG4fls.S\n> @@ -0,0 +1,30 @@\n> +/* NG4fls.S: SPARC optimized fls and __fls for T4 and above.\n> + *\n> + * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.\n> + */\n> +\n> +\t.text\n> +\t.align 32\n> +\n> +\t.globl NG4fls\n> +\t.globl __NG4fls\n> +\t.type  NG4fls, #function\n> +\t.type  __NG4fls, #function\n\nUse ENTRY(), ENDPROC() as already mentioned.\n> +NG4fls:\n> +\tlzcnt   %o0, %o1\n> +\tmov     64, %o2\n> +\tretl\n> +\t sub     %o2, %o1, %o0\n> +\t.size   NG4fls, .-NG4fls\n> +\n> +__NG4fls:\n> +\tbrz,pn  %o0, 1f\n> +        mov\t%o0, %o1\nUse tabs for indent, not spaces. In this case one tab + one space.\n\n> +\tlzcnt\t%o1, %o0\n> +\tmov     63, %o2\n> +\tsub     %o2, %o0, %o0\n> +1:\n> +\tretl\n> +\t nop\n> +\t.size   __NG4fls, .-__NG4fls\n> diff --git a/arch/sparc/lib/NG4patch.S b/arch/sparc/lib/NG4patch.S\n> index 3cc0f8c..1010d53 100644\n> --- a/arch/sparc/lib/NG4patch.S\n> +++ b/arch/sparc/lib/NG4patch.S\n> @@ -52,3 +52,12 @@ niagara4_patch_pageops:\n>  \tretl\n>  \t nop\n>  \t.size\tniagara4_patch_pageops,.-niagara4_patch_pageops\n> +\n> +\t.globl\tniagara4_patch_fls\n> +\t.type\tniagara4_patch_fls,#function\n> +niagara4_patch_fls:\n> +\tNG_DO_PATCH(fls, NG4fls)\n> +\tNG_DO_PATCH(__fls, __NG4fls)\n> +\tretl\n> +\t nop\n> +\t.size\tniagara4_patch_fls,.-niagara4_patch_fls\n\nPlease path the remaining functions in this file with ENTRY(), ENDPROC() - in a separate patch.\n\n\tSam\n--\nTo unsubscribe from this list: send the line \"unsubscribe sparclinux\" in\nthe body of a message to majordomo@vger.kernel.org\nMore majordomo info at  http://vger.kernel.org/majordomo-info.html","headers":{"Return-Path":"<sparclinux-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=sparclinux-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2T9R0N2Mz9t2l\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 28 Sep 2017 05:56:43 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751345AbdI0T4m (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 27 Sep 2017 15:56:42 -0400","from asavdk3.altibox.net ([109.247.116.14]:59637 \"EHLO\n\tasavdk3.altibox.net\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751154AbdI0T4l (ORCPT\n\t<rfc822; sparclinux@vger.kernel.org>); Wed, 27 Sep 2017 15:56:41 -0400","from ravnborg.org (unknown [188.228.89.252])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128\n\tbits)) (No client certificate requested)\n\tby asavdk3.altibox.net (Postfix) with ESMTPS id 295BB20038;\n\tWed, 27 Sep 2017 21:56:39 +0200 (CEST)"],"Date":"Wed, 27 Sep 2017 21:56:37 +0200","From":"Sam Ravnborg <sam@ravnborg.org>","To":"Vijay Kumar <vijay.ac.kumar@oracle.com>","Cc":"davem@davemloft.net, linux-kernel@vger.kernel.org,\n\tsparclinux@vger.kernel.org, babu.moger@oracle.com, rob.gardner@oracle.com","Subject":"Re: [PATCH v2 2/2] sparc64: Use lzcnt instruction for fls and __fls","Message-ID":"<20170927195637.GB15193@ravnborg.org>","References":"<1506540326-9604-1-git-send-email-vijay.ac.kumar@oracle.com>\n\t<1506540326-9604-3-git-send-email-vijay.ac.kumar@oracle.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<1506540326-9604-3-git-send-email-vijay.ac.kumar@oracle.com>","User-Agent":"Mutt/1.5.21 (2010-09-15)","X-CMAE-Score":"0","X-CMAE-Analysis":"v=2.2 cv=WJY9ZTkR c=1 sm=1 tr=0\n\ta=Ij76tQDYWdb01v2+RnYW5w==:117 a=Ij76tQDYWdb01v2+RnYW5w==:17\n\ta=kj9zAlcOel0A:10 a=yPCof4ZbAAAA:8 a=O2NkKeqqP5wwki6zUoQA:9\n\ta=CjuIK1q_8ugA:10","Sender":"sparclinux-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<sparclinux.vger.kernel.org>","X-Mailing-List":"sparclinux@vger.kernel.org"}},{"id":1776595,"web_url":"http://patchwork.ozlabs.org/comment/1776595/","msgid":"<029daf33-40f3-97be-e9f5-3fb0a48f3be5@oracle.com>","list_archive_url":null,"date":"2017-09-27T20:29:30","subject":"Re: [PATCH v2 2/2] sparc64: Use lzcnt instruction for fls and __fls","submitter":{"id":67939,"url":"http://patchwork.ozlabs.org/api/people/67939/","name":"Vijay Kumar","email":"vijay.ac.kumar@oracle.com"},"content":"Hi Sam,\n\nOn 9/27/2017 2:56 PM, Sam Ravnborg wrote:\n>>   \t.size\tniagara4_patch_pageops,.-niagara4_patch_pageops\n>> +\n>> +\t.globl\tniagara4_patch_fls\n>> +\t.type\tniagara4_patch_fls,#function\n>> +niagara4_patch_fls:\n>> +\tNG_DO_PATCH(fls, NG4fls)\n>> +\tNG_DO_PATCH(__fls, __NG4fls)\n>> +\tretl\n>> +\t nop\n>> +\t.size\tniagara4_patch_fls,.-niagara4_patch_fls\n> Please path the remaining functions in this file with ENTRY(), ENDPROC() - in a separate patch.\n\nThanks for your comment. Sure, I will make the changes and address other \ncomments as well in my revised version.\n\n- Vijay\n--\nTo unsubscribe from this list: send the line \"unsubscribe sparclinux\" in\nthe body of a message to majordomo@vger.kernel.org\nMore majordomo info at  http://vger.kernel.org/majordomo-info.html","headers":{"Return-Path":"<sparclinux-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=sparclinux-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2Ttj2k0pz9t66\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 28 Sep 2017 06:29:01 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751852AbdI0U3A (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 27 Sep 2017 16:29:00 -0400","from aserp1040.oracle.com ([141.146.126.69]:40755 \"EHLO\n\taserp1040.oracle.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751836AbdI0U27 (ORCPT\n\t<rfc822; sparclinux@vger.kernel.org>); Wed, 27 Sep 2017 16:28:59 -0400","from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74])\n\tby aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with\n\tESMTP id v8RKSnC4008210\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256\n\tverify=OK); Wed, 27 Sep 2017 20:28:50 GMT","from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235])\n\tby userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id\n\tv8RKSnZt023826\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256\n\tverify=OK); Wed, 27 Sep 2017 20:28:49 GMT","from abhmp0017.oracle.com (abhmp0017.oracle.com [141.146.116.23])\n\tby aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id\n\tv8RKSmE1032500; Wed, 27 Sep 2017 20:28:48 GMT","from [10.135.189.89] (/10.135.189.89)\n\tby default (Oracle Beehive Gateway v4.0)\n\twith ESMTP ; Wed, 27 Sep 2017 13:28:48 -0700"],"Subject":"Re: [PATCH v2 2/2] sparc64: Use lzcnt instruction for fls and __fls","To":"Sam Ravnborg <sam@ravnborg.org>","Cc":"davem@davemloft.net, linux-kernel@vger.kernel.org,\n\tsparclinux@vger.kernel.org, babu.moger@oracle.com, rob.gardner@oracle.com","References":"<1506540326-9604-1-git-send-email-vijay.ac.kumar@oracle.com>\n\t<1506540326-9604-3-git-send-email-vijay.ac.kumar@oracle.com>\n\t<20170927195637.GB15193@ravnborg.org>","From":"Vijay Kumar <vijay.ac.kumar@oracle.com>","Organization":"Oracle Corporation","Message-ID":"<029daf33-40f3-97be-e9f5-3fb0a48f3be5@oracle.com>","Date":"Wed, 27 Sep 2017 15:29:30 -0500","User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101\n\tThunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<20170927195637.GB15193@ravnborg.org>","Content-Type":"text/plain; charset=utf-8; format=flowed","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","X-Source-IP":"userv0022.oracle.com [156.151.31.74]","Sender":"sparclinux-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<sparclinux.vger.kernel.org>","X-Mailing-List":"sparclinux@vger.kernel.org"}},{"id":1776615,"web_url":"http://patchwork.ozlabs.org/comment/1776615/","msgid":"<20170927.140238.1798928470383448433.davem@davemloft.net>","list_archive_url":null,"date":"2017-09-27T21:02:38","subject":"Re: [PATCH v2 2/2] sparc64: Use lzcnt instruction for fls and __fls","submitter":{"id":15,"url":"http://patchwork.ozlabs.org/api/people/15/","name":"David Miller","email":"davem@davemloft.net"},"content":"From: Sam Ravnborg <sam@ravnborg.org>\nDate: Wed, 27 Sep 2017 21:56:37 +0200\n\n> Hi Vijay.\n> \n> On Wed, Sep 27, 2017 at 01:25:26PM -0600, Vijay Kumar wrote:\n>> For T4 and above, patch fls and __fls functions\n>> at the boot time to use lzcnt instruction.\n>> \n>> Signed-off-by: Vijay Kumar <vijay.ac.kumar@oracle.com>\n>> Reviewed-by: Babu Moger <babu.moger@oracle.com>\n>> ---\n>>  arch/sparc/Makefile         |    1 +\n>>  arch/sparc/kernel/head_64.S |    2 ++\n>>  arch/sparc/lib/Makefile     |    3 +++\n>>  arch/sparc/lib/NG4fls.S     |   30 ++++++++++++++++++++++++++++++\n>>  arch/sparc/lib/NG4patch.S   |    9 +++++++++\n>>  5 files changed, 45 insertions(+), 0 deletions(-)\n>> \n>> diff --git a/arch/sparc/Makefile b/arch/sparc/Makefile\n>> index 8496a07..0763cd8 100644\n>> --- a/arch/sparc/Makefile\n>> +++ b/arch/sparc/Makefile\n>> @@ -48,6 +48,7 @@ KBUILD_CFLAGS += -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare\n>>  KBUILD_CFLAGS += -Wa,--undeclared-regs\n>>  KBUILD_CFLAGS += $(call cc-option,-mtune=ultrasparc3)\n>>  KBUILD_AFLAGS += -m64 -mcpu=ultrasparc -Wa,--undeclared-regs\n>> +KBUILD_AFLAGS += -Wa,-Asparc4\n> This change is not justified anywhere??\n\nIt also will likely break with older tools.\n--\nTo unsubscribe from this list: send the line \"unsubscribe sparclinux\" in\nthe body of a message to majordomo@vger.kernel.org\nMore majordomo info at  http://vger.kernel.org/majordomo-info.html","headers":{"Return-Path":"<sparclinux-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=sparclinux-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2VdY11hPz9sRm\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 28 Sep 2017 07:02:41 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1750829AbdI0VCk (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 27 Sep 2017 17:02:40 -0400","from shards.monkeyblade.net ([184.105.139.130]:47872 \"EHLO\n\tshards.monkeyblade.net\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1750788AbdI0VCj (ORCPT\n\t<rfc822; sparclinux@vger.kernel.org>); Wed, 27 Sep 2017 17:02:39 -0400","from localhost (74-93-104-102-Washington.hfc.comcastbusiness.net\n\t[74.93.104.102])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(Client did not present a certificate)\n\t(Authenticated sender: davem-davemloft)\n\tby shards.monkeyblade.net (Postfix) with ESMTPSA id E9872133FDE87;\n\tWed, 27 Sep 2017 14:02:38 -0700 (PDT)"],"Date":"Wed, 27 Sep 2017 14:02:38 -0700 (PDT)","Message-Id":"<20170927.140238.1798928470383448433.davem@davemloft.net>","To":"sam@ravnborg.org","Cc":"vijay.ac.kumar@oracle.com, linux-kernel@vger.kernel.org,\n\tsparclinux@vger.kernel.org, babu.moger@oracle.com, rob.gardner@oracle.com","Subject":"Re: [PATCH v2 2/2] sparc64: Use lzcnt instruction for fls and __fls","From":"David Miller <davem@davemloft.net>","In-Reply-To":"<20170927195637.GB15193@ravnborg.org>","References":"<1506540326-9604-1-git-send-email-vijay.ac.kumar@oracle.com>\n\t<1506540326-9604-3-git-send-email-vijay.ac.kumar@oracle.com>\n\t<20170927195637.GB15193@ravnborg.org>","X-Mailer":"Mew version 6.7 on Emacs 25.3 / Mule 6.0 (HANACHIRUSATO)","Mime-Version":"1.0","Content-Type":"Text/Plain; charset=us-ascii","Content-Transfer-Encoding":"7bit","X-Greylist":"Sender succeeded SMTP AUTH, not delayed by\n\tmilter-greylist-4.5.12 (shards.monkeyblade.net\n\t[149.20.54.216]); Wed, 27 Sep 2017 14:02:39 -0700 (PDT)","Sender":"sparclinux-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<sparclinux.vger.kernel.org>","X-Mailing-List":"sparclinux@vger.kernel.org"}},{"id":1776639,"web_url":"http://patchwork.ozlabs.org/comment/1776639/","msgid":"<9DB110D2-67D6-4CAA-8C14-C3AF995D9711@oracle.com>","list_archive_url":null,"date":"2017-09-27T21:45:34","subject":"Re: [PATCH v2 2/2] sparc64: Use lzcnt instruction for fls and __fls","submitter":{"id":71125,"url":"http://patchwork.ozlabs.org/api/people/71125/","name":"Anthony Yznaga","email":"anthony.yznaga@oracle.com"},"content":"> On Sep 27, 2017, at 12:56 PM, Sam Ravnborg <sam@ravnborg.org> wrote:\n> \n> Hi Vijay.\n> \n> On Wed, Sep 27, 2017 at 01:25:26PM -0600, Vijay Kumar wrote:\n>> For T4 and above, patch fls and __fls functions\n>> at the boot time to use lzcnt instruction.\n>> \n>> Signed-off-by: Vijay Kumar <vijay.ac.kumar@oracle.com>\n>> Reviewed-by: Babu Moger <babu.moger@oracle.com>\n>> ---\n>> arch/sparc/Makefile         |    1 +\n>> arch/sparc/kernel/head_64.S |    2 ++\n>> arch/sparc/lib/Makefile     |    3 +++\n>> arch/sparc/lib/NG4fls.S     |   30 ++++++++++++++++++++++++++++++\n>> arch/sparc/lib/NG4patch.S   |    9 +++++++++\n>> 5 files changed, 45 insertions(+), 0 deletions(-)\n>> \n>> diff --git a/arch/sparc/Makefile b/arch/sparc/Makefile\n>> index 8496a07..0763cd8 100644\n>> --- a/arch/sparc/Makefile\n>> +++ b/arch/sparc/Makefile\n>> @@ -48,6 +48,7 @@ KBUILD_CFLAGS += -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare\n>> KBUILD_CFLAGS += -Wa,--undeclared-regs\n>> KBUILD_CFLAGS += $(call cc-option,-mtune=ultrasparc3)\n>> KBUILD_AFLAGS += -m64 -mcpu=ultrasparc -Wa,--undeclared-regs\n>> +KBUILD_AFLAGS += -Wa,-Asparc4\n> This change is not justified anywhere??\n\nIt looks like this is to get the assembler to recognize the lzcnt instruction.\n\nVijay,\nOlder assemblers may not support this flag so you’ll need to hardcode the lzcnt instructions using .word directives.\n\nAnthony\n\n> \n>> \n>> ifeq ($(CONFIG_MCOUNT),y)\n>>   KBUILD_CFLAGS += -pg\n>> diff --git a/arch/sparc/kernel/head_64.S b/arch/sparc/kernel/head_64.S\n>> index 78e0211..1165254 100644\n>> --- a/arch/sparc/kernel/head_64.S\n>> +++ b/arch/sparc/kernel/head_64.S\n>> @@ -628,6 +628,8 @@ niagara4_patch:\n>> \t nop\n>> \tcall\tniagara4_patch_pageops\n>> \t nop\n>> +\tcall\tniagara4_patch_fls\n>> +\t nop\n>> \n>> \tba,a,pt\t%xcc, 80f\n>> \t nop\n>> diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile\n>> index eefbb9c..72d2d8c 100644\n>> --- a/arch/sparc/lib/Makefile\n>> +++ b/arch/sparc/lib/Makefile\n>> @@ -46,3 +46,6 @@ lib-$(CONFIG_SPARC64) += mcount.o ipcsum.o xor.o hweight.o ffs.o\n>> obj-$(CONFIG_SPARC64) += iomap.o\n>> obj-$(CONFIG_SPARC32) += atomic32.o ucmpdi2.o\n>> obj-$(CONFIG_SPARC64) += PeeCeeI.o\n>> +\n>> +obj-$(CONFIG_SPARC64) += fls.o\n>> +obj-$(CONFIG_SPARC64) += NG4fls.o\n>> diff --git a/arch/sparc/lib/NG4fls.S b/arch/sparc/lib/NG4fls.S\n>> new file mode 100644\n>> index 0000000..eb239aa\n>> --- /dev/null\n>> +++ b/arch/sparc/lib/NG4fls.S\n>> @@ -0,0 +1,30 @@\n>> +/* NG4fls.S: SPARC optimized fls and __fls for T4 and above.\n>> + *\n>> + * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.\n>> + */\n>> +\n>> +\t.text\n>> +\t.align 32\n>> +\n>> +\t.globl NG4fls\n>> +\t.globl __NG4fls\n>> +\t.type  NG4fls, #function\n>> +\t.type  __NG4fls, #function\n> \n> Use ENTRY(), ENDPROC() as already mentioned.\n>> +NG4fls:\n>> +\tlzcnt   %o0, %o1\n>> +\tmov     64, %o2\n>> +\tretl\n>> +\t sub     %o2, %o1, %o0\n>> +\t.size   NG4fls, .-NG4fls\n>> +\n>> +__NG4fls:\n>> +\tbrz,pn  %o0, 1f\n>> +        mov\t%o0, %o1\n> Use tabs for indent, not spaces. In this case one tab + one space.\n> \n>> +\tlzcnt\t%o1, %o0\n>> +\tmov     63, %o2\n>> +\tsub     %o2, %o0, %o0\n>> +1:\n>> +\tretl\n>> +\t nop\n>> +\t.size   __NG4fls, .-__NG4fls\n>> diff --git a/arch/sparc/lib/NG4patch.S b/arch/sparc/lib/NG4patch.S\n>> index 3cc0f8c..1010d53 100644\n>> --- a/arch/sparc/lib/NG4patch.S\n>> +++ b/arch/sparc/lib/NG4patch.S\n>> @@ -52,3 +52,12 @@ niagara4_patch_pageops:\n>> \tretl\n>> \t nop\n>> \t.size\tniagara4_patch_pageops,.-niagara4_patch_pageops\n>> +\n>> +\t.globl\tniagara4_patch_fls\n>> +\t.type\tniagara4_patch_fls,#function\n>> +niagara4_patch_fls:\n>> +\tNG_DO_PATCH(fls, NG4fls)\n>> +\tNG_DO_PATCH(__fls, __NG4fls)\n>> +\tretl\n>> +\t nop\n>> +\t.size\tniagara4_patch_fls,.-niagara4_patch_fls\n> \n> Please path the remaining functions in this file with ENTRY(), ENDPROC() - in a separate patch.\n> \n> \tSam\n> --\n> To unsubscribe from this list: send the line \"unsubscribe sparclinux\" in\n> the body of a message to majordomo@vger.kernel.org\n> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n\n--\nTo unsubscribe from this list: send the line \"unsubscribe sparclinux\" in\nthe body of a message to majordomo@vger.kernel.org\nMore majordomo info at  http://vger.kernel.org/majordomo-info.html","headers":{"Return-Path":"<sparclinux-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=sparclinux-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2WbL0d2pz9ryT\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 28 Sep 2017 07:45:50 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752065AbdI0Vpt convert rfc822-to-8bit (ORCPT\n\t<rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 27 Sep 2017 17:45:49 -0400","from aserp1040.oracle.com ([141.146.126.69]:44271 \"EHLO\n\taserp1040.oracle.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751905AbdI0Vps (ORCPT\n\t<rfc822; sparclinux@vger.kernel.org>); Wed, 27 Sep 2017 17:45:48 -0400","from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234])\n\tby aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2)\n\twith ESMTP id v8RLjdNa030982\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256\n\tverify=OK); Wed, 27 Sep 2017 21:45:40 GMT","from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75])\n\tby aserv0022.oracle.com (8.14.4/8.14.4) with ESMTP id v8RLjcck022966\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256\n\tverify=OK); Wed, 27 Sep 2017 21:45:38 GMT","from abhmp0005.oracle.com (abhmp0005.oracle.com [141.146.116.11])\n\tby userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id\n\tv8RLjaHK006043; Wed, 27 Sep 2017 21:45:37 GMT","from dhcp-whq-twvpn-1-vpnpool-10-159-138-209.vpn.oracle.com\n\t(/10.159.138.209) by default (Oracle Beehive Gateway v4.0)\n\twith ESMTP ; Wed, 27 Sep 2017 14:45:36 -0700"],"Subject":"Re: [PATCH v2 2/2] sparc64: Use lzcnt instruction for fls and __fls","Mime-Version":"1.0 (Mac OS X Mail 9.3 \\(3124\\))","Content-Type":"text/plain; charset=utf-8","From":"Anthony Yznaga <anthony.yznaga@oracle.com>","In-Reply-To":"<20170927195637.GB15193@ravnborg.org>","Date":"Wed, 27 Sep 2017 14:45:34 -0700","Cc":"Vijay Kumar <vijay.ac.kumar@oracle.com>, davem@davemloft.net,\n\tlinux-kernel@vger.kernel.org, sparclinux@vger.kernel.org,\n\tbabu.moger@oracle.com, rob.gardner@oracle.com","Content-Transfer-Encoding":"8BIT","Message-Id":"<9DB110D2-67D6-4CAA-8C14-C3AF995D9711@oracle.com>","References":"<1506540326-9604-1-git-send-email-vijay.ac.kumar@oracle.com>\n\t<1506540326-9604-3-git-send-email-vijay.ac.kumar@oracle.com>\n\t<20170927195637.GB15193@ravnborg.org>","To":"Sam Ravnborg <sam@ravnborg.org>","X-Mailer":"Apple Mail (2.3124)","X-Source-IP":"aserv0022.oracle.com [141.146.126.234]","Sender":"sparclinux-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<sparclinux.vger.kernel.org>","X-Mailing-List":"sparclinux@vger.kernel.org"}}]