<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-openbsd/lib/libm/src/s_lrintf.c, branch jd/simplify-queueing</title>
<subtitle>WireGuard implementation for the OpenBSD kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-openbsd/atom/lib/libm/src/s_lrintf.c?h=jd%2Fsimplify-queueing</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-openbsd/atom/lib/libm/src/s_lrintf.c?h=jd%2Fsimplify-queueing'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/'/>
<updated>2016-09-12T19:47:01Z</updated>
<entry>
<title>Reduce libm's exports and make internal calls go direct.</title>
<updated>2016-09-12T19:47:01Z</updated>
<author>
<name>guenther</name>
<email>guenther@openbsd.org</email>
</author>
<published>2016-09-12T19:47:01Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=2f2c00629eff6a304ebffb255fc56f4fa7a1833b'/>
<id>urn:sha1:2f2c00629eff6a304ebffb255fc56f4fa7a1833b</id>
<content type='text'>
All dependencies on libc are now via reserved/standardized names.

ok kettenis@ millert@ deraadt@
</content>
</entry>
<entry>
<title>Trick GCC optimizer into clipping any extra precision by making w</title>
<updated>2011-04-20T21:32:59Z</updated>
<author>
<name>martynas</name>
<email>martynas@openbsd.org</email>
</author>
<published>2011-04-20T21:32:59Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=deba65a8db4698a175710b6d96f19c86298aa36e'/>
<id>urn:sha1:deba65a8db4698a175710b6d96f19c86298aa36e</id>
<content type='text'>
volatile;  a similar hack was already being used in lrintf().

This will make rint and {,l}lrint family functions actually work;
i.e. on m68k rintf(8.6F) was 8.625.
</content>
</entry>
<entry>
<title>The {,l}lround{,f} implementations are based on {,l}lrint{,f},</title>
<updated>2011-04-17T13:59:54Z</updated>
<author>
<name>martynas</name>
<email>martynas@openbsd.org</email>
</author>
<published>2011-04-17T13:59:54Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=d37b90348eaddca97fc8cbeb99fcf38a0727c60a'/>
<id>urn:sha1:d37b90348eaddca97fc8cbeb99fcf38a0727c60a</id>
<content type='text'>
therefore affected by the same bugs I've fixed a week ago.

The high part was being clipped for all exponents greater or equal
to 52.  Fix this to use RESTYPE_BITS instead;  also make the code
consistent.
</content>
</entry>
<entry>
<title>The {,l}lrint{,f} functions avoid to shift results by more than 31</title>
<updated>2011-04-10T20:42:09Z</updated>
<author>
<name>martynas</name>
<email>martynas@openbsd.org</email>
</author>
<published>2011-04-10T20:42:09Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=954473c52cf794c060f5a4f37e634c3c79689410'/>
<id>urn:sha1:954473c52cf794c060f5a4f37e634c3c79689410</id>
<content type='text'>
bits, because "behavior is implementation defined in this case".
However, this is wrong;  behavior is undefined if the right operand
is greater than or equal to the width of the promoted left operand.

This broke {,l}lrint{,f} (64-bit architectures), and llrint{,f}
(32-bit architectures) where results are actually 64-bit values.
The high part was clipped for all exponents greater or equal to 52.

Fix this to use RESTYPE_BITS instead;  {,l}lrint{,f} are now able
to pass our regression tests, and I think are right now.
</content>
</entry>
<entry>
<title>The assumption that |1.0 * 2^exp| = 0, exp &lt; -1 cannot be made when</title>
<updated>2011-04-10T11:25:14Z</updated>
<author>
<name>martynas</name>
<email>martynas@openbsd.org</email>
</author>
<published>2011-04-10T11:25:14Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=5d0a19bab04f6f66f09fc506df5075142d84e4cf'/>
<id>urn:sha1:5d0a19bab04f6f66f09fc506df5075142d84e4cf</id>
<content type='text'>
we round towards -inf or +inf.
</content>
</entry>
<entry>
<title>Move llrint.c, llrintf.c, lrint.c and lrintf.c to s_llrint.c, s_llrintf.c,</title>
<updated>2006-09-25T20:25:41Z</updated>
<author>
<name>kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2006-09-25T20:25:41Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-openbsd/commit/?id=d7c6e841056918b4dcf64f738b838ab45abdabb3'/>
<id>urn:sha1:d7c6e841056918b4dcf64f738b838ab45abdabb3</id>
<content type='text'>
s_lrint.c and s_lrintf.c, and add i387-specific assembler versions.

ok deraadt@, otto@
</content>
</entry>
</feed>
