1
2
3
4 declare 1 register_request aligned static,
5 2 requested_reg fixed bin aligned init(12),
6 2 assigned_reg bit(4) aligned,
7 2 lock fixed bin aligned init(1),
8 2 reg_set_now fixed bin aligned,
9 2 use_code fixed bin aligned init(0),
10 2 adjust_ptr_addr fixed bin aligned init(0),
11 2 content_ptr ptr aligned init(null),
12 2 literal_content bit(36) aligned init((36)"0"b);
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 declare 1 target aligned static,
51 2 type fixed bin aligned init(1),
52 2 operand_no fixed bin aligned init(0),
53 2 lock fixed bin aligned init(0),
54 2 segno fixed bin aligned,
55 2 char_offset fixed bin(24) aligned,
56 2 send_receive fixed bin aligned init(0);
57
58 declare 1 count aligned static,
59 2 type fixed bin aligned init(1),
60 2 operand_no fixed bin aligned init(0),
61 2 lock fixed bin aligned init(1),
62 2 segno fixed bin aligned init(2),
63 2 char_offset fixed bin(24) aligned,
64 2 send_receive fixed bin aligned init(0);
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 declare 1 input_struc aligned static,
90 2 type fixed bin aligned init(4),
91 2 operand_no fixed bin aligned init(1),
92 2 lock fixed bin aligned init(0),
93 2 operand,
94 3 token_ptr ptr aligned init(null),
95 3 send_receive fixed bin aligned init(0),
96 3 ic_mod fixed bin aligned,
97 3 size_sw fixed bin aligned init(0);
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137 declare 1 ptr_register_request aligned static,
138 2 what_pointer fixed bin aligned init(2),
139 2 assigned_ptr fixed bin aligned,
140 2 lock fixed bin aligned init(1),
141 2 switch fixed bin aligned init(0),
142 2 segno fixed bin aligned init(0),
143 2 offset fixed bin aligned init(0),
144 2 reset fixed bin aligned;
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171 declare 1 equate_tag aligned static,
172 2 size fixed bin aligned init(0),
173 2 line fixed bin aligned init(0),
174 2 column fixed bin aligned init(0),
175 2 type fixed bin aligned init(31),
176 2 filler1 fixed bin aligned init(0),
177 2 equated_tag fixed bin aligned init(0),
178 2 true_tag fixed bin aligned init(0),
179 2 filler2 fixed bin aligned init(0),
180 2 filler3 fixed bin aligned init(0),
181 2 filler4 bit(16) aligned init((16)"0"b);
182
183 declare 1 eos_token aligned static,
184 2 size fixed bin init(0),
185 2 line fixed bin init(0),
186 2 column fixed bin init(0),
187 2 type fixed bin init(19),
188 2 verb fixed bin init(0),
189 2 e fixed bin init(0),
190 2 h fixed bin init(0),
191 2 i fixed bin init(0),
192 2 j fixed bin init(0),
193 2 a bit(3) init("000"b),
194 2 b bit(1) init("0"b),
195 2 c bit(1) init("0"b),
196 2 d bit(2) init("00"b),
197 2 f bit(2) init("00"b),
198 2 g bit(2) init("00"b),
199 2 k bit(5) init("00000"b);
200
201 declare 1 seg_ovfl_error aligned static,
202 2 my_name char(32) init("cobol_perform_gen"),
203 2 message_len fixed bin init(32),
204 2 message char(32) init
205 ("Temp_token_area length exceeded!");
206
207
208 dcl seq1(8) bit(18) unaligned static init
209 ("000000000001000000"b, "011000101101000000"b,
210 "000000000000000000"b, "000000000000000000"b,
211 "000000000000000000"b, "000000000000000100"b,
212 "000000000000000000"b, "110000100100000100"b);
213
214 dcl seq2(8) bit(18) unaligned static init
215 ("000000000000000000"b, "100101000001000000"b,
216 "000000000000000011"b, "110010010000000100"b,
217 "000000000000000000"b, "100100010001000000"b,
218 "000000000000000000"b, "111001000000000100"b);
219
220 dcl seq2i(10) bit(18) unaligned static init
221 ("000000000000000000"b, "100101000001000000"b,
222 "000000000000000100"b, "110010010000000100"b,
223 "000000000000000000"b, "100100010001000000"b,
224 "000000000000000000"b, "110011101000000100"b,
225 "000000000000000000"b, "111001000000000100"b);
226
227 dcl seq3(14) bit(18) unaligned static init
228 ("000000000000000000"b, "010011110001000000"b,
229 "000000000000000001"b, "000111110000000111"b,
230 "000000000000000000"b, "111101110001000000"b,
231 "000000000000000000"b, "000000000000000000"b,
232
233 "000000000000000000"b, "110000001000000100"b,
234 "000000000000000000"b, "110010010000000100"b,
235 "000000000000000000"b, "100100010001000000"b);
236
237 dcl cmpq_id_10 bit(18) static init ("001001110001000000"b);
238
239 dcl cmpq_int_1 bit(18) static init ("001001110000000111"b);
240
241 dcl seq4(8) bit(18) unaligned static init
242 ("000000000000000000"b, "100101000001000000"b,
243 "000000000000000000"b, "110010010000000100"b,
244 "000000000000000000"b, "100100010001000000"b,
245 "000000000000000000"b, "111001000000000100"b);
246
247 dcl seq5(16) bit(18) unaligned static init
248 ("000000000000000000"b, "110010010000000100"b,
249 "000000000000000000"b, "100100010001000000"b,
250 "000000000000000110"b, "111001000000000100"b,
251 "000000000000000000"b, "010011110001000000"b,
252 "000000000000000000"b, "110000001000000100"b,
253 "000000000000000000"b, "000101100001000000"b,
254 "000000000000000000"b, "110011101000000100"b,
255 "000000000000000000"b, "111001000000000100"b);
256
257 dcl tra_inst(6) bit(18) unaligned static init
258 ("000000000000000000"b, "011101010100000100"b,
259 "110000000000000000"b, "010101010001000000"b,
260 "000000000000000000"b, "111001000000000100"b);
261
262 dcl ret_inst(2) bit(18) unaligned static init
263 ("110000000000000000"b, "110001000001000000"b);
264
265 dcl seq6(4) bit(18) unaligned static init
266 ("110000000000000000"b, "111101000001000000"b,
267 "000000000000000000"b, "111001000000000100"b);
268
269 dcl seq8(6) bit(18) unaligned static init
270 ("000000000000000011"b, "110010111000000100"b,
271 "000000000000000000"b, "100100111001000000"b,
272 "000000000000000000"b, "111001000000000100"b);
273
274 dcl move_in_token (1:10) ptr int static;
275 dcl move_data_init fixed bin int static init (0);
276
277 dcl 1 move_eos int static,
278 2 size fixed bin (15),
279 2 line fixed bin (15),
280 2 column fixed bin (15),
281 2 type fixed bin (15) init (19),
282 2 verb fixed bin (15) init (18),
283 2 e fixed bin (15) init (1);
284
285 dcl szn_seq (2) bit (18) int static init
286 ( "000000000000000000"b, "010011100001000000"b);
287
288
289
290
291
292
293 dcl cobol_add_gen entry (ptr, fixed bin),
294 cobol_addr entry (ptr, ptr, ptr),
295 cobol_alloc$cobol_data entry (fixed bin(24), fixed bin, fixed bin(24)),
296 cobol_alloc$stack entry (fixed bin, fixed bin, fixed bin),
297 cobol_arithop_gen entry (ptr),
298 cobol_compare_gen entry (ptr),
299 cobol_define_tag entry (fixed bin),
300 cobol_define_tag_nc entry (fixed bin, fixed bin),
301 cobol_emit entry (ptr, ptr, fixed bin),
302 cobol_equate_tag entry (ptr),
303 cobol_make_tagref entry (fixed bin, fixed bin, ptr),
304 cobol_move_gen entry (ptr),
305 cobol_pointer_register$get entry (ptr),
306 cobol_pointer_register$priority entry (fixed bin, fixed bin, bit(3)),
307 cobol_process_error entry (fixed bin, fixed bin, fixed bin),
308 cobol_register$load entry (ptr),
309 cobol_reset_r$in_line entry,
310 cobol_set_gen entry (ptr),
311 signal_ entry (char(*), ptr, ptr);
312 dcl cobol_make_type9$long_bin ext entry (ptr,fixed bin,fixed bin);
313 dcl cobol_num_to_udts ext entry (ptr,ptr);
314
315
316
317
318
319
320 dcl abs builtin,
321 addr builtin,
322 addrel builtin,
323 binary builtin,
324 null builtin,
325 rel builtin,
326 substr builtin,
327 unspec builtin;
328
329 %include cobol_seg_init_list;
330 %include cobol_type10;
331 %include cobol_type19;
332
333 %include cobol_type1;
334
335 %include cobol_type9;
336
337 %include cobol_in_token;
338
339 %include cobol_perform_list;
340
341 %include cobol_type2;
342
343 %include cobol_type18;
344
345 %include cobol_type30;
346
347 %include cobol_;
348