1*2fe8fb19SBen Gras /* $NetBSD: fpgetround.c,v 1.4 2005/12/24 23:10:08 perry Exp $ */ 2*2fe8fb19SBen Gras 3*2fe8fb19SBen Gras /* 4*2fe8fb19SBen Gras * Written by J.T. Conklin, Apr 10, 1995 5*2fe8fb19SBen Gras * Public domain. 6*2fe8fb19SBen Gras */ 7*2fe8fb19SBen Gras 8*2fe8fb19SBen Gras #include <sys/cdefs.h> 9*2fe8fb19SBen Gras #if defined(LIBC_SCCS) && !defined(lint) 10*2fe8fb19SBen Gras __RCSID("$NetBSD: fpgetround.c,v 1.4 2005/12/24 23:10:08 perry Exp $"); 11*2fe8fb19SBen Gras #endif /* LIBC_SCCS and not lint */ 12*2fe8fb19SBen Gras 13*2fe8fb19SBen Gras #include "namespace.h" 14*2fe8fb19SBen Gras 15*2fe8fb19SBen Gras #include <ieeefp.h> 16*2fe8fb19SBen Gras 17*2fe8fb19SBen Gras #ifdef __weak_alias 18*2fe8fb19SBen Gras __weak_alias(fpgetround,_fpgetround) 19*2fe8fb19SBen Gras #endif 20*2fe8fb19SBen Gras 21*2fe8fb19SBen Gras fp_rnd 22*2fe8fb19SBen Gras fpgetround() 23*2fe8fb19SBen Gras { 24*2fe8fb19SBen Gras int x; 25*2fe8fb19SBen Gras 26*2fe8fb19SBen Gras __asm("st %%fsr,%0" : "=m" (*&x)); 27*2fe8fb19SBen Gras return (x >> 30) & 0x03; 28*2fe8fb19SBen Gras } 29