diff options
author | Martynas Venckus <martynas@cvs.openbsd.org> | 2008-10-07 22:06:30 +0000 |
---|---|---|
committer | Martynas Venckus <martynas@cvs.openbsd.org> | 2008-10-07 22:06:30 +0000 |
commit | 13e274e30a2f3dce36a95d6cc01a2265a620eb19 (patch) | |
tree | 0eb7c8b8911c16c7d7ea19554846a1838def0749 /sys/arch/sgi | |
parent | 42029dea90615aabb34095ab75e07c870aed697e (diff) |
unbreak ieeefp emulation code wrt converting double to unsigned
long ints for alpha. we've got only one instruction (cvttq) to
convert double-t to quadword, and float64_to_int64 did not take
into account the unsigned conversions
therefore, overflow always occured, and half of the unsigned range
(LONG_MAX .. ULONG_MAX) was broken
introduce roundAndPackInt64NoOverflow and float64_to_int64_no_overflow
for softfloat, that works with unsigned integers as well. note
that this will return zero for nan/inf/oflow/uflow, raising exception
flag
perl is happy now
looked over by miod@
tested by naddy@, and by me on nick@'s alpha
Diffstat (limited to 'sys/arch/sgi')
0 files changed, 0 insertions, 0 deletions