/*
 * Written by J.T. Conklin, Apr 6, 1995
 * Public domain.
 * $FreeBSD$
 */

#ifndef _MACHINE_IEEEFP_H_
#define _MACHINE_IEEEFP_H_

#include <machine/fsr.h>

typedef int fp_except_t;
#define FP_X_IMP	FSR_NX	/* imprecise (loss of precision) */
#define FP_X_DZ		FSR_DZ	/* divide-by-zero exception */
#define FP_X_UFL	FSR_UF	/* underflow exception */
#define FP_X_OFL	FSR_OF	/* overflow exception */
#define FP_X_INV	FSR_NV	/* invalid operation exception */

typedef enum {
	FP_RN = FSR_RD_N,	/* round to nearest representable number */
	FP_RZ = FSR_RD_Z,	/* round to zero (truncate) */
	FP_RP = FSR_RD_PINF,	/* round toward positive infinity */
	FP_RM = FSR_RD_NINF	/* round toward negative infinity */
} fp_rnd_t;

#endif /* _MACHINE_IEEEFP_H_ */

/*
 * Written by J.T. Conklin, Apr 6, 1995
 * Public domain.
 * $FreeBSD$
 */

#ifndef _MACHINE_IEEEFP_H_
#define _MACHINE_IEEEFP_H_

typedef int fp_except_t;
#define FP_X_IMP	0x01	/* imprecise (loss of precision) */
#define FP_X_DZ		0x02	/* divide-by-zero exception */
#define FP_X_UFL	0x04	/* underflow exception */
#define FP_X_OFL	0x08	/* overflow exception */
#define FP_X_INV	0x10	/* invalid operation exception */

typedef enum {
	FP_RN=0,		/* round to nearest representable number */
	FP_RZ=1,		/* round to zero (truncate) */
	FP_RP=2,		/* round toward positive infinity */
	FP_RM=3			/* round toward negative infinity */
} fp_rnd_t;

#endif /* _MACHINE_IEEEFP_H_ */

--- 
+++ 
@@ -7,18 +7,20 @@
 #ifndef _MACHINE_IEEEFP_H_
 #define _MACHINE_IEEEFP_H_
 
+#include <machine/fsr.h>
+
 typedef int fp_except_t;
-#define FP_X_IMP	0x01	/* imprecise (loss of precision) */
-#define FP_X_DZ		0x02	/* divide-by-zero exception */
-#define FP_X_UFL	0x04	/* underflow exception */
-#define FP_X_OFL	0x08	/* overflow exception */
-#define FP_X_INV	0x10	/* invalid operation exception */
+#define FP_X_IMP	FSR_NX	/* imprecise (loss of precision) */
+#define FP_X_DZ		FSR_DZ	/* divide-by-zero exception */
+#define FP_X_UFL	FSR_UF	/* underflow exception */
+#define FP_X_OFL	FSR_OF	/* overflow exception */
+#define FP_X_INV	FSR_NV	/* invalid operation exception */
 
 typedef enum {
-	FP_RN=0,		/* round to nearest representable number */
-	FP_RZ=1,		/* round to zero (truncate) */
-	FP_RP=2,		/* round toward positive infinity */
-	FP_RM=3			/* round toward negative infinity */
+	FP_RN = FSR_RD_N,	/* round to nearest representable number */
+	FP_RZ = FSR_RD_Z,	/* round to zero (truncate) */
+	FP_RP = FSR_RD_PINF,	/* round toward positive infinity */
+	FP_RM = FSR_RD_NINF	/* round toward negative infinity */
 } fp_rnd_t;
 
 #endif /* _MACHINE_IEEEFP_H_ */
Use the definitions in machine/fsr.h instead of duplicating these magic
numbers here (the values need to correspond to the %fsr ones for some
libc functions to work right).
