Date: Sat, 4 Feb 2006 04:58:40 +1100 (EST) From: Bruce Evans <bde@zeta.org.au> To: "O. Hartmann" <ohartman@uni-mainz.de> Cc: "O. Hartmann" <ohartman@mail.uni-mainz.de>, freebsd-stable@FreeBSD.org, freebsd-amd64@FreeBSD.org Subject: Re: missing fpresetsticky in ieeefp.h Message-ID: <20060204042336.F11473@delplex.bde.org> In-Reply-To: <43E1FD40.9060408@uni-mainz.de> References: <43E1D1E9.3000302@mail.uni-mainz.de> <43E1E8B0.3030702@uni-mainz.de> <20060202224815.K7234@delplex.bde.org> <43E1FD40.9060408@uni-mainz.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 2 Feb 2006, O. Hartmann wrote: > Bruce Evans schrieb: >> On Thu, 2 Feb 2006, O. Hartmann wrote: >> ... >>>> Now take a look into <machine/ieeefp.h>, where this function should be >>>> declared. Nothing, I can not find this routine, it seems to be 'not >>>> available' on my FreeBSD6.1-PRERELEASE AMD64 (no 32Bit compatibility). >> >> It was removed for amd64 and never existed for some other arches. It was [fresetsticky()] >> apparently unused when it was removed a year ago. >> ... >> % RCS file: /home/ncvs/src/sys/amd64/include/ieeefp.h,v >> ... >> % revision 1.13 > ... > Thanks a lot. In prior software compilations of GMT on FBSD/AMD64 I commented > out the appropriate line in gmt_init.c without any hazardous effects - but I > never used GMT that intensive having ever recognozed any malicious side > effects. > > I should contact the guys from Soest/Hawaii asking them for any serious > effects commenting out this line on amd64 architectures. I think it is probably used only for error detection, if at all. Accumulated IEEE exceptions are supposed to be read using fpgetsticky() and then cleared using fp[re]setsticky() so that the next set accumulated can be distinguished from the old set. Applications should now use fesetexceptflag() instead of fp[re]setsticky(). BTW, the most useful fp* functions other than fp[re]setsticky(), namely fp{get,set}round(), never worked on ia64 due to the rounding flags values being misspelled, so there are unlikely to be any portable uses of the fp* functions in ports. The corresponding fe{get,set}round() functions work on at least i386, amd64 and ia64. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060204042336.F11473>