Subversion Repositories tendra.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
7 7u83 2
 * Copyright (c) 2002-2005 The TenDRA Project <http://www.tendra.org/>.
3
 * All rights reserved.
4
 *
5
 * Redistribution and use in source and binary forms, with or without
6
 * modification, are permitted provided that the following conditions are met:
7
 *
8
 * 1. Redistributions of source code must retain the above copyright notice,
9
 *    this list of conditions and the following disclaimer.
10
 * 2. Redistributions in binary form must reproduce the above copyright notice,
11
 *    this list of conditions and the following disclaimer in the documentation
12
 *    and/or other materials provided with the distribution.
13
 * 3. Neither the name of The TenDRA Project nor the names of its contributors
14
 *    may be used to endorse or promote products derived from this software
15
 *    without specific, prior written permission.
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
18
 * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
19
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
21
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22
 * EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
24
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
27
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
 *
29
 * $Id$
30
 */
31
/*
2 7u83 32
    		 Crown Copyright (c) 1997
33
 
34
    This TenDRA(r) Computer Program is subject to Copyright
35
    owned by the United Kingdom Secretary of State for Defence
36
    acting through the Defence Evaluation and Research Agency
37
    (DERA).  It is made available to Recipients with a
38
    royalty-free licence for its use, reproduction, transfer
39
    to other parties and amendment for any purpose not excluding
40
    product development provided that any such use et cetera
41
    shall be deemed to be acceptance of the following conditions:-
42
 
43
        (1) Its Recipients shall ensure that this Notice is
44
        reproduced upon any copies or amended versions of it;
45
 
46
        (2) Any amended version of it shall be clearly marked to
47
        show both the nature of and the organisation responsible
48
        for the relevant amendment or amendments;
49
 
50
        (3) Its onward transfer from a recipient to another
51
        party shall be deemed to be that party's acceptance of
52
        these conditions;
53
 
54
        (4) DERA gives no warranty or assurance as to its
55
        quality or suitability for any purpose and DERA accepts
56
        no liability whatsoever in relation to any use to which
57
        it may be put.
58
*/
59
 
60
 
61
/**********************************************************************
62
$Author: pwe $
63
$Date: 1998/03/11 11:03:40 $
64
$Revision: 1.3 $
65
$Log: dw2_entries.c,v $
66
 * Revision 1.3  1998/03/11  11:03:40  pwe
67
 * DWARF optimisation info
68
 *
69
 * Revision 1.2  1998/02/18  11:22:18  pwe
70
 * test corrections
71
 *
72
 * Revision 1.1.1.1  1998/01/17  15:55:48  release
73
 * First version to be checked into rolling release.
74
 *
75
**********************************************************************/
76
 
77
 
78
#include "config.h"
79
#include "dw2_entries.h"
80
#include "dw2_config.h"
81
#include "dw2_basic.h"
82
#include "basicread.h"
83
 
84
static long empty[] = { -1 };
85
 
86
static long x_variable[] = {
7 7u83 87
	H_AO | H_SS | H_LC,
88
	H_AO | H_SS | H_LL,
89
	H_AO | H_SS | H_LL | H_LE,
90
	H_AO | H_SS | H_CV,
91
	H_NM | H_XY | H_EX | H_TP | H_LC,
92
	H_NM | H_XY | H_EX | H_TP | H_LL,
93
	H_NM | H_XY | H_EX | H_TP | H_LL | H_LE,
94
	H_NM | H_XY | H_TP | H_SS | H_LC,
95
	H_NM | H_XY | H_TP | H_SS | H_LL,
96
	H_NM | H_XY | H_TP | H_SS | H_LL | H_LE,
97
	H_NM | H_XY | H_TP | H_SS | H_CV,
98
	H_NM | H_XY | H_TP | H_CV,
99
	H_DC | H_NM | H_XY | H_EX | H_AT | H_TP | H_LC,
100
	H_DC | H_NM | H_XY | H_EX | H_AT | H_TP | H_LL,
101
	H_DC | H_NM | H_XY | H_EX | H_AT | H_TP | H_LL | H_LE,
102
	H_DC | H_NM | H_XY | H_EX | H_AT | H_TP | H_CV,
103
	H_DC | H_NM | H_XY | H_AT | H_TP | H_SS | H_LC,
104
	H_DC | H_NM | H_XY | H_AT | H_TP | H_SS | H_LL,
105
	H_DC | H_NM | H_XY | H_AT | H_TP | H_SS | H_LL | H_LE,
106
	H_DC | H_NM | H_XY | H_AT | H_TP | H_SS | H_CV,
107
	H_DC | H_NM | H_XY | H_TP,
108
	H_DC | H_NM | H_XY | H_EX | H_TP,
109
	H_SP | H_XY | H_EX | H_LC,
110
	H_SP | H_XY | H_EX | H_LL,
111
	H_SP | H_XY | H_EX | H_LL | H_LE,
112
	H_SP | H_XY | H_EX | H_CV,
113
	H_SP | H_XY | H_SS | H_LC,
114
	H_SP | H_XY | H_SS | H_LL,
115
	H_SP | H_XY | H_SS | H_LL | H_LE,
116
	H_SP | H_XY | H_SS | H_CV,
117
	H_DC | H_NM | H_XY | H_EX | H_AT | H_AC | H_TP | H_LC,
118
	H_DC | H_NM | H_XY | H_EX | H_AT | H_AC | H_TP | H_LL,
119
	H_DC | H_NM | H_XY | H_EX | H_AT | H_AC | H_TP | H_LL | H_LE,
120
	H_DC | H_NM | H_XY | H_EX | H_AT | H_AC | H_TP | H_CV,
121
	H_DC | H_NM | H_XY | H_AT | H_AC | H_TP | H_SS | H_LC,
122
	H_DC | H_NM | H_XY | H_AT | H_AC | H_TP | H_SS | H_LL,
123
	H_DC | H_NM | H_XY | H_AT | H_AC | H_TP | H_SS | H_LL | H_LE,
124
	H_DC | H_NM | H_XY | H_AT | H_AC | H_TP | H_SS | H_CV,
125
	H_DC | H_NM | H_XY | H_EX | H_AT | H_TP | H_LC | H_RP,
126
	H_DC | H_NM | H_XY | H_EX | H_AT | H_TP | H_LL | H_RP,
127
	H_DC | H_NM | H_XY | H_EX | H_AT | H_TP | H_LL | H_LE | H_RP,
128
	H_DC | H_NM | H_XY | H_EX | H_AT | H_TP | H_CV | H_RP,
129
	H_DC | H_NM | H_XY | H_AT | H_TP | H_SS | H_LC | H_RP,
130
	H_DC | H_NM | H_XY | H_AT | H_TP | H_SS | H_LL | H_RP,
131
	H_DC | H_NM | H_XY | H_AT | H_TP | H_SS | H_LL | H_LE | H_RP,
132
	H_DC | H_NM | H_XY | H_AT | H_TP | H_SS | H_CV | H_RP,
133
	H_DC | H_NM | H_XY | H_EX | H_AT | H_AC | H_TP | H_LC | H_RP,
134
	H_DC | H_NM | H_XY | H_EX | H_AT | H_AC | H_TP | H_LL | H_RP,
135
	H_DC | H_NM | H_XY | H_EX | H_AT | H_AC | H_TP | H_LL | H_LE | H_RP,
136
	H_DC | H_NM | H_XY | H_EX | H_AT | H_AC | H_TP | H_CV | H_RP,
137
	H_DC | H_NM | H_XY | H_AT | H_AC | H_TP | H_SS | H_LC | H_RP,
138
	H_DC | H_NM | H_XY | H_AT | H_AC | H_TP | H_SS | H_LL | H_RP,
139
	H_DC | H_NM | H_XY | H_AT | H_AC | H_TP | H_SS | H_LL | H_LE | H_RP,
140
	H_DC | H_NM | H_XY | H_AT | H_AC | H_TP | H_SS | H_CV | H_RP,
141
 
2 7u83 142
 
7 7u83 143
#define y_variable	(H_DC|H_NM|H_XY|H_EX|H_AT)
2 7u83 144
 
145
static long x_constant[] = {
7 7u83 146
	H_NM | H_XY | H_TP | H_EX | H_CV,
147
	H_NM | H_XY | H_TP | H_SS | H_CV,
148
 
2 7u83 149
 
7 7u83 150
#define y_constant	(H_DC|H_NM|H_XY|H_EX|H_AT|H_VP)
2 7u83 151
 
152
static long x_param[] = {
7 7u83 153
	H_AO | H_LC,
154
	H_AO | H_CV,
155
	H_TP,
156
	H_NM | H_XY | H_TP,
157
	H_NM | H_XY | H_TP | H_VP,
158
	H_NM | H_XY | H_TP | H_VP | H_LL,
159
	H_NM | H_XY | H_TP | H_VP | H_LL | H_LE,
160
	H_NM | H_XY | H_TP | H_AT | H_VP,
161
	H_NM | H_XY | H_TP | H_AT | H_VP | H_LL,
162
	H_NM | H_XY | H_TP | H_AT | H_VP | H_LL | H_LE,
163
	H_NM | H_XY | H_TP | H_AC | H_VP,
164
	H_NM | H_XY | H_TP | H_AC | H_VP | H_LL,
165
	H_NM | H_XY | H_TP | H_AC | H_VP | H_LL | H_LE,
166
	H_NM | H_XY | H_TP | H_AT | H_AC | H_VP,
167
	H_NM | H_XY | H_TP | H_AT | H_AC | H_VP | H_LL,
168
	H_NM | H_XY | H_TP | H_AT | H_AC | H_VP | H_LL | H_LE,
169
	H_AO | H_LL,
170
	H_AO | H_LL | H_LE,
171
	H_TP | H_DF,
172
	H_NM | H_XY | H_TP | H_DF,
173
	H_NM | H_XY | H_TP | H_VP | H_DF,
174
	H_NM | H_XY | H_TP | H_VP | H_LL | H_DF,
175
	H_NM | H_XY | H_TP | H_VP | H_LL | H_LE | H_DF,
176
	H_NM | H_XY | H_TP | H_AT | H_VP | H_DF,
177
	H_NM | H_XY | H_TP | H_AT | H_VP | H_LL | H_DF,
178
	H_NM | H_XY | H_TP | H_AT | H_VP | H_LL | H_LE | H_DF,
179
	H_NM | H_XY | H_TP | H_AC | H_VP | H_DF,
180
	H_NM | H_XY | H_TP | H_AC | H_VP | H_LL | H_DF,
181
	H_NM | H_XY | H_TP | H_AC | H_VP | H_LL | H_LE | H_DF,
182
	H_NM | H_XY | H_TP | H_AT | H_AC | H_VP | H_DF,
183
	H_NM | H_XY | H_TP | H_AT | H_AC | H_VP | H_LL | H_DF,
184
	H_NM | H_XY | H_TP | H_AT | H_AC | H_VP | H_LL | H_LE | H_DF,
2 7u83 185
#ifdef H_DX
7 7u83 186
	H_TP | H_DX,
187
	H_NM | H_XY | H_TP | H_DX,
188
	H_NM | H_XY | H_TP | H_VP | H_DX,
189
	H_NM | H_XY | H_TP | H_VP | H_LL | H_DX,
190
	H_NM | H_XY | H_TP | H_VP | H_LL | H_LE | H_DX,
191
	H_NM | H_XY | H_TP | H_AT | H_VP | H_DX,
192
	H_NM | H_XY | H_TP | H_AT | H_VP | H_LL | H_DX,
193
	H_NM | H_XY | H_TP | H_AT | H_VP | H_LL | H_LE | H_DX,
194
	H_NM | H_XY | H_TP | H_AC | H_VP | H_DX,
195
	H_NM | H_XY | H_TP | H_AC | H_VP | H_LL | H_DX,
196
	H_NM | H_XY | H_TP | H_AC | H_VP | H_LL | H_LE | H_DX,
197
	H_NM | H_XY | H_TP | H_AT | H_AC | H_VP | H_DX,
198
	H_NM | H_XY | H_TP | H_AT | H_AC | H_VP | H_LL | H_DX,
199
	H_NM | H_XY | H_TP | H_AT | H_AC | H_VP | H_LL | H_LE | H_DX,
2 7u83 200
#endif
7 7u83 201
 
2 7u83 202
 
7 7u83 203
#define y_param	(H_DC|H_NM|H_XY|H_AT|H_VP)
2 7u83 204
 
205
static long x_proc[] = {
7 7u83 206
	H_AO | H_PC,
207
	H_AO | H_PC | H_SL,
208
	H_AO | H_PC | H_EXTN,
209
	H_AO | H_PC | H_SL | H_EXTN,
210
	H_DC | H_NM | H_XY | H_EX | H_AT | H_CC,
211
	H_DC | H_NM | H_XY | H_EX | H_AT | H_CC | H_TP,
212
	H_NM | H_XY | H_EX | H_AT | H_CC | H_PC,
213
	H_NM | H_XY | H_EX | H_AT | H_CC | H_TP | H_PC,
214
	H_NM | H_XY | H_EX | H_AT | H_CC | H_IL,
215
	H_NM | H_XY | H_EX | H_AT | H_CC | H_TP | H_IL,
216
	H_DC | H_SP | H_XY | H_EX | H_CC,
217
	H_SP | H_XY | H_EX | H_CC | H_PC,
218
	H_SP | H_XY | H_EX | H_CC | H_IL,
219
	H_DC | H_NM | H_XY | H_EX | H_AT | H_AC | H_CC,
220
	H_DC | H_NM | H_XY | H_EX | H_AT | H_AC | H_CC | H_TP,
221
	H_NM | H_XY | H_EX | H_AT | H_AC | H_CC | H_PC,
222
	H_NM | H_XY | H_EX | H_AT | H_AC | H_CC | H_TP | H_PC,
223
	H_NM | H_XY | H_EX | H_AT | H_AC | H_CC | H_IL,
224
	H_NM | H_XY | H_EX | H_AT | H_AC | H_CC | H_TP | H_IL,
225
	H_DC | H_SP | H_XY | H_EX | H_AC | H_CC,
226
	H_SP | H_XY | H_EX | H_AC | H_CC | H_PC,
227
	H_SP | H_XY | H_EX | H_AC | H_CC | H_IL,
228
	H_DC | H_NM | H_XY | H_EX | H_AT | H_CC | H_PT,
229
	H_DC | H_NM | H_XY | H_EX | H_AT | H_CC | H_TP | H_PT,
230
	H_NM | H_XY | H_EX | H_AT | H_CC | H_PT | H_PC,
231
	H_NM | H_XY | H_EX | H_AT | H_CC | H_TP | H_PT | H_PC,
232
	H_NM | H_XY | H_EX | H_AT | H_CC | H_PT | H_IL,
233
	H_NM | H_XY | H_EX | H_AT | H_CC | H_TP | H_PT | H_IL,
234
	H_DC | H_NM | H_XY | H_EX | H_AT | H_AC | H_CC | H_PT,
235
	H_DC | H_NM | H_XY | H_EX | H_AT | H_AC | H_CC | H_TP | H_PT,
236
	H_NM | H_XY | H_EX | H_AT | H_AC | H_CC | H_PT | H_PC,
237
	H_NM | H_XY | H_EX | H_AT | H_AC | H_CC | H_TP | H_PT | H_PC,
238
	H_NM | H_XY | H_EX | H_AT | H_AC | H_CC | H_PT | H_IL,
239
	H_NM | H_XY | H_EX | H_AT | H_AC | H_CC | H_TP | H_PT | H_IL,
2 7u83 240
 
7 7u83 241
	H_DC|H_NM|H_XY|H_EX|H_AT|H_CC|H_VT|H_EXTN,
242
	H_DC|H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_VT|H_EXTN,
243
	H_NM|H_XY|H_EX|H_AT|H_CC|H_PC|H_VT|H_EXTN,
244
	H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_PC|H_VT|H_EXTN,
245
	H_NM|H_XY|H_EX|H_AT|H_CC|H_IL|H_VT|H_EXTN,
246
	H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_IL|H_VT|H_EXTN,
247
	H_DC|H_SP|H_XY|H_EX|H_CC|H_VT|H_EXTN,
248
	H_SP|H_XY|H_EX|H_CC|H_PC|H_VT|H_EXTN,
249
	H_SP|H_XY|H_EX|H_CC|H_IL|H_VT|H_EXTN,
250
	H_DC|H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_VT|H_EXTN,
251
	H_DC|H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_VT|H_EXTN,
252
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_PC|H_VT|H_EXTN,
253
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_PC|H_VT|H_EXTN,
254
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_IL|H_VT|H_EXTN,
255
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_IL|H_VT|H_EXTN,
256
	H_DC|H_SP|H_XY|H_EX|H_AC|H_CC|H_VT|H_EXTN,
257
	H_SP|H_XY|H_EX|H_AC|H_CC|H_PC|H_VT|H_EXTN,
258
	H_SP|H_XY|H_EX|H_AC|H_CC|H_IL|H_VT|H_EXTN,
259
	H_DC|H_NM|H_XY|H_EX|H_AT|H_CC|H_PT|H_VT|H_EXTN,
260
	H_DC|H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_PT|H_VT|H_EXTN,
261
	H_NM|H_XY|H_EX|H_AT|H_CC|H_PT|H_PC|H_VT|H_EXTN,
262
	H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_PT|H_PC|H_VT|H_EXTN,
263
	H_NM|H_XY|H_EX|H_AT|H_CC|H_PT|H_IL|H_VT|H_EXTN,
264
	H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_PT|H_IL|H_VT|H_EXTN,
265
	H_DC|H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_PT|H_VT|H_EXTN,
266
	H_DC|H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_PT|H_VT|H_EXTN,
267
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_PT|H_PC|H_VT|H_EXTN,
268
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_PT|H_PC|H_VT|H_EXTN,
269
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_PT|H_IL|H_VT|H_EXTN,
270
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_PT|H_IL|H_VT|H_EXTN,
2 7u83 271
 
7 7u83 272
	H_DC|H_NM|H_XY|H_EX|H_AT|H_CC|H_VT|H_VL|H_EXTN,
273
	H_DC|H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_VT|H_VL|H_EXTN,
274
	H_NM|H_XY|H_EX|H_AT|H_CC|H_PC|H_VT|H_VL|H_EXTN,
275
	H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_PC|H_VT|H_VL|H_EXTN,
276
	H_NM|H_XY|H_EX|H_AT|H_CC|H_IL|H_VT|H_VL|H_EXTN,
277
	H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_IL|H_VT|H_VL|H_EXTN,
278
	H_DC|H_SP|H_XY|H_EX|H_CC|H_VT|H_VL|H_EXTN,
279
	H_SP|H_XY|H_EX|H_CC|H_PC|H_VT|H_VL|H_EXTN,
280
	H_SP|H_XY|H_EX|H_CC|H_IL|H_VT|H_VL|H_EXTN,
281
	H_DC|H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_VT|H_VL|H_EXTN,
282
	H_DC|H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_VT|H_VL|H_EXTN,
283
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_PC|H_VT|H_VL|H_EXTN,
284
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_PC|H_VT|H_VL|H_EXTN,
285
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_IL|H_VT|H_VL|H_EXTN,
286
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_IL|H_VT|H_VL|H_EXTN,
287
	H_DC|H_SP|H_XY|H_EX|H_AC|H_CC|H_VT|H_VL|H_EXTN,
288
	H_SP|H_XY|H_EX|H_AC|H_CC|H_PC|H_VT|H_VL|H_EXTN,
289
	H_SP|H_XY|H_EX|H_AC|H_CC|H_IL|H_VT|H_VL|H_EXTN,
290
	H_DC|H_NM|H_XY|H_EX|H_AT|H_CC|H_PT|H_VT|H_VL|H_EXTN,
291
	H_DC|H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_PT|H_VT|H_VL|H_EXTN,
292
	H_NM|H_XY|H_EX|H_AT|H_CC|H_PT|H_PC|H_VT|H_VL|H_EXTN,
293
	H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_PT|H_PC|H_VT|H_VL|H_EXTN,
294
	H_NM|H_XY|H_EX|H_AT|H_CC|H_PT|H_IL|H_VT|H_VL|H_EXTN,
295
	H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_PT|H_IL|H_VT|H_VL|H_EXTN,
296
	H_DC|H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_PT|H_VT|H_VL|H_EXTN,
297
	H_DC|H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_PT|H_VT|H_VL|H_EXTN,
298
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_PT|H_PC|H_VT|H_VL|H_EXTN,
299
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_PT|H_PC|H_VT|H_VL|H_EXTN,
300
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_PT|H_IL|H_VT|H_VL|H_EXTN,
301
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_PT|H_IL|H_VT|H_VL|H_EXTN,
2 7u83 302
 
7 7u83 303
	H_NM|H_XY|H_EX|H_AT|H_CC|H_PC|H_SL|H_VT|H_EXTN,
304
	H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_PC|H_SL|H_VT|H_EXTN,
305
	H_SP|H_XY|H_EX|H_CC|H_PC|H_SL|H_VT|H_EXTN,
306
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_PC|H_SL|H_VT|H_EXTN,
307
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_PC|H_SL|H_VT|H_EXTN,
308
	H_SP|H_XY|H_EX|H_AC|H_CC|H_PC|H_SL|H_VT|H_EXTN,
309
	H_NM|H_XY|H_EX|H_AT|H_CC|H_PT|H_PC|H_SL|H_VT|H_EXTN,
310
	H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_PT|H_PC|H_SL|H_VT|H_EXTN,
311
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_PT|H_PC|H_SL|H_VT|H_EXTN,
312
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_PT|H_PC|H_SL|H_VT|H_EXTN,
2 7u83 313
 
7 7u83 314
	H_NM|H_XY|H_EX|H_AT|H_CC|H_PC|H_SL|H_VT|H_VL|H_EXTN,
315
	H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_PC|H_SL|H_VT|H_VL|H_EXTN,
316
	H_SP|H_XY|H_EX|H_CC|H_PC|H_SL|H_VT|H_VL|H_EXTN,
317
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_PC|H_SL|H_VT|H_VL|H_EXTN,
318
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_PC|H_SL|H_VT|H_VL|H_EXTN,
319
	H_SP|H_XY|H_EX|H_AC|H_CC|H_PC|H_SL|H_VT|H_VL|H_EXTN,
320
	H_NM|H_XY|H_EX|H_AT|H_CC|H_PT|H_PC|H_SL|H_VT|H_VL|H_EXTN,
321
	H_NM|H_XY|H_EX|H_AT|H_CC|H_TP|H_PT|H_PC|H_SL|H_VT|H_VL|H_EXTN,
322
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_PT|H_PC|H_SL|H_VT|H_VL|H_EXTN,
323
	H_NM|H_XY|H_EX|H_AT|H_AC|H_CC|H_TP|H_PT|H_PC|H_SL|H_VT|H_VL|H_EXTN,
2 7u83 324
 
7 7u83 325
 
2 7u83 326
 
7 7u83 327
#define y_proc	(H_DC|H_NM|H_XY|H_EX|H_AT|H_CC|H_VT|H_EXTN)
328
#define z_proc	(H_EL|H_GN|H_RP|H_LN)
2 7u83 329
 
330
static long x_entry[] = {
7 7u83 331
	H_NM | H_XY,
332
	H_NM | H_XY | H_AC,
333
	H_NM | H_XY | H_TP,
334
	H_NM | H_XY | H_AC | H_TP,
335
	H_NM | H_XY | H_RP,
336
	H_NM | H_XY | H_AC | H_RP,
337
	H_NM | H_XY | H_TP | H_RP,
338
	H_NM | H_XY | H_AC | H_TP | H_RP,
339
 
2 7u83 340
 
7 7u83 341
#define y_entry	(H_NM|H_XY)
2 7u83 342
 
343
static long x_module[] = {
7 7u83 344
	H_AO,
345
	H_AO | H_PC,
346
	H_AO | H_EL,
347
	H_DC | H_NM | H_XY | H_AT,
348
	H_DC | H_NM | H_XY | H_AT | H_EXTN,
349
	H_DC | H_SP | H_XY,
350
	H_DC | H_NM | H_XY | H_AT | H_AC,
351
	H_DC | H_NM | H_XY | H_AT | H_AC | H_EXTN,
352
	H_DC | H_SP | H_XY | H_AC,
353
	H_DC | H_NM | H_XY | H_AT | H_PC,
354
	H_DC | H_NM | H_XY | H_AT | H_PC | H_EXTN,
355
	H_DC | H_NM | H_XY | H_AT | H_AC | H_PC,
356
	H_DC | H_NM | H_XY | H_AT | H_AC | H_PC | H_EXTN,
357
	H_DC | H_NM | H_XY | H_AT | H_SP | H_EXTN,
358
	H_DC | H_NM | H_XY | H_AT | H_AC | H_SP | H_EXTN,
359
	H_DC | H_NM | H_XY | H_AT | H_PC | H_SP | H_EXTN,
360
	H_DC | H_NM | H_XY | H_AT | H_AC | H_PC | H_SP | H_EXTN,
361
 
2 7u83 362
 
7 7u83 363
#define y_module	(H_DC|H_NM|H_XY|H_AT)
2 7u83 364
 
365
static long x_namespace[] = {
7 7u83 366
	H_AO,
367
	H_DC | H_NM | H_XY | H_AT,
368
	H_DC | H_NM | H_XY | H_AT | H_EXTN,
369
	H_DC | H_SP | H_XY,
370
	H_DC | H_NM | H_XY | H_AT | H_AC,
371
	H_DC | H_NM | H_XY | H_AT | H_AC | H_EXTN,
372
	H_DC | H_SP | H_XY | H_AC,
373
 
2 7u83 374
 
7 7u83 375
#define y_namespace	(H_DC|H_NM|H_XY|H_AT)
2 7u83 376
 
377
static long x_import[] = {
7 7u83 378
	0,
379
	H_NM | H_XY,
380
	H_AC,
381
	H_NM | H_XY | H_AC,
382
	H_SS,
383
	H_NM | H_XY | H_SS,
384
	H_AC | H_SS,
385
	H_NM | H_XY | H_AC | H_SS,
386
 
2 7u83 387
 
7 7u83 388
#define y_import	(H_NM|H_XY)
2 7u83 389
 
390
static long x_lexscope[] = {
7 7u83 391
	0,
392
	H_PC,
393
	H_NM | H_XY | H_PC,
394
	H_PC | H_BG,
395
	H_NM | H_XY | H_PC | H_BG,
396
 
2 7u83 397
 
7 7u83 398
#define y_lexscope	(H_NM|H_XY)
2 7u83 399
 
400
static long x_typedef[] = {
7 7u83 401
	0,
402
	H_TP,
403
	H_DC | H_NM | H_XY,
404
	H_NM | H_XY | H_TP,
405
	H_DC | H_NM | H_XY | H_TP,
406
	H_SP | H_NM | H_XY | H_TP,
407
	H_SP | H_NM | H_XY | H_TP | H_NW,
408
	H_DC | H_NM | H_XY | H_AT | H_TP | H_NW,
409
	H_SP | H_DC | H_NM | H_XY | H_AT | H_TP | H_NW,
410
	H_DC | H_NM | H_XY | H_AT | H_AC | H_TP | H_NW,
411
	H_SP | H_DC | H_NM | H_XY | H_AT | H_AC | H_TP | H_NW,
412
	H_SP | H_NM | H_XY | H_TP | H_AD,
413
	H_DC | H_NM | H_XY | H_AT | H_TP | H_AD,
414
	H_SP | H_DC | H_NM | H_XY | H_AT | H_TP | H_AD,
415
	H_DC | H_NM | H_XY | H_AT | H_AC | H_TP | H_AD,
416
	H_SP | H_DC | H_NM | H_XY | H_AT | H_AC | H_TP | H_AD,
417
	H_AO,
418
 
2 7u83 419
 
7 7u83 420
#define y_typedef	(H_DC|H_NM|H_XY|H_AT|H_NW)
2 7u83 421
 
422
static long x_struct[] = {
7 7u83 423
	H_NM | H_SZ,
424
	H_SZ,
425
	H_DC | H_SZ,
426
	H_DC | H_NM | H_SZ,
427
	H_SP | H_SZ,
428
	H_SP | H_NM | H_SZ,
429
	H_DC | H_NM | H_XY | H_NW,
430
	H_DC | H_NM | H_XY | H_SZ | H_NW,
431
	H_SP | H_DC | H_NM | H_XY | H_NW,
432
	H_SP | H_DC | H_NM | H_XY | H_SZ | H_NW,
433
 
2 7u83 434
 
7 7u83 435
#define y_struct	(H_DC|H_NM|H_XY|H_NW)
2 7u83 436
 
437
static long x_class[] = {
7 7u83 438
	H_NM | H_SZ,
439
	H_SZ,
440
	H_DC | H_SZ,
441
	H_DC | H_NM | H_SZ,
442
	H_SP | H_SZ,
443
	H_SP | H_NM | H_SZ,
444
	H_DC | H_NM | H_XY | H_EXTN,
445
	H_DC | H_NM | H_XY | H_SZ | H_EXTN,
446
	H_SP | H_DC | H_NM | H_XY | H_EXTN,
447
	H_SP | H_DC | H_NM | H_XY | H_SZ | H_EXTN,
448
 
2 7u83 449
 
7 7u83 450
#define y_class	(H_DC|H_NM|H_XY|H_GN|H_EXTN)
451
#define z_class	(H_NW|H_EL|H_VS|H_VD|H_RS|H_RD|H_CB|H_ID)
2 7u83 452
 
453
static long x_member[] = {
7 7u83 454
	H_NM | H_TP,
455
	H_NM | H_TP | H_LC,
456
	H_NM | H_TP | H_BF,
457
	H_NM | H_TP | H_LC | H_BF,
458
	H_NM | H_XY | H_TP,
459
	H_NM | H_XY | H_TP | H_LC,
460
	H_NM | H_XY | H_TP | H_BF,
461
	H_NM | H_XY | H_TP | H_LC | H_BF,
462
	H_NM | H_XY | H_AC | H_TP,
463
	H_NM | H_XY | H_AC | H_TP | H_LC,
464
	H_NM | H_XY | H_AC | H_TP | H_BF,
465
	H_NM | H_XY | H_AC | H_TP | H_LC | H_BF,
466
	H_NM | H_XY | H_TP | H_DS,
467
	H_NM | H_XY | H_TP | H_LC | H_DS,
468
	H_NM | H_XY | H_TP | H_BF | H_DS,
469
	H_NM | H_XY | H_TP | H_LC | H_BF | H_DS,
470
	H_NM | H_XY | H_AC | H_TP | H_DS,
471
	H_NM | H_XY | H_AC | H_TP | H_LC | H_DS,
472
	H_NM | H_XY | H_AC | H_TP | H_BF | H_DS,
473
	H_NM | H_XY | H_AC | H_TP | H_LC | H_BF | H_DS,
474
	H_NM | H_XY | H_TP | H_DS | H_DF,
475
	H_NM | H_XY | H_TP | H_LC | H_DS | H_DF,
476
	H_NM | H_XY | H_TP | H_BF | H_DS | H_DF,
477
	H_NM | H_XY | H_TP | H_LC | H_BF | H_DS | H_DF,
478
	H_NM | H_XY | H_AC | H_TP | H_DS | H_DF,
479
	H_NM | H_XY | H_AC | H_TP | H_LC | H_DS | H_DF,
480
	H_NM | H_XY | H_AC | H_TP | H_BF | H_DS | H_DF,
481
	H_NM | H_XY | H_AC | H_TP | H_LC | H_BF | H_DS | H_DF,
2 7u83 482
#ifdef H_DX
7 7u83 483
	H_NM | H_XY | H_TP | H_DS | H_DX,
484
	H_NM | H_XY | H_TP | H_LC | H_DS | H_DX,
485
	H_NM | H_XY | H_TP | H_BF | H_DS | H_DX,
486
	H_NM | H_XY | H_TP | H_LC | H_BF | H_DS | H_DX,
487
	H_NM | H_XY | H_AC | H_TP | H_DS | H_DX,
488
	H_NM | H_XY | H_AC | H_TP | H_LC | H_DS | H_DX,
489
	H_NM | H_XY | H_AC | H_TP | H_BF | H_DS | H_DX,
490
	H_NM | H_XY | H_AC | H_TP | H_LC | H_BF | H_DS | H_DX,
2 7u83 491
#endif
7 7u83 492
 
2 7u83 493
 
7 7u83 494
#define y_member	(H_NM|H_XY)
2 7u83 495
 
496
static long x_ind_mem[] = {
7 7u83 497
	H_NM | H_TP | H_LC,
498
	H_NM | H_XY | H_TP | H_LC,
499
 
2 7u83 500
 
7 7u83 501
#define y_ind_mem	(H_NM|H_XY)
2 7u83 502
 
503
static long x_inherit[] = {
7 7u83 504
	H_TP | H_LC,
505
	H_XY | H_TP | H_LC | H_VT,
506
	H_XY | H_TP | H_LC | H_AC | H_VT,
507
 
2 7u83 508
 
7 7u83 509
#define y_inherit	(H_XY|H_VT)
2 7u83 510
 
511
static long x_procret[] = {
7 7u83 512
	H_XY,
513
	H_XY | H_PC,
514
	H_XY | H_PC | H_LC,
515
 
2 7u83 516
 
517
static long x_throw[] = {
7 7u83 518
	H_XY,
519
	H_XY | H_TP,
520
	H_XY | H_TP | H_LC,
521
	H_XY | H_TP | H_CV,
522
 
2 7u83 523
 
524
static long x_destruct[] = {
7 7u83 525
	0,
526
	H_TP | H_LC,
527
	H_TP | H_CV,
528
 
2 7u83 529
 
530
static long x_enum[] = {
7 7u83 531
	H_NM | H_SZ,
532
	H_NM | H_XY | H_SZ,
533
	H_SP | H_NM | H_XY | H_SZ,
534
	H_DC | H_NM | H_XY | H_SZ | H_NW,
535
	H_SP | H_DC | H_NM | H_XY | H_SZ | H_NW,
536
 
2 7u83 537
 
7 7u83 538
#define y_enum	(H_DC|H_NM|H_XY|H_NW)
2 7u83 539
 
540
static long x_cons_t[] = {
7 7u83 541
	H_DC | H_TP | H_SZ,
542
	H_DC | H_SP | H_TP | H_SZ,
543
 
2 7u83 544
 
7 7u83 545
#define y_cons_t	(H_DC)
2 7u83 546
 
547
static long x_subr[] = {
7 7u83 548
	0,
549
	H_TP | H_SZ,
550
	H_TP | H_SZ | H_LB,
551
	H_TP | H_SZ | H_LB | H_UB,
552
	H_TP | H_SZ | H_LB | H_CN,
553
	H_TP | H_SZ | H_UB,
554
 
2 7u83 555
 
556
static long x_constraint[] = {
7 7u83 557
	H_CV,
558
	H_TP,
559
	H_RM | H_CV,
560
	H_RM | H_TP,
561
 
2 7u83 562
 
563
static long x_fixpt[] = {
7 7u83 564
	0,
565
	H_DF,
566
	H_DS,
567
	H_DF | H_DS,
568
 
2 7u83 569
 
570
 
571
 
572
#if 1
7 7u83 573
#define Z(a, b, c, d)	{0, a, (long)b, (long)c, d}
2 7u83 574
#else
7 7u83 575
#define Z(a, b, c, d)	{0, a, (long)b, (long)c}
2 7u83 576
#endif
577
 
578
 
579
abbrev_entry
7 7u83 580
  dwe_comp_unit	= Z(empty, 0, 0, "compilation unit"),
581
  dwe_cmac_unit	= Z(empty, 0, 0, "compilation unit with macros"),
582
  dwe_module	= Z(x_module, y_module, 0, "module"),
583
  dwe_namespace	= Z(x_namespace, y_namespace, 0, "namespace"),
584
  dwe_subunit	= Z(empty, 0, 0, "subunit"),
585
  dwe_childunit	= Z(empty, 0, 0, "child unit"),
586
  dwe_child_acc	= Z(empty, 0, 0, "child unit_a"),
587
  dwe_import	= Z(x_import, y_import, 0, "import"),
588
  dwe_import_p	= Z(x_import, y_import, 0, "import_p"),
589
  dwe_entrypt	= Z(empty, 0, 0, "entry point"),
590
  dwe_param	= Z(x_param, y_param, 0, "formal parameter"),
591
  dwe_formal	= Z(empty, 0, 0, "formal parameter type"),
592
  dwe_opt_par	= Z(empty, 0, 0, "unspecified parameters"),
593
  dwe_thrown_t	= Z(empty, 0, 0, "thrown type"),
594
  dwe_inl_call	= Z(empty, 0, 0, "inlined call"),
595
  dwe_inl_opnd	= Z(empty, 0, 0, "inlined call is operand"),
596
  dwe_scope	= Z(x_lexscope, y_lexscope, 0, "lexical block"),
597
  dwe_fragment	= Z(empty, 0, 0, "lexical fragment"),
598
  dwe_label	= Z(empty, 0, 0, "labelled statement"),
599
  dwe_with	= Z(empty, 0, 0, "with statement"),
600
  dwe_try	= Z(empty, 0, 0, "try block"),
601
  dwe_catch	= Z(empty, 0, 0, "catch block"),
602
  dwe_variable	= Z(x_variable, y_variable, 0, "variable"),
603
  dwe_constant	= Z(x_constant, y_constant, 0, "constant"),
604
  dwe_tmpl_type	= Z(empty, 0, 0, "template type"),
605
  dwe_tmpl_val	= Z(empty, 0, 0, "template value"),
606
  dwe_tmpl_proc	= Z(empty, 0, 0, "template proc"),
607
  dwe_tmpl_mod	= Z(empty, 0, 0, "template module"),
608
  dwe_typedef	= Z(x_typedef, y_typedef, 0, "type definition"),
609
  dwe_typecon	= Z(x_typedef, y_typedef, 0, "type definition with constraints"),
610
  dwe_cnstraint	= Z(x_constraint, 0, 0, "constraint"),
611
  dwe_base_type	= Z(empty, 0, 0, "base type"),
612
  dwe_cnst_type	= Z(empty, 0, 0, "const type"),
613
  dwe_vol_type	= Z(empty, 0, 0, "volatile type"),
614
  dwe_clwd_type	= Z(empty, 0, 0, "class wide type"),
615
  dwe_als_type	= Z(empty, 0, 0, "aliased type"),
616
  dwe_lim_type	= Z(empty, 0, 0, "limited type"),
617
  dwe_ptr_type	= Z(empty, 0, 0, "pointer type"),
618
  dwe_hpptr_t	= Z(empty, 0, 0, "heap-only pointer"),
619
  dwe_ref_type	= Z(empty, 0, 0, "reference type"),
620
  dwe_pack_type	= Z(empty, 0, 0, "packed type"),
621
  dwe_arr_type	= Z(empty, 0, 0, "array type"),
622
  dwe_arr_dyn	= Z(empty, 0, 0, "array type"),
623
  dwe_subr_type	= Z(x_subr, 0, 0, "subrange type"),
624
  dwe_enum_type	= Z(x_enum, y_enum, 0, "enumeration type"),
625
  dwe_enum_tor	= Z(empty, 0, 0, "enumerator"),
626
  dwe_enum_char	= Z(empty, 0, 0, "enumerator"),
627
  dwe_struct_t	= Z(x_struct, y_struct, 0, "struct type"),
628
  dwe_member	= Z(x_member, y_member, 0, "member"),
629
  dwe_varpart	= Z(empty, 0, 0, "variant part discr"),
630
  dwe_varpart_t	= Z(empty, 0, 0, "variant part type"),
631
  dwe_variant_0	= Z(empty, 0, 0, "variant def"),
632
  dwe_variant_1	= Z(empty, 0, 0, "variant val"),
633
  dwe_variant_n	= Z(empty, 0, 0, "variant list"),
634
  dwe_union_t	= Z(x_struct, y_struct, 0, "union type"),
635
  dwe_class_t	= Z(x_class, y_class, z_class, "class type"),
636
  dwe_inheritce	= Z(x_inherit, y_inherit, 0, "inheritance"),
637
  dwe_friend	= Z(empty, 0, 0, "friend"),
638
  dwe_ptrmem_t	= Z(empty, 0, 0, "ptr to member type"),
639
  dwe_ind_mem	= Z(x_ind_mem, y_ind_mem, 0, "indirect member"),
640
  dwe_proc_type	= Z(empty, 0, 0, "subroutine type"),
641
  dwe_procv_t	= Z(empty, 0, 0, "subroutine type void"),
642
  dwe_string_t	= Z(empty, 0, 0, "string type"),
643
  dwe_stringc_t	= Z(empty, 0, 0, "string type, constant length"),
644
  dwe_file_t	= Z(x_cons_t, y_cons_t, 0, "file type"),
645
  dwe_set_t	= Z(x_cons_t, y_cons_t, 0, "set type"),
646
  dwe_fixpt_t	= Z(x_fixpt, 0, 0, "fixed point type"),
647
  dwe_fldg_t	= Z(empty, 0, 0, "floating digits"),
648
  dwe_modular_t	= Z(empty, 0, 0, "modular type"),
649
  dwe_task_t	= Z(x_class, y_class, z_class, "task type"),
650
  dwe_synch_t	= Z(x_class, y_class, z_class, "synchronous type"),
651
  dwe_entry	= Z(x_entry, y_entry, 0, "entry"),
652
  dwe_for_unit	= Z(empty, 0, 0, "foreign compunit"),
653
  dwe_for_lang	= Z(empty, 0, 0, "foreign language"),
654
  dwe_call	= Z(empty, 0, 0, "subroutine call"),
655
  dwe_return	= Z(x_procret, 0, 0, "subroutine return"),
656
  dwe_destruct	= Z(x_destruct, 0, 0, "destruct"),
657
  dwe_branch	= Z(empty, 0, 0, "branch"),
658
  dwe_branch_0	= Z(empty, 0, 0, "optimised branch"),
659
  dwe_break	= Z(empty, 0, 0, "breakpoint"),
660
  dwe_test	= Z(empty, 0, 0, "test"),
661
  dwe_test_0	= Z(empty, 0, 0, "optimised test"),
662
  dwe_jump	= Z(empty, 0, 0, "jump"),
663
  dwe_jump_0	= Z(empty, 0, 0, "optimised jump"),
664
  dwe_lj	= Z(empty, 0, 0, "long jump"),
665
  dwe_lj_0	= Z(empty, 0, 0, "optimised long jump"),
666
  dwe_throw	= Z(x_throw, 0, 0, "throw"),
667
  dwe_barrier	= Z(empty, 0, 0, "entry barrier"),
668
  dwe_select	= Z(empty, 0, 0, "select"),
669
  dwe_accept	= Z(empty, 0, 0, "accept"),
670
  dwe_accept_c	= Z(empty, 0, 0, "accept_c"),
671
  dwe_rts	= Z(empty, 0, 0, "rts call"),
672
  dwe_rts_en	= Z(empty, 0, 0, "rts entry call"),
673
  dwe_sel_alt	= Z(empty, 0, 0, "select alternative"),
674
  dwe_sel_alt_c	= Z(empty, 0, 0, "select alternative_c"),
675
  dwe_sel_guard	= Z(empty, 0, 0, "select guard"),
676
  dwe_asynchsel	= Z(empty, 0, 0, "asynchronous select"),
677
  dwe_trigger	= Z(empty, 0, 0, "triggering alternate"),
678
  dwe_trigger_c	= Z(empty, 0, 0, "triggering alternate_c"),
679
  dwe_abort_pt	= Z(empty, 0, 0, "abortable part"),
680
  dwe_abort_ptc	= Z(empty, 0, 0, "abortable part_c"),
681
  dwe_requeue	= Z(empty, 0, 0, "requeue"),
682
  dwe_unknown_t	= Z(empty, 0, 0, "unknown type"),
683
  dwe_span	= Z(empty, 0, 0, "source span"),
684
  dwe_span_strt	= Z(empty, 0, 0, "span start"),
685
  dwe_span_end	= Z(empty, 0, 0, "span end"),
686
  dwe_absent	= Z(empty, 0, 0, "absent"),
687
  dwe_absent_r	= Z(empty, 0, 0, "absent with ref"),
688
  dwe_absent_x	= Z(empty, 0, 0, "absent statement"),
689
  dwe_absent_xr	= Z(empty, 0, 0, "absent statement with ref"),
690
  dwe_displaced	= Z(empty, 0, 0, "movement source"),
691
  dwe_displ_x	= Z(empty, 0, 0, "moved statement source"),
692
  dwe_moved	= Z(empty, 0, 0, "movement dest"),
693
  dwe_moved_r	= Z(empty, 0, 0, "movement dest with ref"),
694
  dwe_moved_x	= Z(empty, 0, 0, "trivial movement dest"),
695
  dwe_moved_xr	= Z(empty, 0, 0, "trivial movement dest with ref"),
696
  dwe_optim	= Z(empty, 0, 0, "optimisation block"),
697
  dwe_proc	= Z(x_proc, y_proc, z_proc, "subroutine");
2 7u83 698
 
699
 
7 7u83 700
static int
701
count(long *attr)
2 7u83 702
{
7 7u83 703
	int c = 0;
704
	if (*attr == -1) {
705
		return 1;
706
	}
707
	do {
708
		c++;
709
	} while (*(++attr));
710
	return c;
2 7u83 711
}
712
 
7 7u83 713
 
714
void
715
init_dw_entries(void)
2 7u83 716
{
717
#define CT(x)	x.index = c; c+= count(x.attr)
7 7u83 718
	int c = 1;
719
	CT(dwe_comp_unit);
720
	CT(dwe_cmac_unit);
721
	CT(dwe_module);
722
	CT(dwe_namespace);
723
	CT(dwe_subunit);
724
	CT(dwe_childunit);
725
	CT(dwe_child_acc);
726
	CT(dwe_import);
727
	CT(dwe_import_p);
728
	CT(dwe_entrypt);
729
	CT(dwe_param);
730
	CT(dwe_formal);
731
	CT(dwe_opt_par);
732
	CT(dwe_thrown_t);
733
	CT(dwe_inl_call);
734
	CT(dwe_inl_opnd);
735
	CT(dwe_scope);
736
	CT(dwe_fragment);
737
	CT(dwe_label);
738
	CT(dwe_with);
739
	CT(dwe_try);
740
	CT(dwe_catch);
741
	CT(dwe_variable);
742
	CT(dwe_constant);
743
	CT(dwe_tmpl_type);
744
	CT(dwe_tmpl_val);
745
	CT(dwe_tmpl_proc);
746
	CT(dwe_tmpl_mod);
747
	CT(dwe_typedef);
748
	CT(dwe_typecon);
749
	CT(dwe_cnstraint);
750
	CT(dwe_base_type);
751
	CT(dwe_cnst_type);
752
	CT(dwe_vol_type);
753
	CT(dwe_clwd_type);
754
	CT(dwe_als_type);
755
	CT(dwe_lim_type);
756
	CT(dwe_ptr_type);
757
	CT(dwe_hpptr_t);
758
	CT(dwe_ref_type);
759
	CT(dwe_pack_type);
760
	CT(dwe_arr_type);
761
	CT(dwe_arr_dyn);
762
	CT(dwe_subr_type);
763
	CT(dwe_enum_type);
764
	CT(dwe_enum_tor);
765
	CT(dwe_enum_char);
766
	CT(dwe_struct_t);
767
	CT(dwe_member);
768
	CT(dwe_varpart);
769
	CT(dwe_varpart_t);
770
	CT(dwe_variant_0);
771
	CT(dwe_variant_1);
772
	CT(dwe_variant_n);
773
	CT(dwe_union_t);
774
	CT(dwe_class_t);
775
	CT(dwe_inheritce);
776
	CT(dwe_friend);
777
	CT(dwe_ptrmem_t);
778
	CT(dwe_ind_mem);
779
	CT(dwe_proc_type);
780
	CT(dwe_procv_t);
781
	CT(dwe_string_t);
782
	CT(dwe_stringc_t);
783
	CT(dwe_file_t);
784
	CT(dwe_set_t);
785
	CT(dwe_fixpt_t);
786
	CT(dwe_fldg_t);
787
	CT(dwe_modular_t);
788
	CT(dwe_task_t);
789
	CT(dwe_synch_t);
790
	CT(dwe_entry);
791
	CT(dwe_for_unit);
792
	CT(dwe_for_lang);
793
	CT(dwe_call);
794
	CT(dwe_return);
795
	CT(dwe_destruct);
796
	CT(dwe_branch);
797
	CT(dwe_branch_0);
798
	CT(dwe_break);
799
	CT(dwe_test);
800
	CT(dwe_test_0);
801
	CT(dwe_jump);
802
	CT(dwe_jump_0);
803
	CT(dwe_lj);
804
	CT(dwe_lj_0);
805
	CT(dwe_throw);
806
	CT(dwe_barrier);
807
	CT(dwe_select);
808
	CT(dwe_accept);
809
	CT(dwe_accept_c);
810
	CT(dwe_rts);
811
	CT(dwe_rts_en);
812
	CT(dwe_sel_alt);
813
	CT(dwe_sel_alt_c);
814
	CT(dwe_sel_guard);
815
	CT(dwe_asynchsel);
816
	CT(dwe_trigger);
817
	CT(dwe_trigger_c);
818
	CT(dwe_abort_pt);
819
	CT(dwe_abort_ptc);
820
	CT(dwe_requeue);
821
	CT(dwe_unknown_t);
822
	CT(dwe_span);
823
	CT(dwe_span_strt);
824
	CT(dwe_span_end);
825
	CT(dwe_absent);
826
	CT(dwe_absent_r);
827
	CT(dwe_absent_x);
828
	CT(dwe_absent_xr);
829
	CT(dwe_displaced);
830
	CT(dwe_displ_x);
831
	CT(dwe_moved);
832
	CT(dwe_moved_r);
833
	CT(dwe_moved_x);
834
	CT(dwe_moved_xr);
835
	CT(dwe_optim);
836
	CT(dwe_proc);
837
	UNUSED(c);
838
	return;
2 7u83 839
}
840
 
841
 
7 7u83 842
long
843
dw_entry(abbrev_entry en, long attr)
2 7u83 844
{
7 7u83 845
	int d_tag = en.index;
846
	long *comb = en.attr;
847
	if (*comb != -1) {
848
		for (;;) {
849
			long extra = *comb & ~attr;
850
			long missing = attr & ~*comb & ~(en.special);
851
			if (!(extra & ~(en.valid)) && !missing) {
852
				break;
853
			}
854
			if (!*(++comb)) {
855
				failer("unsupported attribute combination");
856
			}
857
			d_tag++;
858
		}
859
	}
860
	out8();
861
	uleb128((unsigned long)d_tag);
2 7u83 862
#if 1
7 7u83 863
	outnl_comment_i(en.aname, (long)(d_tag - en.index));
2 7u83 864
#else
7 7u83 865
	d_outnl();
2 7u83 866
#endif
7 7u83 867
	return *comb;
2 7u83 868
}