]> git.proxmox.com Git - mirror_edk2.git/blob - StdLib/LibC/Main/Ipf/flt_rounds.c
0a18bb7390fbfacc89686deef0525821b8ff6464
[mirror_edk2.git] / StdLib / LibC / Main / Ipf / flt_rounds.c
1 /*
2 * Written by J.T. Conklin, Apr 10, 1995
3 * Public domain.
4 */
5
6 #include <sys/EfiCdefs.h>
7 /* __FBSDID("$FreeBSD: src/lib/libc/ia64/gen/flt_rounds.c,v 1.1 2004/07/19 08:17:24 das Exp $"); */
8
9 #include <float.h>
10
11 static const int map[] = {
12 1, /* round to nearest */
13 3, /* round to zero */
14 2, /* round to negative infinity */
15 0 /* round to positive infinity */
16 };
17
18 int
19 __flt_rounds(void)
20 {
21 int x;
22
23 __asm("mov %0=ar.fpsr" : "=r" (x));
24 return (map[(x >> 10) & 0x03]);
25 }