diff options
author | 2008-10-07 22:06:29 +0000 | |
---|---|---|
committer | 2008-10-07 22:06:29 +0000 | |
commit | a657e0a74dbd34bc3296ba63e7e4836cc1f62aef (patch) | |
tree | 388577df6b9745501b222f5617e91332275fc623 /sys/dev/isa/it.c | |
parent | Move dev->driver over to being a pointer to a const struct, instead of stupidly (diff) | |
download | wireguard-openbsd-a657e0a74dbd34bc3296ba63e7e4836cc1f62aef.tar.xz wireguard-openbsd-a657e0a74dbd34bc3296ba63e7e4836cc1f62aef.zip |
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/dev/isa/it.c')
0 files changed, 0 insertions, 0 deletions