185518Sjake/*
285518Sjake * Written by J.T. Conklin, Apr 10, 1995
385518Sjake * Public domain.
485518Sjake */
585518Sjake
685518Sjake#include <sys/cdefs.h>
785518Sjake__FBSDID("$FreeBSD$");
885518Sjake
985518Sjake#include <sys/types.h>
1085518Sjake#include <machine/float.h>
1185518Sjake
1285518Sjakestatic const int map[] = {
1385518Sjake	1,	/* round to nearest */
1485518Sjake	0,	/* round to zero */
15140424Sdas	2,	/* round to positive infinity */
16140424Sdas	3	/* round to negative infinity */
1785518Sjake};
1885518Sjake
1985518Sjakeint
2085518Sjake__flt_rounds()
2185518Sjake{
2285518Sjake	int x;
2385518Sjake
2485518Sjake	__asm("st %%fsr,%0" : "=m" (*&x));
2585518Sjake	return map[(x >> 30) & 0x03];
2685518Sjake}
27