xref: /freebsd/sys/powerpc/include/ieeefp.h (revision a0b9e2e854027e6ff61fb075a1309dbc71c42b54)
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 
13 typedef 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 
28 typedef 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
36 extern fp_rnd_t    fpgetround(void);
37 extern fp_rnd_t    fpsetround(fp_rnd_t);
38 extern fp_except_t fpgetmask(void);
39 extern fp_except_t fpsetmask(fp_except_t);
40 extern fp_except_t fpgetsticky(void);
41 __END_DECLS
42 
43 #endif /* _MACHINE_IEEEFP_H_ */
44