diff options
author | das <das@FreeBSD.org> | 2004-05-06 09:36:11 +0000 |
---|---|---|
committer | das <das@FreeBSD.org> | 2004-05-06 09:36:11 +0000 |
commit | 3edaa65c3a15b7afe72a94d903eeb8b2a3792191 (patch) | |
tree | 7dac6cc5ff0cb5eb022e47a2df66225a706c0583 | |
parent | c73ba67e32b4ebf0a32a8a16155706cff113e2dc (diff) | |
download | FreeBSD-src-3edaa65c3a15b7afe72a94d903eeb8b2a3792191.zip FreeBSD-src-3edaa65c3a15b7afe72a94d903eeb8b2a3792191.tar.gz |
When a denormal underflows to zero, raise an underflow exception.
Thanks to marcel for helping me test this.
-rw-r--r-- | sys/alpha/alpha/ieee_float.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/alpha/alpha/ieee_float.c b/sys/alpha/alpha/ieee_float.c index 390011a..003068b 100644 --- a/sys/alpha/alpha/ieee_float.c +++ b/sys/alpha/alpha/ieee_float.c @@ -312,6 +312,9 @@ makefloat(int sign, int exp, u_int64_t frac, break; } + if (frac == 0) + *status |= FPCR_UNF; + /* * Rounding up may take us to TWO if * fraclo == (TWO - epsilon). Also If fraclo has been |