flt_rounds.c revision 1.3
1/*	$NetBSD: flt_rounds.c,v 1.3 1998/01/09 03:15:12 perry 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
11static 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
18int
19__flt_rounds()
20{
21	int x;
22
23	__asm__("st %%fsr,%0" : "=m" (*&x));
24	return map[(x >> 30) & 0x03];
25}
26