Initial import from FreeBSD RELENG_4:
[dragonfly.git] / lib / libc / mips / gen / fpsetmask.c
1 /*
2  * Written by J.T. Conklin, Apr 11, 1995
3  * Public domain.
4  */
5
6 #if defined(LIBC_SCCS) && !defined(lint)
7 static char rcsid[] = "$OpenBSD$";
8 #endif /* LIBC_SCCS and not lint */
9
10 #include <ieeefp.h>
11
12 fp_except
13 fpsetmask(mask)
14         fp_except mask;
15 {
16         fp_except old;
17         fp_except new;
18
19         __asm__("cfc1 %0,$31" : "=r" (old));
20
21         new = old;
22         new &= ~(0x1f << 7); 
23         new |= ((mask & 0x1f) << 7);
24
25         __asm__("ctc1 %0,$31" : : "r" (new));
26
27         return (old >> 7) & 0x1f;
28 }