1/* -
2 * Written by J.T. Conklin, Apr 6, 1995
3 * Public domain.
4 * $NetBSD: ieeefp.h,v 1.2 1999/07/07 01:52:26 danw Exp $
5 * $FreeBSD$
6 */
7
8#ifndef _MACHINE_IEEEFP_H_
9#define _MACHINE_IEEEFP_H_
10
11/* Deprecated historical FPU control interface */
12
13typedef int fp_except_t;
14#ifdef __SPE__
15#define FP_X_OFL	0x01	/* overflow exception */
16#define FP_X_UFL	0x02	/* underflow exception */
17#define FP_X_DZ		0x04	/* divide-by-zero exception */
18#define FP_X_INV	0x08	/* invalid operation exception */
19#define FP_X_IMP	0x10	/* imprecise (loss of precision) */
20#else
21#define FP_X_IMP	0x01	/* imprecise (loss of precision) */
22#define FP_X_DZ		0x02	/* divide-by-zero exception */
23#define FP_X_UFL	0x04	/* underflow exception */
24#define FP_X_OFL	0x08	/* overflow exception */
25#define FP_X_INV	0x10	/* invalid operation exception */
26#endif
27
28typedef enum {
29    FP_RN=0,			/* round to nearest representable number */
30    FP_RZ=1,			/* round to zero (truncate) */
31    FP_RP=2,			/* round toward positive infinity */
32    FP_RM=3			/* round toward negative infinity */
33} fp_rnd_t;
34
35__BEGIN_DECLS
36extern fp_rnd_t    fpgetround(void);
37extern fp_rnd_t    fpsetround(fp_rnd_t);
38extern fp_except_t fpgetmask(void);
39extern fp_except_t fpsetmask(fp_except_t);
40extern fp_except_t fpgetsticky(void);
41__END_DECLS
42
43#endif /* _MACHINE_IEEEFP_H_ */
44