#
121332 |
|
22-Oct-2003 |
marcel |
The FP status register allows for 6 traps to be masked. One of them, the denormal/unnormal trap, is not a standard IEEE trap. We did not exclude it from being returned by fpgetmask(), nor did we make sure that fpsetmask() didn't clobber it. Since the non-IEEE trap is not part of fp_except_t, users of ifpgetmask()/fpsetmask() would be confronted with unexpected behaviour, one of which is a SIGFPE for denormal/unnormal FP results.
This commit makes sure that we don't leak the denormal/unnormal mask bit in fp_except_t and also that we don't clobber it.
|
#
118696 |
|
09-Aug-2003 |
marcel |
o There are 6 trap disable bits in ar.fpsr, not five. Even though we didn't provide a constant for one of them (non-IEEE denormal trap), in an attempt to not support it probably, it's not we are left with the lower 5 bits. o Properly mask the passed or returned fp_except_t. Not doing so causes instant core dumps by trying to write an invalid value to ar.fpsr. Now that we're masking, stop using exclusive-or to invert bits.
This fixes the illegal instruction fault encountered when building mozilla.
|