freebsd-dev/lib/libc/mips/gen/flt_rounds.c
Warner Losh d7ee48f115 Bring in initial libc support for mips. These files were taken from
the OpenBSD tree and should be considered preliminary.  They are here
to facilitate building of the tree.
1999-03-03 07:06:17 +00:00

28 lines
530 B
C

/*
* Written by J.T. Conklin, Apr 11, 1995
* Public domain.
*/
#include <sys/types.h>
#include <machine/float.h>
#if defined(LIBC_SCCS) && !defined(lint)
static char rcsid[] = "$OpenBSD: flt_rounds.c,v 1.3 1997/08/01 21:36:28 deraadt Exp $";
#endif /* LIBC_SCCS and not lint */
static const int map[] = {
1, /* round to nearest */
0, /* round to zero */
2, /* round to positive infinity */
3 /* round to negative infinity */
};
int
__flt_rounds()
{
int x;
__asm__("cfc1 %0,$31" : "=r" (x));
return map[x & 0x03];
}