diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 2004-01-02 14:39:02 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 2004-01-02 14:39:02 +0000 |
commit | d4452b585fb86c458cd7c3f8f4bba7f5f7994af9 (patch) | |
tree | 643c5457d1bb4fb6d582b20f1bd8c5329935d5b9 /sys/arch | |
parent | 0103523c358a53f099d4a8907174e9ce004aa934 (diff) |
apparently my understanding of '{FLT,DBL,LDBL}_{MIN,MAX}_EXP' ahs
been wrong and thus proven by many and there change it back to
what it is meaning explained in http://www-ccs.ucsd.edu/c/float.html .
also fix spmath to use it's own consts instead of (now) off by one
float.h values thus to avoid any kind of binary changes.
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/hppa/include/float.h | 15 | ||||
-rw-r--r-- | sys/arch/hppa/spmath/dbl_float.h | 14 | ||||
-rw-r--r-- | sys/arch/hppa/spmath/float.h | 11 | ||||
-rw-r--r-- | sys/arch/hppa/spmath/sgl_float.h | 14 |
4 files changed, 28 insertions, 26 deletions
diff --git a/sys/arch/hppa/include/float.h b/sys/arch/hppa/include/float.h index 2d024bb870c..6e8dd95a404 100644 --- a/sys/arch/hppa/include/float.h +++ b/sys/arch/hppa/include/float.h @@ -1,4 +1,4 @@ -/* $OpenBSD: float.h,v 1.5 2003/06/02 23:27:46 millert Exp $ */ +/* $OpenBSD: float.h,v 1.6 2004/01/02 14:39:01 mickey Exp $ */ /* * Copyright (c) 1989 Regents of the University of California. @@ -46,32 +46,31 @@ __END_DECLS #define FLT_MANT_DIG 24 #define FLT_EPSILON 1.19209290E-07F #define FLT_DIG 6 -#define FLT_MIN_EXP (-126) +#define FLT_MIN_EXP (-125) #define FLT_MIN 1.17549435E-38F #define FLT_MIN_10_EXP (-37) -#define FLT_MAX_EXP 127 +#define FLT_MAX_EXP 128 #define FLT_MAX 3.40282347E+38F #define FLT_MAX_10_EXP 38 #define DBL_MANT_DIG 53 #define DBL_EPSILON 2.2204460492503131E-16 #define DBL_DIG 15 -#define DBL_MIN_EXP (-1022) +#define DBL_MIN_EXP (-1021) #define DBL_MIN 2.2250738585072014E-308 #define DBL_MIN_10_EXP (-307) -#define DBL_MAX_EXP 1023 +#define DBL_MAX_EXP 1024 #define DBL_MAX 1.7976931348623157E+308 #define DBL_MAX_10_EXP 308 #define LDBL_MANT_DIG 113 #define LDBL_EPSILON 1.9259299443872358530559779425849273E-34L #define LDBL_DIG 33 -#define LDBL_MIN_EXP (-16382) +#define LDBL_MIN_EXP (-16381) #define LDBL_MIN 3.3621031431120935062626778173217526026E-4932L #define LDBL_MIN_10_EXP (-4931) -#define LDBL_MAX_EXP 16383 +#define LDBL_MAX_EXP 16384 #define LDBL_MAX 1.1897314953572317650857593266280070162E4932L #define LDBL_MAX_10_EXP 4932 #endif /* _MACHINE_FLOAT_H_ */ - diff --git a/sys/arch/hppa/spmath/dbl_float.h b/sys/arch/hppa/spmath/dbl_float.h index c802f184293..e0cbbe356dd 100644 --- a/sys/arch/hppa/spmath/dbl_float.h +++ b/sys/arch/hppa/spmath/dbl_float.h @@ -1,4 +1,4 @@ -/* $OpenBSD: dbl_float.h,v 1.9 2003/04/10 17:27:58 mickey Exp $ */ +/* $OpenBSD: dbl_float.h,v 1.10 2004/01/02 14:39:01 mickey Exp $ */ /* (c) Copyright 1986 HEWLETT-PACKARD COMPANY To anyone who acknowledges that this file is provided "AS IS" @@ -315,16 +315,16 @@ Deposit_dexponent(dbl_value,(exponent op DBL_WRAP)) #define Dbl_setlargestpositive(dbl_valueA,dbl_valueB) \ - Dallp1(dbl_valueA) = ((DBL_MAX_EXP+DBL_BIAS) << (32-(1+DBL_EXP_LENGTH))) \ + Dallp1(dbl_valueA) = ((DBL_EMAX+DBL_BIAS) << (32-(1+DBL_EXP_LENGTH))) \ | ((1<<(32-(1+DBL_EXP_LENGTH))) - 1 ); \ Dallp2(dbl_valueB) = 0xFFFFFFFF #define Dbl_setlargestnegative(dbl_valueA,dbl_valueB) \ - Dallp1(dbl_valueA) = ((DBL_MAX_EXP+DBL_BIAS) << (32-(1+DBL_EXP_LENGTH))) \ + Dallp1(dbl_valueA) = ((DBL_EMAX+DBL_BIAS) << (32-(1+DBL_EXP_LENGTH))) \ | ((1<<(32-(1+DBL_EXP_LENGTH))) - 1 ) | (1<<31); \ Dallp2(dbl_valueB) = 0xFFFFFFFF #define Dbl_setlargest_exponentmantissa(dbl_valueA,dbl_valueB) \ Deposit_dexponentmantissap1(dbl_valueA, \ - (((DBL_MAX_EXP+DBL_BIAS) << (32-(1+DBL_EXP_LENGTH))) \ + (((DBL_EMAX+DBL_BIAS) << (32-(1+DBL_EXP_LENGTH))) \ | ((1<<(32-(1+DBL_EXP_LENGTH))) - 1 ))); \ Dallp2(dbl_valueB) = 0xFFFFFFFF @@ -334,7 +334,7 @@ Dallp2(dbl_valueB) = 0 #define Dbl_setlargest(dbl_valueA,dbl_valueB,sign) \ Dallp1(dbl_valueA) = (sign << 31) | \ - ((DBL_MAX_EXP+DBL_BIAS) << (32-(1+DBL_EXP_LENGTH))) | \ + ((DBL_EMAX+DBL_BIAS) << (32-(1+DBL_EXP_LENGTH))) | \ ((1 << (32-(1+DBL_EXP_LENGTH))) - 1 ); \ Dallp2(dbl_valueB) = 0xFFFFFFFF @@ -426,11 +426,11 @@ /* Need to Initialize */ #define Dbl_makequietnan(desta,destb) \ - Dallp1(desta) = ((DBL_MAX_EXP+DBL_BIAS)+1)<< (32-(1+DBL_EXP_LENGTH)) \ + Dallp1(desta) = ((DBL_EMAX+DBL_BIAS)+1)<< (32-(1+DBL_EXP_LENGTH)) \ | (1<<(32-(1+DBL_EXP_LENGTH+2))); \ Dallp2(destb) = 0 #define Dbl_makesignalingnan(desta,destb) \ - Dallp1(desta) = ((DBL_MAX_EXP+DBL_BIAS)+1)<< (32-(1+DBL_EXP_LENGTH)) \ + Dallp1(desta) = ((DBL_EMAX+DBL_BIAS)+1)<< (32-(1+DBL_EXP_LENGTH)) \ | (1<<(32-(1+DBL_EXP_LENGTH+1))); \ Dallp2(destb) = 0 diff --git a/sys/arch/hppa/spmath/float.h b/sys/arch/hppa/spmath/float.h index 1039eb8fe72..3d6c56c236b 100644 --- a/sys/arch/hppa/spmath/float.h +++ b/sys/arch/hppa/spmath/float.h @@ -1,4 +1,4 @@ -/* $OpenBSD: float.h,v 1.6 2002/09/20 19:26:59 mickey Exp $ */ +/* $OpenBSD: float.h,v 1.7 2004/01/02 14:39:01 mickey Exp $ */ /* (c) Copyright 1986 HEWLETT-PACKARD COMPANY To anyone who acknowledges that this file is provided "AS IS" @@ -305,25 +305,28 @@ typedef struct dint dbl_integer; * Define the different precisions' parameters. */ #define SGL_BITLENGTH 32 +#define SGL_EMAX 127 #define SGL_BIAS 127 #define SGL_WRAP 192 -#define SGL_INFINITY_EXPONENT (FLT_MAX_EXP+SGL_BIAS+1) +#define SGL_INFINITY_EXPONENT (SGL_EMAX+SGL_BIAS+1) #define SGL_THRESHOLD 32 #define SGL_EXP_LENGTH 8 #define SGL_P 24 #define DBL_BITLENGTH 64 +#define DBL_EMAX 1023 #define DBL_BIAS 1023 #define DBL_WRAP 1536 -#define DBL_INFINITY_EXPONENT (DBL_MAX_EXP+DBL_BIAS+1) +#define DBL_INFINITY_EXPONENT (DBL_EMAX+DBL_BIAS+1) #define DBL_THRESHOLD 64 #define DBL_EXP_LENGTH 11 #define DBL_P 53 #define QUAD_BITLENGTH 128 +#define QUAD_EMAX 16383 #define QUAD_BIAS 16383 #define QUAD_WRAP 24576 -#define QUAD_INFINITY_EXPONENT (LDBL_MAX_EXP+QUAD_BIAS+1) +#define QUAD_INFINITY_EXPONENT (QUAD_EMAX+QUAD_BIAS+1) #define QUAD_P 113 /* Boolean Values etc. */ diff --git a/sys/arch/hppa/spmath/sgl_float.h b/sys/arch/hppa/spmath/sgl_float.h index bd6859a2ec3..f20c43bbff9 100644 --- a/sys/arch/hppa/spmath/sgl_float.h +++ b/sys/arch/hppa/spmath/sgl_float.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sgl_float.h,v 1.9 2003/04/10 17:27:59 mickey Exp $ */ +/* $OpenBSD: sgl_float.h,v 1.10 2004/01/02 14:39:01 mickey Exp $ */ /* (c) Copyright 1986 HEWLETT-PACKARD COMPANY To anyone who acknowledges that this file is provided "AS IS" @@ -192,10 +192,10 @@ Deposit_sexponent(sgl_value,(exponent op SGL_WRAP)) #define Sgl_setlargestpositive(sgl_value) \ - Sall(sgl_value) = ((FLT_MAX_EXP+SGL_BIAS) << (32-(1+SGL_EXP_LENGTH))) \ + Sall(sgl_value) = ((SGL_EMAX+SGL_BIAS) << (32-(1+SGL_EXP_LENGTH))) \ | ((1<<(32-(1+SGL_EXP_LENGTH))) - 1) #define Sgl_setlargestnegative(sgl_value) \ - Sall(sgl_value) = ((FLT_MAX_EXP+SGL_BIAS) << (32-(1+SGL_EXP_LENGTH))) \ + Sall(sgl_value) = ((SGL_EMAX+SGL_BIAS) << (32-(1+SGL_EXP_LENGTH))) \ | ((1<<(32-(1+SGL_EXP_LENGTH))) - 1 ) | (1<<31) #define Sgl_setnegativeinfinity(sgl_value) \ @@ -203,11 +203,11 @@ ((1<<SGL_EXP_LENGTH) | SGL_INFINITY_EXPONENT) << (32-(1+SGL_EXP_LENGTH)) #define Sgl_setlargest(sgl_value,sign) \ Sall(sgl_value) = ((sign) << 31) | \ - (((FLT_MAX_EXP+SGL_BIAS) << (32-(1+SGL_EXP_LENGTH))) \ + (((SGL_EMAX+SGL_BIAS) << (32-(1+SGL_EXP_LENGTH))) \ | ((1 << (32-(1+SGL_EXP_LENGTH))) - 1 )) #define Sgl_setlargest_exponentmantissa(sgl_value) \ Sall(sgl_value) = (Sall(sgl_value) & (1<<31)) | \ - (((FLT_MAX_EXP+SGL_BIAS) << (32-(1+SGL_EXP_LENGTH))) \ + (((SGL_EMAX+SGL_BIAS) << (32-(1+SGL_EXP_LENGTH))) \ | ((1 << (32-(1+SGL_EXP_LENGTH))) - 1 )) /* The high bit is always zero so arithmetic or logical shifts will work. */ @@ -248,10 +248,10 @@ /* Need to Initialize */ #define Sgl_makequietnan(dest) \ - Sall(dest) = ((FLT_MAX_EXP+SGL_BIAS)+1)<< (32-(1+SGL_EXP_LENGTH)) \ + Sall(dest) = ((SGL_EMAX+SGL_BIAS)+1)<< (32-(1+SGL_EXP_LENGTH)) \ | (1<<(32-(1+SGL_EXP_LENGTH+2))) #define Sgl_makesignalingnan(dest) \ - Sall(dest) = ((FLT_MAX_EXP+SGL_BIAS)+1)<< (32-(1+SGL_EXP_LENGTH)) \ + Sall(dest) = ((SGL_EMAX+SGL_BIAS)+1)<< (32-(1+SGL_EXP_LENGTH)) \ | (1<<(32-(1+SGL_EXP_LENGTH+1))) #define Sgl_normalize(sgl_opnd,exponent) \ |