1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-22 11:17:19 +00:00
freebsd/lib/libc/softfloat
David Schultz 7b74e4a759 Remove fpsetsticky(). This was added for SysV compatibility, but due
to mistakes from day 1, it has always had semantics inconsistent with
SVR4 and its successors.  In particular, given argument M:

- On Solaris and FreeBSD/{alpha,sparc64}, it clobbers the old flags
  and *sets* the new flag word to M.  (NetBSD, too?)
- On FreeBSD/{amd64,i386}, it *clears* the flags that are specified in M
  and leaves the remaining flags unchanged (modulo a small bug on amd64.)
- On FreeBSD/ia64, it is not implemented.

There is no way to fix fpsetsticky() to DTRT for both old FreeBSD apps
and apps ported from other operating systems, so the best approach
seems to be to kill the function and fix any apps that break.  I
couldn't find any ports that use it, and any such ports would already
be broken on FreeBSD/ia64 and Linux anyway.

By the way, the routine has always been undocumented in FreeBSD,
except for an MLINK to a manpage that doesn't describe it.  This
manpage has stated since 5.3-RELEASE that the functions it describes
are deprecated, so that must mean that functions that it is *supposed*
to describe but doesn't are even *more* deprecated.  ;-)

Note that fpresetsticky() has been retained on FreeBSD/i386.  As far
as I can tell, no other operating systems or ports of FreeBSD
implement it, so there's nothing for it to be inconsistent with.

PR:		75862
Suggested by:	bde
2005-03-15 15:53:39 +00:00
..
bits32
bits64
templates
eqdf2.c
eqsf2.c
fpgetmask.c
fpgetround.c
fpgetsticky.c
fpsetmask.c
fpsetround.c
fpsetsticky.c
gedf2.c
gesf2.c
gtdf2.c
gtsf2.c
ledf2.c
lesf2.c
ltdf2.c
ltsf2.c
Makefile.inc Remove fpsetsticky(). This was added for SysV compatibility, but due 2005-03-15 15:53:39 +00:00
nedf2.c
negdf2.c
negsf2.c
nesf2.c
README.NetBSD
README.txt
softfloat-for-gcc.h
softfloat-history.txt
softfloat-source.txt
softfloat-specialize
softfloat.txt
timesoftfloat.c
timesoftfloat.txt
unorddf2.c
unordsf2.c

$NetBSD: README.txt,v 1.1 2000/06/06 08:15:02 bjh21 Exp $
$FreeBSD$

Package Overview for SoftFloat Release 2a

John R. Hauser
1998 December 13


SoftFloat is a software implementation of floating-point that conforms to
the IEC/IEEE Standard for Binary Floating-Point Arithmetic.  SoftFloat is
distributed in the form of C source code.  Compiling the SoftFloat sources
generates two things:

-- A SoftFloat object file (typically `softfloat.o') containing the complete
   set of IEC/IEEE floating-point routines.

-- A `timesoftfloat' program for evaluating the speed of the SoftFloat
   routines.  (The SoftFloat module is linked into this program.)

The SoftFloat package is documented in four text files:

   softfloat.txt          Documentation for using the SoftFloat functions.
   softfloat-source.txt   Documentation for compiling SoftFloat.
   softfloat-history.txt  History of major changes to SoftFloat.
   timesoftfloat.txt      Documentation for using `timesoftfloat'.

Other files in the package comprise the source code for SoftFloat.

Please be aware that some work is involved in porting this software to other
targets.  It is not just a matter of getting `make' to complete without
error messages.  I would have written the code that way if I could, but
there are fundamental differences between systems that I can't make go away.
You should not attempt to compile SoftFloat without first reading both
`softfloat.txt' and `softfloat-source.txt'.

At the time of this writing, the most up-to-date information about
SoftFloat and the latest release can be found at the Web page `http://
HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/SoftFloat.html'.