]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/powerpc/include/ieeefp.h
MFV: xz 5.4.5
[FreeBSD/FreeBSD.git] / sys / powerpc / include / ieeefp.h
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
12 typedef 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
27 typedef 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
35 extern fp_rnd_t    fpgetround(void);
36 extern fp_rnd_t    fpsetround(fp_rnd_t);
37 extern fp_except_t fpgetmask(void);
38 extern fp_except_t fpsetmask(fp_except_t);
39 extern fp_except_t fpgetsticky(void);
40 __END_DECLS
41
42 #endif /* _MACHINE_IEEEFP_H_ */