Home | History | Annotate | Line # | Download | only in gen
fpsetmask.c revision 1.1
      1 /*	$NetBSD: fpsetmask.c,v 1.1 1998/09/11 04:56:24 eeh Exp $	*/
      2 
      3 /*
      4  * Written by J.T. Conklin, Apr 10, 1995
      5  * Public domain.
      6  */
      7 
      8 #include <ieeefp.h>
      9 
     10 fp_except
     11 fpsetmask(mask)
     12 	fp_except mask;
     13 {
     14 	fp_except old;
     15 	fp_except new;
     16 
     17 	__asm__("st %%fsr,%0" : "=m" (*&old));
     18 
     19 	new = old;
     20 	new &= ~(0x1f << 23);
     21 	new |= ((mask & 0x1f) << 23);
     22 
     23 	__asm__("ld %0,%%fsr" : : "m" (*&new));
     24 
     25 	return (old >> 23) & 0x1f;
     26 }
     27