1 " ***********************************************************
2 " * *
3 " * Copyright, C Honeywell Information Systems Inc., 1982 *
4 " * *
5 " * Copyright c 1972 by Massachusetts Institute of *
6 " * Technology and Honeywell Information Systems, Inc. *
7 " * *
8 " ***********************************************************
9
10 " Static data segment for code generator
11 "
12 " Modified: 16 Nov by PCK to fix bug 1858 by adding cg_stat$in_thunk.
13 "
14 name cg_stat
15 "
16 " CONSTANT INFORMATION
17 "
18 segdef max_program_size size of largest program
19 max_program_size:
20 dec 65536
21 "
22 segdef max_stack_size size of largest stack frame
23 max_stack_size:
24 dec 60000
25 "
26 segdef packed_null_value inernal value of packed null pointer
27 packed_null_value:
28 oct 007777000001
29 "
30 segdef null_value internal value of null ptr
31 even
32 null_value:
33 its -1,1,n
34 "
35 segdef offset_null_value internal value of offset null value
36 offset_null_value:
37 oct 777777777777
38 "
39 segdef def_pool_size
40 def_pool_size:
41 dec 10 size of definition pool
42 "
43 segdef version_number
44 version_number:
45 dec 2
46 "
47 " VARIABLES
48 "
49 use linkc
50 join /link/linkc
51 "
52 " FIXED SCALARS
53 "
54 segdef aos_array loc in linkage section of current position
55 bss aos_array,1 in array of aos counters for entries into prog.
56 "
57 segdef bit_count bit count of object segment
58 bss bit_count,1
59 "
60 even
61 segdef clock_time clock reading at start of compilation
62 bss clock_time,2
63 "
64 segdef cur_level nexting level of block being compiled
65 bss cur_level,1
66 "
67 segdef def_origin relcg_stat$def_base stored as fixed bin18
68 bss def_origin,1
69 "
70 segdef def_pool dim0:10
71 bss def_pool,11 vector of pooled definition ptrs for ext static
72 "
73 segdef def_pos next position to be filled in definitions section
74 bss def_pos,1
75 "
76 segdef last_base_used last base register used
77 bss last_base_used,1
78 "
79 segdef last_call position in text of last call operator
80 bss last_call,1
81 "
82 segdef last_index_used last index used in index chain
83 bss last_index_used,1
84 "
85 segdef last_macro last macro expanded
86 bss last_macro,1
87 "
88 segdef link_begin offset where links start in linkage segment
89 bss link_begin,1
90 "
91 segdef link_origin relcg_stat$link_base stored as fixed bin18
92 bss link_origin,1
93 "
94 segdef link_pos next position to be filled in linkage section
95 bss link_pos,1
96 "
97 segdef link_rel start of linkage in object segment
98 bss link_rel,1
99 "
100 segdef list_break vector of section breaks in listing
101 bss list_break,4
102 "
103 segdef map_start loc of start of source map in symbol
104 bss map_start,1
105 "
106 segdef profile_pos next position to be filled in profile
107 bss profile_pos,1
108 "
109 segdef profile_start position of start of long_profile
110 bss profile_start,1
111 "
112 segdef stat_pos next position to be filled in static section
113 bss stat_pos,1
114 "
115 segdef stat_rel start of static in object segment
116 bss stat_rel,1
117 "
118 segdef sym_origin relcg_stat$sym_base stored as fixed bin18
119 bss sym_origin,1
120 "
121 segdef sym_pos next position to be filled in symbol section
122 bss sym_pos,1
123 "
124 segdef sym_rel start of symbol in object segment
125 bss sym_rel,1
126 "
127 segdef text_origin relcg_stat$text_base stored as fixed bin18
128 bss text_origin,1
129 "
130 segdef text_pos next position to be filled in text section
131 bss text_pos,1
132 "
133 " BIT SCALARS
134 "
135 segdef debug bit1, ON if debug option used
136 bss debug,1
137 "
138 segdef extended_stack bit1, ON if stack extended at run-time
139 bss extended_stack,1
140 "
141 segdef for_test_called bit1, ON if compile_exp$for_test called
142 bss for_test_called,1
143 "
144 segdef full_symtab bit1, ON means generate full symbol table
145 bss full_symtab,1
146 "
147 segdef generate_map bit1, ON if statement map being generated
148 bss generate_map,1
149 "
150 segdef generate_symtab bit1, ON if "put_in_symtab" bit found on any symbol
151 bss generate_symtab,1
152 "
153 segdef in_thunk bit1, ON if compiling thunk
154 bss in_thunk,1
155 "
156 segdef in_prologue bit1, ON if compiling prologue
157 bss in_prologue,1
158 "
159 segdef io_used bit1, ON if io statements used
160 bss io_used,1
161 "
162 segdef last_def bit18, loc of last definition
163 bss last_def,1
164 "
165 segdef long_profile bit1, ON if -long_profile specified
166 bss long_profile,1
167 "
168 segdef old_id bit27, id of last entry in object map
169 bss old_id,1
170 "
171 segdef optimize bit1, ON if optimize specified
172 bss optimize,1
173 "
174 segdef profile_option bit1, ON if profile should be generated
175 bss profile_option,1
176 "
177 segdef save_exp_called bit1, ON if compile_exp$save called
178 bss save_exp_called,1
179 "
180 segdef seg_def bit18, loc of class 3 segname definition
181 bss seg_def,1
182 "
183 segdef skip_to_label bit1, ON if ignoring lines after uncond tra
184 bss skip_to_label,1
185 "
186 segdef star_symbol_up_zero bit18, location of link to <*symbol>|0
187 bss star_symbol_up_zero,1
188 "
189 segdef separate_static bit1, ON if separate static section
190 bss separate_static,1
191 "
192 segdef stop_id bit27, id of statement to stop on, debugging only
193 stop_id: oct 777777777777
194 "
195 segdef support bit1, ON if support option specified
196 bss support,1
197 "
198 segdef table_option bit1, ON if table option specified
199 bss table_option,1
200 "
201 segdef use_type_6 bit1, ON if type 6 links must be generated
202 bss use_type_6,1 for external data references
203 "
204 segdef used_operator 900 bit1, ON if ith operator used
205 bss used_operator,25
206 "
207 segdef zero_def bit18, loc of zero word in definitions
208 bss zero_def,1
209 "
210 "
211 " CHARACTER SCALARS
212 "
213 segdef compiler_name char12 var, name of compiler
214 bss compiler_name,4
215 "
216 segdef seg_name char32 var, name of program being compiled
217 bss seg_name,9
218 "
219 segdef version_name char64 var, version of compiler message
220 bss version_name,34
221 "
222 " POINTER SCALARS
223 "
224 even
225 "
226 segdef agg_temps ptr to list of aggreate temps allocated
227 bss agg_temps,2
228 "
229 segdef complex_ac ptr to ref node for complex accumulator
230 bss complex_ac,2
231 "
232 segdef constant_list ptr to list of constants
233 bss constant_list,2
234 "
235 segdef cur_block ptr to block being compiled
236 bss cur_block,2
237 "
238 segdef cur_entry ptr to current entry statement
239 bss cur_entry,2
240 "
241 segdef cur_node ptr to current node in tree
242 bss cur_node,2
243 "
244 segdef cur_statement ptr to statement being compiled
245 bss cur_statement,2
246 "
247 segdef cur_tree ptr to tree being compiled
248 bss cur_tree,2
249 "
250 segdef def_base ptr to base of definitions section buffer
251 bss def_base,2
252 "
253 segdef def_reloc_base ptr to base of definitions section relocation buffer
254 bss def_reloc_base,2
255 "
256 segdef desc_list_ptr
257 desc_list_ptr:
258 its -1,1,n
259 "
260 segdef double_temp ptr to ref node for double temp cell
261 bss double_temp,2
262 "
263 segdef dummy_block ptr to block node for use by e_v
264 bss dummy_block,2
265 "
266 segdef dummy_statement ptr to statement node for use by e_v
267 bss dummy_statement,2
268 "
269 segdef eis_temp ptr to temporary set up by string_temp
270 bss eis_temp,2
271 "
272 segdef encoded_values ptr to list of values encoded by e_v
273 bss encoded_values,2
274 "
275 segdef entry_arg ptr to arg for entry macro
276 bss entry_arg,2
277 "
278 segdef entry_vector_pointer ptr to entry_vector in fortran|pl1
279 bss entry_vector_pointer,2
280 "
281 segdef ev_qual ptr to param ptr qual exp used by e_v
282 bss ev_qual,2
283 "
284 segdef ext_proc_list ptr to list of external procedures used
285 bss ext_proc_list,2
286 "
287 segdef ext_var_list ptr to list of external variables used
288 bss ext_var_list,2
289 "
290 segdef first_op ptr to first operator node used by eval_exp
291 bss first_op,2
292 "
293 segdef first_ref ptr to first reference node on get_reference list
294 bss first_ref,2
295 "
296 segdef format_list ptr to list of format nodes
297 bss format_list,2
298 "
299 segdef jump_label ptr to scratch label used by jump_op
300 bss jump_label,2
301 "
302 segdef label_list ptr to list of label_arrays
303 bss label_list,2
304 "
305 segdef last_encoded ptr to last value encoded by e_v
306 bss last_encoded,2
307 "
308 segdef last_label ptr to last label array in label_list
309 bss last_label,2
310 "
311 segdef link_base ptr to base of linkage section buffer
312 bss link_base,2
313 "
314 segdef link_reloc_base ptr to base of linkage section relocation buffer
315 bss link_reloc_base,2
316 "
317 segdef long_string_temp ptr to ref node for long string temp cell
318 bss long_string_temp,2
319 "
320 segdef m_s_p ptr to machine state node
321 bss m_s_p,2
322 "
323 segdef ms_list ptr to list of machine state nodes
324 bss ms_list,2
325 "
326 segdef name_list ptr to list of names kept by "name_assign"
327 bss name_list,2
328 "
329 segdef next_op ptr to next operator node to be used by eval_exp
330 bss next_op,2
331 "
332 segdef next_ref ptr to next reference node on get_reference list
333 bss next_ref,2
334 "
335 segdef objmap_pt ptr to object map in object segment
336 bss objmap_pt,2
337 "
338 segdef profile_base ptr to base of seg where profile is placed
339 bss profile_base,2
340 "
341 segdef prol_ent ptr to label defining prologue entry point
342 bss prol_ent,2
343 "
344 segdef return_operator ptr to node for return op in pl1_ops_
345 bss return_operator,2
346 "
347 segdef root ptr to root of program being compiled
348 bss root,2
349 "
350 segdef stop_operator ptr to node for return op in pl1_ops_
351 bss stop_operator,2
352 "
353 segdef return_main_operator ptr to node for return_main op in pl1_ops_
354 bss return_main_operator,2
355 "
356 segdef stat_base ptr to base of static section buffer
357 stat_base:
358 its -1,1,n
359 "
360 segdef sym_base ptr to base of symbol section buffer
361 bss sym_base,2
362 "
363 segdef sym_reloc_base ptr to base of symbol section relocation buffer
364 bss sym_reloc_base,2
365 "
366 segdef sym_use_base ptr to array giving use of symbols in text section
367 bss sym_use_base,2
368 "
369 segdef temp_ref ptr to reference for temp result of operator
370 bss temp_ref,2
371 "
372 segdef temporary_list ptr to list of temporaries
373 bss temporary_list,2
374 "
375 segdef text_base ptr to base of text section buffer
376 bss text_base,2
377 "
378 segdef text_reloc_base ptr to base of text section relocation buffer
379 bss text_reloc_base,2
380 "
381 segdef validate_proc ptr to dcl of validation procedure
382 validate_proc:
383 its -1,1,n
384 "
385 segdef word_ref ptr to ref node for word offset part of offset
386 bss word_ref,2
387 "
388 " AGGREGATES
389 "
390 segdef statement_map
391 bss statement_map,1
392 end