Re: cvs commit: src/sys/dev/ata ata-all.c ata-all.h ata-chipset.c

2008-08-15 Thread Bruce Evans
On Fri, 15 Aug 2008, Bernd Walter wrote: On Fri, Aug 15, 2008 at 10:55:11AM +, Philip Paeps wrote: philip 2008-08-15 10:55:11 UTC FreeBSD src repository Modified files: sys/dev/ata ata-all.c ata-all.h ata-chipset.c Log: SVN rev 181753 on 2008-08-15 10:55:11Z by p

Re: cvs commit: src/sys/dev/io iodev.c

2008-08-13 Thread Bruce Evans
On Tue, 12 Aug 2008, John Baldwin wrote: On Tuesday 12 August 2008 01:23:47 pm Bruce Evans wrote: On Tue, 12 Aug 2008, John Baldwin wrote: Of course bpf is broken with revoke, but nobody uses revoke with bpf. What people do do in the normal course of using bpf is lots of concurrent bpf

Re: cvs commit: src/sys/dev/io iodev.c

2008-08-13 Thread Bruce Evans
On Wed, 13 Aug 2008, Bruce Evans wrote: On Tue, 12 Aug 2008, John Baldwin wrote: Of course bpf is broken with revoke, but nobody uses revoke with bpf. What people do do in the normal course of using bpf is lots of concurrent bpf accesses, and w/o D_TRACKCLOSE, bpf devices don't get c

Re: cvs commit: src/sys/dev/io iodev.c

2008-08-12 Thread Bruce Evans
On Tue, 12 Aug 2008, John Baldwin wrote: On Tuesday 12 August 2008 10:07:43 am Bruce Evans wrote: I checked that bpf panics (even under UP) due to the obvious bugs in its d_close(): # Generate lots of network activity using something like: sysctl net.inet.icmp.icmplim=0; ping -fq

Re: cvs commit: src/sys/dev/io iodev.c

2008-08-12 Thread Bruce Evans
On Tue, 12 Aug 2008, Bruce Evans wrote: On Sat, 9 Aug 2008, John Baldwin wrote: You failed to note that not using D_TRACKCLOSE doesn't actually reliable close devices. No, I noted that vfs doesn't count last closes right. Unreliability of last-close is a special case of that.

Re: cvs commit: src/sys/dev/io iodev.c

2008-08-11 Thread Bruce Evans
On Sat, 9 Aug 2008, John Baldwin wrote: On Saturday 09 August 2008 12:35:50 am Bruce Evans wrote: On Fri, 8 Aug 2008, John Baldwin wrote: On Friday 08 August 2008 09:43:56 am Ed Schouten wrote: ed 2008-08-08 13:43:56 UTC Apart from this change, I think some fishy things may

Re: cvs commit: src/sys/dev/io iodev.c

2008-08-08 Thread Bruce Evans
On Fri, 8 Aug 2008, John Baldwin wrote: On Friday 08 August 2008 09:43:56 am Ed Schouten wrote: ed 2008-08-08 13:43:56 UTC Apart from this change, I think some fishy things may happen when using /dev/io in multithreaded applications. I haven't tested, but looking at the code, th

Re: cvs commit: src/etc remote

2008-07-22 Thread Bruce Evans
On Mon, 21 Jul 2008, John Baldwin wrote: On Monday 21 July 2008 05:22:15 pm Marcel Moolenaar wrote: On Jul 21, 2008, at 8:07 AM, John Baldwin wrote: On Saturday 19 July 2008 03:08:22 pm Marcel Moolenaar wrote: marcel 2008-07-19 19:08:22 UTC FreeBSD src repository Modified files:

Re: cvs commit: src/sys/netipx ipx_input.c ipx_usrreq.c

2008-07-22 Thread Bruce Evans
On Mon, 21 Jul 2008, John Baldwin wrote: On Sunday 20 July 2008 11:25:20 am Tom Rhodes wrote: trhodes 2008-07-20 15:25:20 UTC FreeBSD src repository Modified files: sys/netipx ipx_input.c ipx_usrreq.c Log: SVN rev 180630 on 2008-07-20 15:25:20Z by trhodes Document

Re: cvs commit: src/share/man/man9 style.9

2008-07-10 Thread Bruce Evans
On Thu, 10 Jul 2008, Daniel Gerzo wrote: danger 2008-07-10 11:24:41 UTC FreeBSD src repository Modified files: share/man/man9 style.9 Log: SVN rev 180424 on 2008-07-10 11:24:41Z by danger Back-out my previous change. See the thread at http://lists.freebsd.org/pipermail/cvs

Re[2]: cvs commit: src/share/man/man9 style.9

2008-07-10 Thread Bruce Evans
On Thu, 10 Jul 2008, Daniel Gerzo wrote: Hello guys, Wednesday, July 9, 2008, 8:08:02 PM, has been written: -Do not declare functions inside other functions; ANSI C says that -such declarations have file scope regardless of the nesting of the -declaration. -Hiding file declarations in what ap

Re: cvs commit: src/sys/sparc64/include in_cksum.h

2008-06-29 Thread Bruce Evans
On Sun, 29 Jun 2008, Christoph Mallon wrote: Bruce Evans wrote: Right. Though I've never seen unnecessary's __volatiles significantly affecting i386 code. This is because the code in the asms can't be removed completely, and can't be moved much either. With out of order

Re: cvs commit: src/sys/sparc64/include in_cksum.h

2008-06-29 Thread Bruce Evans
On Sun, 29 Jun 2008, Christoph Mallon wrote: Bruce Evans wrote: I have to disagree. Where does the GCC documentation state, that "cc" has no effect on x86? It is the other way round: The compiler assumes, the Well, in gcc-1.40, gcc.info says nothing about "cc", ap

Re: cvs commit: src/lib/libc/i386/gen _setjmp.S setjmp.S

2008-06-28 Thread Bruce Evans
On Sat, 28 Jun 2008, David Schultz wrote: On Sun, Jun 29, 2008, Bruce Evans wrote: On Sat, 28 Jun 2008, David Schultz wrote: Don't clobber the FPU exception flags in longjmp. C99 requires them to remain unchanged. ...but got cut off somehow. This is wrong. It breaks longjmp() fro

Re: cvs commit: src/sys/sparc64/include in_cksum.h

2008-06-28 Thread Bruce Evans
On Sat, 28 Jun 2008, Marius Strobl wrote: On Sat, Jun 28, 2008 at 12:09:13PM +1000, Bruce Evans wrote: On Sat, 28 Jun 2008, Marius Strobl wrote: I think it still only works by chance. [volatile] Besides I don't think using "__volatile" for this is that wrong,

Re: cvs commit: src/sys/sparc64/include in_cksum.h

2008-06-28 Thread Bruce Evans
On Sat, 28 Jun 2008, Christoph Mallon wrote: Bruce Evans wrote: Does sparc64 do anything good with this? Later it says that this is [cc clobber in asm statements] irrelevant for the type type of bug in in_cksum.* (expecting cc to be preserved across

Re: cvs commit: src/lib/libc/i386/gen _setjmp.S setjmp.S

2008-06-28 Thread Bruce Evans
On Sat, 28 Jun 2008, David Schultz wrote: On Sat, Jun 28, 2008, David Schultz wrote: das 2008-06-28 17:58:06 UTC FreeBSD src repository Modified files: lib/libc/i386/gen_setjmp.S setjmp.S Log: SVN rev 180081 on 2008-06-28 17:58:06Z by das We should also save and res

Re: cvs commit: src/sys/sparc64/include in_cksum.h

2008-06-27 Thread Bruce Evans
On Sat, 28 Jun 2008, Christoph Mallon wrote: I still think, using __volatile only works by accident. volatile for an assembler block mostly means "this asm statement has an effect, even though the register specification looks otherwise, so do not optimise this away (i.e. no CSE, do not remove

Re: cvs commit: src/sys/sparc64/include in_cksum.h

2008-06-27 Thread Bruce Evans
On Sat, 28 Jun 2008, Marius Strobl wrote: On Fri, Jun 27, 2008 at 09:58:31PM +0200, Christoph Mallon wrote: This approach seems wrong to me and I think it works only by chance. The I wasn't aware that the clobber list allows to explicitly specify the condition codes, thanks for the hint. Tho

Re: cvs commit: src/sys/sparc64/include in_cksum.h

2008-06-27 Thread Bruce Evans
On Fri, 27 Jun 2008, Christoph Mallon wrote: Marius Strobl wrote: marius 2008-06-25 21:04:59 UTC FreeBSD src repository Modified files: sys/sparc64/include in_cksum.h Log: SVN rev 180011 on 2008-06-25 21:04:59Z by marius Use "__asm __volatile" rather than "__asm" for ins

Re: cvs commit: src/sys/kern kern_descrip.c

2008-05-29 Thread Bruce Evans
On Thu, 29 May 2008, Ed Schouten wrote: * Robert Watson <[EMAIL PROTECTED]> wrote: This sounds like a good candidate for a regression test -- do we have a dup/dup2/F_DUPFD/F_DUP2FD test? If not, perhaps we should, in light of the opportunity for further bugs and regressions. It looks like we

Re: cvs commit: src/sys/kern subr_param.c

2008-05-10 Thread Bruce Evans
On Fri, 9 May 2008, Alfred Perlstein wrote: * Oliver Fromme <[EMAIL PROTECTED]> [080509 02:08] wrote: Pawel Jakub Dawidek wrote: > Modified files: > sys/kern subr_param.c > Log: > - Export HZ value via kern.hz sysctl (this is the same name as for the > loader tunable)

Re: cvs commit: src/sys/sys user.h

2008-04-30 Thread Bruce Evans
On Wed, 30 Apr 2008, David O'Brien wrote: On Tue, Apr 29, 2008 at 05:41:18PM +0400, Yar Tikhiy wrote: On Tue, Apr 29, 2008 at 3:17 PM, Oleksandr Tymoshenko <[EMAIL PROTECTED]> wrote: gonzo 2008-04-29 11:17:45 UTC Modified files: sys/sys user.h Log: Define KINFO_P

Re: cvs commit: src/sys/net if_ethersubr.c src/sys/sys mbuf.h src/sys/kern uipc_mbuf.c src/sys/conf NOTES options

2008-04-30 Thread Bruce Evans
On Wed, 30 Apr 2008, Marcel Moolenaar wrote: On Apr 30, 2008, at 11:39 AM, Julian Elischer wrote: Max Laier wrote: On Tuesday 29 April 2008 23:23:21 Julian Elischer wrote: julian 2008-04-29 21:23:21 UTC ... Add an option (compiled out by default) to profile outoing packets for a numbe

Re: cvs commit: src/sys/amd64/include clock.h timerreg.h src/sys/amd64/isa clock.c src/sys/dev/speaker spkr.c src/sys/dev/syscons syscons.c src/sys/i386/i386 trap.c src/sys/i386/include clock.h timerr

2008-04-05 Thread Bruce Evans
On Sat, 5 Apr 2008, Takahashi Yoshihiro wrote: In article <[EMAIL PROTECTED]> Poul-Henning Kamp <[EMAIL PROTECTED]> writes: In the other function, sc_bell() it seems to get the period from the KDMKTONE ioctl in terms if 1/1193182th second, so we hardcode the 1193182 and leave it at that.

cvs commit: src/lib/msun/src e_hypot.c e_hypotf.c

2008-03-30 Thread Bruce Evans
bde 2008-03-30 18:07:12 UTC FreeBSD src repository Modified files: lib/msun/src e_hypot.c e_hypotf.c Log: Use fabs[f]() instead of bit fiddling for setting absolute values. This makes little difference in float precision, but in double precision gives a speedup of

cvs commit: src/lib/msun/src e_hypot.c e_hypotf.c

2008-03-30 Thread Bruce Evans
bde 2008-03-30 17:28:27 UTC FreeBSD src repository Modified files: lib/msun/src e_hypot.c e_hypotf.c Log: Use the expression fabs(x+0.0)-fabs(y+0.0) instead of fabs(x+0.0)+fabs(y+0.0) when mixing NaNs. This improves consistency of the result by

cvs commit: src/lib/msun/src e_hypotf.c

2008-03-30 Thread Bruce Evans
bde 2008-03-30 17:17:42 UTC FreeBSD src repository Modified files: lib/msun/src e_hypotf.c Log: Fix a missing mask in a hi+lo decomposition. Thus bug made the extra precision in software useless, so hypotf() had some errors in the 1-2 ulp range unless there is ex

Re: cvs commit: src/sys/i386/include _types.h

2008-03-06 Thread Bruce Evans
On Thu, 6 Mar 2008, Colin Percival wrote: Bruce Evans wrote: On Wed, 5 Mar 2008, Colin Percival wrote: You could have stopped this sentence here -- for all practical purposes, correctly rounded trigonometric functions are not feasible. Nah, it's quite feasible, especially for transcend

Re: cvs commit: src/sys/i386/include _types.h

2008-03-06 Thread Bruce Evans
On Wed, 5 Mar 2008, Colin Percival wrote: Bruce Evans wrote: On Wed, 5 Mar 2008, Colin Percival wrote: Bruce Evans wrote: Change float_t and double_t to long double on i386. Doesn't this have a rather severe performance impact on any code which uses double_t? No. As mentioned i

Re: cvs commit: src/sys/i386/include _types.h

2008-03-06 Thread Bruce Evans
On Wed, 5 Mar 2008, David Schultz wrote: On Wed, Mar 05, 2008, Colin Percival wrote: Bruce Evans wrote: Modified files: sys/i386/include _types.h Log: Change float_t and double_t to long double on i386. Doesn't this have a rather severe performance impact on any code

Re: cvs commit: src/sys/i386/include _types.h

2008-03-06 Thread Bruce Evans
On Wed, 5 Mar 2008, Mike Silbersack wrote: On Wed, 5 Mar 2008, Bruce Evans wrote: Change float_t and double_t to long double on i386. All floating point For those of us who are not floating point experts, can you explain a few things? Other points replied to separately. As I've

Re: cvs commit: src/sys/i386/include _types.h

2008-03-06 Thread Bruce Evans
On Wed, 5 Mar 2008, Colin Percival wrote: Mike Silbersack wrote: On Wed, 5 Mar 2008, Bruce Evans wrote: Change float_t and double_t to long double on i386. All floating point 1) Does this really change every double to a long double in anything compiled? No, it changes double_t (which

Re: cvs commit: src/sys/i386/include _types.h

2008-03-06 Thread Bruce Evans
On Thu, 6 Mar 2008, David Schultz wrote: On Thu, Mar 06, 2008, Peter Jeremy wrote: On Wed, Mar 05, 2008 at 10:32:46PM -0500, David Schultz wrote: gcc doesn't get any of this right. FreeBSD/i386 fixes the problem for /doubles/ by setting the i387 to use 53-bit precision. Note that FreeBSD/am

Re: cvs commit: src/sys/i386/include _types.h

2008-03-06 Thread Bruce Evans
Eek, my mailbox filled up overnight. Trying to reply to only some details in LIFO order... On Wed, 5 Mar 2008, Colin Percival wrote: David Schultz wrote: On Wed, Mar 05, 2008, Colin Percival wrote: Setting the i387 FPU to 53-bit precision gives standards-compliant behaviour whether people ar

Re: cvs commit: src/sys/i386/include _types.h

2008-03-05 Thread Bruce Evans
On Wed, 5 Mar 2008, Colin Percival wrote: Bruce Evans wrote: Modified files: sys/i386/include _types.h Log: Change float_t and double_t to long double on i386. Doesn't this have a rather severe performance impact on any code which uses double_t? No. As mentioned i

Re: cvs commit: src/sys/i386/include _types.h

2008-03-05 Thread Bruce Evans
On Thu, 6 Mar 2008, Peter Jeremy wrote: On Wed, Mar 05, 2008 at 11:21:14AM +, Bruce Evans wrote: Log: Change float_t and double_t to long double on i386. All floating point expressions on i386 are evaluated in the range of the long double type, npx.h currently defines

cvs commit: src/sys/i386/include _types.h

2008-03-05 Thread Bruce Evans
bde 2008-03-05 11:21:14 UTC FreeBSD src repository Modified files: sys/i386/include _types.h Log: Change float_t and double_t to long double on i386. All floating point expressions on i386 are evaluated in the range of the long double type, so this is wrong in a diff

cvs commit: src/sys/i386/include float.h

2008-03-05 Thread Bruce Evans
bde 2008-03-05 11:17:21 UTC FreeBSD src repository Modified files: sys/i386/include float.h Log: Oops, back out previous commit since it was to the wrong file. Revision ChangesPath 1.17 +4 -5 src/sys/i386/include/float.h _

cvs commit: src/sys/i386/include float.h

2008-03-05 Thread Bruce Evans
bde 2008-03-05 11:11:53 UTC FreeBSD src repository Modified files: sys/i386/include float.h Log: Change float_t and double_t to long double on i386. All floating point expressions on i386 are evaluated in the range of the long double type, so this is wrong in a diffe

cvs commit: src/lib/msun/src e_rem_pio2.c e_rem_pio2f.c

2008-02-28 Thread Bruce Evans
bde 2008-02-28 16:22:36 UTC FreeBSD src repository Modified files: lib/msun/src e_rem_pio2.c e_rem_pio2f.c Log: Fix and improve some magic numbers for the "medium size" case. e_rem_pio2.c: This case goes up to about 2**20pi/2, but the comment about it said that

cvs commit: src/lib/msun/src e_rem_pio2f.c s_cosf.c s_sinf.c s_tanf.c

2008-02-25 Thread Bruce Evans
bde 2008-02-25 22:19:17 UTC FreeBSD src repository Modified files: lib/msun/src e_rem_pio2f.c s_cosf.c s_sinf.c s_tanf.c Log: Inline __ieee754__rem_pio2f(). On amd64 (A64) and i386 (A64), this gives an average speedup of about 12 cycles or 17% for 9pi/4 < |x| <=

cvs commit: src/lib/msun/src e_rem_pio2.c e_rem_pio2f.c

2008-02-25 Thread Bruce Evans
bde 2008-02-25 18:28:58 UTC FreeBSD src repository Modified files: lib/msun/src e_rem_pio2.c e_rem_pio2f.c Log: Use a temporary array instead of the arg array y[] for calling __kernel_rem_pio2(). This simplifies analysis of aliasing and thus results in better cod

cvs commit: src/lib/msun/src e_rem_pio2f.c math_private.h s_cosf.c s_sinf.c s_tanf.c

2008-02-25 Thread Bruce Evans
bde 2008-02-25 13:33:20 UTC FreeBSD src repository Modified files: lib/msun/src e_rem_pio2f.c math_private.h s_cosf.c s_sinf.c s_tanf.c Log: Change __ieee754_rem_pio2f() to return double instead of float so that this function and its caller

cvs commit: src/lib/msun/src e_rem_pio2.c e_rem_pio2f.c k_rem_pio2.c

2008-02-25 Thread Bruce Evans
bde 2008-02-25 11:43:20 UTC FreeBSD src repository Modified files: lib/msun/src e_rem_pio2.c e_rem_pio2f.c k_rem_pio2.c Log: Fix some off-by-1 errors. e_rem_pio2.c: Float and double precision didn't work because init_jk[] was 1 too small. It needs to be 2 lar

cvs commit: src/lib/msun/src e_rem_pio2.c e_rem_pio2f.c

2008-02-23 Thread Bruce Evans
bde 2008-02-23 12:53:21 UTC FreeBSD src repository Modified files: lib/msun/src e_rem_pio2.c e_rem_pio2f.c Log: Optimize the 9pi/2 < |x| <= 2**19pi/2 case some more by avoiding an fabs(), a conditional branch, and sign adjustments of 3 variables for x < 0 when the

cvs commit: src/lib/msun/src e_rem_pio2.c e_rem_pio2f.c

2008-02-22 Thread Bruce Evans
bde 2008-02-22 18:43:23 UTC FreeBSD src repository Modified files: lib/msun/src e_rem_pio2.c e_rem_pio2f.c Log: Avoid using FP-to-integer conversion for !(amd64 || i386) too. Use the FP-to-FP method to round to an integer on all arches, and convert this to an int

cvs commit: src/lib/msun/src e_rem_pio2.c

2008-02-22 Thread Bruce Evans
bde 2008-02-22 17:26:24 UTC FreeBSD src repository Modified files: lib/msun/src e_rem_pio2.c Log: Remove the "quick check no cancellation" optimization for 9pi/2 < |x| < 32pi/2 since it is only a small or negative optimation and it gets in the way of further optim

cvs commit: src/lib/msun/src e_rem_pio2.c e_rem_pio2f.c

2008-02-22 Thread Bruce Evans
bde 2008-02-22 15:55:15 UTC FreeBSD src repository Modified files: lib/msun/src e_rem_pio2.c e_rem_pio2f.c Log: Optimize the 9pi/2 < |x| <= 2**19pi/2 case on amd64 and i386 by avoiding the the double to int conversion operation which is very slow on these arches.

cvs commit: src/lib/msun/src math_private.h

2008-02-22 Thread Bruce Evans
bde 2008-02-22 14:11:03 UTC FreeBSD src repository Modified files: lib/msun/src math_private.h Log: Add an irint() function in inline asm for amd64 and i386. irint() is the same as lrint() except it returns int instead of long. Though the extern lrint() is fairl

cvs commit: src/lib/msun/src s_rintl.c

2008-02-22 Thread Bruce Evans
bde 2008-02-22 11:59:05 UTC FreeBSD src repository Modified files: lib/msun/src s_rintl.c Log: Optimize the conversion to bits a little (by about 11 cycles or 16% on i386 (A64), 5 cycles on amd64 (A64), and 3 cycles on ia64). gcc tends to generate very bad code f

cvs commit: src/lib/msun/src s_rintl.c

2008-02-22 Thread Bruce Evans
bde 2008-02-22 10:04:53 UTC FreeBSD src repository Modified files: lib/msun/src s_rintl.c Log: Optimize the fixup for +-0 by using better classification for this case and by using a table lookup to avoid a branch when this case occurs. On i386, this saves 1-4 cycl

cvs commit: src/lib/msun/src s_rintl.c

2008-02-22 Thread Bruce Evans
bde 2008-02-22 09:21:14 UTC FreeBSD src repository Modified files: lib/msun/src s_rintl.c Log: Fix rintl() on signaling NaNs and unsupported formats. Revision ChangesPath 1.3 +3 -5 src/lib/msun/src/s_rintl.c _

cvs commit: src/lib/msun/src e_rem_pio2f.c

2008-02-19 Thread Bruce Evans
bde 2008-02-19 15:42:46 UTC FreeBSD src repository Modified files: lib/msun/src e_rem_pio2f.c Log: Merge cosmetic changes from e_rem_pio2.c 1.10 (convert to __FBSDID(); fix indentation and return type of __ieee754_rem_pio2()). Remove unused variables. Revi

cvs commit: src/lib/msun/src e_rem_pio2.c

2008-02-19 Thread Bruce Evans
bde 2008-02-19 15:30:58 UTC FreeBSD src repository Modified files: lib/msun/src e_rem_pio2.c Log: Optimize for 3pi/4 <= |x| <= 9pi/4 in much the same way as for pi/4 <= |x| <= 3pi/4. Use the same branch ladder as for float precision. Remove the optimization for |

cvs commit: src/lib/msun/src k_cos.c k_sin.c

2008-02-19 Thread Bruce Evans
bde 2008-02-19 12:54:14 UTC FreeBSD src repository Modified files: lib/msun/src k_cos.c k_sin.c Log: Rearrange the polynomial evaluation for better parallelism. This saves an average of about 8 cycles or 5% on A64 (amd64 and i386 -- more in cycles but about the s

cvs commit: src/lib/msun/ld80 k_tanl.c

2008-02-18 Thread Bruce Evans
bde 2008-02-18 15:39:52 UTC FreeBSD src repository Modified files: lib/msun/ld80k_tanl.c Log: 2 long double constants were missing L suffixes. This helped break tanl() on !(amd64 || i386). It gave slightly worse than double precision in some cases. tanl() now p

cvs commit: src/lib/msun/ld80 k_tanl.c

2008-02-18 Thread Bruce Evans
bde 2008-02-18 14:09:41 UTC FreeBSD src repository Modified files: lib/msun/ld80k_tanl.c Log: Fix a typo which broke k_tanl.c on !(amd64 || i386). Revision ChangesPath 1.2 +1 -1 src/lib/msun/ld80/k_tanl.c

cvs commit: src/lib/msun/src e_rem_pio2.c s_cos.c s_sin.c s_tan.c

2008-02-18 Thread Bruce Evans
bde 2008-02-18 14:02:12 UTC FreeBSD src repository Modified files: lib/msun/src e_rem_pio2.c s_cos.c s_sin.c s_tan.c Log: Inline __ieee754__rem_pio2(). With gcc4-2, this gives an average optimization of about 10% for cos(x), sin(x) and tan(x) on |x| < 2**19*pi/2.

cvs commit: src/lib/msun/src s_ceil.c s_floor.c s_trunc.c

2008-02-14 Thread Bruce Evans
bde 2008-02-15 07:01:40 UTC FreeBSD src repository Modified files: lib/msun/src s_ceil.c s_floor.c s_trunc.c Log: Sigh, the weak reference for ceill(), floorl() and truncl() was in unreachable code due to a missing include. This kept arm and powerpc broken.

cvs commit: src/lib/msun/src s_ceil.c s_ceill.c s_floor.c s_floorl.c s_trunc.c s_truncl.c

2008-02-14 Thread Bruce Evans
bde 2008-02-14 15:10:34 UTC FreeBSD src repository Modified files: lib/msun/src s_ceil.c s_ceill.c s_floor.c s_floorl.c s_trunc.c s_truncl.c Log: Oops, the weak reference for ceill(), floorl() and truncl() was in the wrong file. This broke

cvs commit: src/lib/msun/src e_hypot.c e_hypotf.c

2008-02-14 Thread Bruce Evans
bde 2008-02-14 13:44:03 UTC FreeBSD src repository Modified files: lib/msun/src e_hypot.c e_hypotf.c Log: Use the expression fabs(x+0.0)+fabs(y+0.0) instad of a+b (where a is |x| or |y| and b is |y| or |x|) when mixing NaN arg(s). hypot*() had its own foot shoo

cvs commit: src/lib/msun/src e_pow.c e_powf.c

2008-02-14 Thread Bruce Evans
bde 2008-02-14 12:56:35 UTC FreeBSD src repository Modified files: lib/msun/src e_pow.c e_powf.c Log: Forced commit to note that the minus sign in the fancy expression (x+0.0)-(y+0.0) for mixing NaNs documented in a previous log message didn't actually get committ

cvs commit: src/lib/msun/src e_powf.c

2008-02-14 Thread Bruce Evans
bde 2008-02-14 10:23:51 UTC FreeBSD src repository Modified files: lib/msun/src e_powf.c Log: Fix the hi+lo decomposition for 2/(3ln2). The decomposition needs to be into 12+24 bits of precision for extra-precision multiplication, but was into 13+24 bits. On i38

cvs commit: src/lib/msun/src e_pow.c e_powf.c

2008-02-14 Thread Bruce Evans
bde 2008-02-14 09:42:24 UTC FreeBSD src repository Modified files: lib/msun/src e_pow.c e_powf.c Log: Use the expression (x+0.0)-(y+0.0) instead of x+y when mixing NaN arg(s). This uses 2 tricks to improve consistency so that more serious problems aren't hidden in

cvs commit: src/lib/msun/src s_ceill.c s_floorl.c s_truncl.c

2008-02-13 Thread Bruce Evans
bde 2008-02-13 18:16:43 UTC FreeBSD src repository Modified files: lib/msun/src s_ceill.c s_floorl.c s_truncl.c Log: Forced commit to note that the lost log message for the previous commit said that the previous commit was almost a null forced commit too. It just

cvs commit: src/lib/msun/src s_ceill.c s_floorl.c s_truncl.c

2008-02-13 Thread Bruce Evans
bde 2008-02-13 17:38:17 UTC FreeBSD src repository Modified files: lib/msun/src s_ceill.c s_floorl.c s_truncl.c Log: s_ceill.c s_floorl.c s_truncl.c Revision ChangesPath 1.7 +2 -3 src/lib/msun/src/s_ceill.c 1.6 +2 -3 src/lib/msu

cvs commit: src/lib/msun/src s_ceill.c s_floorl.c s_truncl.c src/lib/msun Makefile

2008-02-13 Thread Bruce Evans
bde 2008-02-13 16:56:52 UTC FreeBSD src repository Modified files: lib/msun/src s_ceill.c s_floorl.c s_truncl.c lib/msun Makefile Log: On arches where long double is the same as double, alias ceil(), floor() and trunc() to the corresponding long dou

cvs commit: src/lib/msun/src s_ceill.c

2008-02-13 Thread Bruce Evans
bde 2008-02-13 15:22:53 UTC FreeBSD src repository Modified files: lib/msun/src s_ceill.c Log: Fix the C version of ceill(x) for -1 < x <= -0 in all rounding modes. The result should be -0, but was +0. Revision ChangesPath 1.5 +1 -1 src/lib/ms

cvs commit: src/lib/msun/src s_exp2.c s_exp2f.c src/lib/msun/ld128 s_exp2l.c src/lib/msun/ld80 s_exp2l.c

2008-02-13 Thread Bruce Evans
bde 2008-02-13 10:44:45 UTC FreeBSD src repository Modified files: lib/msun/src s_exp2f.c s_exp2.c lib/msun/ld128 s_exp2l.c lib/msun/ld80s_exp2l.c Log: Fix exp2*(x) on signaling NaNs by returning x+x as usual. This has the side effect of c

cvs commit: src/lib/msun/src s_exp2f.c

2008-02-13 Thread Bruce Evans
bde 2008-02-13 08:36:13 UTC FreeBSD src repository Modified files: lib/msun/src s_exp2f.c Log: Rearrange the polynomial evaluation for better parallelism. This is faster on all machines tested (old Celeron (P2), A64 (amd64 and i386) and ia64) except on ia64 when

cvs commit: src/lib/msun/amd64 Makefile.inc e_remainder.S e_remainderf.S

2008-02-12 Thread Bruce Evans
bde 2008-02-13 06:01:49 UTC FreeBSD src repository Modified files: lib/msun/amd64 Makefile.inc Added files: lib/msun/amd64 e_remainder.S e_remainderf.S Log: Use hardware remainder on amd64 since it is 5 to 10 times faster than software remainder and is al

cvs commit: src/lib/msun/src e_remainder.c e_remainderf.c

2008-02-12 Thread Bruce Evans
bde 2008-02-12 17:11:36 UTC FreeBSD src repository Modified files: lib/msun/src e_remainder.c e_remainderf.c Log: Fix remainder() and remainderf() in round-towards-minus-infinity mode when the result is +-0. IEEE754 requires (in all rounding modes) that if the re

cvs commit: src/lib/msun/src s_exp2f.c

2008-02-10 Thread Bruce Evans
bde 2008-02-11 05:20:02 UTC FreeBSD src repository Modified files: lib/msun/src s_exp2f.c Log: Use double precision for z and thus for the entire calculation of exp2(i/TBLSIZE) * p(z) instead of only for the final multiplication and addition. This fixes the code

cvs commit: src/lib/msun/src s_expm1f.c

2008-02-09 Thread Bruce Evans
bde 2008-02-09 12:53:15 UTC FreeBSD src repository Modified files: lib/msun/src s_expm1f.c Log: As usual, use a minimax polynomial that is specialized for float precision. The new polynomial has degree 4 instead of 10, and a maximum error of 2**-30.04 ulps instea

cvs commit: src/lib/msun/src s_expm1.c

2008-02-09 Thread Bruce Evans
bde 2008-02-09 10:36:08 UTC FreeBSD src repository Modified files: lib/msun/src s_expm1.c Log: Fix a comment about coefficients and expand a related one. Revision ChangesPath 1.9 +2 -2 src/lib/msun/src/s_expm1.c _

cvs commit: src/lib/msun/src s_truncl.c

2008-02-07 Thread Bruce Evans
bde 2008-02-08 01:45:52 UTC FreeBSD src repository Modified files: lib/msun/src s_truncl.c Log: Fix truncl() when the result should be -0.0L. When the result is +-0.0L, it must have the same sign as the arg in all rounding modes, but it was always +0.0L. Rev

cvs commit: src/lib/msun/src s_logb.c

2008-02-07 Thread Bruce Evans
bde 2008-02-08 01:22:13 UTC FreeBSD src repository Modified files: lib/msun/src s_logb.c Log: Oops, fix the fix in rev.1.10. logb() and logbf() were broken on denormals, and logb() remained broken after 1.10 because the fix for logbf() was incompletely translated

cvs commit: src/lib/msun/src s_expm1.c s_expm1f.c

2008-02-07 Thread Bruce Evans
bde 2008-02-07 09:42:19 UTC FreeBSD src repository Modified files: lib/msun/src s_expm1.c s_expm1f.c Log: Use a better method of scaling by 2**k. Instead of adding to the exponent bits of the reduced result, construct 2**k (hopefully in parallel with the construc

cvs commit: src/lib/msun/ld128 s_exp2l.c src/lib/msun/ld80 s_exp2l.c src/lib/msun/src e_exp.c e_expf.c s_exp2.c s_exp2f.c

2008-02-06 Thread Bruce Evans
bde 2008-02-07 03:17:05 UTC FreeBSD src repository Modified files: lib/msun/ld128 s_exp2l.c lib/msun/ld80s_exp2l.c lib/msun/src e_exp.c e_expf.c s_exp2.c s_exp2f.c Log: Use a better method of scaling by 2**k. Instead of adding to the exponen

cvs commit: src/lib/msun/src e_expf.c

2008-02-05 Thread Bruce Evans
bde 2008-02-06 06:35:21 UTC FreeBSD src repository Modified files: lib/msun/src e_expf.c Log: As for the float trig functions and logf, use a minimax polynomial that is specialized for float precision. The new polynomial has degree 5 instead of 11, and a maximum

Re: cvs commit: src UPDATING src/include fts.h src/lib/libc/gen Makefile.inc Symbol.map fts-compat.c fts-compat.h fts.3 fts.c src/sys/sys param.h

2008-01-28 Thread Bruce Evans
On Mon, 28 Jan 2008, Yar Tikhiy wrote: On Mon, Jan 28, 2008 at 08:28:27AM -1000, Juli Mallett wrote: * Yar Tikhiy <[EMAIL PROTECTED]> [ 2008-01-28 ] [ Re: cvs commit: src UPDATING src/include fts.h src/lib/libc/gen Makefile.inc Symbol.map fts-compat.c fts-compat.h fts.3 fts.c src/sys/s

cvs commit: src/lib/msun/src k_cos.c

2008-01-25 Thread Bruce Evans
bde 2008-01-25 21:09:21 UTC FreeBSD src repository Modified files: lib/msun/src k_cos.c Log: Fix a harmless type error in 1.9. Revision ChangesPath 1.11 +1 -1 src/lib/msun/src/k_cos.c ___ cvs-all@freebs

cvs commit: src/lib/msun/src s_log1pf.c

2008-01-21 Thread Bruce Evans
bde 2008-01-21 13:46:21 UTC FreeBSD src repository Modified files: lib/msun/src s_log1pf.c Log: Fix cutoffs. This is just a cleanup and an optimization for unusual cases which are used mainly by regression tests. As usual, the cutoff for tiny args was not corr

cvs commit: src/lib/msun/src k_rem_pio2.c

2008-01-19 Thread Bruce Evans
bde 2008-01-20 04:09:44 UTC FreeBSD src repository Modified files: lib/msun/src k_rem_pio2.c Log: Oops, when merging from the float version to the double versions, don't forget to translate "float" to "double". ucbtest didn't detect the bug, but exhaustive test

cvs commit: src/lib/msun/src k_rem_pio2f.c

2008-01-19 Thread Bruce Evans
bde 2008-01-19 22:50:50 UTC FreeBSD src repository Removed files: lib/msun/src k_rem_pio2f.c Log: Remove the float version of the kernel of arg reduction for pi/2, since it should never have existed and it has not been used for many years (floats are reduced faste

cvs commit: src/lib/msun/src math_private.h

2008-01-19 Thread Bruce Evans
bde 2008-01-19 22:05:14 UTC FreeBSD src repository Modified files: lib/msun/src math_private.h Log: Do an ordinary assignment in STRICT_ASSIGN() except for floats until there is a problem with non-floats (when i386 defaults to extra precision). This essentially r

cvs commit: src/lib/msun/src s_exp2.c s_exp2f.c

2008-01-19 Thread Bruce Evans
bde 2008-01-19 21:37:14 UTC FreeBSD src repository Modified files: lib/msun/src s_exp2.c s_exp2f.c Log: Use STRICT_ASSIGN() for exp2f() and exp2() instead of a volatile variable hack for exp2f() only. The volatile variable had a surprisingly large cost for exp2

cvs commit: src/lib/msun/src k_rem_pio2.c k_rem_pio2f.c

2008-01-19 Thread Bruce Evans
bde 2008-01-19 20:02:55 UTC FreeBSD src repository Modified files: lib/msun/src k_rem_pio2.c k_rem_pio2f.c Log: Use STRICT_ASSIGN() for _kernel_rem_pio2f() and _kernel_rem_pio2f() instead of a volatile cast hack for the float version only. The cast hack broke wit

cvs commit: src/lib/msun/src s_log1p.c s_log1pf.c

2008-01-19 Thread Bruce Evans
bde 2008-01-19 18:13:21 UTC FreeBSD src repository Modified files: lib/msun/src s_log1p.c s_log1pf.c Log: Use STRICT_ASSIGN() for log1pf() and log1p() instead of a volatile cast hack for log1pf() only. The cast hack broke with gcc-4, resulting in ~1 million error

cvs commit: src/lib/msun/src s_rint.c s_rintf.c

2008-01-19 Thread Bruce Evans
bde 2008-01-19 16:37:57 UTC FreeBSD src repository Modified files: lib/msun/src s_rint.c s_rintf.c Log: Use STRICT_ASSIGN() instead of assorted direct volatile hacks to work around assignments not working for gcc on i386. Now volatile hacks for rint() and rintf()

cvs commit: src/lib/msun/src math_private.h

2008-01-17 Thread Bruce Evans
bde 2008-01-17 17:02:11 UTC FreeBSD src repository Modified files: lib/msun/src math_private.h Log: Add a macro STRICT_ASSIGN() to help avoid the compiler bug that assignments and casts don't clip extra precision, if any. The implementation is to assign to a temp

cvs commit: src/lib/libc/amd64 _fpmath.h src/lib/libc/i386 _fpmath.h src/lib/libc/ia64 _fpmath.h

2008-01-17 Thread Bruce Evans
bde 2008-01-17 16:39:07 UTC FreeBSD src repository Modified files: lib/libc/amd64 _fpmath.h lib/libc/i386_fpmath.h lib/libc/ia64_fpmath.h Log: Add an alternative view of the bits in an 80-bit long double (64+16 instead of 32+32+15+1) on all a

cvs commit: src/sys/amd64/include _types.h float.h

2008-01-17 Thread Bruce Evans
bde 2008-01-17 13:12:47 UTC FreeBSD src repository Modified files: sys/amd64/include_types.h float.h Log: Translate from the i386. All FP constants and operations are evaluated in the range and precision of their type(s) on amd64, but FLT_EVAL_METHOD said that they w

Re: cvs commit: src/usr.sbin/iostat iostat.c

2008-01-13 Thread Bruce Evans
On Sun, 13 Jan 2008, [utf-8] Dag-Erling Sm??rgrav wrote: David Schultz <[EMAIL PROTECTED]> writes: I don't think it always does set errno, but you can set errno to 0 before the call, and you'll get either the real error message from err() or "unknown error". If asprintf() fails because malloc

cvs commit: src/sys/i386/include ieeefp.h

2008-01-11 Thread Bruce Evans
bde 2008-01-11 18:59:35 UTC FreeBSD src repository Modified files: sys/i386/include ieeefp.h Log: MFamd64 (everything possible up to 1.19; mainly the amd64 implementations of fpget*() and fpset*()). The i386 fpget*() were efficient but a bit obfuscated (using macro

cvs commit: src/sys/i386/include ieeefp.h

2008-01-11 Thread Bruce Evans
bde 2008-01-11 18:27:01 UTC FreeBSD src repository Modified files: sys/i386/include ieeefp.h Log: Separate fpresetsticky() from the other fpset functions so that the others can be replaced cleanly by the amd64 versions. There is no current amd64 version to merge, bu

cvs commit: src/sys/i386/include ieeefp.h

2008-01-11 Thread Bruce Evans
bde 2008-01-11 17:54:20 UTC FreeBSD src repository Modified files: sys/i386/include ieeefp.h Log: MFamd64 1.15-1.18 (cosmetic changes, mainly to comments). The inline functions haven't been cleaned up here because the amd64 cleanups don't apply directly and the funct

cvs commit: src/sys/amd64/include ieeefp.h

2008-01-11 Thread Bruce Evans
bde 2008-01-11 17:11:32 UTC FreeBSD src repository Modified files: sys/amd64/includeieeefp.h Log: Fix fpset*() to not trap if there is a currently unmasked exception. Unmasked exceptions (which can be fixed up using fpset*() before they trap) are very rare, especially

cvs commit: src/sys/amd64/include ieeefp.h

2008-01-11 Thread Bruce Evans
bde 2008-01-11 14:11:46 UTC FreeBSD src repository Modified files: sys/amd64/includeieeefp.h Log: Fix some style bugs: - fix a previous style fix: shifts should be in the correct direction even if they are null. - restore a comment about namespace pollution from f

  1   2   3   4   5   6   >