Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 25 Sep 1998 21:55:47 +0000 (21:55 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 25 Sep 1998 21:55:47 +0000 (21:55 +0000)
1998-09-25  Ulrich Drepper  <drepper@cygnus.com>

* math/Makefile (gmp-objs): Add mp_clz_tab.

1998-09-25  David S. Miller  <davem@pierdol.cobaltmicro.com>

* sysdeps/sparc/fpu/feholdexcpt.c (feholdexcept): Clear bits don't
set them.
* stdlib/longlong.h (sparc udiv_qrnnd): Define inline version for
cpus lacking hardware multiply and divide.

1998-09-24  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* db/Makefile ($(inst_slibdir)/libdb.so$(libdb1.so-version)): Use
$(<F), not $(^F).

1998-09-24  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* db/btree/bt_delete.c: Fix -Wparentheses warning.

1998-09-24  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* Makefile ($(inst_includedir)/gnu/lib-names.h): Use
$(do-install).

* time/strftime.c (f_wkday): Remove duplicate definition.
* time/strftime.c (my_strftime): Don't store past the end of a

ChangeLog
Makefile
db/Makefile
db/btree/bt_delete.c
math/Makefile
stdlib/longlong.h
sysdeps/sparc/fpu/feholdexcpt.c

index c0a3218..ffb638c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,35 @@
+1998-09-25  Ulrich Drepper  <drepper@cygnus.com>
+
+       * math/Makefile (gmp-objs): Add mp_clz_tab.
+
+1998-09-25  David S. Miller  <davem@pierdol.cobaltmicro.com>
+
+       * sysdeps/sparc/fpu/feholdexcpt.c (feholdexcept): Clear bits don't
+       set them.
+       * stdlib/longlong.h (sparc udiv_qrnnd): Define inline version for
+       cpus lacking hardware multiply and divide.
+
+1998-09-24  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * db/Makefile ($(inst_slibdir)/libdb.so$(libdb1.so-version)): Use
+       $(<F), not $(^F).
+
+1998-09-24  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * db/btree/bt_delete.c: Fix -Wparentheses warning.
+
+1998-09-24  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * Makefile ($(inst_includedir)/gnu/lib-names.h): Use
+       $(do-install).
+
 1998-09-24  Ulrich Drepper  <drepper@cygnus.com>
 
        * debug/catchsegv.sh: Also produce output if cloned process died.
 
 1998-09-24  Paul Eggert  <eggert@twinsun.com>
 
-       * strftime.c (f_wkday): Remove duplicate definition.
+       * time/strftime.c (f_wkday): Remove duplicate definition.
        (f_wkday, f_month, a_wkday, a_month, ampm): Define as macros when
        !defined _NL_CURRENT && !HAVE_STRFTIME; this propagates the
        1998-09-11 fix to this case.
@@ -12,7 +37,7 @@
 
 1998-09-24  Paul Eggert  <eggert@twinsun.com>
 
-       * strftime.c (my_strftime): Don't store past the end of a
+       * time/strftime.c (my_strftime): Don't store past the end of a
        zero-sized buffer.
 
 1998-09-24  Paul Eggert  <eggert@twinsun.com>
index 711a5ac..c439a29 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -153,10 +153,7 @@ $(inst_includedir)/gnu/stubs.h: subdir_install
 ifeq (yes,$(build-shared))
 
 $(inst_includedir)/gnu/lib-names.h: $(common-objpfx)gnu/lib-names.h $(+force)
-       $(make-target-directory)
-       if test -r $@ && cmp -s $< $@; \
-       then echo 'gnu/lib-names.h unchanged'; \
-       else $(INSTALL_DATA) $< $@; fi
+       $(do-install)
 endif
 \f
 # The `glibcbug' script contains the version number and it shall be rebuild
index 039a77e..4df6f88 100644 (file)
@@ -34,7 +34,7 @@ install-others        := $(inst_slibdir)/libdb.so$(libdb1.so-version) \
 
 $(inst_slibdir)/libdb.so$(libdb1.so-version): $(inst_slibdir)/libdb1-$(version).so $(+force)
        rm -f $@
-       $(LN_S) $(^F) $@
+       $(LN_S) $(<F) $@
 
 $(db1-headers:%=$(inst_includedir)/db1/%): $(inst_includedir)/db1/%: % $(+force)
        $(do-install)
index ece1ab6..b654c9f 100644 (file)
@@ -154,7 +154,7 @@ __bt_stkacq(t, hp, c)
        pgno_t pgno;
        recno_t nextpg, prevpg;
        int exact, level;
-       
+
        /*
         * Find the first occurrence of the key in the tree.  Toss the
         * currently locked page so we don't hit an already-locked page.
@@ -270,7 +270,7 @@ __bt_stkacq(t, hp, c)
                if ((h = mpool_get(t->bt_mp, prevpg, 0)) == NULL)
                        return (1);
        }
-       
+
 
 ret:   mpool_put(t->bt_mp, h, 0);
        return ((*hp = mpool_get(t->bt_mp, c->pg.pgno, 0)) == NULL);
@@ -402,7 +402,7 @@ __bt_pdelete(t, h)
                /* Get the parent page. */
                if ((pg = mpool_get(t->bt_mp, parent->pgno, 0)) == NULL)
                        return (RET_ERROR);
-               
+
                index = parent->index;
                bi = GETBINTERNAL(pg, index);
 
@@ -418,7 +418,7 @@ __bt_pdelete(t, h)
                 * root page. If it's the rootpage, turn it back into an empty
                 * leaf page.
                 */
-               if (NEXTINDEX(pg) == 1)
+               if (NEXTINDEX(pg) == 1) {
                        if (pg->pgno == P_ROOT) {
                                pg->lower = BTDATAOFF;
                                pg->upper = t->bt_psize;
@@ -428,7 +428,7 @@ __bt_pdelete(t, h)
                                        return (RET_ERROR);
                                continue;
                        }
-               else {
+               else {
                        /* Pack remaining key items at the end of the page. */
                        nksize = NBINTERNAL(bi->ksize);
                        from = (char *)pg + pg->upper;
@@ -571,7 +571,7 @@ __bt_curdel(t, key, h, index)
                        key = &c->key;
                }
                /* Check previous key, if not at the beginning of the page. */
-               if (index > 0) { 
+               if (index > 0) {
                        e.page = h;
                        e.index = index - 1;
                        if (__bt_cmp(t, key, &e) == 0) {
index 5110375..9e6869a 100644 (file)
@@ -156,7 +156,7 @@ o = .os
 endif
 gmp-objs = $(patsubst %,$(common-objpfx)stdlib/%$o,\
                      add_n sub_n cmp addmul_1 mul_1 mul_n divmod_1 \
-                     lshift rshift)
+                     lshift rshift mp_clz_tab)
 $(objpfx)atest-exp: $(gmp-objs)
 $(objpfx)atest-sincos: $(gmp-objs)
 $(objpfx)atest-exp2: $(gmp-objs)
index 197aac4..4e41ac4 100644 (file)
@@ -1,5 +1,5 @@
 /* longlong.h -- definitions for mixed size 32/64 bit arithmetic.
-   Copyright (C) 1991, 92, 93, 94, 96, 97 Free Software Foundation, Inc.
+   Copyright (C) 1991, 92, 93, 94, 96, 97, 98 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -1135,12 +1135,39 @@ extern USItype __udiv_qrnnd ();
 #define UMUL_TIME 39           /* 39 instructions */
 #endif
 #ifndef udiv_qrnnd
-#ifndef LONGLONG_STANDALONE
+/* It's quite necessary to add this much assembler for the sparc.
+   The default udiv_qrnnd (in C) is more than 10 times slower!  */
 #define udiv_qrnnd(q, r, n1, n0, d) \
-  do { USItype __r;                                                    \
-    (q) = __udiv_qrnnd (&__r, (n1), (n0), (d));                                \
-    (r) = __r;                                                         \
-  } while (0)
+  __asm__ ("! Inlined udiv_qrnnd
+       mov     32,%%g1
+       subcc   %1,%2,%%g0
+1:     bcs     5f
+        addxcc %0,%0,%0        ! shift n1n0 and a q-bit in lsb
+       sub     %1,%2,%1        ! this kills msb of n
+       addx    %1,%1,%1        ! so this can't give carry
+       subcc   %%g1,1,%%g1
+2:     bne     1b
+        subcc  %1,%2,%%g0
+       bcs     3f
+        addxcc %0,%0,%0        ! shift n1n0 and a q-bit in lsb
+       b       3f
+        sub    %1,%2,%1        ! this kills msb of n
+4:     sub     %1,%2,%1
+5:     addxcc  %1,%1,%1
+       bcc     2b
+        subcc  %%g1,1,%%g1
+! Got carry from n.  Subtract next step to cancel this carry.
+       bne     4b
+        addcc  %0,%0,%0        ! shift n1n0 and a 0-bit in lsb
+       sub     %1,%2,%1
+3:     xnor    %0,0,%0
+       ! End of inline udiv_qrnnd"                                     \
+          : "=&r" ((USItype)(q)),                                      \
+            "=&r" ((USItype)(r))                                       \
+          : "r" ((USItype)(d)),                                        \
+            "1" ((USItype)(n1)),                                       \
+            "0" ((USItype)(n0)) : "%g1" __AND_CLOBBER_CC)
+#define UDIV_TIME (3+7*32)     /* 7 instructions/iteration. 32 iterations. */
 extern USItype __udiv_qrnnd __P ((USItype *, USItype, USItype, USItype));
 #define UDIV_TIME 140
 #endif /* LONGLONG_STANDALONE */
index 9b4c213..b86671c 100644 (file)
@@ -1,5 +1,5 @@
 /* Store current floating-point environment and clear exceptions.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -27,7 +27,7 @@ feholdexcept (fenv_t *envp)
   __fenv_stfsr (*envp);
 
   /* Set all exceptions to non-stop.  */
-  tmp = *envp (0x1f << 23);
+  tmp = *envp & ~(0x1f << 23);
 
   __fenv_ldfsr (tmp);