xref: /openbsd-src/lib/libc/arch/sparc64/gen/fpgetround.c (revision 29cc2a2d1d99869c4cfa9c708e043103e2d7d805)
1*29cc2a2dSguenther /*	$OpenBSD: fpgetround.c,v 1.2 2016/07/26 19:07:09 guenther Exp $	*/
2de1699b1Sart 
3de1699b1Sart /*
4de1699b1Sart  * Written by J.T. Conklin, Apr 10, 1995
5de1699b1Sart  * Public domain.
6de1699b1Sart  */
7de1699b1Sart 
8de1699b1Sart #include <ieeefp.h>
9de1699b1Sart 
10de1699b1Sart fp_rnd
fpgetround(void)11*29cc2a2dSguenther fpgetround(void)
12de1699b1Sart {
13de1699b1Sart 	int x;
14de1699b1Sart 
15de1699b1Sart 	__asm__("st %%fsr,%0" : "=m" (*&x));
16de1699b1Sart 	return (x >> 30) & 0x03;
17de1699b1Sart }
18*29cc2a2dSguenther DEF_WEAK(fpgetround);
19