Added h8300xray target
[deliverable/binutils-gdb.git] / gas / flonum-const.c
CommitLineData
fecd2382 1/* flonum_const.c - Useful Flonum constants
01170860 2 Copyright (C) 1987, 1990, 1991, 1992 Free Software Foundation, Inc.
a39116f1
RP
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
8 the Free Software Foundation; either version 2, or (at your option)
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
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
fecd2382 19
fecd2382
RP
20#include "flonum.h"
21/* JF: I added the last entry to this table, and I'm not
22 sure if its right or not. Could go either way. I wish
23 I really understood this stuff. */
24
25
26const int table_size_of_flonum_powers_of_ten = 11;
27
28static const LITTLENUM_TYPE zero[] = { 1 };
29
30/***********************************************************************\
a39116f1
RP
31 * *
32 * Warning: the low order bits may be WRONG here. *
33 * I took this from a suspect bc(1) script. *
34 * "minus_X"[] is supposed to be 10^(2^-X) expressed in base 2^16. *
35 * The radix point is just AFTER the highest element of the [] *
36 * *
37 * Because bc rounds DOWN for printing (I think), the lowest *
38 * significance littlenums should probably have 1 added to them. *
39 * *
40 \***********************************************************************/
fecd2382
RP
41
42/* JF: If this equals 6553/(2^16)+39321/(2^32)+... it approaches .1 */
43static const LITTLENUM_TYPE minus_1 [] = {
a39116f1
RP
44 39321, 39321, 39321, 39321, 39321, 39321, 39321, 39321, 39321, 39321,
45 39321, 39321, 39321, 39321, 39321, 39321, 39321, 39321, 39321, 6553 };
fecd2382
RP
46static const LITTLENUM_TYPE plus_1 [] = { 10 };
47
48/* JF: If this equals 655/(2^16) + 23592/(2^32) + ... it approaches .01 */
49static const LITTLENUM_TYPE minus_2 [] = {
a39116f1
RP
50 10485, 36700, 62914, 23592, 49807, 10485, 36700, 62914, 23592, 49807,
51 10485, 36700, 62914, 23592, 49807, 10485, 36700, 62914, 23592, 655 };
fecd2382
RP
52static const LITTLENUM_TYPE plus_2 [] = { 100 };
53
54/* This approaches .0001 */
55static const LITTLENUM_TYPE minus_3 [] = {
a39116f1
RP
56 52533, 20027, 37329, 65116, 64067, 60397, 14784, 18979, 33659, 19503,
57 2726, 9542, 629, 2202, 40475, 10590, 4299, 47815, 36280, 6 };
fecd2382
RP
58static const LITTLENUM_TYPE plus_3 [] = { 10000 };
59
60/* JF: this approaches 1e-8 */
61static const LITTLENUM_TYPE minus_4 [] = {
a39116f1
RP
62 22516, 49501, 54293, 19424, 60699, 6716, 24348, 22618, 23904, 21327,
63 3919, 44703, 19149, 28803, 48959, 6259, 50273, 62237, 42 };
fecd2382
RP
64/* This equals 1525 * 2^16 + 57600 */
65static const LITTLENUM_TYPE plus_4 [] = { 57600, 1525 };
66
67/* This approaches 1e-16 */
68static const LITTLENUM_TYPE minus_5 [] = {
a39116f1
RP
69 22199, 45957, 17005, 26266, 10526, 16260, 55017, 35680, 40443, 19789,
70 17356, 30195, 55905, 28426, 63010, 44197, 1844 };
fecd2382
RP
71static const LITTLENUM_TYPE plus_5 [] = { 28609, 34546, 35 };
72
73static const LITTLENUM_TYPE minus_6 [] = {
a39116f1
RP
74 30926, 26518, 13110, 43018, 54982, 48258, 24658, 15209, 63366, 11929,
75 20069, 43857, 60487, 51 };
fecd2382
RP
76static const LITTLENUM_TYPE plus_6 [] = { 61313, 34220, 16731, 11629, 1262 };
77
78static const LITTLENUM_TYPE minus_7 [] = {
a39116f1 79 29819, 14733, 21490, 40602, 31315, 65186, 2695 };
fecd2382 80static const LITTLENUM_TYPE plus_7 [] = {
a39116f1 81 7937, 49002, 60772, 28216, 38893, 55975, 63988, 59711, 20227, 24 };
fecd2382
RP
82
83static const LITTLENUM_TYPE minus_8 [] = {
a39116f1
RP
84 45849, 19069, 18068, 36324, 37948, 48745, 10873, 64360, 15961, 20566,
85 24178, 15922, 59427, 110 };
fecd2382 86static const LITTLENUM_TYPE plus_8 [] = {
a39116f1
RP
87 15873, 11925, 39177, 991, 14589, 19735, 25347, 65086, 53853, 938,
88 37209, 47086, 33626, 23253, 32586, 42547, 9731, 59679, 590 };
fecd2382
RP
89
90static const LITTLENUM_TYPE minus_9 [] = {
a39116f1
RP
91 63601, 55221, 43562, 33661, 29067, 28203, 65417, 64352, 22462, 41110,
92 12570, 28635, 23199, 50572, 28471, 27074, 46375, 64028, 13106, 63700,
93 32698, 17493, 32420, 34382, 22750, 20681, 12300 };
fecd2382 94static const LITTLENUM_TYPE plus_9 [] = {
a39116f1
RP
95 63564, 61556, 29377, 54467, 18621, 28141, 36415, 61241, 47119, 30026,
96 19740, 46002, 13541, 61413, 30480, 38664, 32205, 50593, 51112, 48904,
97 48263, 43814, 286, 30826, 52813, 62575, 61390, 24540, 21495, 5 };
fecd2382
RP
98
99static const LITTLENUM_TYPE minus_10 [] = {
a39116f1
RP
100 50313, 34681, 1464, 25889, 19575, 41125, 17635, 4598, 49708, 13427,
101 17287, 56115, 53783, 38255, 32415, 17778, 31596, 7557, 20951, 18477,
102 40353, 1178, 44405, 11837, 11571, 50963, 15649, 11698, 40675, 2308, };
fecd2382 103static const LITTLENUM_TYPE plus_10[] = {
a39116f1
RP
104 18520, 53764, 54535, 61910, 61962, 59843, 46270, 58053, 12473, 63785,
105 2449, 43230, 50044, 47595, 10403, 35766, 32607, 1124, 24966, 35044,
106 25524, 23631, 18826, 14518, 58448, 14562, 49618, 5588, 25396, 28 };
fecd2382
RP
107
108static const LITTLENUM_TYPE minus_11 [] = {
a39116f1
RP
109 6223, 59909, 62437, 59960, 14652, 45336, 48800, 7647, 51962, 37982,
110 60436, 58176, 26767, 8440, 9831, 48556, 20994, 14148, 6757, 17221,
111 60624, 46129, 53210, 44085, 54016, 24259, 11232, 21229, 21313, 81, };
fecd2382 112static const LITTLENUM_TYPE plus_11 [] = {
a39116f1
RP
113 36159, 2055, 33615, 61362, 23581, 62454, 9748, 15275, 39284, 58636,
114 16269, 42793, 47240, 45774, 50861, 48400, 9413, 40281, 4030, 9572,
115 7984, 33038, 59522, 19450, 40593, 24486, 54320, 6661, 55766, 805, };
fecd2382
RP
116
117/* Shut up complaints about differing pointer types. They only differ
118 in the const attribute, but there isn't any easy way to do this
a39116f1 119 */
fecd2382
RP
120#define X (LITTLENUM_TYPE *)
121
122const FLONUM_TYPE flonum_negative_powers_of_ten [] = {
a39116f1
RP
123 {X zero, X zero, X zero, 0, '+'},
124 {X minus_1, X minus_1 +19, X minus_1 + 19, -20, '+'},
125 {X minus_2, X minus_2 +19, X minus_2 + 19, -20, '+'},
126 {X minus_3, X minus_3 +19, X minus_3 + 19, -20, '+'},
127 {X minus_4, X minus_4 +18, X minus_4 + 18, -20, '+'},
128 {X minus_5, X minus_5 +16, X minus_5 + 16, -20, '+'},
129 {X minus_6, X minus_6 +13, X minus_6 + 13, -20, '+'},
130 {X minus_7, X minus_7 + 6, X minus_7 + 6, -20, '+'},
131 {X minus_8, X minus_8 +13, X minus_8 + 13, -40, '+'},
132 {X minus_9, X minus_9 +26, X minus_9 + 26, -80, '+'},
133 {X minus_10, X minus_10+29, X minus_10 + 29,-136, '+'},
134 {X minus_11, X minus_11+29, X minus_11 + 29,-242, '+'},
fecd2382
RP
135};
136
137const FLONUM_TYPE flonum_positive_powers_of_ten [] = {
a39116f1
RP
138 {X zero, X zero, X zero, 0, '+'},
139 {X plus_1, X plus_1 + 0, X plus_1 + 0, 0, '+'},
140 {X plus_2, X plus_2 + 0, X plus_2 + 0, 0, '+'},
141 {X plus_3, X plus_3 + 0, X plus_3 + 0, 0, '+'},
142 {X plus_4, X plus_4 + 1, X plus_4 + 1, 0, '+'},
143 {X plus_5, X plus_5 + 2, X plus_5 + 2, 1, '+'},
144 {X plus_6, X plus_6 + 4, X plus_6 + 4, 2, '+'},
145 {X plus_7, X plus_7 + 9, X plus_7 + 9, 4, '+'},
146 {X plus_8, X plus_8 + 18, X plus_8 + 18, 8, '+'},
147 {X plus_9, X plus_9 + 29, X plus_9 + 29, 24, '+'},
148 {X plus_10, X plus_10 + 29, X plus_10 + 29, 77, '+'},
149 {X plus_11, X plus_11 + 29, X plus_11 + 29, 183, '+'},
fecd2382
RP
150};
151
152#ifdef VMS
153dummy1()
154{
155}
156#endif
8b228fe9 157/* end of flonum_const.c */
This page took 0.049436 seconds and 4 git commands to generate.