From 7b78baae9b0beeee74aa508c150c35b4f9f35982 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Thu, 5 Jul 2001 17:29:17 +0000 Subject: [PATCH] merge from gcc --- libiberty/ChangeLog | 6 ++++++ libiberty/Makefile.in | 2 +- libiberty/configure | 3 ++- libiberty/configure.in | 3 ++- libiberty/ffs.c | 29 +++++++++++++++++++++++++++++ 5 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 libiberty/ffs.c diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 43ff94eb803..c5c39101834 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,9 @@ +2001-07-05 Mark Klein + + * Makefile.in: Add ffs.c dependency. + * configure.in: Add ffs.c. + * ffs.c: New file. + 2001-06-18 Richard Henderson * concat.c: Include . diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in index 92b90fa748f..66aa510137c 100644 --- a/libiberty/Makefile.in +++ b/libiberty/Makefile.in @@ -122,7 +122,7 @@ dvi: dvi-subdir # configure.in. CFILES = asprintf.c alloca.c argv.c atexit.c basename.c bcmp.c bcopy.c \ bzero.c calloc.c choose-temp.c clock.c concat.c cplus-dem.c \ - cp-demangle.c dyn-string.c fdmatch.c fnmatch.c getcwd.c \ + cp-demangle.c dyn-string.c fdmatch.c fnmatch.c ffs.c getcwd.c \ getpwd.c getopt.c getopt1.c getpagesize.c getruntime.c \ floatformat.c hashtab.c hex.c index.c insque.c lbasename.c \ md5.c make-temp-file.c memchr.c \ diff --git a/libiberty/configure b/libiberty/configure index 6b0aa209cab..7025397fdfe 100755 --- a/libiberty/configure +++ b/libiberty/configure @@ -1329,6 +1329,7 @@ funcs="$funcs bsearch" funcs="$funcs bzero" funcs="$funcs calloc" funcs="$funcs clock" +funcs="$funcs ffs" funcs="$funcs getcwd" funcs="$funcs getpagesize" funcs="$funcs index" @@ -1700,7 +1701,7 @@ else fi done - for ac_func in sysconf times sbrk gettimeofday + for ac_func in sysconf times sbrk gettimeofday ffs do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo "configure:1707: checking for $ac_func" >&5 diff --git a/libiberty/configure.in b/libiberty/configure.in index 6adf48e2c6b..65f94027b1d 100644 --- a/libiberty/configure.in +++ b/libiberty/configure.in @@ -87,6 +87,7 @@ funcs="$funcs bsearch" funcs="$funcs bzero" funcs="$funcs calloc" funcs="$funcs clock" +funcs="$funcs ffs" funcs="$funcs getcwd" funcs="$funcs getpagesize" funcs="$funcs index" @@ -134,7 +135,7 @@ if test "x" = "y"; then AC_CHECK_FUNCS(strcasecmp setenv strchr strdup strncasecmp strrchr strstr) AC_CHECK_FUNCS(strtod strtol strtoul tmpnam vasprintf vfprintf vprintf) AC_CHECK_FUNCS(vsprintf waitpid getrusage on_exit psignal strerror strsignal) - AC_CHECK_FUNCS(sysconf times sbrk gettimeofday) + AC_CHECK_FUNCS(sysconf times sbrk gettimeofday ffs) AC_DEFINE(HAVE_SYS_ERRLIST, 1, [Define if you have the sys_errlist variable.]) AC_DEFINE(HAVE_SYS_NERR, 1, [Define if you have the sys_nerr variable.]) AC_DEFINE(HAVE_SYS_SIGLIST, 1, [Define if you have the sys_siglist variable.]) diff --git a/libiberty/ffs.c b/libiberty/ffs.c new file mode 100644 index 00000000000..8ffb03e7c5e --- /dev/null +++ b/libiberty/ffs.c @@ -0,0 +1,29 @@ +/* ffs -- Find the first bit set in the parameter + +NAME + ffs -- Find the first bit set in the parameter + +SYNOPSIS + int ffs (int valu) + +DESCRIPTION + Find the first bit set in the parameter. Bits are numbered from + right to left, starting with bit 1. + +*/ + +int +ffs (valu) + register int valu; +{ + register int bit; + + if (valu == 0) + return 0; + + for (bit = 1; !(valu & 1); bit++) + valu >>= 1; + + return bit; +} + -- 2.30.2