Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Jul 2020 11:28:25 +0000 (UTC)
From:      Mateusz Guzik <mjg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r363242 - head/sys/amd64/include
Message-ID:  <202007161128.06GBSPSB045345@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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.

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?202007161128.06GBSPSB045345>