1 1.7 chs /* $NetBSD: ieeefp.h,v 1.7 2017/03/22 23:11:09 chs Exp $ */ 2 1.1 thorpej 3 1.1 thorpej /* 4 1.1 thorpej * Written by J.T. Conklin, Apr 6, 1995 5 1.1 thorpej * Public domain. 6 1.1 thorpej */ 7 1.1 thorpej 8 1.1 thorpej #ifndef _POWERPC_IEEEFP_H_ 9 1.1 thorpej #define _POWERPC_IEEEFP_H_ 10 1.1 thorpej 11 1.3 matt #include <sys/featuretest.h> 12 1.3 matt 13 1.5 christos #if defined(_NETBSD_SOURCE) || defined(_ISOC99_SOURCE) 14 1.5 christos 15 1.4 christos #include <powerpc/fenv.h> 16 1.4 christos 17 1.3 matt #if !defined(_ISOC99_SOURCE) 18 1.3 matt 19 1.1 thorpej typedef int fp_except; 20 1.6 chs 21 1.6 chs /* adjust for FP_* and FE_* value differences */ 22 1.6 chs #define __FPE(x) ((x) >> 25) 23 1.7 chs #define __FEE(x) ((x) << 25) 24 1.7 chs #define __FPR(x) ((x)) 25 1.7 chs #define __FER(x) ((x)) 26 1.6 chs 27 1.6 chs #define FP_X_IMP __FPE(FE_INEXACT) /* imprecise (loss of precision) */ 28 1.6 chs #define FP_X_DZ __FPE(FE_DIVBYZERO) /* divide-by-zero exception */ 29 1.6 chs #define FP_X_UFL __FPE(FE_UNDERFLOW) /* underflow exception */ 30 1.6 chs #define FP_X_OFL __FPE(FE_OVERFLOW) /* overflow exception */ 31 1.6 chs #define FP_X_INV __FPE(FE_INVALID) /* invalid operation exception */ 32 1.1 thorpej 33 1.1 thorpej typedef enum { 34 1.7 chs FP_RN=__FPR(FE_TONEAREST), /* round to nearest representable number */ 35 1.7 chs FP_RZ=__FPR(FE_TOWARDZERO), /* round to zero (truncate) */ 36 1.7 chs FP_RP=__FPR(FE_UPWARD), /* round toward positive infinity */ 37 1.7 chs FP_RM=__FPR(FE_DOWNWARD) /* round toward negative infinity */ 38 1.1 thorpej } fp_rnd; 39 1.1 thorpej 40 1.3 matt #endif /* !_ISOC99_SOURCE */ 41 1.3 matt 42 1.3 matt #endif /* _NETBSD_SOURCE || _ISOC99_SOURCE */ 43 1.3 matt 44 1.1 thorpej #endif /* _POWERPC_IEEEFP_H_ */ 45