flt_rounds.c revision 85518
1/* 2 * Written by J.T. Conklin, Apr 10, 1995 3 * Public domain. 4 */ 5 6#include <sys/cdefs.h> 7__FBSDID("$FreeBSD: head/lib/libc/sparc64/gen/flt_rounds.c 85518 2001-10-26 05:40:07Z jake $"); 8 9#include <sys/types.h> 10#include <machine/float.h> 11 12static const int map[] = { 13 1, /* round to nearest */ 14 0, /* round to zero */ 15 3, /* round to negative infinity */ 16 2 /* round to positive infinity */ 17}; 18 19int 20__flt_rounds() 21{ 22 int x; 23 24 __asm("st %%fsr,%0" : "=m" (*&x)); 25 return map[(x >> 30) & 0x03]; 26} 27