Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Jul 2020 17:49:48 -0300
From:      Mitchell Horne <mhorne@freebsd.org>
To:        Mateusz Guzik <mjg@freebsd.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org,  svn-src-head@freebsd.org
Subject:   Re: svn commit: r363242 - head/sys/amd64/include
Message-ID:  <CADeAsy1yY_CL5vSvvkgYSutN4gmJi4n1qrc_Duw2M44O%2BH-%2B4w@mail.gmail.com>
In-Reply-To: <202007161128.06GBSPSB045345@repo.freebsd.org>
References:  <202007161128.06GBSPSB045345@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jul 16, 2020 at 8:28 AM Mateusz Guzik <mjg@freebsd.org> wrote:
>
> Author: mjg
> Date: Thu Jul 16 11:28:24 2020
> New Revision: 363242
> URL: https://svnweb.freebsd.org/changeset/base/363242
>
> Log:
>   amd64: patch ffsl to use the compiler builtin
>
>   This shortens fdalloc by over 60 bytes. Correctness verified by running both
>   variants at the same time and comparing the result of each call.
>
>   Note someone(tm) should make a pass at converting everything else feasible.
>

I have a local version of such a change. I'll see about getting it up
for review in the next little while.

Mitchell

> Modified:
>   head/sys/amd64/include/cpufunc.h
>
> Modified: head/sys/amd64/include/cpufunc.h
> ==============================================================================
> --- head/sys/amd64/include/cpufunc.h    Thu Jul 16 10:20:35 2020        (r363241)
> +++ head/sys/amd64/include/cpufunc.h    Thu Jul 16 11:28:24 2020        (r363242)
> @@ -167,7 +167,8 @@ enable_intr(void)
>  static __inline __pure2 int
>  ffsl(long mask)
>  {
> -       return (mask == 0 ? mask : (int)bsfq((u_long)mask) + 1);
> +
> +       return (__builtin_ffsl(mask));
>  }
>
>  #define        HAVE_INLINE_FFSLL



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADeAsy1yY_CL5vSvvkgYSutN4gmJi4n1qrc_Duw2M44O%2BH-%2B4w>