Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Oct 2015 10:05:43 +0000 (UTC)
From:      Andriy Gapon <avg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r289818 - in stable/10/sys: amd64/include conf i386/include
Message-ID:  <201510231005.t9NA5hwr020494@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: avg
Date: Fri Oct 23 10:05:43 2015
New Revision: 289818
URL: https://svnweb.freebsd.org/changeset/base/289818

Log:
  MFC r261891: provide fast versions of ffsl and flsl for i386; ffsll and
  flsll for amd64

Modified:
  stable/10/sys/amd64/include/cpufunc.h
  stable/10/sys/conf/files
  stable/10/sys/conf/files.arm
  stable/10/sys/conf/files.i386
  stable/10/sys/conf/files.ia64
  stable/10/sys/conf/files.mips
  stable/10/sys/conf/files.pc98
  stable/10/sys/conf/files.powerpc
  stable/10/sys/conf/files.sparc64
  stable/10/sys/i386/include/cpufunc.h

Modified: stable/10/sys/amd64/include/cpufunc.h
==============================================================================
--- stable/10/sys/amd64/include/cpufunc.h	Fri Oct 23 08:53:32 2015	(r289817)
+++ stable/10/sys/amd64/include/cpufunc.h	Fri Oct 23 10:05:43 2015	(r289818)
@@ -154,6 +154,14 @@ ffsl(long mask)
 	return (mask == 0 ? mask : (int)bsfq((u_long)mask) + 1);
 }
 
+#define	HAVE_INLINE_FFSLL
+
+static __inline int
+ffsll(long long mask)
+{
+	return (ffsl((long)mask));
+}
+
 #define	HAVE_INLINE_FLS
 
 static __inline int
@@ -170,6 +178,14 @@ flsl(long mask)
 	return (mask == 0 ? mask : (int)bsrq((u_long)mask) + 1);
 }
 
+#define	HAVE_INLINE_FLSLL
+
+static __inline int
+flsll(long long mask)
+{
+	return (flsl((long)mask));
+}
+
 #endif /* _KERNEL */
 
 static __inline void

Modified: stable/10/sys/conf/files
==============================================================================
--- stable/10/sys/conf/files	Fri Oct 23 08:53:32 2015	(r289817)
+++ stable/10/sys/conf/files	Fri Oct 23 10:05:43 2015	(r289818)
@@ -3219,7 +3219,6 @@ libkern/asprintf.c		standard
 libkern/bcd.c			standard
 libkern/bsearch.c		standard
 libkern/crc32.c			standard
-libkern/flsll.c                 standard
 libkern/fnmatch.c		standard
 libkern/iconv.c			optional libiconv
 libkern/iconv_converter_if.m	optional libiconv

Modified: stable/10/sys/conf/files.arm
==============================================================================
--- stable/10/sys/conf/files.arm	Fri Oct 23 08:53:32 2015	(r289817)
+++ stable/10/sys/conf/files.arm	Fri Oct 23 10:05:43 2015	(r289818)
@@ -92,6 +92,7 @@ libkern/divdi3.c		standard
 libkern/ffsl.c			standard
 libkern/fls.c			standard
 libkern/flsl.c			standard
+libkern/flsll.c			standard
 libkern/lshrdi3.c		standard
 libkern/moddi3.c		standard
 libkern/qdivrem.c		standard

Modified: stable/10/sys/conf/files.i386
==============================================================================
--- stable/10/sys/conf/files.i386	Fri Oct 23 08:53:32 2015	(r289817)
+++ stable/10/sys/conf/files.i386	Fri Oct 23 10:05:43 2015	(r289818)
@@ -538,8 +538,7 @@ kern/imgact_aout.c		optional compat_aout
 kern/imgact_binmisc.c		optional imagact_binmisc
 kern/imgact_gzip.c		optional gzip
 libkern/divdi3.c		standard
-libkern/ffsl.c			standard
-libkern/flsl.c			standard
+libkern/flsll.c			standard
 libkern/memmove.c		standard
 libkern/memset.c		standard
 libkern/moddi3.c		standard

Modified: stable/10/sys/conf/files.ia64
==============================================================================
--- stable/10/sys/conf/files.ia64	Fri Oct 23 08:53:32 2015	(r289817)
+++ stable/10/sys/conf/files.ia64	Fri Oct 23 10:05:43 2015	(r289818)
@@ -121,6 +121,7 @@ libkern/bcmp.c			standard
 libkern/ffsl.c			standard
 libkern/fls.c			standard
 libkern/flsl.c			standard
+libkern/flsll.c			standard
 libkern/ia64/__divdi3.S		standard
 libkern/ia64/__divsi3.S		standard
 libkern/ia64/__moddi3.S		standard

Modified: stable/10/sys/conf/files.mips
==============================================================================
--- stable/10/sys/conf/files.mips	Fri Oct 23 08:53:32 2015	(r289817)
+++ stable/10/sys/conf/files.mips	Fri Oct 23 10:05:43 2015	(r289818)
@@ -56,6 +56,7 @@ kern/subr_dummy_vdso_tc.c		standard
 libkern/ffsl.c				standard
 libkern/fls.c				standard
 libkern/flsl.c				standard
+libkern/flsll.c				standard
 libkern/memmove.c			standard
 libkern/cmpdi2.c			optional	mips | mipsel
 libkern/ucmpdi2.c			optional	mips | mipsel

Modified: stable/10/sys/conf/files.pc98
==============================================================================
--- stable/10/sys/conf/files.pc98	Fri Oct 23 08:53:32 2015	(r289817)
+++ stable/10/sys/conf/files.pc98	Fri Oct 23 10:05:43 2015	(r289818)
@@ -210,8 +210,7 @@ kern/kern_clocksource.c		standard
 kern/imgact_aout.c		optional compat_aout
 kern/imgact_gzip.c		optional gzip
 libkern/divdi3.c		standard
-libkern/ffsl.c			standard
-libkern/flsl.c			standard
+libkern/flsll.c			standard
 libkern/memmove.c		standard
 libkern/memset.c		standard
 libkern/moddi3.c		standard

Modified: stable/10/sys/conf/files.powerpc
==============================================================================
--- stable/10/sys/conf/files.powerpc	Fri Oct 23 08:53:32 2015	(r289817)
+++ stable/10/sys/conf/files.powerpc	Fri Oct 23 10:05:43 2015	(r289818)
@@ -83,6 +83,7 @@ libkern/ffs.c			standard
 libkern/ffsl.c			standard
 libkern/fls.c			standard
 libkern/flsl.c			standard
+libkern/flsll.c			standard
 libkern/lshrdi3.c		optional	powerpc
 libkern/memmove.c		standard
 libkern/memset.c		standard

Modified: stable/10/sys/conf/files.sparc64
==============================================================================
--- stable/10/sys/conf/files.sparc64	Fri Oct 23 08:53:32 2015	(r289817)
+++ stable/10/sys/conf/files.sparc64	Fri Oct 23 10:05:43 2015	(r289818)
@@ -69,6 +69,7 @@ libkern/ffs.c			standard
 libkern/ffsl.c			standard
 libkern/fls.c			standard
 libkern/flsl.c			standard
+libkern/flsll.c			standard
 libkern/memmove.c		standard
 sparc64/central/central.c	optional	central
 sparc64/ebus/ebus.c		optional	ebus

Modified: stable/10/sys/i386/include/cpufunc.h
==============================================================================
--- stable/10/sys/i386/include/cpufunc.h	Fri Oct 23 08:53:32 2015	(r289817)
+++ stable/10/sys/i386/include/cpufunc.h	Fri Oct 23 10:05:43 2015	(r289818)
@@ -184,6 +184,14 @@ ffs(int mask)
 	 return (mask == 0 ? mask : (int)bsfl((u_int)mask) + 1);
 }
 
+#define	HAVE_INLINE_FFSL
+
+static __inline int
+ffsl(long mask)
+{
+	return (ffs((int)mask));
+}
+
 #define	HAVE_INLINE_FLS
 
 static __inline int
@@ -192,6 +200,14 @@ fls(int mask)
 	return (mask == 0 ? mask : (int)bsrl((u_int)mask) + 1);
 }
 
+#define	HAVE_INLINE_FLSL
+
+static __inline int
+flsl(long mask)
+{
+	return (fls((int)mask));
+}
+
 #endif /* _KERNEL */
 
 static __inline void



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201510231005.t9NA5hwr020494>