This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.10-310-gdeb13bc


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  deb13bcda9a63ea65a82df138d71c803f963c8a7 (commit)
       via  77a1e0873f98b57d9e50138b471be0d8db8da99f (commit)
      from  e6fd9b2490295b3c6901e06b94ea077ac1f9fc79 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=deb13bcda9a63ea65a82df138d71c803f963c8a7

commit deb13bcda9a63ea65a82df138d71c803f963c8a7
Author: Ulrich Drepper <drepper@redhat.com>
Date:   Tue Aug 25 23:53:23 2009 -0700

    Make llround an alias for lround on 64-bit machines.

diff --git a/ChangeLog b/ChangeLog
index a97b7d9..e56e139 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2009-08-25  Ulrich Drepper  <drepper@redhat.com>
 
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c: Add llround aliases.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c: New file.
+
 	* sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c: New file
 
 	* sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c: New file.
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c
new file mode 100644
index 0000000..f7c9ea5
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c
@@ -0,0 +1 @@
+/* The code is the same as lround.  Use an alias, see l_round.c.  */
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c
index 2df169e..30ea5db 100644
--- a/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c
@@ -18,6 +18,9 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#define llround __hidden_llround
+#define __llround __hidden___llround
+
 #include <math.h>
 
 #include "math_private.h"
@@ -65,3 +68,13 @@ weak_alias (__lround, lround)
 strong_alias (__lround, __lroundl)
 weak_alias (__lround, lroundl)
 #endif
+
+/* long long has the same width as long on 64-bit machines.  */
+#undef llround
+#undef __llround
+strong_alias (__lround, __llround)
+weak_alias (__lround, llround)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__lround, __llroundl)
+weak_alias (__lround, llroundl)
+#endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=77a1e0873f98b57d9e50138b471be0d8db8da99f

commit 77a1e0873f98b57d9e50138b471be0d8db8da99f
Author: Ulrich Drepper <drepper@redhat.com>
Date:   Tue Aug 25 23:26:16 2009 -0700

    Optimized nearbyint for 64-bit.

diff --git a/ChangeLog b/ChangeLog
index af3d057..a97b7d9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2009-08-25  Ulrich Drepper  <drepper@redhat.com>
 
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c: New file
+
 	* sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c: New file.
 
 	* sysdeps/ieee754/dbl-64/wordsize-64/s_round.c: New file.
diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c
new file mode 100644
index 0000000..cb49019
--- /dev/null
+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c
@@ -0,0 +1,86 @@
+/* Adapted for use as nearbyint by Ulrich Drepper <drepper@cygnus.com>.  */
+/*
+ * ====================================================
+ * 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.
+ * ====================================================
+ */
+
+/*
+ * rint(x)
+ * Return x rounded to integral value according to the prevailing
+ * rounding mode.
+ * Method:
+ *	Using floating addition.
+ * Exception:
+ *	Inexact flag raised if x not equal to rint(x).
+ */
+
+#include <fenv.h>
+#include "math.h"
+#include "math_private.h"
+
+#ifdef __STDC__
+static const double
+#else
+static double
+#endif
+TWO52[2]={
+  4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+ -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
+};
+
+#ifdef __STDC__
+	double __nearbyint(double x)
+#else
+	double __nearbyint(x)
+	double x;
+#endif
+{
+	fenv_t env;
+	int64_t i0,sx;
+	int32_t j0;
+	EXTRACT_WORDS64(i0,x);
+	sx = (i0>>63)&1;
+	j0 = ((i0>>52)&0x7ff)-0x3ff;
+	if(j0<52) {
+	    if(j0<0) {
+	      if((i0&UINT64_C(0x7fffffffffffffff))==0) return x;
+		uint64_t i = i0 & UINT64_C(0xfffffffffffff);
+		i0 &= UINT64_C(0xfffe000000000000);
+		i0 |= (((i|-i) >> 12) & UINT64_C(0x8000000000000));
+		INSERT_WORDS64(x,i0);
+		feholdexcept (&env);
+		double w = TWO52[sx]+x;
+		double t =  w-TWO52[sx];
+		fesetenv (&env);
+		EXTRACT_WORDS64(i0,t);
+		INSERT_WORDS64(t,(i0&UINT64_C(0x7fffffffffffffff))|(sx<<63));
+		return t;
+	    } else {
+		uint64_t i = UINT64_C(0x000fffffffffffff)>>j0;
+		if((i0&i)==0) return x; /* x is integral */
+		i>>=1;
+		if((i0&i)!=0)
+		    i0 = (i0&(~i))|(UINT64_C(0x4000000000000)>>j0);
+	    }
+	} else {
+	    if(j0==0x400) return x+x;	/* inf or NaN */
+	    else return x;		/* x is integral */
+	}
+	INSERT_WORDS64(x,i0);
+	feholdexcept (&env);
+	double w = TWO52[sx]+x;
+	double t = w-TWO52[sx];
+	fesetenv (&env);
+	return t;
+}
+weak_alias (__nearbyint, nearbyint)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__nearbyint, __nearbyintl)
+weak_alias (__nearbyint, nearbyintl)
+#endif

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |    5 ++++
 sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c     |    1 +
 sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c      |   13 +++++++++++
 .../dbl-64/wordsize-64/{s_rint.c => s_nearbyint.c} |   23 +++++++++++++-------
 4 files changed, 34 insertions(+), 8 deletions(-)
 create mode 100644 sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c
 copy sysdeps/ieee754/dbl-64/wordsize-64/{s_rint.c => s_nearbyint.c} (79%)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]