xref: /openbsd/lib/libc/arch/m88k/gen/fpsetsticky.c (revision 3d8817e4)
1 /*	$OpenBSD: fpsetsticky.c,v 1.3 2005/08/07 16:40:14 espie Exp $	*/
2 
3 /*
4  * Written by J.T. Conklin, Apr 10, 1995
5  * Public domain.
6  * Ported to m88k by Nivas Madhur.
7  */
8 
9 #include <ieeefp.h>
10 
11 fp_except
12 fpsetsticky(sticky)
13 	fp_except sticky;
14 {
15 	fp_except old;
16 	fp_except new;
17 
18 	__asm__ volatile("fldcr %0,fcr62" : "=r" (old));
19 
20 	new = old;
21 	new &= ~(0x1f);
22 	new |= (sticky & 0x1f);
23 
24 	__asm__ volatile("fstcr %0,fcr62" : : "r" (new));
25 
26 	return (old & 0x1f);
27 }
28