Use ACX_PROG_CMP_IGNORE_INITIAL in gas
[deliverable/binutils-gdb.git] / gas / flonum-konst.c
CommitLineData
252b5132 1/* flonum_const.c - Useful Flonum constants
6f2750fe 2 Copyright (C) 1987-2016 Free Software Foundation, Inc.
252b5132
RH
3
4 This file is part of GAS, the GNU Assembler.
5
6 GAS is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
ec2655a6 8 the Free Software Foundation; either version 3, or (at your option)
252b5132
RH
9 any later version.
10
11 GAS is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GAS; see the file COPYING. If not, write to the Free
4b4da160
NC
18 Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
19 02110-1301, USA. */
252b5132 20
29589b0c 21#include "ansidecl.h"
252b5132
RH
22#include "flonum.h"
23/* JF: I added the last entry to this table, and I'm not
24 sure if its right or not. Could go either way. I wish
f0e652b4 25 I really understood this stuff. */
252b5132 26
252b5132
RH
27const int table_size_of_flonum_powers_of_ten = 13;
28
e6c774b4
KH
29static const LITTLENUM_TYPE zero[] = {
30 1
31};
252b5132
RH
32
33/***********************************************************************\
34 * *
35 * Warning: the low order bits may be WRONG here. *
36 * I took this from a suspect bc(1) script. *
37 * "minus_X"[] is supposed to be 10^(2^-X) expressed in base 2^16. *
38 * The radix point is just AFTER the highest element of the [] *
39 * *
40 * Because bc rounds DOWN for printing (I think), the lowest *
41 * significance littlenums should probably have 1 added to them. *
42 * *
43 \***********************************************************************/
44
45/* JF: If this equals 6553/(2^16)+39321/(2^32)+... it approaches .1 */
e6c774b4 46static const LITTLENUM_TYPE minus_1[] = {
252b5132 47 39322, 39321, 39321, 39321, 39321, 39321, 39321, 39321, 39321, 39321,
e6c774b4
KH
48 39321, 39321, 39321, 39321, 39321, 39321, 39321, 39321, 39321, 6553
49};
50
51static const LITTLENUM_TYPE plus_1[] = {
52 10
53};
252b5132
RH
54
55/* JF: If this equals 655/(2^16) + 23592/(2^32) + ... it approaches .01 */
e6c774b4 56static const LITTLENUM_TYPE minus_2[] = {
252b5132 57 10486, 36700, 62914, 23592, 49807, 10485, 36700, 62914, 23592, 49807,
e6c774b4
KH
58 10485, 36700, 62914, 23592, 49807, 10485, 36700, 62914, 23592, 655
59};
60
61static const LITTLENUM_TYPE plus_2[] = {
62 100
63};
252b5132
RH
64
65/* This approaches .0001 */
e6c774b4 66static const LITTLENUM_TYPE minus_3[] = {
252b5132 67 52534, 20027, 37329, 65116, 64067, 60397, 14784, 18979, 33659, 19503,
e6c774b4
KH
68 2726, 9542, 629, 2202, 40475, 10590, 4299, 47815, 36280, 6
69};
70
71static const LITTLENUM_TYPE plus_3[] = {
72 10000
73};
252b5132
RH
74
75/* JF: this approaches 1e-8 */
e6c774b4 76static const LITTLENUM_TYPE minus_4[] = {
252b5132 77 22517, 49501, 54293, 19424, 60699, 6716, 24348, 22618, 23904, 21327,
e6c774b4
KH
78 3919, 44703, 19149, 28803, 48959, 6259, 50273, 62237, 42
79};
80
252b5132 81/* This equals 1525 * 2^16 + 57600 */
e6c774b4
KH
82static const LITTLENUM_TYPE plus_4[] = {
83 57600, 1525
84};
252b5132
RH
85
86/* This approaches 1e-16 */
e6c774b4 87static const LITTLENUM_TYPE minus_5[] = {
252b5132 88 22199, 45957, 17005, 26266, 10526, 16260, 55017, 35680, 40443, 19789,
e6c774b4
KH
89 17356, 30195, 55905, 28426, 63010, 44197, 1844
90};
252b5132 91
e6c774b4
KH
92static const LITTLENUM_TYPE plus_5[] = {
93 28609, 34546, 35
94};
95
96static const LITTLENUM_TYPE minus_6[] = {
252b5132 97 30926, 26518, 13110, 43018, 54982, 48258, 24658, 15209, 63366, 11929,
e6c774b4
KH
98 20069, 43857, 60487, 51
99};
252b5132 100
e6c774b4
KH
101static const LITTLENUM_TYPE plus_6[] = {
102 61313, 34220, 16731, 11629, 1262
103};
252b5132 104
e6c774b4
KH
105static const LITTLENUM_TYPE minus_7[] = {
106 29819, 14733, 21490, 40602, 31315, 65186, 2695
107};
108
109static const LITTLENUM_TYPE plus_7[] = {
110 7937, 49002, 60772, 28216, 38893, 55975, 63988, 59711, 20227, 24
111};
112
113static const LITTLENUM_TYPE minus_8[] = {
252b5132 114 27579, 64807, 12543, 794, 13907, 61297, 12013, 64360, 15961, 20566,
e6c774b4
KH
115 24178, 15922, 59427, 110
116};
117
118static const LITTLENUM_TYPE plus_8[] = {
252b5132 119 15873, 11925, 39177, 991, 14589, 3861, 58415, 9076, 62956, 54223,
e6c774b4
KH
120 56328, 50180, 45274, 48333, 32537, 42547, 9731, 59679, 590
121};
252b5132 122
e6c774b4 123static const LITTLENUM_TYPE minus_9[] = {
252b5132
RH
124 11042, 8464, 58971, 63429, 6022, 63485, 5500, 53464, 47545, 50068,
125 56988, 22819, 49708, 54493, 9920, 47667, 40409, 35764, 10383, 54466,
e6c774b4
KH
126 32702, 17493, 32420, 34382, 22750, 20681, 12300
127};
128
129static const LITTLENUM_TYPE plus_9[] = {
252b5132
RH
130 20678, 27614, 28272, 53066, 55311, 54677, 29038, 9906, 26288, 44486,
131 13860, 7445, 54106, 15426, 21518, 25599, 29632, 52309, 61207, 26105,
e6c774b4
KH
132 10482, 21948, 51191, 32988, 60892, 62574, 61390, 24540, 21495, 5
133};
252b5132 134
e6c774b4 135static const LITTLENUM_TYPE minus_10[] = {
252b5132
RH
136 6214, 48771, 23471, 30163, 31763, 38013, 57001, 11770, 18263, 36366,
137 20742, 45086, 56969, 53231, 37856, 55814, 38057, 15692, 46761, 8713,
e6c774b4
KH
138 6102, 20083, 8269, 11839, 11571, 50963, 15649, 11698, 40675, 2308
139};
140
141static const LITTLENUM_TYPE plus_10[] = {
252b5132
RH
142 63839, 36576, 45712, 44516, 37803, 29482, 4966, 30556, 37961, 23310,
143 27070, 44972, 29507, 48257, 45209, 7494, 17831, 38728, 41577, 29443,
e6c774b4
KH
144 36016, 7955, 35339, 35479, 36011, 14553, 49618, 5588, 25396, 28
145};
252b5132 146
e6c774b4 147static const LITTLENUM_TYPE minus_11[] = {
252b5132
RH
148 16663, 56882, 61983, 7804, 36555, 32060, 34502, 1000, 14356, 21681,
149 6605, 34767, 51411, 59048, 53614, 39850, 30079, 6496, 6846, 26841,
e6c774b4
KH
150 40778, 19578, 59899, 44085, 54016, 24259, 11232, 21229, 21313, 81
151};
152
153static const LITTLENUM_TYPE plus_11[] = {
252b5132
RH
154 92, 9054, 62707, 17993, 7821, 56838, 13992, 21321, 29637, 48426,
155 42982, 38668, 49574, 28820, 18200, 18927, 53979, 16219, 37484, 2516,
e6c774b4
KH
156 44642, 14665, 11587, 41926, 13556, 23956, 54320, 6661, 55766, 805
157};
252b5132 158
e6c774b4 159static const LITTLENUM_TYPE minus_12[] = {
252b5132
RH
160 33202, 45969, 58804, 56734, 16482, 26007, 44984, 49334, 31007, 32944,
161 44517, 63329, 47131, 15291, 59465, 2264, 23218, 11829, 59771, 38798,
e6c774b4
KH
162 31051, 28748, 23129, 40541, 41562, 35108, 50620, 59014, 51817, 6613
163};
164
165static const LITTLENUM_TYPE plus_12[] = {
252b5132
RH
166 10098, 37922, 58070, 7432, 10470, 63465, 23718, 62190, 47420, 7009,
167 38443, 4587, 45596, 38472, 52129, 52779, 29012, 13559, 48688, 31678,
e6c774b4
KH
168 41753, 58662, 10668, 36067, 29906, 56906, 21461, 46556, 59571, 9
169};
252b5132 170
e6c774b4 171static const LITTLENUM_TYPE minus_13[] = {
252b5132
RH
172 45309, 27592, 37144, 34637, 34328, 41671, 34620, 24135, 53401, 22112,
173 21576, 45147, 39310, 44051, 48572, 3676, 46544, 59768, 33350, 2323,
e6c774b4
KH
174 49524, 61568, 3903, 36487, 36356, 30903, 14975, 9035, 29715, 667
175};
176
177static const LITTLENUM_TYPE plus_13[] = {
252b5132
RH
178 18788, 16960, 6318, 45685, 55400, 46230, 35794, 25588, 7253, 55541,
179 49716, 59760, 63592, 8191, 63765, 58530, 44667, 13294, 10001, 55586,
e6c774b4
KH
180 47887, 18738, 9509, 40896, 42506, 52580, 4171, 325, 12329, 98
181};
252b5132
RH
182
183/* Shut up complaints about differing pointer types. They only differ
184 in the const attribute, but there isn't any easy way to do this
185 */
186#define X (LITTLENUM_TYPE *)
187
e6c774b4 188const FLONUM_TYPE flonum_negative_powers_of_ten[] = {
252b5132
RH
189 {X zero, X zero, X zero, 0, '+'},
190 {X minus_1, X minus_1 + 19, X minus_1 + 19, -20, '+'},
191 {X minus_2, X minus_2 + 19, X minus_2 + 19, -20, '+'},
192 {X minus_3, X minus_3 + 19, X minus_3 + 19, -20, '+'},
193 {X minus_4, X minus_4 + 18, X minus_4 + 18, -20, '+'},
194 {X minus_5, X minus_5 + 16, X minus_5 + 16, -20, '+'},
195 {X minus_6, X minus_6 + 13, X minus_6 + 13, -20, '+'},
196 {X minus_7, X minus_7 + 6, X minus_7 + 6, -20, '+'},
197 {X minus_8, X minus_8 + 13, X minus_8 + 13, -40, '+'},
198 {X minus_9, X minus_9 + 26, X minus_9 + 26, -80, '+'},
199 {X minus_10, X minus_10 + 29, X minus_10 + 29, -136, '+'},
200 {X minus_11, X minus_11 + 29, X minus_11 + 29, -242, '+'},
201 {X minus_12, X minus_12 + 29, X minus_12 + 29, -455, '+'},
202 {X minus_13, X minus_13 + 29, X minus_13 + 29, -880, '+'},
203};
204
e6c774b4 205const FLONUM_TYPE flonum_positive_powers_of_ten[] = {
252b5132
RH
206 {X zero, X zero, X zero, 0, '+'},
207 {X plus_1, X plus_1 + 0, X plus_1 + 0, 0, '+'},
208 {X plus_2, X plus_2 + 0, X plus_2 + 0, 0, '+'},
209 {X plus_3, X plus_3 + 0, X plus_3 + 0, 0, '+'},
210 {X plus_4, X plus_4 + 1, X plus_4 + 1, 0, '+'},
211 {X plus_5, X plus_5 + 2, X plus_5 + 2, 1, '+'},
212 {X plus_6, X plus_6 + 4, X plus_6 + 4, 2, '+'},
213 {X plus_7, X plus_7 + 9, X plus_7 + 9, 4, '+'},
214 {X plus_8, X plus_8 + 18, X plus_8 + 18, 8, '+'},
215 {X plus_9, X plus_9 + 29, X plus_9 + 29, 24, '+'},
216 {X plus_10, X plus_10 + 29, X plus_10 + 29, 77, '+'},
217 {X plus_11, X plus_11 + 29, X plus_11 + 29, 183, '+'},
218 {X plus_12, X plus_12 + 29, X plus_12 + 29, 396, '+'},
219 {X plus_13, X plus_13 + 29, X plus_13 + 29, 821, '+'},
220};
221
222#ifdef VMS
3dd5103b
NC
223void
224dummy1 ()
225{
226}
252b5132 227#endif
This page took 0.719031 seconds and 4 git commands to generate.