1 /*
2 * ====================================================
3 * x87 FP implementation contributed to Newlib by
4 * Dave Korn, November 2007. This file is placed in the
5 * public domain. Permission to use, copy, modify, and
6 * distribute this software is freely granted.
7 * ====================================================
8 */
9
10 #if defined(__GNUC__) && !defined(_SOFT_FLOAT)
11
12 #include <math.h>
13
14 /*
15 * Fast math version of lrintf(x)
16 * Return x rounded to integral value according to the prevailing
17 * rounding mode.
18 * Method:
19 * Using inline x87 asms.
20 * Exception:
21 * Governed by x87 FPCR.
22 */
23
_f_lrintf(float x)24 long int _f_lrintf (float x)
25 {
26 long int _result;
27 asm ("fistpl %0" : "=m" (_result) : "t" (x) : "st");
28 return _result;
29 }
30
31 #endif /* !__GNUC__ || _SOFT_FLOAT */
32
33