Date: Fri, 4 Dec 1998 02:52:48 -0800 (PST) From: Doug Rabson <dfr@FreeBSD.ORG> To: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG Subject: cvs commit: src/sys/alpha/alpha fp_emulate.c ieee_float.c ieee_float.h machdep.c trap.c vm_machdep.c src/sys/alpha/conf files.alpha src/sys/alpha/include fpu.h inst.h pcb.h Message-ID: <199812041052.CAA10885@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
dfr 1998/12/04 02:52:48 PST
Modified files:
sys/alpha/alpha machdep.c trap.c vm_machdep.c
sys/alpha/conf files.alpha
sys/alpha/include pcb.h
Added files:
sys/alpha/alpha fp_emulate.c ieee_float.c ieee_float.h
sys/alpha/include fpu.h inst.h
Log:
Implement 'software completion' for floating point arithmetic. On the
alpha, operations involving non-finite numbers or denormalised numbers
or operations which should generate such numbers will cause an arithmetic
exception. For programs which follow some strict code generation rules,
the kernel trap handler can then 'complete' the operation by emulating
the faulting instruction.
To use software completion, a program must be compiled with the arguments
'-mtrap-precision=i' and '-mfp-trap-mode=su' or '-mfp-trap-mode=sui'.
Programs compiled in this way can use non-finite and denormalised numbers
at the expense of slightly less efficient code generation of floating
point instructions. Programs not compiled with these options will receive
a SIGFPE signal when non-finite or denormalised numbers are used or
generated.
Reviewed by: John Polstra <jdp@polstra.com>
Revision Changes Path
1.25 +10 -5 src/sys/alpha/alpha/machdep.c
1.7 +8 -5 src/sys/alpha/alpha/trap.c
1.5 +13 -1 src/sys/alpha/alpha/vm_machdep.c
1.14 +3 -2 src/sys/alpha/conf/files.alpha
1.2 +2 -1 src/sys/alpha/include/pcb.h
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199812041052.CAA10885>
