1129198Scognet/* $NetBSD: ieeefp.h,v 1.1 2001/01/10 19:02:06 bjh21 Exp $ */ 2129198Scognet/* $FreeBSD$ */ 3139735Simp/*- 4129198Scognet * Based on ieeefp.h written by J.T. Conklin, Apr 28, 1995 5129198Scognet * Public domain. 6129198Scognet */ 7129198Scognet 8129198Scognet#ifndef _MACHINE_IEEEFP_H_ 9129198Scognet#define _MACHINE_IEEEFP_H_ 10129198Scognet 11226607Sdas/* Deprecated historical FPU control interface */ 12226607Sdas 13129198Scognet/* FP exception codes */ 14129198Scognet#define FP_EXCEPT_INV 0 15129198Scognet#define FP_EXCEPT_DZ 1 16129198Scognet#define FP_EXCEPT_OFL 2 17129198Scognet#define FP_EXCEPT_UFL 3 18129198Scognet#define FP_EXCEPT_IMP 4 19129198Scognet 20129198Scognet/* Exception type (used by fpsetmask() et al.) */ 21129198Scognet 22129198Scognettypedef int fp_except; 23129198Scognet 24129198Scognet/* Bit defines for fp_except */ 25129198Scognet 26129198Scognet#define FP_X_INV (1 << FP_EXCEPT_INV) /* invalid operation exception */ 27129198Scognet#define FP_X_DZ (1 << FP_EXCEPT_DZ) /* divide-by-zero exception */ 28129198Scognet#define FP_X_OFL (1 << FP_EXCEPT_OFL) /* overflow exception */ 29129198Scognet#define FP_X_UFL (1 << FP_EXCEPT_UFL) /* underflow exception */ 30129198Scognet#define FP_X_IMP (1 << FP_EXCEPT_IMP) /* imprecise (loss of precision; "inexact") */ 31129198Scognet 32129198Scognet/* Rounding modes */ 33129198Scognet 34129198Scognettypedef enum { 35129198Scognet FP_RN=0, /* round to nearest representable number */ 36129198Scognet FP_RP=1, /* round toward positive infinity */ 37129198Scognet FP_RM=2, /* round toward negative infinity */ 38129198Scognet FP_RZ=3 /* round to zero (truncate) */ 39129198Scognet} fp_rnd_t; 40129198Scognet 41129198Scognet/* 42129198Scognet * FP precision modes 43129198Scognet */ 44129198Scognettypedef enum { 45129198Scognet FP_PS=0, /* 24 bit (single-precision) */ 46129198Scognet FP_PRS, /* reserved */ 47129198Scognet FP_PD, /* 53 bit (double-precision) */ 48129198Scognet FP_PE /* 64 bit (extended-precision) */ 49129198Scognet} fp_prec_t; 50129198Scognet 51129198Scognet#define fp_except_t int 52129198Scognet 53129198Scognet#endif /* _MACHINE_IEEEFP_H_ */ 54