1 1.6 chs /* $NetBSD: ieeefp.h,v 1.6 2017/02/27 06:51:46 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.6 chs 24 1.6 chs #define FP_X_IMP __FPE(FE_INEXACT) /* imprecise (loss of precision) */ 25 1.6 chs #define FP_X_DZ __FPE(FE_DIVBYZERO) /* divide-by-zero exception */ 26 1.6 chs #define FP_X_UFL __FPE(FE_UNDERFLOW) /* underflow exception */ 27 1.6 chs #define FP_X_OFL __FPE(FE_OVERFLOW) /* overflow exception */ 28 1.6 chs #define FP_X_INV __FPE(FE_INVALID) /* invalid operation exception */ 29 1.1 thorpej 30 1.1 thorpej typedef enum { 31 1.3 matt FP_RN=FE_TONEAREST, /* round to nearest representable number */ 32 1.3 matt FP_RZ=FE_TOWARDZERO, /* round to zero (truncate) */ 33 1.3 matt FP_RP=FE_UPWARD, /* round toward positive infinity */ 34 1.3 matt FP_RM=FE_DOWNWARD /* round toward negative infinity */ 35 1.1 thorpej } fp_rnd; 36 1.1 thorpej 37 1.3 matt #endif /* !_ISOC99_SOURCE */ 38 1.3 matt 39 1.3 matt #endif /* _NETBSD_SOURCE || _ISOC99_SOURCE */ 40 1.3 matt 41 1.1 thorpej #endif /* _POWERPC_IEEEFP_H_ */ 42