| #
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.
|
|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base
|
| #
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
|
|
Revision tags: netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-8-3-RELEASE netbsd-9-4-RELEASE netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base netbsd-9-3-RELEASE cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 netbsd-9-2-RELEASE cjep_staticlib_x-base netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 netbsd-7-2-RELEASE pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base tls-maxphys-base
|
| #
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.
|
|
Revision tags: yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8
|
| #
1.8 |
|
10-Jan-2013 |
matt |
Add hooks to softfloat to support per-lwp exception state.
|
|
Revision tags: yamt-pagecache-base7 yamt-pagecache-base6 yamt-pagecache-base5 yamt-pagecache-base4
|
| #
1.7 |
|
21-Mar-2012 |
christos |
branches: 1.7.2; cast to appropriate types.
|
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base cherry-xenmp-base
|
| #
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.
|
|
Revision tags: bouyer-quota2-nbase
|
| #
1.5 |
|
04-Mar-2011 |
martin |
Use sigqueueinfo() instead of raise() to generate exceptions. Provide minimalistic siginfo data.
|
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE bouyer-quota2-base matt-mips64-premerge-20101231 matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE jym-xensuspend-nbase netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 christos-time_t-nbase christos-time_t-base netbsd-5-base matt-mips64-base2 mjf-devfs2-base netbsd-4-0-1-RELEASE wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-fixsa-newbase wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking wrstuden-fixsa-base-1 netbsd-4-0-RELEASE cube-autoconf-base netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 matt-armv6-base matt-mips64-base hpcarm-cleanup-base netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-4-base netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
|
| #
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.
|
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
| #
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.
|