diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-09-25 21:55:47 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-09-25 21:55:47 +0000 |
commit | 390a4882ffd0e4092641ffdd6c0e017e41793d0c (patch) | |
tree | e333892580057f9dc28819fe3f153e84823d8d3d | |
parent | e503270ca511dd3092c953fe5f9a178f0d04b1ad (diff) | |
download | glibc-390a4882ffd0e4092641ffdd6c0e017e41793d0c.tar.gz |
Update.
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
-rw-r--r-- | ChangeLog | 29 | ||||
-rw-r--r-- | Makefile | 5 | ||||
-rw-r--r-- | db/Makefile | 2 | ||||
-rw-r--r-- | db/btree/bt_delete.c | 12 | ||||
-rw-r--r-- | math/Makefile | 2 | ||||
-rw-r--r-- | stdlib/longlong.h | 39 | ||||
-rw-r--r-- | sysdeps/sparc/fpu/feholdexcpt.c | 4 |
7 files changed, 71 insertions, 22 deletions
@@ -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> @@ -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 # The `glibcbug' script contains the version number and it shall be rebuild diff --git a/db/Makefile b/db/Makefile index 039a77e961..4df6f886b9 100644 --- a/db/Makefile +++ b/db/Makefile @@ -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) diff --git a/db/btree/bt_delete.c b/db/btree/bt_delete.c index ece1ab656e..b654c9f1f8 100644 --- a/db/btree/bt_delete.c +++ b/db/btree/bt_delete.c @@ -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) { diff --git a/math/Makefile b/math/Makefile index 5110375413..9e6869a0e5 100644 --- a/math/Makefile +++ b/math/Makefile @@ -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) diff --git a/stdlib/longlong.h b/stdlib/longlong.h index 197aac41da..4e41ac4a25 100644 --- a/stdlib/longlong.h +++ b/stdlib/longlong.h @@ -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 */ diff --git a/sysdeps/sparc/fpu/feholdexcpt.c b/sysdeps/sparc/fpu/feholdexcpt.c index 9b4c2134f7..b86671ca28 100644 --- a/sysdeps/sparc/fpu/feholdexcpt.c +++ b/sysdeps/sparc/fpu/feholdexcpt.c @@ -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); |