Commit Graph

46 Commits

Author SHA1 Message Date
matt 536ad83369 Add hooks to softfloat to support per-lwp exception state. 2013-01-10 08:16:10 +00:00
he 341f22eefb Fix make syntax problem by putting the condition on the same line as .elif. 2012-11-16 12:38:09 +00:00
msaitoh 71f1d3fc0f For arm, add -fno-tree-vrp to COPTS when compiling softfloat.c.
Without -fno-tree-vrp, -INF + -INF returns 0 by adddf3.
Fixes PR#46953.
2012-11-14 03:47:30 +00:00
matt fba9f55f04 ARM EABI (AAPCS) uses different names for the softfloat routines that
the normal GCC ones.  So after we redefine softfloat's to be what (old) GCC
wants, we redefined the old GCC names to what ARM EABI want (but only if we
are using ARM EABI).  We do this for routines not compiled by softfloat so
can just have these redefinitions in one place.
2012-08-05 04:27:42 +00:00
matt 05c78a4552 Fix a bug introduced by lint cleanup. 2012-03-24 00:06:20 +00:00
christos de7ac11be7 add casts 2012-03-21 14:17:54 +00:00
christos 39052f3b3d cast to appropriate types. 2012-03-21 02:32:26 +00:00
martin 2335ebce2c Remove initialized but unused variable 2012-03-20 21:34:51 +00:00
matt 23282762ff Fix so that float128_to_uint64_round_to_zero is defined for sparc64.
(isn't tha a namespace violation?)
2011-07-10 04:52:23 +00:00
matt e17674a5a4 Add SOFTFLOAT_NEED_FIXUNS condition around the float128 fixuns 2011-07-09 02:28:31 +00:00
matt c2405fa58b Add __floatunsidf __floatunsisf __floatunsitf routines.
XXX i think they are correct but not sure.
2011-07-04 08:02:34 +00:00
mrg fb6b921228 sh3 also needs -Wno-enum-compare here. 2011-07-04 02:53:15 +00:00
mrg 462a335ff0 mips wants some -Wno-enum-compare here, too. 2011-07-03 15:26:58 +00:00
mrg 680385b441 XXX: apply -Wno-error/friends to a few files 2011-07-01 01:25:52 +00:00
martin 598174eb2b Apply local namespace protection equivalent to the weak alias done
in softfloat-for-gcc.h, which we can't include here, to move
"float_exception_mask" into implementation namespace.
2011-03-06 10:27:37 +00:00
martin a5ad420211 Use sigqueueinfo() instead of raise() to generate exceptions. Provide
minimalistic siginfo data.
2011-03-04 11:48:58 +00:00
matt 50078c4d66 Add long double functions for eq,ne,gt,le,ge,lt,neg ops. 2011-01-17 10:08:35 +00:00
matt 2288207161 Merge from matt-nb5-mips64. 2009-12-14 01:07:41 +00:00
uebayasi 0b52043222 Fix typo in previous. 2009-12-06 11:16:26 +00:00
uebayasi f0d2ed931c Assign quad / softfloat specific ${SRCS} to ${SRCS.quad} / ${SRCS.softfloat}
then append them to ${SRCS}.  Those will be used to generate quad / softfloat
symbol lists.
2009-12-06 05:34:42 +00:00
lukem d52f6f4b6b fix -Wsign-compare issue (seen on arm), using similar technique
to ../bits64/softfloat-macros
2009-02-17 02:43:39 +00:00
tron ea68052342 fix -Wsign-compare issue (on sparc64) 2009-02-16 10:23:35 +00:00
martin ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
martin 4cdfe9d3ee When creating unsigned int results, do not distinguish positive versus
negative overflow.
2007-11-08 21:31:04 +00:00
martin 5265977a9e When converting long double values to integer types, explicitly use the
"round to zero" variants of the softfloat conversion functions.
Add a variant to convert long double to unsigned long - the "to long"
variant checked for overflows that do not apply to unsigned results.
This fixes the regress/lib/libc/convfp tests for sparc64.
2007-11-08 15:50:19 +00:00
christos 1665d5e960 fix spelling of accommodate; from Zapher. 2006-11-24 19:46:58 +00:00
mrg 77c7eed08d add128() wants bits64 * as it's 5th argument. 2006-05-11 16:38:44 +00:00
he 9ac3a85e48 Only compile the floatx80-using functions if the arch in question
defines the FLOATX80 macro.  Fixes build problem for arm ports.
2004-09-27 10:16:24 +00:00
jmmv 8a1eb34d66 Add support to build the mac68k port with soft-float enabled (i.e., setting
MKSOFTFLOAT=yes).  The main purpose of this feature is to let NetBSD work
in machines with the 68040LC chip (those that have the FPU bug).

All the work has been done by Bruce O'Neel <edoneel AT sdf.lonestar.org>,
with some very minor changes by me; the patches were being posted to the
port-mac68k mailing list.  It has been tested for a long time by several
users, including me.

I have just verified that regular releases, as well as soft-float ones,
continue to build.

There have been no objections to this patch since I asked for them in July
in the port-mac68k list.
2004-09-26 21:13:27 +00:00
salo 99410184e7 netbsd.org->NetBSD.org 2003-07-26 19:24:24 +00:00
rearnsha 033db35cb2 GCC-3 requires a libcall to support testing for unordered. 2003-05-06 08:58:19 +00:00
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