1139825Simp/*-
286551Sjake * Written by J.T. Conklin, Apr 6, 1995
386551Sjake * Public domain.
486551Sjake * $FreeBSD: releng/11.0/sys/sparc64/include/ieeefp.h 226607 2011-10-21 06:41:46Z das $
586551Sjake */
686551Sjake
786556Sjake#ifndef _MACHINE_IEEEFP_H_
886556Sjake#define _MACHINE_IEEEFP_H_
986551Sjake
10226607Sdas/* Deprecated FPU control interface */
11226607Sdas
12103322Stmm#include <machine/fsr.h>
13103322Stmm
1486551Sjaketypedef int fp_except_t;
15103322Stmm#define FP_X_IMP	FSR_NX	/* imprecise (loss of precision) */
16103322Stmm#define FP_X_DZ		FSR_DZ	/* divide-by-zero exception */
17103322Stmm#define FP_X_UFL	FSR_UF	/* underflow exception */
18103322Stmm#define FP_X_OFL	FSR_OF	/* overflow exception */
19103322Stmm#define FP_X_INV	FSR_NV	/* invalid operation exception */
2086551Sjake
2186551Sjaketypedef enum {
22103322Stmm	FP_RN = FSR_RD_N,	/* round to nearest representable number */
23103322Stmm	FP_RZ = FSR_RD_Z,	/* round to zero (truncate) */
24103322Stmm	FP_RP = FSR_RD_PINF,	/* round toward positive infinity */
25103322Stmm	FP_RM = FSR_RD_NINF	/* round toward negative infinity */
2686551Sjake} fp_rnd_t;
2786551Sjake
28226607Sdas__BEGIN_DECLS
29226607Sdasextern fp_rnd_t    fpgetround(void);
30226607Sdasextern fp_rnd_t    fpsetround(fp_rnd_t);
31226607Sdasextern fp_except_t fpgetmask(void);
32226607Sdasextern fp_except_t fpsetmask(fp_except_t);
33226607Sdasextern fp_except_t fpgetsticky(void);
34226607Sdas__END_DECLS
35226607Sdas
36226607Sdas
3786556Sjake#endif /* _MACHINE_IEEEFP_H_ */
38