diff options
author | wollman <wollman@FreeBSD.org> | 1994-08-04 19:16:37 +0000 |
---|---|---|
committer | wollman <wollman@FreeBSD.org> | 1994-08-04 19:16:37 +0000 |
commit | 3d95e518393e038665b22141c351322c6fbbd556 (patch) | |
tree | 4bd450b316fdcec0712729bb3b6ed2c3dc151325 /sys/amd64 | |
parent | c769b45a20dae1e9390ec27384d8124c364ae3c9 (diff) | |
download | FreeBSD-src-3d95e518393e038665b22141c351322c6fbbd556.zip FreeBSD-src-3d95e518393e038665b22141c351322c6fbbd556.tar.gz |
Move ieeefp.h over, and put it in the correct subdirectory this time.
Submitted by: Andrew Moore
Diffstat (limited to 'sys/amd64')
-rw-r--r-- | sys/amd64/include/floatingpoint.h | 4 | ||||
-rw-r--r-- | sys/amd64/include/ieeefp.h | 104 |
2 files changed, 106 insertions, 2 deletions
diff --git a/sys/amd64/include/floatingpoint.h b/sys/amd64/include/floatingpoint.h index ed47cf6..182e5a3 100644 --- a/sys/amd64/include/floatingpoint.h +++ b/sys/amd64/include/floatingpoint.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#) floatingpoint.h 1.0 (Berkeley) 9/23/93 - * $Id: floatingpoint.h,v 1.3 1993/10/16 14:39:18 rgrimes Exp $ + * $Id: floatingpoint.h,v 1.4 1993/11/07 17:42:55 wollman Exp $ */ /* @@ -42,7 +42,7 @@ #define _FLOATINGPOINT_H_ #include <sys/cdefs.h> -#include <sys/ieeefp.h> +#include <machine/ieeefp.h> #ifdef __GNUC__ diff --git a/sys/amd64/include/ieeefp.h b/sys/amd64/include/ieeefp.h new file mode 100644 index 0000000..c7929fe --- /dev/null +++ b/sys/amd64/include/ieeefp.h @@ -0,0 +1,104 @@ +/*- + * Copyright (c) 1990 Andrew Moore, Talke Studio + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: @(#) ieeefp.h 1.0 (Berkeley) 9/23/93 + * $Id: ieeefp.h,v 1.2 1993/10/16 17:16:52 rgrimes Exp $ + */ + +/* + * IEEE floating point type and constant definitions. + */ + +#ifndef _IEEEFP_H_ +#define _IEEEFP_H_ + +#ifdef __i386__ + +/* + * FP rounding modes + */ +typedef enum { + FP_RN=0, /* round to nearest */ + FP_RM, /* round down to minus infinity */ + FP_RP, /* round up to plus infinity */ + FP_RZ /* truncate */ +} fp_rnd_t; + +/* + * FP precison modes + */ +typedef enum { + FP_PS=0, /* 24 bit (single-precsion) */ + FP_PRS, /* reserved */ + FP_PD, /* 53 bit (double-precision) */ + FP_PE /* 64 bit (extended-precsion) */ +} fp_prec_t; + +#define fp_except_t int + +/* + * FP exception masks + */ +#define FP_X_INV 0x01 /* invalid operation */ +#define FP_X_DNML 0x02 /* denormal */ +#define FP_X_DZ 0x04 /* zero divide */ +#define FP_X_OFL 0x08 /* overflow */ +#define FP_X_UFL 0x10 /* underflow */ +#define FP_X_IMP 0x20 /* (im)precision */ + +/* + * FP registers + */ +#define FP_MSKS_REG 0 /* exception masks */ +#define FP_PRC_REG 0 /* precision */ +#define FP_RND_REG 0 /* direction */ +#define FP_STKY_REG 1 /* sticky flags */ + +/* + * FP register bit field masks + */ +#define FP_MSKS_FLD 0x3f /* exception masks field */ +#define FP_PRC_FLD 0x300 /* precision control field */ +#define FP_RND_FLD 0xc00 /* round control field */ +#define FP_STKY_FLD 0x3f /* sticky flags field */ + +/* + * FP register bit field offsets + */ +#define FP_MSKS_OFF 0 /* exception masks offset */ +#define FP_PRC_OFF 8 /* precision control offset */ +#define FP_RND_OFF 10 /* round control offset */ +#define FP_STKY_OFF 0 /* sticky flags offset */ + +#endif /* __i386__ */ + +#endif /* !_IEEEFP_H_ */ |