[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commits] r18096 - in /fsf/trunk/libc: ./ include/sys/ math/ sysdeps/generic/ sysdeps/i386/fpu/ sysdeps/ieee754/dbl-64/ sysdeps/ieee75...



Author: eglibc
Date: Wed Apr 18 00:01:35 2012
New Revision: 18096

Log:
Import glibc-mainline for 2012-04-18

Added:
    fsf/trunk/libc/math/w_ilogb.c
    fsf/trunk/libc/math/w_ilogbf.c
    fsf/trunk/libc/math/w_ilogbl.c
    fsf/trunk/libc/sysdeps/i386/fpu/e_ilogb.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_ilogbf.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_ilogbl.S
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_ilogb.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_ilogbf.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_ilogbl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/w_ilogb.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/w_ilogbl.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/e_ilogbl.S
Removed:
    fsf/trunk/libc/sysdeps/i386/fpu/s_ilogb.S
    fsf/trunk/libc/sysdeps/i386/fpu/s_ilogbf.S
    fsf/trunk/libc/sysdeps/i386/fpu/s_ilogbl.S
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_ilogb.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/s_ilogbf.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/s_ilogbl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/s_ilogb.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/s_ilogbl.S
Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/NEWS
    fsf/trunk/libc/include/sys/uio.h
    fsf/trunk/libc/math/Makefile
    fsf/trunk/libc/math/libm-test.inc
    fsf/trunk/libc/sysdeps/generic/math_private.h

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Wed Apr 18 00:01:35 2012
@@ -1,3 +1,48 @@
+2012-04-17  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
+
+	* sysdeps/i386/fpu/e_ilogb.S: Remove __ilogb*_finite alias.
+	* sysdeps/i386/fpu/e_ilogbf.S: Likewise.
+	* sysdeps/i386/fpu/e_ilogbl.S: Likewise.
+	* sysdeps/x86_64/fpu/e_ilogbl.S: Likewise.
+	* sysdeps/ieee754/dbl-64/e_ilogb.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_ilogbf.c: Likewise.
+
+2012-04-17  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	[BZ #6794]
+	* math/Makefile: Add e_ilogb and w_ilogb, remove s_logb.
+	* math/libm-test.inc: Add ilogb errno and exception tests.
+	* math/w_ilogb.c: New file: ilogb wrapper.
+	* math/w_ilogbf.c: New file: ilogbf wrapper.
+	* math/w_ilogbl.c: New file: ilogbl wrapper.
+	* sysdeps/generic/math_private.h: Add __ieee754_ilogb[l|f] prototypes.
+	* sysdeps/i386/fpu/s_ilogb.S: Moved to ...
+	* sysdeps/i386/fpu/e_ilogb.S: ... here. Also fixed a FE_DIVBYZERO
+	exception being thrown with 0.0 as argument.
+	* sysdeps/i386/fpu/s_ilogbf.S: Moved to ...
+	* sysdeps/i386/fpu/e_ilogbf.S: ... here. Also fixed a FE_DIVBYZERO
+	exception being thrown with 0.0 as argument.
+	* sysdeps/i386/fpu/s_ilogbl.S: Moved to ...
+	* sysdeps/i386/fpu/e_ilogbl.S: ... here. Also fixed a FE_DIVBYZERO
+	exception being thrown with 0.0 as argument.
+	* sysdeps/x86_64/fpu/s_ilogbl.S: Moved to ...
+	* sysdeps/x86_64/fpu/e_ilogbl.S: ... here. Also fixed a FE_DIVBYZERO
+	exception being thrown with 0.0 as argument.
+	* sysdeps/ieee754/dbl-64/s_ilogb.c: Moved to ...
+	* sysdeps/ieee754/dbl-64/e_ilogb.c: ... here.
+	* sysdeps/ieee754/flt-32/e_ilogbf.c: Moved to ...
+	* sysdeps/ieee754/flt-32/e_ilogbf.c: ... here.
+	* sysdeps/ieee754/ldbl-128ibm/s_ilogbl.c: Moved to ...
+	* sysdeps/ieee754/ldbl-128ibm/e_ilogbl.c: ... here.
+	* sysdeps/ieee754/ldbl-opt/s_ilogb.c: Moved to ...
+	* sysdeps/ieee754/ldbl-opt/w_ilogb.c: ... here.
+	* sysdeps/ieee754/ldbl-opt/w_ilogbl.c: New file: ilogbl wrapper.
+
+2012-04-17  Petr Baudis  <pasky@xxxxxx>
+
+	* include/sys/uio.h: Change __vector to __iovec to avoid clash
+	with altivec.
+
 2012-04-16  Marek Polacek  <polacek@xxxxxxxxxx>
 
 	* elf/pldd-xx.c: Rename static_assert to pldd_assert.

Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Wed Apr 18 00:01:35 2012
@@ -12,16 +12,16 @@
   174, 350, 369, 411, 706, 2074, 2541, 2547, 2548, 2551, 2552, 2553, 2554,
   2562, 2563, 2565, 2566, 2576, 2636, 2678, 3335, 3768, 3866, 3868, 3976,
   3992, 4026, 4108, 4596, 4822, 5077, 5461, 5805, 5993, 6471, 6486, 6578,
-  6649, 6730, 6770, 6884, 6890, 6894, 6895, 6907, 6911, 9739, 9902, 10110,
-  10135, 10140, 10153, 10210, 10254, 10346, 10545, 10716, 11174, 11322,
-  11365, 11451, 11494, 11521, 11959, 12047, 12340, 13058, 13525, 13526,
-  13527, 13528, 13529, 13530, 13531, 13532, 13533, 13547, 13551, 13552,
-  13553, 13555, 13559, 13566, 13583, 13592, 13618, 13637, 13656, 13658,
-  13673, 13691, 13695, 13704, 13705, 13706, 13726, 13738, 13760, 13761,
-  13786, 13792, 13806, 13824, 13840, 13841, 13844, 13846, 13851, 13852,
-  13854, 13871, 13872, 13873, 13879, 13883, 13892, 13895, 13908, 13910,
-  13911, 13912, 13913, 13915, 13916, 13917, 13918, 13919, 13920, 13921,
-  13926, 13928, 13938, 13963, 13967, 13973
+  6649, 6730, 6770, 6794, 6884, 6890, 6894, 6895, 6907, 6911, 9739, 9902,
+  10110, 10135, 10140, 10153, 10210, 10254, 10346, 10545, 10716, 11174,
+  11322, 11365, 11451, 11494, 11521, 11959, 12047, 12340, 13058, 13525,
+  13526, 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13547, 13551,
+  13552, 13553, 13555, 13559, 13566, 13583, 13592, 13618, 13637, 13656,
+  13658, 13673, 13691, 13695, 13704, 13705, 13706, 13726, 13738, 13760,
+  13761, 13786, 13792, 13806, 13824, 13840, 13841, 13844, 13846, 13851,
+  13852, 13854, 13871, 13872, 13873, 13879, 13883, 13892, 13895, 13908,
+  13910, 13911, 13912, 13913, 13915, 13916, 13917, 13918, 13919, 13920,
+  13921, 13926, 13928, 13938, 13963, 13967, 13973
 
 * ISO C11 support:
 

Modified: fsf/trunk/libc/include/sys/uio.h
==============================================================================
--- fsf/trunk/libc/include/sys/uio.h (original)
+++ fsf/trunk/libc/include/sys/uio.h Wed Apr 18 00:01:35 2012
@@ -3,13 +3,13 @@
 
 #ifndef _ISOMAC
 /* Now define the internal interfaces.  */
-extern ssize_t __readv (int __fd, const struct iovec *__vector,
+extern ssize_t __readv (int __fd, const struct iovec *__iovec,
 			int __count);
-extern ssize_t __libc_readv (int __fd, const struct iovec *__vector,
+extern ssize_t __libc_readv (int __fd, const struct iovec *__iovec,
 			     int __count);
-extern ssize_t __writev (int __fd, const struct iovec *__vector,
+extern ssize_t __writev (int __fd, const struct iovec *__iovec,
 			 int __count);
-extern ssize_t __libc_writev (int __fd, const struct iovec *__vector,
+extern ssize_t __libc_writev (int __fd, const struct iovec *__iovec,
 			      int __count);
 #endif
 #endif

Modified: fsf/trunk/libc/math/Makefile
==============================================================================
--- fsf/trunk/libc/math/Makefile (original)
+++ fsf/trunk/libc/math/Makefile Wed Apr 18 00:01:35 2012
@@ -42,14 +42,16 @@
 libm-calls = e_acos e_acosh e_asin e_atan2 e_atanh e_cosh e_exp e_fmod	\
 	     e_hypot e_j0 e_j1 e_jn e_lgamma_r e_log e_log10 e_pow	\
 	     e_rem_pio2 e_remainder e_scalb e_sinh e_sqrt e_gamma_r	\
+	     e_ilogb							\
 	     k_cos k_rem_pio2 k_sin k_tan s_asinh s_atan s_cbrt		\
 	     s_ceil s_cos s_erf s_expm1 s_fabs				\
-	     s_floor s_ilogb s_log1p s_logb				\
+	     s_floor s_log1p s_logb					\
 	     s_nextafter s_nexttoward s_rint s_scalbln			\
 	     s_significand s_sin s_tan s_tanh w_acos w_acosh w_asin	\
 	     w_atan2 w_atanh w_cosh w_drem w_exp w_exp2 w_exp10 w_fmod	\
 	     w_tgamma w_hypot w_j0 w_j1 w_jn w_lgamma w_lgamma_r	\
 	     w_log w_log10 w_pow w_remainder w_scalb w_sinh w_sqrt	\
+	     w_ilogb							\
 	     s_fpclassify s_fmax s_fmin s_fdim s_nan s_trunc		\
 	     s_remquo e_log2 e_exp2 s_round s_nearbyint s_sincos	\
 	     conj cimag creal cabs carg s_cexp s_csinh s_ccosh s_clog	\

Modified: fsf/trunk/libc/math/libm-test.inc
==============================================================================
--- fsf/trunk/libc/math/libm-test.inc (original)
+++ fsf/trunk/libc/math/libm-test.inc Wed Apr 18 00:01:35 2012
@@ -3802,13 +3802,22 @@
   TEST_f_i (ilogb, 1024, 10);
   TEST_f_i (ilogb, -2000, 10);
 
-  /* XXX We have a problem here: the standard does not tell us whether
-     exceptions are allowed/required.  ignore them for now.  */
-
-  TEST_f_i (ilogb, 0.0, FP_ILOGB0, EXCEPTIONS_OK);
-  TEST_f_i (ilogb, nan_value, FP_ILOGBNAN, EXCEPTIONS_OK);
-  TEST_f_i (ilogb, plus_infty, INT_MAX, EXCEPTIONS_OK);
-  TEST_f_i (ilogb, minus_infty, INT_MAX, EXCEPTIONS_OK);
+  /* ilogb (0.0) == FP_ILOGB0 plus invalid exception  */
+  errno = 0;
+  TEST_f_i (ilogb, 0.0, FP_ILOGB0, INVALID_EXCEPTION);
+  check_int ("errno for ilogb(0.0) unchanged", errno, EDOM, 0, 0, 0);
+  /* ilogb (NaN) == FP_ILOGBNAN plus invalid exception  */
+  errno = 0;
+  TEST_f_i (ilogb, nan_value, FP_ILOGBNAN, INVALID_EXCEPTION);
+  check_int ("errno for ilogb(NaN) unchanged", errno, EDOM, 0, 0, 0);
+  /* ilogb (inf) == INT_MAX plus invalid exception  */
+  errno = 0;
+  TEST_f_i (ilogb, plus_infty, INT_MAX, INVALID_EXCEPTION);
+  check_int ("errno for ilogb(Inf) unchanged", errno, EDOM, 0, 0, 0);
+  /* ilogb (-inf) == INT_MAX plus invalid exception  */
+  errno = 0;
+  TEST_f_i (ilogb, minus_infty, INT_MAX, INVALID_EXCEPTION);
+  check_int ("errno for ilogb(-Inf) unchanged", errno, EDOM, 0, 0, 0);
 
   END (ilogb);
 }

Added: fsf/trunk/libc/math/w_ilogb.c
==============================================================================
--- fsf/trunk/libc/math/w_ilogb.c (added)
+++ fsf/trunk/libc/math/w_ilogb.c Wed Apr 18 00:01:35 2012
@@ -1,0 +1,42 @@
+/* Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Adhemerval Zanella <azanella@xxxxxxxxxxxxxxxxxx>, 2011.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <errno.h>
+#include <math_private.h>
+
+/* wrapper ilogb */
+int
+__ilogb (double x)
+{
+  int r = __ieee754_ilogb (x);
+  if (__builtin_expect (r == FP_ILOGB0, 0)
+      || __builtin_expect (r == FP_ILOGBNAN, 0)
+      || __builtin_expect (r == INT_MAX, 0))
+    {
+      __set_errno (EDOM);
+      feraiseexcept (FE_INVALID);
+    }
+  return r;
+}
+
+weak_alias (__ilogb, ilogb)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__ilogb, __ilogbl)
+weak_alias (__ilogb, ilogbl)
+#endif

Added: fsf/trunk/libc/math/w_ilogbf.c
==============================================================================
--- fsf/trunk/libc/math/w_ilogbf.c (added)
+++ fsf/trunk/libc/math/w_ilogbf.c Wed Apr 18 00:01:35 2012
@@ -1,0 +1,38 @@
+/* Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Adhemerval Zanella <azanella@xxxxxxxxxxxxxxxxxx>, 2011.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <errno.h>
+#include <math_private.h>
+
+/* wrapper ilogbf */
+int
+__ilogbf (float x)
+{
+  int r = __ieee754_ilogbf (x);
+  if (__builtin_expect (r == FP_ILOGB0, 0)
+      || __builtin_expect (r == FP_ILOGBNAN, 0)
+      || __builtin_expect (r == INT_MAX, 0))
+    {
+      __set_errno (EDOM);
+      feraiseexcept (FE_INVALID);
+    }
+  return r;
+}
+
+weak_alias (__ilogbf, ilogbf)

Added: fsf/trunk/libc/math/w_ilogbl.c
==============================================================================
--- fsf/trunk/libc/math/w_ilogbl.c (added)
+++ fsf/trunk/libc/math/w_ilogbl.c Wed Apr 18 00:01:35 2012
@@ -1,0 +1,37 @@
+/* Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Adhemerval Zanella <azanella@xxxxxxxxxxxxxxxxxx>, 2011.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <errno.h>
+#include <math_private.h>
+
+/* wrapper ilogbl */
+int
+__ilogbl (long double x)
+{
+  int r = __ieee754_ilogbl (x);
+  if (__builtin_expect (r == FP_ILOGB0, 0)
+      || __builtin_expect (r == FP_ILOGBNAN, 0)
+      || __builtin_expect (r == INT_MAX, 0))
+    {
+      __set_errno (EDOM);
+      feraiseexcept (FE_INVALID);
+    }
+  return r;
+}
+weak_alias (__ilogbl, ilogbl)

Modified: fsf/trunk/libc/sysdeps/generic/math_private.h
==============================================================================
--- fsf/trunk/libc/sysdeps/generic/math_private.h (original)
+++ fsf/trunk/libc/sysdeps/generic/math_private.h Wed Apr 18 00:01:35 2012
@@ -213,6 +213,7 @@
 extern double __ieee754_remainder (double,double);
 extern int32_t __ieee754_rem_pio2 (double,double*);
 extern double __ieee754_scalb (double,double);
+extern int __ieee754_ilogb (double);
 
 /* fdlibm kernel function */
 extern double __kernel_standard (double,double,int);
@@ -260,6 +261,7 @@
 extern float __ieee754_remainderf (float,float);
 extern int32_t __ieee754_rem_pio2f (float,float*);
 extern float __ieee754_scalbf (float,float);
+extern int __ieee754_ilogbf (float);
 
 
 /* float versions of fdlibm kernel functions */
@@ -305,6 +307,7 @@
 extern long double __ieee754_remainderl (long double,long double);
 extern int   __ieee754_rem_pio2l (long double,long double*);
 extern long double __ieee754_scalbl (long double,long double);
+extern int   __ieee754_ilogbl (long double);
 
 /* long double versions of fdlibm kernel functions */
 extern long double __kernel_sinl (long double,long double,int);

Added: fsf/trunk/libc/sysdeps/i386/fpu/e_ilogb.S
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/fpu/e_ilogb.S (added)
+++ fsf/trunk/libc/sysdeps/i386/fpu/e_ilogb.S Wed Apr 18 00:01:35 2012
@@ -1,0 +1,42 @@
+/*
+ * Written by J.T. Conklin <jtc@xxxxxxxxxx>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+RCSID("$NetBSD: s_ilogb.S,v 1.5 1995/10/12 15:53:09 jtc Exp $")
+
+ENTRY(__ieee754_ilogb)
+	fldl	4(%esp)
+/* I added the following ugly construct because ilogb(+-Inf) is
+   required to return INT_MAX in ISO C99.
+   -- jakub@xxxxxxxxxxx  */
+	fxam			/* Is NaN or +-Inf?  */
+	fstsw   %ax
+	movb    $0x45, %dh
+	andb    %ah, %dh
+	cmpb    $0x05, %dh
+	je      1f		/* Is +-Inf, jump.  */
+	cmpb    $0x40, %dh
+	je      2f		/* Is +-0, jump.  */
+
+	fxtract
+	pushl	%eax
+	cfi_adjust_cfa_offset (4)
+	fstp	%st
+
+	fistpl	(%esp)
+	fwait
+	popl	%eax
+	cfi_adjust_cfa_offset (-4)
+
+	ret
+
+1:	fstp	%st
+	movl	$0x7fffffff, %eax
+	ret
+2:	fstp	%st
+	movl	$0x80000000, %eax	/* FP_ILOGB0  */
+	ret
+END (__ieee754_ilogb)

Added: fsf/trunk/libc/sysdeps/i386/fpu/e_ilogbf.S
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/fpu/e_ilogbf.S (added)
+++ fsf/trunk/libc/sysdeps/i386/fpu/e_ilogbf.S Wed Apr 18 00:01:35 2012
@@ -1,0 +1,42 @@
+/*
+ * Written by J.T. Conklin <jtc@xxxxxxxxxx>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+RCSID("$NetBSD: s_ilogbf.S,v 1.4 1995/10/22 20:32:43 pk Exp $")
+
+ENTRY(__ieee754_ilogbf)
+	flds	4(%esp)
+/* I added the following ugly construct because ilogb(+-Inf) is
+   required to return INT_MAX in ISO C99.
+   -- jakub@xxxxxxxxxxx  */
+	fxam			/* Is NaN or +-Inf?  */
+	fstsw   %ax
+	movb    $0x45, %dh
+	andb    %ah, %dh
+	cmpb    $0x05, %dh
+	je      1f		/* Is +-Inf, jump.  */
+	cmpb    $0x40, %dh
+	je      2f		/* Is +-0, jump.  */
+
+	fxtract
+	pushl	%eax
+	cfi_adjust_cfa_offset (4)
+	fstp	%st
+
+	fistpl	(%esp)
+	fwait
+	popl	%eax
+	cfi_adjust_cfa_offset (-4)
+
+	ret
+
+1:	fstp	%st
+	movl	$0x7fffffff, %eax
+	ret
+2:	fstp	%st
+	movl	$0x80000000, %eax	/* FP_ILOGB0  */
+	ret
+END (__ieee754_ilogbf)

Added: fsf/trunk/libc/sysdeps/i386/fpu/e_ilogbl.S
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/fpu/e_ilogbl.S (added)
+++ fsf/trunk/libc/sysdeps/i386/fpu/e_ilogbl.S Wed Apr 18 00:01:35 2012
@@ -1,0 +1,43 @@
+/*
+ * Written by J.T. Conklin <jtc@xxxxxxxxxx>.
+ * Changes for long double by Ulrich Drepper <drepper@xxxxxxxxxx>
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+RCSID("$NetBSD: $")
+
+ENTRY(__ieee754_ilogbl)
+	fldt	4(%esp)
+/* I added the following ugly construct because ilogb(+-Inf) is
+   required to return INT_MAX in ISO C99.
+   -- jakub@xxxxxxxxxxx  */
+	fxam			/* Is NaN or +-Inf?  */
+	fstsw   %ax
+	movb    $0x45, %dh
+	andb    %ah, %dh
+	cmpb    $0x05, %dh
+	je      1f		/* Is +-Inf, jump.  */
+	cmpb    $0x40, %dh
+	je      2f		/* Is +-0, jump.  */
+
+	fxtract
+	pushl	%eax
+	cfi_adjust_cfa_offset (4)
+	fstp	%st
+
+	fistpl	(%esp)
+	fwait
+	popl	%eax
+	cfi_adjust_cfa_offset (-4)
+
+	ret
+
+1:	fstp	%st
+	movl	$0x7fffffff, %eax
+	ret
+2:	fstp	%st
+	movl	$0x80000000, %eax	/* FP_ILOGB0  */
+	ret
+END (__ieee754_ilogbl)

Removed: fsf/trunk/libc/sysdeps/i386/fpu/s_ilogb.S
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/fpu/s_ilogb.S (original)
+++ fsf/trunk/libc/sysdeps/i386/fpu/s_ilogb.S (removed)
@@ -1,38 +1,0 @@
-/*
- * Written by J.T. Conklin <jtc@xxxxxxxxxx>.
- * Public domain.
- */
-
-#include <machine/asm.h>
-
-RCSID("$NetBSD: s_ilogb.S,v 1.5 1995/10/12 15:53:09 jtc Exp $")
-
-ENTRY(__ilogb)
-	fldl	4(%esp)
-/* I added the following ugly construct because ilogb(+-Inf) is
-   required to return INT_MAX in ISO C99.
-   -- jakub@xxxxxxxxxxx  */
-	fxam			/* Is NaN or +-Inf?  */
-	fstsw   %ax
-	movb    $0x45, %dh
-	andb    %ah, %dh
-	cmpb    $0x05, %dh
-	je      1f		/* Is +-Inf, jump.  */
-
-	fxtract
-	pushl	%eax
-	cfi_adjust_cfa_offset (4)
-	fstp	%st
-
-	fistpl	(%esp)
-	fwait
-	popl	%eax
-	cfi_adjust_cfa_offset (-4)
-
-	ret
-
-1:	fstp	%st
-	movl	$0x7fffffff, %eax
-	ret
-END (__ilogb)
-weak_alias (__ilogb, ilogb)

Removed: fsf/trunk/libc/sysdeps/i386/fpu/s_ilogbf.S
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/fpu/s_ilogbf.S (original)
+++ fsf/trunk/libc/sysdeps/i386/fpu/s_ilogbf.S (removed)
@@ -1,38 +1,0 @@
-/*
- * Written by J.T. Conklin <jtc@xxxxxxxxxx>.
- * Public domain.
- */
-
-#include <machine/asm.h>
-
-RCSID("$NetBSD: s_ilogbf.S,v 1.4 1995/10/22 20:32:43 pk Exp $")
-
-ENTRY(__ilogbf)
-	flds	4(%esp)
-/* I added the following ugly construct because ilogb(+-Inf) is
-   required to return INT_MAX in ISO C99.
-   -- jakub@xxxxxxxxxxx  */
-	fxam			/* Is NaN or +-Inf?  */
-	fstsw   %ax
-	movb    $0x45, %dh
-	andb    %ah, %dh
-	cmpb    $0x05, %dh
-	je      1f		/* Is +-Inf, jump.  */
-
-	fxtract
-	pushl	%eax
-	cfi_adjust_cfa_offset (4)
-	fstp	%st
-
-	fistpl	(%esp)
-	fwait
-	popl	%eax
-	cfi_adjust_cfa_offset (-4)
-
-	ret
-
-1:	fstp	%st
-	movl	$0x7fffffff, %eax
-	ret
-END (__ilogbf)
-weak_alias (__ilogbf, ilogbf)

Removed: fsf/trunk/libc/sysdeps/i386/fpu/s_ilogbl.S
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/fpu/s_ilogbl.S (original)
+++ fsf/trunk/libc/sysdeps/i386/fpu/s_ilogbl.S (removed)
@@ -1,39 +1,0 @@
-/*
- * Written by J.T. Conklin <jtc@xxxxxxxxxx>.
- * Changes for long double by Ulrich Drepper <drepper@xxxxxxxxxx>
- * Public domain.
- */
-
-#include <machine/asm.h>
-
-RCSID("$NetBSD: $")
-
-ENTRY(__ilogbl)
-	fldt	4(%esp)
-/* I added the following ugly construct because ilogb(+-Inf) is
-   required to return INT_MAX in ISO C99.
-   -- jakub@xxxxxxxxxxx  */
-	fxam			/* Is NaN or +-Inf?  */
-	fstsw   %ax
-	movb    $0x45, %dh
-	andb    %ah, %dh
-	cmpb    $0x05, %dh
-	je      1f		/* Is +-Inf, jump.  */
-
-	fxtract
-	pushl	%eax
-	cfi_adjust_cfa_offset (4)
-	fstp	%st
-
-	fistpl	(%esp)
-	fwait
-	popl	%eax
-	cfi_adjust_cfa_offset (-4)
-
-	ret
-
-1:	fstp	%st
-	movl	$0x7fffffff, %eax
-	ret
-END (__ilogbl)
-weak_alias (__ilogbl, ilogbl)

Added: fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_ilogb.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_ilogb.c (added)
+++ fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_ilogb.c Wed Apr 18 00:01:35 2012
@@ -1,0 +1,54 @@
+/* @(#)s_ilogb.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_ilogb.c,v 1.9 1995/05/10 20:47:28 jtc Exp $";
+#endif
+
+/* ilogb(double x)
+ * return the binary exponent of non-zero x
+ * ilogb(0) = FP_ILOGB0
+ * ilogb(NaN) = FP_ILOGBNAN (no signal is raised)
+ * ilogb(+-Inf) = INT_MAX (no signal is raised)
+ */
+
+#include <limits.h>
+#include <math.h>
+#include <math_private.h>
+
+int __ieee754_ilogb(double x)
+{
+	int32_t hx,lx,ix;
+
+	GET_HIGH_WORD(hx,x);
+	hx &= 0x7fffffff;
+	if(hx<0x00100000) {
+	    GET_LOW_WORD(lx,x);
+	    if((hx|lx)==0)
+		return FP_ILOGB0;	/* ilogb(0) = FP_ILOGB0 */
+	    else			/* subnormal x */
+		if(hx==0) {
+		    for (ix = -1043; lx>0; lx<<=1) ix -=1;
+		} else {
+		    for (ix = -1022,hx<<=11; hx>0; hx<<=1) ix -=1;
+		}
+	    return ix;
+	}
+	else if (hx<0x7ff00000) return (hx>>20)-1023;
+	else if (FP_ILOGBNAN != INT_MAX) {
+	    /* ISO C99 requires ilogb(+-Inf) == INT_MAX.  */
+	    GET_LOW_WORD(lx,x);
+	    if(((hx^0x7ff00000)|lx) == 0)
+		return INT_MAX;
+	}
+	return FP_ILOGBNAN;
+}

Removed: fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_ilogb.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_ilogb.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_ilogb.c (removed)
@@ -1,59 +1,0 @@
-/* @(#)s_ilogb.c 5.1 93/09/24 */
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: s_ilogb.c,v 1.9 1995/05/10 20:47:28 jtc Exp $";
-#endif
-
-/* ilogb(double x)
- * return the binary exponent of non-zero x
- * ilogb(0) = FP_ILOGB0
- * ilogb(NaN) = FP_ILOGBNAN (no signal is raised)
- * ilogb(+-Inf) = INT_MAX (no signal is raised)
- */
-
-#include <limits.h>
-#include <math.h>
-#include <math_private.h>
-
-int __ilogb(double x)
-{
-	int32_t hx,lx,ix;
-
-	GET_HIGH_WORD(hx,x);
-	hx &= 0x7fffffff;
-	if(hx<0x00100000) {
-	    GET_LOW_WORD(lx,x);
-	    if((hx|lx)==0)
-		return FP_ILOGB0;	/* ilogb(0) = FP_ILOGB0 */
-	    else			/* subnormal x */
-		if(hx==0) {
-		    for (ix = -1043; lx>0; lx<<=1) ix -=1;
-		} else {
-		    for (ix = -1022,hx<<=11; hx>0; hx<<=1) ix -=1;
-		}
-	    return ix;
-	}
-	else if (hx<0x7ff00000) return (hx>>20)-1023;
-	else if (FP_ILOGBNAN != INT_MAX) {
-	    /* ISO C99 requires ilogb(+-Inf) == INT_MAX.  */
-	    GET_LOW_WORD(lx,x);
-	    if(((hx^0x7ff00000)|lx) == 0)
-		return INT_MAX;
-	}
-	return FP_ILOGBNAN;
-}
-weak_alias (__ilogb, ilogb)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__ilogb, __ilogbl)
-weak_alias (__ilogb, ilogbl)
-#endif

Added: fsf/trunk/libc/sysdeps/ieee754/flt-32/e_ilogbf.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/flt-32/e_ilogbf.c (added)
+++ fsf/trunk/libc/sysdeps/ieee754/flt-32/e_ilogbf.c Wed Apr 18 00:01:35 2012
@@ -1,0 +1,44 @@
+/* s_ilogbf.c -- float version of s_ilogb.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@xxxxxxxxxxx
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_ilogbf.c,v 1.4 1995/05/10 20:47:31 jtc Exp $";
+#endif
+
+#include <limits.h>
+#include <math.h>
+#include <math_private.h>
+
+int __ieee754_ilogbf(float x)
+{
+	int32_t hx,ix;
+
+	GET_FLOAT_WORD(hx,x);
+	hx &= 0x7fffffff;
+	if(hx<0x00800000) {
+	    if(hx==0)
+		return FP_ILOGB0;	/* ilogb(0) = FP_ILOGB0 */
+	    else			/* subnormal x */
+	        for (ix = -126,hx<<=8; hx>0; hx<<=1) ix -=1;
+	    return ix;
+	}
+	else if (hx<0x7f800000) return (hx>>23)-127;
+	else if (FP_ILOGBNAN != INT_MAX) {
+	    /* ISO C99 requires ilogbf(+-Inf) == INT_MAX.  */
+	    if (hx==0x7f800000)
+		return INT_MAX;
+	}
+	return FP_ILOGBNAN;
+}

Removed: fsf/trunk/libc/sysdeps/ieee754/flt-32/s_ilogbf.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/flt-32/s_ilogbf.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/flt-32/s_ilogbf.c (removed)
@@ -1,45 +1,0 @@
-/* s_ilogbf.c -- float version of s_ilogb.c.
- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@xxxxxxxxxxx
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: s_ilogbf.c,v 1.4 1995/05/10 20:47:31 jtc Exp $";
-#endif
-
-#include <limits.h>
-#include <math.h>
-#include <math_private.h>
-
-int __ilogbf(float x)
-{
-	int32_t hx,ix;
-
-	GET_FLOAT_WORD(hx,x);
-	hx &= 0x7fffffff;
-	if(hx<0x00800000) {
-	    if(hx==0)
-		return FP_ILOGB0;	/* ilogb(0) = FP_ILOGB0 */
-	    else			/* subnormal x */
-	        for (ix = -126,hx<<=8; hx>0; hx<<=1) ix -=1;
-	    return ix;
-	}
-	else if (hx<0x7f800000) return (hx>>23)-127;
-	else if (FP_ILOGBNAN != INT_MAX) {
-	    /* ISO C99 requires ilogbf(+-Inf) == INT_MAX.  */
-	    if (hx==0x7f800000)
-		return INT_MAX;
-	}
-	return FP_ILOGBNAN;
-}
-weak_alias (__ilogbf, ilogbf)

Added: fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_ilogbl.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_ilogbl.c (added)
+++ fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_ilogbl.c Wed Apr 18 00:01:35 2012
@@ -1,0 +1,57 @@
+/* s_ilogbl.c -- long double version of s_ilogb.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@xxxxxxxxxxxxxxx
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* ilogbl(long double x)
+ * return the binary exponent of non-zero x
+ * ilogbl(0) = FP_ILOGB0
+ * ilogbl(NaN) = FP_ILOGBNAN (no signal is raised)
+ * ilogbl(+-Inf) = INT_MAX (no signal is raised)
+ */
+
+#include <limits.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+int __ieee754_ilogbl(long double x)
+{
+	int64_t hx,lx;
+	int ix;
+
+	GET_LDOUBLE_WORDS64(hx,lx,x);
+	hx &= 0x7fffffffffffffffLL;
+	if(hx <= 0x0010000000000000LL) {
+	    if((hx|(lx&0x7fffffffffffffffLL))==0)
+		return FP_ILOGB0;	/* ilogbl(0) = FP_ILOGB0 */
+	    else			/* subnormal x */
+		if(hx==0) {
+		    for (ix = -1043; lx>0; lx<<=1) ix -=1;
+		} else {
+		    for (ix = -1022, hx<<=11; hx>0; hx<<=1) ix -=1;
+		}
+	    return ix;
+	}
+	else if (hx<0x7ff0000000000000LL) return (hx>>52)-0x3ff;
+	else if (FP_ILOGBNAN != INT_MAX) {
+	    /* ISO C99 requires ilogbl(+-Inf) == INT_MAX.  */
+	    if (((hx^0x7ff0000000000000LL)|lx) == 0)
+		return INT_MAX;
+	}
+	return FP_ILOGBNAN;
+}

Removed: fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/s_ilogbl.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/s_ilogbl.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/s_ilogbl.c (removed)
@@ -1,58 +1,0 @@
-/* s_ilogbl.c -- long double version of s_ilogb.c.
- * Conversion to IEEE quad long double by Jakub Jelinek, jj@xxxxxxxxxxxxxxx
- */
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: $";
-#endif
-
-/* ilogbl(long double x)
- * return the binary exponent of non-zero x
- * ilogbl(0) = FP_ILOGB0
- * ilogbl(NaN) = FP_ILOGBNAN (no signal is raised)
- * ilogbl(+-Inf) = INT_MAX (no signal is raised)
- */
-
-#include <limits.h>
-#include <math.h>
-#include <math_private.h>
-#include <math_ldbl_opt.h>
-
-int __ilogbl(long double x)
-{
-	int64_t hx,lx;
-	int ix;
-
-	GET_LDOUBLE_WORDS64(hx,lx,x);
-	hx &= 0x7fffffffffffffffLL;
-	if(hx <= 0x0010000000000000LL) {
-	    if((hx|(lx&0x7fffffffffffffffLL))==0)
-		return FP_ILOGB0;	/* ilogbl(0) = FP_ILOGB0 */
-	    else			/* subnormal x */
-		if(hx==0) {
-		    for (ix = -1043; lx>0; lx<<=1) ix -=1;
-		} else {
-		    for (ix = -1022, hx<<=11; hx>0; hx<<=1) ix -=1;
-		}
-	    return ix;
-	}
-	else if (hx<0x7ff0000000000000LL) return (hx>>52)-0x3ff;
-	else if (FP_ILOGBNAN != INT_MAX) {
-	    /* ISO C99 requires ilogbl(+-Inf) == INT_MAX.  */
-	    if (((hx^0x7ff0000000000000LL)|lx) == 0)
-		return INT_MAX;
-	}
-	return FP_ILOGBNAN;
-}
-long_double_symbol (libm, __ilogbl, ilogbl);

Removed: fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/s_ilogb.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/s_ilogb.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/s_ilogb.c (removed)
@@ -1,5 +1,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_ilogb.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
-compat_symbol (libm, __ilogb, ilogbl, GLIBC_2_0);
-#endif

Added: fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/w_ilogb.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/w_ilogb.c (added)
+++ fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/w_ilogb.c Wed Apr 18 00:01:35 2012
@@ -1,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_ilogb.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __ilogb, ilogbl, GLIBC_2_0);
+#endif

Added: fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/w_ilogbl.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/w_ilogbl.c (added)
+++ fsf/trunk/libc/sysdeps/ieee754/ldbl-opt/w_ilogbl.c Wed Apr 18 00:01:35 2012
@@ -1,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_ilogbl.c>
+long_double_symbol (libm, __ilogbl, ilogbl);

Added: fsf/trunk/libc/sysdeps/x86_64/fpu/e_ilogbl.S
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/fpu/e_ilogbl.S (added)
+++ fsf/trunk/libc/sysdeps/x86_64/fpu/e_ilogbl.S Wed Apr 18 00:01:35 2012
@@ -1,0 +1,39 @@
+/*
+ * Written by J.T. Conklin <jtc@xxxxxxxxxx>.
+ * Changes for long double by Ulrich Drepper <drepper@xxxxxxxxxx>
+ * Adapted for x86-64 by Andreas Jaeger <aj@xxxxxxx>.
+ * Public domain.
+ */
+
+#include <machine/asm.h>
+
+ENTRY(__ieee754_ilogbl)
+	fldt	8(%rsp)
+/* I added the following ugly construct because ilogb(+-Inf) is
+   required to return INT_MAX in ISO C99.
+   -- jakub@xxxxxxxxxxx  */
+	fxam			/* Is NaN or +-Inf?  */
+	fstsw   %ax
+	movb    $0x45, %dh
+	andb    %ah, %dh
+	cmpb    $0x05, %dh
+	je      1f		/* Is +-Inf, jump.  */
+	cmpb    $0x40, %dh
+	je      2f		/* Is +-Inf, jump.  */
+
+	fxtract
+	fstp	%st
+
+	fistpl	-4(%rsp)
+	fwait
+	movl	-4(%rsp),%eax
+
+	ret
+
+1:	fstp	%st
+	movl	$0x7fffffff, %eax
+	ret
+2:	fstp	%st
+	movl	$0x80000000, %eax	/* FP_ILOGB0  */
+	ret
+END (__ieee754_ilogbl)

Removed: fsf/trunk/libc/sysdeps/x86_64/fpu/s_ilogbl.S
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/fpu/s_ilogbl.S (original)
+++ fsf/trunk/libc/sysdeps/x86_64/fpu/s_ilogbl.S (removed)
@@ -1,35 +1,0 @@
-/*
- * Written by J.T. Conklin <jtc@xxxxxxxxxx>.
- * Changes for long double by Ulrich Drepper <drepper@xxxxxxxxxx>
- * Adapted for x86-64 by Andreas Jaeger <aj@xxxxxxx>.
- * Public domain.
- */
-
-#include <machine/asm.h>
-
-ENTRY(__ilogbl)
-	fldt	8(%rsp)
-/* I added the following ugly construct because ilogb(+-Inf) is
-   required to return INT_MAX in ISO C99.
-   -- jakub@xxxxxxxxxxx  */
-	fxam			/* Is NaN or +-Inf?  */
-	fstsw   %ax
-	movb    $0x45, %dh
-	andb    %ah, %dh
-	cmpb    $0x05, %dh
-	je      1f		/* Is +-Inf, jump.  */
-
-	fxtract
-	fstp	%st
-
-	fistpl	-4(%rsp)
-	fwait
-	movl	-4(%rsp),%eax
-
-	ret
-
-1:	fstp	%st
-	movl	$0x7fffffff, %eax
-	ret
-END (__ilogbl)
-weak_alias (__ilogbl, ilogbl)

_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits