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