OSDN Git Service

* system.h (ENCODE_SECTION_INFO): Poison it.
[pf3gnuchains/gcc-fork.git] / gcc / config / float-sh.h
1 /* float.h for target sh3e with optional IEEE 32 bit double format */
2 #ifndef _FLOAT_H_
3 #define _FLOAT_H_
4 /* Produced by enquire version 4.3, CWI, Amsterdam */
5
6    /* Radix of exponent representation */
7 #undef FLT_RADIX
8 #define FLT_RADIX 2
9    /* Number of base-FLT_RADIX digits in the significand of a float */
10 #undef FLT_MANT_DIG
11 #define FLT_MANT_DIG 24
12    /* Number of decimal digits of precision in a float */
13 #undef FLT_DIG
14 #define FLT_DIG 6
15    /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown */
16 #undef FLT_ROUNDS
17 #define FLT_ROUNDS 1
18    /* Difference between 1.0 and the minimum float greater than 1.0 */
19 #undef FLT_EPSILON
20 #define FLT_EPSILON 1.19209290e-07F
21    /* Minimum int x such that FLT_RADIX**(x-1) is a normalised float */
22 #undef FLT_MIN_EXP
23 #define FLT_MIN_EXP (-125)
24    /* Minimum normalised float */
25 #undef FLT_MIN
26 #define FLT_MIN 1.17549435e-38F
27    /* Minimum int x such that 10**x is a normalised float */
28 #undef FLT_MIN_10_EXP
29 #define FLT_MIN_10_EXP (-37)
30    /* Maximum int x such that FLT_RADIX**(x-1) is a representable float */
31 #undef FLT_MAX_EXP
32 #define FLT_MAX_EXP 128
33    /* Maximum float */
34 #undef FLT_MAX
35 #define FLT_MAX 3.40282347e+38F
36    /* Maximum int x such that 10**x is a representable float */
37 #undef FLT_MAX_10_EXP
38 #define FLT_MAX_10_EXP 38
39
40 #if defined (__SH3E__) || defined (__SH4_SINGLE_ONLY__)
41
42    /* Number of base-FLT_RADIX digits in the significand of a double */
43 #undef DBL_MANT_DIG
44 #define DBL_MANT_DIG 24
45    /* Number of decimal digits of precision in a double */
46 #undef DBL_DIG
47 #define DBL_DIG 6
48    /* Difference between 1.0 and the minimum double greater than 1.0 */
49 #undef DBL_EPSILON
50 #define DBL_EPSILON 1.19209290e-07F
51    /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
52 #undef DBL_MIN_EXP
53 #define DBL_MIN_EXP (-125)
54    /* Minimum normalised double */
55 #undef DBL_MIN
56 #define DBL_MIN 1.17549435e-38F
57    /* Minimum int x such that 10**x is a normalised double */
58 #undef DBL_MIN_10_EXP
59 #define DBL_MIN_10_EXP (-37)
60    /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
61 #undef DBL_MAX_EXP
62 #define DBL_MAX_EXP 128
63    /* Maximum double */
64 #undef DBL_MAX
65 #define DBL_MAX 3.40282347e+38F
66    /* Maximum int x such that 10**x is a representable double */
67 #undef DBL_MAX_10_EXP
68 #define DBL_MAX_10_EXP 38
69
70 #else
71
72    /* Number of base-FLT_RADIX digits in the significand of a double */
73 #undef DBL_MANT_DIG
74 #define DBL_MANT_DIG 53
75    /* Number of decimal digits of precision in a double */
76 #undef DBL_DIG
77 #define DBL_DIG 15
78    /* Difference between 1.0 and the minimum double greater than 1.0 */
79 #undef DBL_EPSILON
80 #define DBL_EPSILON 2.2204460492503131e-16
81    /* Minimum int x such that FLT_RADIX**(x-1) is a normalised double */
82 #undef DBL_MIN_EXP
83 #define DBL_MIN_EXP (-1021)
84    /* Minimum normalised double */
85 #undef DBL_MIN
86 #define DBL_MIN 2.2250738585072014e-308
87    /* Minimum int x such that 10**x is a normalised double */
88 #undef DBL_MIN_10_EXP
89 #define DBL_MIN_10_EXP (-307)
90    /* Maximum int x such that FLT_RADIX**(x-1) is a representable double */
91 #undef DBL_MAX_EXP
92 #define DBL_MAX_EXP 1024
93    /* Maximum double */
94 #undef DBL_MAX
95 #define DBL_MAX 1.7976931348623157e+308
96    /* Maximum int x such that 10**x is a representable double */
97 #undef DBL_MAX_10_EXP
98 #define DBL_MAX_10_EXP 308
99
100 #endif
101
102 /* Because -m3e and -m4-single-only have 32-bit doubles, we append L
103    to the doubles below, so that they're not truncated.  */
104
105    /* Number of base-FLT_RADIX digits in the significand of a long double */
106 #undef LDBL_MANT_DIG
107 #define LDBL_MANT_DIG 53
108    /* Number of decimal digits of precision in a long double */
109 #undef LDBL_DIG
110 #define LDBL_DIG 15
111    /* Difference between 1.0 and the minimum long double greater than 1.0 */
112 #undef LDBL_EPSILON
113 #define LDBL_EPSILON 2.2204460492503131e-16L
114    /* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
115 #undef LDBL_MIN_EXP
116 #define LDBL_MIN_EXP (-1021)
117    /* Minimum normalised long double */
118 #undef LDBL_MIN
119 #define LDBL_MIN 2.2250738585072014e-308L
120    /* Minimum int x such that 10**x is a normalised long double */
121 #undef LDBL_MIN_10_EXP
122 #define LDBL_MIN_10_EXP (-307)
123    /* Maximum int x such that FLT_RADIX**(x-1) is a representable long double */
124 #undef LDBL_MAX_EXP
125 #define LDBL_MAX_EXP 1024
126    /* Maximum long double */
127 #undef LDBL_MAX
128 #define LDBL_MAX 1.7976931348623157e+308L
129    /* Maximum int x such that 10**x is a representable long double */
130 #undef LDBL_MAX_10_EXP
131 #define LDBL_MAX_10_EXP 308
132
133 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
134    /* The floating-point expression evaluation method.
135         -1  indeterminate
136          0  evaluate all operations and constants just to the range and
137             precision of the type
138          1  evaluate operations and constants of type float and double
139             to the range and precision of the double type, evaluate
140             long double operations and constants to the range and
141             precision of the long double type
142          2  evaluate all operations and constants to the range and
143             precision of the long double type
144    */
145 # undef FLT_EVAL_METHOD
146 # define FLT_EVAL_METHOD        0
147
148    /* Number of decimal digits to enable rounding to the given number of
149       decimal digits without loss of precision.
150          if FLT_RADIX == 10^n:  #mantissa * log10 (FLT_RADIX)
151          else                :  ceil (1 + #mantissa * log10 (FLT_RADIX))
152       where #mantissa is the number of bits in the mantissa of the widest
153       supported floating-point type.
154    */
155 # undef DECIMAL_DIG
156 # define DECIMAL_DIG    17
157
158 #endif  /* C99 */
159
160 #endif /*  _FLOAT_H_ */