summary refs log tree commit diff
path: root/sysdeps/i386/i686
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-06-15 18:12:05 +0000
committerUlrich Drepper <drepper@redhat.com>1998-06-15 18:12:05 +0000
commitfed8f7f7aeb06dfae0dfbfb085c6857cc457c254 (patch)
tree292caa308359deaa5fed820469d0b37805126e68 /sysdeps/i386/i686
parente5bafd559a4c155fa9d1b1a669c67d99ea773565 (diff)
downloadglibc-fed8f7f7aeb06dfae0dfbfb085c6857cc457c254.tar.gz
glibc-fed8f7f7aeb06dfae0dfbfb085c6857cc457c254.tar.xz
glibc-fed8f7f7aeb06dfae0dfbfb085c6857cc457c254.zip
Update.
1998-06-15 18:07  Ulrich Drepper  <drepper@cygnus.com>

	* iconvdata/ksc5601.h: Clean up a bit.

1998-06-15 14:35  Ulrich Drepper  <drepper@cygnus.com>

	* sunrpc/svc_tcp.c (readtcp): Also listen to all the other connections
	and process incoming data.
	* sunrpc/xdr_rec.c (set_input_fragment): Only recognize zero length
	fragments as invalid.
	Patches by Thorsten Kukuk <kukuk@weber.uni-paderborn.de>.

1998-06-13  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	Removal of duplicates like "the the".
	* manual/time.texi (TZ Variable): Likewise.
	* manual/users.texi (Manipulating the Database): Likewise.
	* manual/sysinfo.texi (Filesystem handling): Likewise.
	* manual/signal.texi (Signaling Yourself): Likewise.
	* manual/message.texi (Message Translation): Likewise.
	(Common Usage): Likewise.
	* manual/llio.texi: Likewise.
	* manual/arith.texi (Old-style number conversion): Likewise.
	* manual/argp.texi (Argp): Likewise.
	(Argp Parsers): Likewise.
	(Argp Help Filtering): Likewise.

	* hesiod/README.hesiod: Correct typo.

	* manual/llio.texi: Correct typos.
	* manual/sysinfo.texi: Likewise.

1998-06-13  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* rt/aio.h: Rename __op to __operation for g++.

1998-06-13 20:17 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* iconvdata/gen-8bit-gap.sh: Use awk not perl.  Clean up sed
	script.
	* iconvdata/gen-8bit-gap-1.sh: Likewise.
	* iconvdata/gen-8bit.sh: Clean up sed script.

	* iconvdata/Makefile: Remove all PERL conditionals; build all
	the modules all the time.  Export AWK.
	(gen-8bit-gap): Delete setting of PERL.
	(gen-8bit-gap-1): Likewise.
	(perl-generated-headers): Renamed awk-generated-headers.

	* iconvdata/gap.pl: Removed.
	* iconvdata/gaptab.pl: Removed.
	* iconvdata/gap.awk: New file.
	* iconvdata/gaptab.awk: New file.

1998-06-15  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/Dist: Add errno-loc.c.

	* sysdeps/unix/sysv/linux/alpha/glob.c: Add prototypes for the
	__new_* functions.

1998-06-14 14:21 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* stdio-common/bug12.c: New test for fread()/fseek().
	* stdio-common/Makefile (tests): Add bug12.
Diffstat (limited to 'sysdeps/i386/i686')
-rw-r--r--sysdeps/i386/i686/ffs.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/sysdeps/i386/i686/ffs.c b/sysdeps/i386/i686/ffs.c
new file mode 100644
index 0000000000..c858b31a78
--- /dev/null
+++ b/sysdeps/i386/i686/ffs.c
@@ -0,0 +1,45 @@
+/* ffs -- find first set bit in a word, counted from least significant end.
+   For Intel 80x86, x>=6.
+   This file is part of the GNU C Library.
+   Copyright (C) 1991, 92, 93, 94, 97, 98 Free Software Foundation, Inc.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <string.h>
+
+#undef	ffs
+
+#ifdef	__GNUC__
+
+int
+__ffs (x)
+     int x;
+{
+  int cnt;
+  int tmp;
+
+  asm ("bsfl %2,%0\n"		/* Count low bits in X and store in %1.  */
+       "cmovel %1,%0\n"		/* If number was zero, use -1 as result.  */
+       : "=&r" (cnt), "=r" (tmp) : "rm" (x), "1" (-1));
+
+  return cnt + 1;
+}
+weak_alias (__ffs, ffs)
+
+#else
+#include <sysdeps/generic/ffs.c>
+#endif