master
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_ */