Commit Graph

15 Commits

Author SHA1 Message Date
bjh21
936b7f4cf8 Import the 32-bit version of SoftFloat 2a and separate it and the 64-bit
version into different directories.  Which version a given port uses is
controlled by the SOFTFLOAT_BITS make variable.  This is set to 64 (which
uses the same code we had before) by default.  32-bit platforms that don't
need extended precision support might get better performance by using 32.

Set the ARM port to use the 32-bit version of SoftFloat, since this is more
than a factor of two faster than the 64-bit version.  This should get the
floating-point performance back to what it was in 1.5.
2002-05-21 23:51:04 +00:00
bjh21
010758bf16 Add SIGFPE support to SoftFloat, so fpsetmask/fpgetmask now work. A new
variable, float_exception_mask (#defined to _softfloat_float_exception_mask)
contains the current exception mask.
Also make the argument to float_raise into an fp_except.
Also synchronise file header comments between files.
2002-05-12 13:12:45 +00:00
bjh21
9ec812439b In float*_round_to_int(), where we have switches over rounding modes, make
sure that all the modes are mentioned, if only with a "break;".  This
ensures GCC doesn't whinge at us on ports which use an enum for fp_rnd.
2002-05-07 10:02:42 +00:00
bjh21
251de84ccc Consistently declare the types of float_rounding_mode and float_exception_flags
as fp_rnd and fp_except respectively.
2002-05-06 19:05:00 +00:00
thorpej
f7d7544c87 Rename a local variable to avoid a shadow decl warning. 2002-05-05 20:00:51 +00:00
agc
b42bb2abdc After the grand unification of softfloat-specialize, let sparc64 builds
work properly again.
2002-04-23 11:59:25 +00:00
bjh21
25540eca7e All the versions of softfloat-specialize were practically identical, so replace
them with a single one.
2002-04-21 21:07:35 +00:00
bjh21
6b92497159 Only include roundAndPackInt32(), roundAndPackInt64() and estimateSqrt32()
if we actually need them for 80/128-bit support.

I'm not sure this is Right, but I suspect the #ifdefs around here need
revising to handle sparc64 nicely anyway.  Still, it compiles on ARM again
now.
2002-03-10 14:15:08 +00:00
jmc
76d76229ee Unblock a few routines that are needed if 128bit support is being pulled in. 2002-03-04 21:27:19 +00:00
thorpej
5d3e829423 Add internal names for fp{get,set}{mask,round,sticky}(), and
externally-visible weak aliases for the internal names.
2002-01-13 21:45:39 +00:00
ross
64846612a5 fix WARNS triggered by reachover makefile under regress 2001-03-13 08:15:14 +00:00
bjh21
6964bdfcad Re-instate __fixunssfsi() and __fixunsdfsi(), but only for arm32 with a.out
binaries, because libc's provided them there forever.
2001-03-08 18:56:19 +00:00
bjh21
3b9cd873cb Revert previous change -- turned out I'd got my build environment in a twist. 2000-07-15 15:07:34 +00:00
bjh21
985033a7a6 Add fixunssfsi and fixunsdfsi. These are provided by libgcc2.c in GCC 2.95,
but not in EGCS.

This version of fixunssfsi is almost exactly the arm32 version.  fixunsdfsi is
mostly based on fixdfsi, but with simplifications for 64-bit integers.

Only minimal testing has been applied so far.
2000-07-15 13:26:50 +00:00
bjh21
4472dbe5e3 Initial commit of SoftFloat 2a import. This should provide a sensible
mostly-MI floating-point implementation for use by gcc -msoft-float.
It's currently only used by arm26, but should be usable by other ports
without too much hacking, assuming doubles and u_int64_ts are passed and
returned the same way, and FP formats are IEEEish.
2000-06-06 08:14:49 +00:00