Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 24 Mar 2004 22:05:34 +0000 (22:05 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 24 Mar 2004 22:05:34 +0000 (22:05 +0000)
2004-03-24  Jakub Jelinek  <jakub@redhat.com>

* stdlib/strtod_l.c (INTERNAL (__STRTOF)): Clear the rest of retval,
not just one limb if RETURN_LIMB_SIZE > 2.  Fix shifting up if
RETURN_LIMB_SIZE > 2.

* stdio-common/printf_fp.c (__printf_fp): For IEEE quad long double
on 32-bit architectures reserve 8 limbs instead of 4.

ChangeLog
linuxthreads/ChangeLog
linuxthreads/sysdeps/powerpc/tls.h
math/README.libm-test
nptl/sysdeps/unix/sysv/linux/getpid.c
stdio-common/printf_fp.c
stdlib/strtod_l.c

index 7853c66..e2df440 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2004-03-24  Jakub Jelinek  <jakub@redhat.com>
+
+       * stdlib/strtod_l.c (INTERNAL (__STRTOF)): Clear the rest of retval,
+       not just one limb if RETURN_LIMB_SIZE > 2.  Fix shifting up if
+       RETURN_LIMB_SIZE > 2.
+
+       * stdio-common/printf_fp.c (__printf_fp): For IEEE quad long double
+       on 32-bit architectures reserve 8 limbs instead of 4.
+
 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/unix/sysv/linux/alpha/sysdep.h (__NR_pread, __NR_pwrite):
index 442dc0b..c55d28f 100644 (file)
@@ -1,3 +1,7 @@
+2004-03-11  Steven Munroe  <sjmunroe@us.ibm.com>
+
+       * sysdeps/powerpc/tls.h: Remove __powerpc64__ conditional.
+
 2004-03-23  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/ia64/pt-machine.h (BUSY_WAIT_NOP): Define.
index de651eb..76104cd 100644 (file)
@@ -130,14 +130,12 @@ typedef struct
 
 # endif /* __ASSEMBLER__ */
 
-#elif !defined __ASSEMBLER__ && !defined __powerpc64__
+#elif !defined __ASSEMBLER__
 
-/* This overlaps the start of the pthread_descr.  On PPC32, system
-   calls and such use this to find the multiple_threads flag and need
+/* This overlaps the start of the pthread_descr.  System calls
+   and such use this to find the multiple_threads flag and need
    to use the same offset relative to the thread register in both
-   single-threaded and multi-threaded code.  On PPC64, the global
-   variable is always used, so single-threaded code without TLS
-   never needs to initialize the thread register at all.  */
+   single-threaded and multi-threaded code.  */
 typedef struct
 {
   void *tcb;                   /* Never used.  */
index af07622..7a46155 100644 (file)
@@ -45,15 +45,15 @@ but it's better to pretty print it first.  "gen-libm-test.pl"  has an option
 to generate a pretty-printed and sorted new ULPs file from the output
 of the test drivers.
 
-To generate a new "libm-test-ulps" file, you can execute for example:
+To generate a new "libm-test-ulps" file, first remove "ULPs" file in the
+current directory, then you can execute for example:
 test-double -u --ignore-max-ulp=yes
 This generates a file "ULPs" with all double ULPs in it, ignoring any
 previous calculated ULPs.
-Now move this away, e.g. "mv ULPs allULPs" and generate the ULPs
-for all other formats and concat all ULP files together (e.g. "cat
-ULPs >> allULPs").  As final step run "gen-libm-test.pl" with the file
-as input and ask to generate a pretty printed output in the file "NewUlps":
-  gen-libm-test.pl -u allULPs -n
+Now generate the ULPs for all other formats, the tests will be appending
+the data to the "ULPs" file.  As final step run "gen-libm-test.pl" with the
+file as input and ask to generate a pretty printed output in the file "NewUlps":
+  gen-libm-test.pl -u ULPs -n
 
 Now you can rename "NewUlps" to "libm-test-ulps" and move it into
 sysdeps.
index 476981e..98307ff 100644 (file)
@@ -31,7 +31,7 @@ really_getpid (pid_t oldval)
   if (__builtin_expect (oldval == 0, 1))
     {
       pid_t selftid = THREAD_GETMEM (THREAD_SELF, tid);
-      if (__builtin_expect (selftid != 0), 1)
+      if (__builtin_expect (selftid != 0, 1))
        return selftid;
     }
 
index 62867e7..ed225e0 100644 (file)
@@ -430,7 +430,9 @@ __printf_fp (FILE *fp,
      would be really big it could lead to memory problems.  */
   {
     mp_size_t bignum_size = ((ABS (exponent) + BITS_PER_MP_LIMB - 1)
-                            / BITS_PER_MP_LIMB + 4) * sizeof (mp_limb_t);
+                            / BITS_PER_MP_LIMB
+                            + (LDBL_MANT_DIG / BITS_PER_MP_LIMB > 2 ? 8 : 4))
+                           * sizeof (mp_limb_t);
     frac = (mp_limb_t *) alloca (bignum_size);
     tmp = (mp_limb_t *) alloca (bignum_size);
     scale = (mp_limb_t *) alloca (bignum_size);
index 89d30b4..9eca802 100644 (file)
@@ -1155,7 +1155,11 @@ INTERNAL (__STRTOF) (nptr, endptr, group, loc)
       memcpy (retval, num, numsize * sizeof (mp_limb_t));
 #if RETURN_LIMB_SIZE > 1
       if (numsize < RETURN_LIMB_SIZE)
+# if RETURN_LIMB_SIZE == 2
         retval[numsize] = 0;
+# else
+       MPN_ZERO (retval + numsize, RETURN_LIMB_SIZE - numsize);
+# endif
 #endif
     }
 
@@ -1461,8 +1465,10 @@ INTERNAL (__STRTOF) (nptr, endptr, group, loc)
                      __mpn_lshift_1 (retval, RETURN_LIMB_SIZE,
                                      BITS_PER_MP_LIMB, 0);
 #else
-                     for (i = RETURN_LIMB_SIZE; i > empty; --i)
+                     for (i = RETURN_LIMB_SIZE - 1; i >= empty; --i)
                        retval[i] = retval[i - empty];
+                     while (i >= 0)
+                       retval[i--] = 0;
 #endif
                      for (i = numsize; i > 0; --i)
                        num[i + empty] = num[i - 1];