xref: /netbsd/lib/libc/arch/sparc64/gen/flt_rounds.c (revision bf9ec67e)
1 /*	$NetBSD: flt_rounds.c,v 1.1 1998/09/11 04:56:23 eeh Exp $	*/
2 
3 /*
4  * Written by J.T. Conklin, Apr 10, 1995
5  * Public domain.
6  */
7 
8 #include <sys/types.h>
9 #include <machine/float.h>
10 
11 static const int map[] = {
12 	1,	/* round to nearest */
13 	0,	/* round to zero */
14 	3,	/* round to negative infinity */
15 	2	/* round to positive infinity */
16 };
17 
18 int
19 __flt_rounds()
20 {
21 	int x;
22 
23 	__asm__("st %%fsr,%0" : "=m" (*&x));
24 	return map[(x >> 30) & 0x03];
25 }
26