freebsd-dev/lib/msun
Bruce Evans 3454a5a101 Removed the optimized asm versions of scalb() and scalbf(). These
functions are only for compatibility with obsolete standards.  They
shouldn't be used, so they shouldn't be optimized.  Use the generic
versions instead.

This fixes scalbf() as a side effect.  The optimized asm version left
garbage on the FP stack.  I fixed the corresponding bug in the optimized
asm scalb() and scalbn() in 1996.  NetBSD fixed it in scalb(), scalbn()
and scalbnf() in 1999 but missed fixing it in scalbf().  Then in 2005
the bug was reimplemented in FreeBSD by importing NetBSD's scalbf().

The generic versions have slightly different error handling:
- the asm versions blindly round the second parameter to a (floating
  point) integer and proceed, while the generic versions return NaN
  if this rounding changes the value.  POSIX permits both behaviours
  (these functions are XSI extensions and the behaviour for a bogus
  non-integral second parameter is unspecified).   Apart from this
  and the bug in scalbf(), the behaviour of the generic versions seems
  to be identical.  (I only exhusatively tested
  generic_scalbf(1.0F, anyfloat) == asm_scalb(1.0F, anyfloat).  This
  covers many representative corner cases involving NaNs and Infs but
  doesn't test exception flags.  The brokenness of scalbf() showed up
  as weird behaviour after testing just 7 integer cases sequentially.)
2006-07-05 20:06:42 +00:00
..
alpha Add symbol versioning to libm. 2006-03-27 23:59:45 +00:00
amd64 Add symbol versioning to libm. 2006-03-27 23:59:45 +00:00
arm Add symbol versioning to libm. 2006-03-27 23:59:45 +00:00
bsdsrc Removed an unused declaration which was so old that it wasn't a prototype 2005-11-18 05:03:12 +00:00
i387 Removed the optimized asm versions of scalb() and scalbf(). These 2006-07-05 20:06:42 +00:00
ia64 Add symbol versioning to libm. 2006-03-27 23:59:45 +00:00
man s/5.5/6.0/ in HISTORY section. 2005-11-24 09:25:10 +00:00
powerpc Add symbol versioning to libm. 2006-03-27 23:59:45 +00:00
sparc64 Add symbol versioning to libm. 2006-03-27 23:59:45 +00:00
src Backed out rev.1.10. It tried to implement ldexpf() as a weak reference 2006-07-05 02:16:29 +00:00
Makefile Add symbol versioning to libm. 2006-03-27 23:59:45 +00:00
Symbol.map Add symbol versioning to libm. 2006-03-27 23:59:45 +00:00