Home | History | Annotate | Line # | Download | only in gen
fpsetround.c revision 1.2
      1  1.2  jonathan /*	$NetBSD: fpsetround.c,v 1.2 1996/09/16 18:10:51 jonathan Exp $	*/
      2  1.2  jonathan 
      3  1.1       jtc /*
      4  1.1       jtc  * Written by J.T. Conklin, Apr 11, 1995
      5  1.1       jtc  * Public domain.
      6  1.1       jtc  */
      7  1.1       jtc 
      8  1.1       jtc #include <ieeefp.h>
      9  1.1       jtc 
     10  1.1       jtc fp_rnd
     11  1.1       jtc fpsetround(rnd_dir)
     12  1.1       jtc 	fp_rnd rnd_dir;
     13  1.1       jtc {
     14  1.1       jtc 	fp_rnd old;
     15  1.1       jtc 	fp_rnd new;
     16  1.1       jtc 
     17  1.1       jtc 	__asm__("cfc1 %0,$31" : "=r" (old));
     18  1.1       jtc 
     19  1.1       jtc 	new = old;
     20  1.1       jtc 	new &= ~0x03;
     21  1.1       jtc 	new |= (rnd_dir & 0x03);
     22  1.1       jtc 
     23  1.1       jtc 	__asm__("ctc1 %0,$31" : : "r" (new));
     24  1.1       jtc 
     25  1.1       jtc 	return old & 0x03;
     26  1.1       jtc }
     27