History log of /src/lib/libc/softfloat/softfloat-specialize |
Revision | | Date | Author | Comments |
1.14 |
| 17-Sep-2025 |
nat | Fix logic pertaining to NaN for floatx80.
The previous was wrong in that low and high were mixed up.
The only exisiting consumer on floatx80 types and softfloat is m68k.
|
1.13 |
| 17-Sep-2025 |
nat | Shift the high word of floatx80 accordingly on m68k.
This is because gcc will store floatx80 as signbit(1)exponent(15) padding(32) as opposed to sign and exponent in a short(16 bit) word.
|
1.12 |
| 10-Sep-2025 |
nat | Switch over m68k soffloat build to libc/softfloat.
m68k would previously use softfloat functions contained in libgcc_s.
This change aligns m68k with other platforms built with softfloat.
It is still possible to build the gcc_s softfloat impementation by setting MKSOFFTFLOAT=yes MKLIBCSOFTFLOAT=no
Addresses PR/59393.
|
1.11 |
| 06-May-2025 |
riastradh | libc: Sprinkle #ifdef _REENTRANT around thr_sigsetmask.
Workaround -- temporary, I hope -- for:
PR lib/59401: libc: thr_sigsetmask definition is incoherent
|
1.10 |
| 27-Apr-2025 |
riastradh | libc softfloat: Make SIGFPE for trapped fp exceptions non-ignorable.
In hardfloat, when the kernel delivers SIGFPE for a floating-point exception trap, if SIGFPE is masked or ignored, it is handled _as if_ SIGFPE were unmasked and had the default signal disposition:
964 /* 965 * If the signal is masked or ignored, then unmask it and 966 * reset it to the default action so that the process or 967 * its tracer will be notified. 968 */ 969 const bool ignored = action == SIG_IGN; 970 if (masked || ignored) { 971 mutex_enter(&ps->sa_mutex); 972 sigdelset(mask, signo); 973 sigdelset(&p->p_sigctx.ps_sigcatch, signo); 974 sigdelset(&p->p_sigctx.ps_sigignore, signo); 975 sigdelset(&SIGACTION_PS(ps, signo).sa_mask, signo); 976 SIGACTION_PS(ps, signo).sa_handler = SIG_DFL; 977 mutex_exit(&ps->sa_mutex); 978 }
https://nxr.netbsd.org/xref/src/sys/kern/kern_sig.c?r=1.410#964
In other words, if you have asked for floating-point exception traps via fpsetmask(3) or feeenableexcept(3), then you can't simply defer or ignore them at the signal level any more than you can defer or ignore SIGBUS or SIGSEGV. And if the signal handler returns, it will restart the instruction and -- if nothing has changed in the set of trapped floating-point exceptions -- trap again, delivering the same signal again.
Since we can't lock access to signal dispositions, I don't think we can guarantee the same effect from userland atomically, but we can get a close approximation (should be good enough for single-threaded programs, at least) by mimicking this logic and calling sigqueueinfo in a loop.
PR misc/56820: Many FPE related tests fail on softfloat machines
|
1.9 |
| 10-Aug-2014 |
matt | branches: 1.9.36; Changes to existing files to enable building AARCH64 userland. evbarm64-el This is clang only. While gcc4.8 supports aarch64, no netbsd support has been written for aarch64 with gcc4.8.
|
1.8 |
| 10-Jan-2013 |
matt | Add hooks to softfloat to support per-lwp exception state.
|
1.7 |
| 21-Mar-2012 |
christos | branches: 1.7.2; cast to appropriate types.
|
1.6 |
| 06-Mar-2011 |
martin | branches: 1.6.4; 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.
|
1.5 |
| 04-Mar-2011 |
martin | Use sigqueueinfo() instead of raise() to generate exceptions. Provide minimalistic siginfo data.
|
1.4 |
| 26-Sep-2004 |
jmmv | branches: 1.4.46; 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.
|
1.3 |
| 12-May-2002 |
bjh21 | 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.
|
1.2 |
| 23-Apr-2002 |
agc | branches: 1.2.2; After the grand unification of softfloat-specialize, let sparc64 builds work properly again.
|
1.1 |
| 21-Apr-2002 |
bjh21 | All the versions of softfloat-specialize were practically identical, so replace them with a single one.
|
1.2.2.3 |
| 21-Jun-2002 |
nathanw | Catch up to -current.
|
1.2.2.2 |
| 25-Apr-2002 |
nathanw | Catch up to -current.
|
1.2.2.1 |
| 23-Apr-2002 |
nathanw | file softfloat-specialize was added on branch nathanw_sa on 2002-04-25 04:01:45 +0000
|
1.4.46.1 |
| 05-Mar-2011 |
bouyer | Sync with HEAD
|
1.6.4.2 |
| 23-Jan-2013 |
yamt | sync with head
|
1.6.4.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.7.2.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.7.2.1 |
| 25-Feb-2013 |
tls | resync with head
|
1.9.36.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|