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