This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.17-256-gb65e2ba
- From: jakub at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 19 Feb 2013 16:58:02 -0000
- Subject: 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