xref: /openbsd-src/lib/libc/arch/m88k/gen/fpgetround.c (revision 29cc2a2d1d99869c4cfa9c708e043103e2d7d805)
1*29cc2a2dSguenther /*	$OpenBSD: fpgetround.c,v 1.5 2016/07/26 19:07:09 guenther Exp $	*/
2d5b3c078Smiod 
3443998a4Ssmurph /*
4443998a4Ssmurph  * Written by J.T. Conklin, Apr 10, 1995
5443998a4Ssmurph  * Public domain.
6443998a4Ssmurph  * Ported to 88k by Nivas Madhur.
7443998a4Ssmurph  */
8443998a4Ssmurph 
9443998a4Ssmurph #include <ieeefp.h>
10443998a4Ssmurph 
11443998a4Ssmurph fp_rnd
fpgetround(void)12*29cc2a2dSguenther fpgetround(void)
13443998a4Ssmurph {
14443998a4Ssmurph 	int x;
15443998a4Ssmurph 
160b514a07Smiod 	__asm__ volatile ("fldcr %0, %%fcr63" : "=r" (x));
17443998a4Ssmurph 	return (x >> 14) & 0x03;
18443998a4Ssmurph }
19*29cc2a2dSguenther DEF_WEAK(fpgetround);
20