Date: Mon, 7 Sep 1998 15:13:07 +1000 From: Bruce Evans <bde@zeta.org.au> To: bde@zeta.org.au, cracauer@cons.org, current@FreeBSD.ORG Subject: Re: Floating Point Exceptions, signal handlers & subsequent ops Message-ID: <199809070513.PAA26505@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>> >OK, I had another look and Linux and Solaris both have >> >#define FPE_INTDIV 1 /* integer divide by zero */ >> >#define FPE_INTOVF 2 /* integer overflow */ >> >#define FPE_FLTDIV 3 /* floating point divide by zero */ >> >#define FPE_FLTOVF 4 /* floating point overflow */ >> >#define FPE_FLTUND 5 /* floating point underflow */ >> >#define FPE_FLTRES 6 /* floating point inexact result */ >> >#define FPE_FLTINV 7 /* invalid floating point operation */ >> >#define FPE_FLTSUB 8 /* subscript out of range */ >I didn't find hard documentation on these values, but everybody (see >below) supports them :-) >... >linux-kernel-2.1.x has the FPE_...... names from above, newer glibc >has them as well, but these FPE_......_{TRAP,FAULT} seem to be >hurd-only. The FPE_...... values seem more attractive to me. Linux-2.1.115 doesn't seem to actually support them except on m68k's. It only defines for other arches. >Regarding the decision which bits to ignore when multiple unmasked >bits are set, I found something in an Intel document. Wording is >mine. >... >I think using the same scheme as the FPU makes sense. If the user >messes with the control word while using FPU instructions while having >an exception handler for SIGFPE set, we could as well define the >behaviour as undefined. But we need the table you suggested in any >case, since we need to look at multiple bits for stack over/underflow >at least, so we can implement something halfway reasonable. I agree. >I could also imagine extending struct sigcontext with fields for >control and status word so that the user can get the unmodified status >if the one-bit trap code isn't sufficient (either because multiple >bits may have been set or if the FPE_...... values aren't precise >enough, for example if the user needs to tell under- from overflow). This can wait until we implement SA_SIGINFO (post-3.0). I'd like to have FPU exceptions masked by default in 3.0. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199809070513.PAA26505>