GNU C Library master sources branch master updated. glibc-2.22-567-g60f435b

jsm28@sourceware.org jsm28@sourceware.org
Tue Dec 1 01:02:00 GMT 2015


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  60f435bb0c097ead2d4609aa7e45a203eb24e43c (commit)
      from  9627da32ec76600244e7723e99b9d4e27691f1ff (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://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=60f435bb0c097ead2d4609aa7e45a203eb24e43c

commit 60f435bb0c097ead2d4609aa7e45a203eb24e43c
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue Dec 1 01:01:36 2015 +0000

    Use hex float constants in sysdeps/ieee754/dbl-64/e_sqrt.c.
    
    Various sysdeps/ieee754/dbl-64 functions use double constants defined
    using a union between a double and two ints, with separate big-endian
    and little-endian definitions of the constants.
    
    With modern C, this is unnecessary complication; hex float constants
    (or __builtin_inf etc.) suffice to specify the exact value desired,
    and so can avoid separate versions for each endianness.  Having this
    complication also complicates cleanups such as removing slow paths
    from these library functions, as they need to make sure to remove both
    copies of variables that are no longer used after such a cleanup (and
    in at least one case, proper removal of a slow path will also involve
    removing slow-path-only values from the middle of an array - an array
    with both big-endian and little-endian copies - and adjusting other
    references to that array).
    
    So it makes sense to clean up the code to define these constants using
    hex floats and so eliminate the endianness conditional.  This patch
    does so in the case of sqrt, where the two constants are such that it
    makes sense just to put them directly in the code using them and
    eliminate the names for them altogether.
    
    Tested for arm (the code generated for sqrt does change, though not in
    any significant way).
    
    	* sysdeps/ieee754/dbl-64/e_sqrt.c: Do not include uroot.h.
    	(__ieee754_sqrt): Use hex float constants instead of tm256.x and
    	t512.x.
    	* sysdeps/ieee754/dbl-64/uroot.h: Remove file.

diff --git a/ChangeLog b/ChangeLog
index 038181c..5a44a8a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-12-01  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/ieee754/dbl-64/e_sqrt.c: Do not include uroot.h.
+	(__ieee754_sqrt): Use hex float constants instead of tm256.x and
+	t512.x.
+	* sysdeps/ieee754/dbl-64/uroot.h: Remove file.
+
 2015-11-30  Amit Pawar  <amit.pawar@amd.com>
 
 	[BZ #19214]
diff --git a/sysdeps/ieee754/dbl-64/e_sqrt.c b/sysdeps/ieee754/dbl-64/e_sqrt.c
index fff6d14..c1fed7d 100644
--- a/sysdeps/ieee754/dbl-64/e_sqrt.c
+++ b/sysdeps/ieee754/dbl-64/e_sqrt.c
@@ -21,7 +21,7 @@
 /*                                                                   */
 /* FUNCTION:    usqrt                                                */
 /*                                                                   */
-/* FILES NEEDED: dla.h endian.h mydefs.h uroot.h                     */
+/* FILES NEEDED: dla.h endian.h mydefs.h                             */
 /*               uroot.tbl                                           */
 /*                                                                   */
 /* An ultimate sqrt routine. Given an IEEE double machine number x   */
@@ -47,7 +47,6 @@
 double
 __ieee754_sqrt (double x)
 {
-#include "uroot.h"
   static const double
     rt0 = 9.99999999859990725855365213134618E-01,
     rt1 = 4.99999999495955425917856814202739E-01,
@@ -134,7 +133,7 @@ __ieee754_sqrt (double x)
 	return x;       /* sqrt(+0)=+0, sqrt(-0)=-0 */
       if (k < 0)
 	return (x - x) / (x - x); /* sqrt(-ve)=sNaN */
-      return tm256.x * __ieee754_sqrt (x * t512.x);
+      return 0x1p-256 * __ieee754_sqrt (x * 0x1p512);
     }
 }
 strong_alias (__ieee754_sqrt, __sqrt_finite)
diff --git a/sysdeps/ieee754/dbl-64/uroot.h b/sysdeps/ieee754/dbl-64/uroot.h
deleted file mode 100644
index 4bbcc3b..0000000
--- a/sysdeps/ieee754/dbl-64/uroot.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * IBM Accurate Mathematical Library
- * Written by International Business Machines Corp.
- * Copyright (C) 2001-2015 Free Software Foundation, Inc.
- *
- * This program 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.
- *
- * This program 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 this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/******************************************************************/
-/*                                                                */
-/* MODULE_NAME:uroot.h                                            */
-/*                                                                */
-/* common data and variables prototype and definition             */
-/******************************************************************/
-
-#ifndef UROOT_H
-#define UROOT_H
-
-#ifdef BIG_ENDI
- static const  mynumber
-/**/           t512 = {{0x5ff00000, 0x00000000 }},  /* 2^512  */
-/**/          tm256 = {{0x2ff00000, 0x00000000 }};  /* 2^-256 */
-
-#else
-#ifdef LITTLE_ENDI
- static const  mynumber
-/**/           t512 = {{0x00000000, 0x5ff00000 }}, /* 2^512  */
-/**/          tm256 = {{0x00000000, 0x2ff00000 }}; /* 2^-256 */
-#endif
-#endif
-
-#endif

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

Summary of changes:
 ChangeLog                       |    7 ++++++
 sysdeps/ieee754/dbl-64/e_sqrt.c |    5 +--
 sysdeps/ieee754/dbl-64/uroot.h  |   43 ---------------------------------------
 3 files changed, 9 insertions(+), 46 deletions(-)
 delete mode 100644 sysdeps/ieee754/dbl-64/uroot.h


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



More information about the Glibc-cvs mailing list