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 */
 6
 7#ifndef _MACHINE_IEEEFP_H_
 8#define _MACHINE_IEEEFP_H_
 9
10/* Deprecated historical FPU control interface */
11
12typedef int fp_except_t;
13#ifdef __SPE__
14#define FP_X_OFL	0x01	/* overflow exception */
15#define FP_X_UFL	0x02	/* underflow exception */
16#define FP_X_DZ		0x04	/* divide-by-zero exception */
17#define FP_X_INV	0x08	/* invalid operation exception */
18#define FP_X_IMP	0x10	/* imprecise (loss of precision) */
19#else
20#define FP_X_IMP	0x01	/* imprecise (loss of precision) */
21#define FP_X_DZ		0x02	/* divide-by-zero exception */
22#define FP_X_UFL	0x04	/* underflow exception */
23#define FP_X_OFL	0x08	/* overflow exception */
24#define FP_X_INV	0x10	/* invalid operation exception */
25#endif
26
27typedef enum {
28    FP_RN=0,			/* round to nearest representable number */
29    FP_RZ=1,			/* round to zero (truncate) */
30    FP_RP=2,			/* round toward positive infinity */
31    FP_RM=3			/* round toward negative infinity */
32} fp_rnd_t;
33
34__BEGIN_DECLS
35extern fp_rnd_t    fpgetround(void);
36extern fp_rnd_t    fpsetround(fp_rnd_t);
37extern fp_except_t fpgetmask(void);
38extern fp_except_t fpsetmask(fp_except_t);
39extern fp_except_t fpgetsticky(void);
40__END_DECLS
41
42#endif /* _MACHINE_IEEEFP_H_ */