MFC r261891: provide fast versions of ffsl and flsl for i386; ffsll and
flsll for amd64
This commit is contained in:
parent
6087342130
commit
bef317767a
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user