Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/lib/libc/amd64/gen/flt_rounds.c
39536 views
1
/*
2
* Written by J.T. Conklin, Apr 10, 1995
3
* Public domain.
4
*/
5
6
#include <float.h>
7
8
static const int map[] = {
9
1, /* round to nearest */
10
3, /* round to zero */
11
2, /* round to negative infinity */
12
0 /* round to positive infinity */
13
};
14
15
int
16
__flt_rounds(void)
17
{
18
int x;
19
20
/* Assume that the x87 and the SSE unit agree on the rounding mode. */
21
__asm("fnstcw %0" : "=m" (x));
22
return (map[(x >> 10) & 0x03]);
23
}
24
25