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.17-256-gb65e2ba


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  b65e2ba34b218a58a74123e2d6ba70ab0d4797bf (commit)
       via  2389741abb70e282c39125e1017191a985a2cfea (commit)
      from  e4f223248ebf4bfaf5e300af96aacd0ddc6c30ed (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=b65e2ba34b218a58a74123e2d6ba70ab0d4797bf

commit b65e2ba34b218a58a74123e2d6ba70ab0d4797bf
Merge: 2389741 e4f2232
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Feb 19 17:57:37 2013 +0100

    Merge branch 'master' of ssh://sourceware.org/git/glibc

diff --cc ChangeLog
index 6379144,b40880a..df5cbf6
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,10 -1,9 +1,14 @@@
 +2013-02-19  Jakub Jelinek  <jakub@redhat.com>
 +
 +	* stdlib/strtod_l.c (__mpn_lshift_1): Rewritten as function-like
 +	macro.
 +
  2013-02-19  Siddhesh Poyarekar  <siddhesh@redhat.com>
  
+ 	* math/atest-exp.c (exp_mpn): Remove ROUND.
+ 	* math/atest-exp2.c (exp_mpn): Likewise.
+ 	* math/atest-sincos.c (sincosx_mpn): Remove ROUND and CHK.
+ 
  	* stdlib/cxa_thread_atexit_impl.c: Fix Copyright year.
  	* stdlib/tst-tls-atexit-lib.c: Likewise.
  	* stdlib/tst-tls-atexit.c: Likewise.

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

commit 2389741abb70e282c39125e1017191a985a2cfea
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Feb 19 17:56:59 2013 +0100

    	* stdlib/strtod_l.c (__mpn_lshift_1): Rewritten as function-like
    	macro.

diff --git a/ChangeLog b/ChangeLog
index d5f9a83..6379144 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-02-19  Jakub Jelinek  <jakub@redhat.com>
+
+	* stdlib/strtod_l.c (__mpn_lshift_1): Rewritten as function-like
+	macro.
+
 2013-02-19  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
 	* stdlib/cxa_thread_atexit_impl.c: Fix Copyright year.
diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c
index 5959354..47247b5 100644
--- a/stdlib/strtod_l.c
+++ b/stdlib/strtod_l.c
@@ -444,28 +444,30 @@ str_to_mpn (const STRING_TYPE *str, int digcnt, mp_limb_t *n, mp_size_t *nsize,
 /* Shift {PTR, SIZE} COUNT bits to the left, and fill the vacated bits
    with the COUNT most significant bits of LIMB.
 
-   Tege doesn't like this function so I have to write it here myself. :)
+   Implemented as a macro, so that __builtin_constant_p works even at -O0.
+
+   Tege doesn't like this macro so I have to write it here myself. :)
    --drepper */
-static inline void
-__attribute ((always_inline))
-__mpn_lshift_1 (mp_limb_t *ptr, mp_size_t size, unsigned int count,
-		mp_limb_t limb)
-{
-  if (__builtin_constant_p (count) && count == BITS_PER_MP_LIMB)
-    {
-      /* Optimize the case of shifting by exactly a word:
-	 just copy words, with no actual bit-shifting.  */
-      mp_size_t i;
-      for (i = size - 1; i > 0; --i)
-	ptr[i] = ptr[i - 1];
-      ptr[0] = limb;
-    }
-  else
-    {
-      (void) __mpn_lshift (ptr, ptr, size, count);
-      ptr[0] |= limb >> (BITS_PER_MP_LIMB - count);
-    }
-}
+#define __mpn_lshift_1(ptr, size, count, limb) \
+  do									\
+    {									\
+      mp_limb_t *__ptr = (ptr);						\
+      if (__builtin_constant_p (count) && count == BITS_PER_MP_LIMB)	\
+	{								\
+	  mp_size_t i;							\
+	  for (i = (size) - 1; i > 0; --i)				\
+	    __ptr[i] = __ptr[i - 1];					\
+	  __ptr[0] = (limb);						\
+	}								\
+      else								\
+	{								\
+	  /* We assume count > 0 && count < BITS_PER_MP_LIMB here.  */	\
+	  unsigned int __count = (count);				\
+	  (void) __mpn_lshift (__ptr, __ptr, size, __count);		\
+	  __ptr[0] |= (limb) >> (BITS_PER_MP_LIMB - __count);		\
+	}								\
+    }									\
+  while (0)
 
 
 #define INTERNAL(x) INTERNAL1(x)

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

Summary of changes:
 ChangeLog         |    5 +++++
 stdlib/strtod_l.c |   44 +++++++++++++++++++++++---------------------
 2 files changed, 28 insertions(+), 21 deletions(-)


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]