COMPILATION LISTING OF SEGMENT fort_make_symbol_section Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Adv Computing Technology Centre Compiled on: 05/30/90 1533.8 mdt Wed Options: optimize map 1 /****^ ********************************************************* 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1990 * 4* * * 5* * Copyright, (C) Honeywell Limited, 1983 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* ********************************************************* */ 11 12 13 14 /****^ HISTORY COMMENTS: 15* 1) change(86-07-14,BWong), approve(86-07-14,MCR7382), audit(86-07-17,Ginter), 16* install(86-07-28,MR12.0-1105): 17* Fix fortran bug 472. 18* 2) change(86-10-17,Ginter), approve(86-10-17,MCR7556), audit(86-10-22,Huen), 19* install(86-11-13,MR12.0-1216): 20* Fixed fortran bugs 496 and 502. 21* 3) change(87-04-15,Huen), approve(87-04-15,MCR7651), audit(87-04-15,RWaters), 22* install(87-05-08,MR12.1-1031): 23* Fix fortran bug 431. 24* 4) change(90-04-27,Huen), approve(90-04-27,MCR8159), audit(90-05-16,Gray), 25* install(90-05-30,MR12.4-1011): 26* ft_512 : enable probe to display correct values for parameter variables 27* when the object segments are bound. 28* END HISTORY COMMENTS */ 29 30 31 /* format: style3,^delnl,ifthenstmt,^indattr,indcom,indend,^inditerdo,^indnoniterdo,indnoniterend,linecom */ 32 fort_make_symbol_section: 33 procedure (P_shared_global_ptr, P_cg_global_ptr, P_param_ptr, P_sym_offset, P_sym_length); 34 35 /* Fortran compiler's routines for building the runtime symbol table. 36* 37*Written: 21 August 1979 by C R Davis (actually stolen from the CGs). 38* 39*Modified: 31 Mar 90, SH - 512: Set up relocation information for the symbol 40* table entries that describe parameter variables. 41*Modified: 17 Feb 87, RW & SH - 431: Allow substrings in Equivalence 42* statements for ANSI 77. 43*Modified: 09 Sep 86, AG - 496: use symbol.addr_hold when creating runtime 44* symbol table for VL Common blocks whose first element is a 45* nondimensioned symbol. 46*Modified: 16 Oct 85, BW - 472: Don't put lines without object code in the 47* statement map. 48*Modified: 28 Mar 84, HH - Install HFP support. 49*Modified: 29 Aug 83, RG - To change call from lang_util_ to ioa_$rsnnl 50*Modified: 31 Jan 83, TO - Install LA/VLA support. 51*Modified: 23 Dec 82, TO - 367: Implement PARAMETER variables in table. 52*Modified: 17 December 1982, TO - Add '-long_profile' support. 53*Modified: 17 May 1982, TO - fix to runtime reference to character*(*) 54* multiplier. This must be a byte multiplier, the descriptor mult is 55* bits. Refer now to extended multipler which ends extended 56* descriptor. 57*Modified: 4 May 1982, TO - fix to put star_extent length correctly addressed 58* by runtime_symbol.size. 59*Modified: 4 May 1982, TO - fix to get_address to reflect that stack_indirects 60* have their stack location in symbol.location, not in 61* symbol.address.offset. 62*Modified: 18 February 1981, CRD - change process_variable to fill in lower 63* bound information for Fortran 77 arrays. 64*Modified: 15 October 1979, CRD - renamed fort_make_symbol_table to 65* fort_make_symbol_section. 66*Modified: 12 Spetember 1979, CRD - fix bug 241 (runtime_symbol.next 67* invalid when symbols more than 16K apart. 68*Modified: 30 August 1979, CRD - set runtime_symbol.units and 69* runtime_symbol.array_units in preparation for ANSI 77 70* character mode. 71**/ 72 73 74 declare /* Parameters */ 75 76 P_shared_global_ptr pointer, /* Input */ 77 P_cg_global_ptr pointer, /* Input */ 78 P_param_ptr pointer, /* Input */ 79 P_sym_offset fixed binary (18), /* Input */ 80 P_sym_length fixed binary (18); /* Output */ 81 82 83 declare /* Automatic */ 84 85 a_base pointer, 86 cg_global_ptr pointer, 87 def_pos fixed binary (18), 88 def_reloc_base pointer, 89 first_namelist fixed binary (18), 90 generate_map bit (1) aligned, 91 generate_profile bit (1) aligned, 92 generate_symtab bit (1) aligned, 93 info_ptr pointer, 94 last_pos fixed binary (18), 95 link_base pointer, 96 link_pos fixed binary (18), 97 link_reloc_base pointer, 98 profile_start fixed binary (18), 99 shared_global_ptr pointer, 100 star_symbol_link fixed binary (18), 101 sym_base pointer, 102 sym_pos fixed binary (18), 103 symrel fixed binary (18), 104 sym_reloc_base pointer, 105 symtab_param_ptr pointer, 106 text_pos fixed binary (18); 107 108 declare /* Overlays */ 109 110 a_name (0:261119 - 2 * (number_of_lines + 1)) fixed binary (18) aligned based (a_base), 111 polish (0:polish_max_len - 1) fixed binary (18) aligned based (polish_base), 112 quads (0:quad_max_len - 1) fixed binary (18) aligned based (quadruple_base), 113 rands (0:operand_max_len - 1) fixed binary (18) aligned based (operand_base), 114 reloc (0:3) bit (36) aligned based, 115 vsegname character (32) varying defined (objectname); 116 117 declare 118 119 1 text_halfs (0:262143) aligned based (object_base), 120 2 left fixed binary (17) unaligned, 121 2 right fixed binary (17) unaligned; 122 123 124 declare 125 126 1 reloc_halfs (0:262143) aligned based (relocation_base), 127 2 left bit (18) unaligned, 128 2 right bit (18) unaligned; 129 130 131 declare /* Builtins */ 132 133 (addr, addrel, binary, bit, divide, fixed, hbound, length, ltrim, 134 max, min, mod, null, rel, size, string, substr, ptr, unspec, verify) 135 builtin; 136 1 1 /* BEGIN fort_nodes.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(86-07-14,BWong), approve(86-07-14,MCR7382), audit(86-07-17,Ginter), 1 7* install(86-07-28,MR12.0-1105): 1 8* Fix fortran bug 473. 1 9* 2) change(88-04-28,RWaters), approve(88-04-28,MCR7875), audit(88-07-13,Huen), 1 10* install(88-11-10,MR12.2-1209): 1 11* Implement SCP 6339: Allow character variable to be up to 128K-1 (131071) 1 12* character long. 1 13* END HISTORY COMMENTS */ 1 14 1 15 1 16 /* Written: June 1976 by David Levin and Richard Barnes 1 17* 1 18*Modified: 1 19* Feb 24 1977 by G. Chang for the optimizer 1 20* Sept 12, 1977 by R. Barnes for the loop optimizer 1 21* Nov 16, 1977 by D. Levin to add machine state node for loop optimizer 1 22* Oct 09 1978 by P Smee for larger common and arrays. 1 23* Dec 05 1978 by P Smee for %options statement. 1 24* Jan 17 1979 by R Barnes for machine_state.value_in_xr 1 25* May 23 1979 by P Smee to add source.line_number 1 26* July 19 1979 by R Barnes for char mode changes 1 27* Sept 17 1979 by R Barnes for register optimizer changes 1 28* Oct 3 1979 by C R Davis for new EAQ management scheme. 1 29* 29 Oct 1979 by C R Davis for machine_state.eaq.reserved. 1 30* 3 Nov 1979 by R. Barnes for pointer node and to change 1 31* machine_state.next from a fixed bin to a pointer. 1 32* 18 Dec 1979 by R. Barnes for loop_ref_count to finalize 1 33* changes for the register optimizer. 1 34* 17 Dec 1979 by C R Davis for symbol.descriptor 1 35* 22 Dec 1979 by R. Barnes to remove in_list. 1 36* 22 Jan 1980 by P E Smee to try for long char arrays. 1 37* 23 Jan 1980 by C R Davis to fix bugs with yesterday's changes. 1 38* 4 Mar 1980 by C R Davis to rename node.multi_position to 1 39* node.stack_indirect, and to add machine_state.stack_extended 1 40* and machine_state.last_dynamic_temp. 1 41* 5 Jun 1980 by M E Presser to alter arg_desc node for use 1 42* in stack-extensions and arg-descriptor generation. 1 43* 16 July 1980 by C R Davis for symbol.variable_arglist. 1 44* 8 Jan 81 by M E Presser for label.not_referencable 1 45* 17 Feb 1981 by C R Davis for new dimension node layout. 1 46* 11 March 1981 by MEP for dimension.assumed_size 1 47* 3 May 1982 by TO to add star_extent_function to subprogram node. 1 48* Mod 1 25 August 1982 by TO to add VLA_chain and LA_chain to subprogram node. 1 49* Mod 1 2 September 1982 by TO to add 5 more entries to storage_info in 1 50* the subprogram node (13-17), and to add VLA and LA bits to the 1 51* symbol node. 1 52* Mod 1 2 September 1982 by TO move fields around in nodes to get correct 1 53* 24 (really 35) bit fields and still maintain mapping between 1 54* node, temporary, and array_ref (others limit to word 6 like node.) 1 55* 19 Jun 83, HH - 145: Add 'branched_to', 'ends_do_loop' & 'loop_end' 1 56* to 'label' node. 1 57* 19 Feb 86, BW & AG - 473.a: Add 'VLA' to 'arg_desc' node. 1 58*END Modifications */ 1 59 1 60 1 61 /* GENERAL NODE TEMPLATE */ 1 62 1 63 dcl 1 node aligned based structure, 1 64 1 65 /* WORD 1 */ 1 66 1 67 2 node_type fixed bin (4) unaligned, 1 68 2 data_type fixed bin (4) unaligned unsigned, 1 69 2 operand_type fixed bin (4) unaligned, 1 70 1 71 2 addressing_bits unaligned structure, 1 72 3 is_addressable bit (1), 1 73 3 value_in, 1 74 4 eaq bit (1), 1 75 4 x bit (1), 1 76 3 allocated bit (1), 1 77 3 needs_pointer bit (1), 1 78 3 stack_indirect bit (1), 1 79 3 large_address bit (1), 1 80 3 address_in_base bit (1), 1 81 3 dont_update bit (1), /* for optimizer */ 1 82 3 not_in_storage bit (1), /* for optimizer */ 1 83 3 globally_assigned bit (1), /* for optimizer */ 1 84 1 85 2 bits unaligned structure, 1 86 3 standard_bits, 1 87 4 allocate bit (1), 1 88 4 set bit (1), 1 89 4 referenced bit (1), 1 90 4 passed_as_arg bit (1), 1 91 1 92 3 fill bit (7), /* These bits may be used by individual nodes. */ 1 93 1 94 /* WORD 2 */ 1 95 1 96 2 address aligned structure, 1 97 3 base bit (3) unaligned, /* For labels and constants, base and offset are */ 1 98 3 offset fixed bin (14) unaligned, /* combined to: fixed bin (18) unsigned unaligned. */ 1 99 3 char_num fixed bin (2) unaligned unsigned, 1 100 3 bit_num fixed bin (4) unaligned unsigned, 1 101 3 fill bit (4) unaligned, 1 102 3 inhibit bit (1) unaligned, 1 103 3 ext_base bit (1) unaligned, 1 104 3 tag bit (6) unaligned, 1 105 1 106 /* WORD 3 */ 1 107 1 108 2 units fixed bin (3) unaligned unsigned, 1 109 2 fill bit (3) unaligned, /* already used in symbol node */ 1 110 2 reloc_hold bit (6) unaligned, 1 111 2 reloc bit (6) unaligned, 1 112 2 addr_hold bit (18) unaligned, 1 113 1 114 /* WORD 4. Must not change for constant, char_constant, header, label, or symbol nodes. */ 1 115 1 116 2 next fixed bin (18) unsigned unaligned, 1 117 2 hash_chain fixed bin (18) unsigned unaligned, /* No hash chain for header nodes. */ 1 118 1 119 /* WORD 5 */ 1 120 1 121 2 pad fixed bin (18) unsigned unaligned, 1 122 2 loop_ref_count fixed bin (17) unaligned, /* Only for symbols and temporaries. */ 1 123 1 124 /* WORD 6 */ 1 125 1 126 2 location fixed bin (24) aligned; /* Only for array refs, symbols, temporaries, and headers. */ 1 127 1 128 /* ARG DESCRIPTOR NODE */ 1 129 1 130 dcl 1 arg_desc based aligned, 1 131 1 132 /* WORD 1 */ 1 133 1 134 2 node_type fixed bin (4) unaligned, 1 135 2 n_args fixed bin (12) unaligned, 1 136 2 pad bit (18) unaligned, 1 137 1 138 /* WORDS 2 - N_ARGS + 1 */ 1 139 1 140 2 arg(num_args refer(n_args)) aligned, 1 141 3 data_type fixed bin (4) unaligned unsigned, 1 142 3 must_be unaligned, 1 143 4 array bit (1) unaligned, 1 144 4 scalar bit (1) unaligned, 1 145 4 VLA bit (1) unaligned, 1 146 3 star_extents bit (1) unaligned, 1 147 3 pad bit (9) unaligned, 1 148 3 symbol fixed bin (18) unaligned; 1 149 1 150 dcl num_args fixed bin; 1 151 1 152 1 153 /* ARRAY REF NODE -- Must be same size as TEMPORARY NODE. */ 1 154 1 155 dcl 1 array_ref aligned based structure, 1 156 1 157 /* WORD 1 */ 1 158 1 159 2 node_type fixed bin (4) unaligned, 1 160 2 data_type fixed bin (4) unaligned unsigned, 1 161 2 operand_type fixed bin (4) unaligned, 1 162 1 163 2 addressing_bits unaligned structure, 1 164 3 is_addressable bit (1), 1 165 3 value_in, 1 166 4 eaq bit (1), 1 167 4 x bit (1), 1 168 3 allocated bit (1), 1 169 3 needs_pointer bit (1), 1 170 3 stack_indirect bit (1), 1 171 3 large_address bit (1), 1 172 3 address_in_base bit (1), 1 173 3 dont_update bit (1), /* for optimizer */ 1 174 3 not_in_storage bit (1), /* for optimizer */ 1 175 3 globally_assigned bit (1), /* for optimizer */ 1 176 1 177 2 bits unaligned structure, 1 178 3 standard_bits, 1 179 4 allocate bit (1), 1 180 4 set bit (1), 1 181 4 referenced bit (1), 1 182 4 passed_as_arg bit (1), 1 183 1 184 3 variable_length bit (1), 1 185 1 186 3 variable_offset bit (1), 1 187 1 188 3 invariant bit (1), /* must line up with temporary node */ 1 189 3 irreducible bit (1), /* .. */ 1 190 3 used_across_loops bit (1), /* .. */ 1 191 1 192 3 large_offset bit (1), 1 193 1 194 3 has_address bit (1), 1 195 1 196 /* WORD 2 */ 1 197 1 198 2 address aligned structure, 1 199 3 base bit (3) unaligned, 1 200 3 offset fixed bin (14) unaligned, 1 201 3 char_num fixed bin (2) unaligned unsigned, 1 202 3 bit_num fixed bin (4) unaligned unsigned, 1 203 3 fill bit (4) unaligned, 1 204 3 inhibit bit (1) unaligned, 1 205 3 ext_base bit (1) unaligned, 1 206 3 tag bit (6) unaligned, 1 207 1 208 /* WORD 3 */ 1 209 1 210 2 units fixed bin (3) unaligned unsigned, 1 211 2 fill bit (3) unaligned, 1 212 2 reloc_hold bit (6) unaligned, 1 213 2 reloc bit (6) unaligned, 1 214 2 addr_hold bit (18) unaligned, 1 215 1 216 /* WORD 4 */ 1 217 1 218 2 next fixed bin (18) unsigned unaligned, 1 219 2 loop_end_fu_pos fixed bin (17) unaligned, /* must overlay temporary.loop_end_fu_pos */ 1 220 1 221 /* WORD 5 */ 1 222 1 223 2 pad fixed bin (18) unsigned unaligned, 1 224 2 v_offset fixed bin (18) unsigned unaligned, 1 225 1 226 /* WORD 6 */ 1 227 1 228 2 location fixed bin (24) aligned, 1 229 1 230 /* WORD 7 */ 1 231 1 232 2 ref_count fixed bin (17) unaligned, /* must overlay temporary.ref_count */ 1 233 2 output_by fixed bin (18) unsigned unal, /* must overlay temporary.output_by */ 1 234 1 235 /* WORD 8 */ 1 236 1 237 2 length fixed bin (24) aligned, 1 238 1 239 /* WORD 9 */ 1 240 1 241 2 start_input_to fixed bin (18) unsigned unal, /* must overlay temporary.start_input_to */ 1 242 2 end_input_to fixed bin (18) unsigned unal, /* must overlay temporary.end_input_to */ 1 243 1 244 /* WORD 10 */ 1 245 1 246 2 ref_count_copy fixed bin (17) unaligned, /* must overlay temporary.ref_count_copy */ 1 247 2 parent fixed bin (18) unsigned unaligned, 1 248 1 249 /* WORD 11 */ 1 250 1 251 2 unused fixed bin (24) aligned; /* Pad to size of 'temporary'. */ 1 252 1 253 1 254 /* CONSTANT NODE */ 1 255 1 256 dcl 1 constant aligned based structure, 1 257 1 258 /* WORD 1 */ 1 259 1 260 2 node_type fixed bin (4) unaligned, 1 261 2 data_type fixed bin (4) unaligned unsigned, 1 262 2 operand_type fixed bin (4) unaligned, 1 263 1 264 2 addressing_bits unaligned structure, 1 265 3 is_addressable bit (1), 1 266 3 value_in, 1 267 4 eaq bit (1), 1 268 4 x bit (1), 1 269 3 allocated bit (1), 1 270 3 needs_pointer bit (1), 1 271 3 stack_indirect bit (1), 1 272 3 large_address bit (1), 1 273 3 address_in_base bit (1), 1 274 3 dont_update bit (1), /* for optimizer */ 1 275 3 not_in_storage bit (1), /* for optimizer */ 1 276 3 globally_assigned bit (1), /* for optimizer */ 1 277 1 278 2 bits unaligned structure, 1 279 3 standard_bits, 1 280 4 allocate bit (1), 1 281 4 set bit (1), 1 282 4 referenced bit (1), 1 283 4 passed_as_arg bit (1), 1 284 1 285 3 fill bit (7), 1 286 1 287 /* WORD 2 */ 1 288 1 289 2 address aligned structure, 1 290 3 location fixed bin (18) unsigned unaligned, 1 291 3 op bit (10) unaligned, 1 292 3 inhibit bit (1) unaligned, 1 293 3 ext_base bit (1) unaligned, 1 294 3 tag bit (6) unaligned, 1 295 1 296 /* WORD 3 */ 1 297 1 298 2 units fixed bin (3) unaligned unsigned, 1 299 2 fill bit (3) unaligned, 1 300 2 reloc_hold bit (6) unaligned, 1 301 2 reloc bit (6) unaligned, 1 302 2 addr_hold bit (18) unaligned, 1 303 1 304 /* WORD 4 */ 1 305 1 306 2 next_constant fixed bin (18) unsigned unaligned, 1 307 2 hash_chain fixed bin (18) unsigned unaligned, 1 308 1 309 /* WORDS 5 & 6 */ 1 310 1 311 2 value bit (72) aligned; 1 312 1 313 1 314 /* CHARACTER CONSTANT NODE */ 1 315 1 316 dcl 1 char_constant aligned based structure, 1 317 1 318 /* WORD 1 */ 1 319 1 320 2 node_type fixed bin (4) unaligned, 1 321 2 data_type fixed bin (4) unaligned unsigned, 1 322 2 operand_type fixed bin (4) unaligned, 1 323 1 324 2 addressing_bits unaligned structure, 1 325 3 is_addressable bit (1), 1 326 3 value_in, 1 327 4 eaq bit (1), 1 328 4 x bit (1), 1 329 3 allocated bit (1), 1 330 3 needs_pointer bit (1), 1 331 3 stack_indirect bit (1), 1 332 3 large_address bit (1), 1 333 3 address_in_base bit (1), 1 334 3 dont_update bit (1), /* for optimizer */ 1 335 3 not_in_storage bit (1), /* for optimizer */ 1 336 3 globally_assigned bit (1), /* for optimizer */ 1 337 1 338 2 bits unaligned structure, 1 339 3 standard_bits, 1 340 4 allocate bit (1), 1 341 4 set bit (1), 1 342 4 referenced bit (1), 1 343 4 passed_as_arg bit (1), 1 344 1 345 3 no_value_stored bit (1), 1 346 1 347 3 fill bit (6), 1 348 1 349 /* WORD 2 */ 1 350 1 351 2 address aligned structure, 1 352 3 location fixed bin (18) unsigned unaligned, 1 353 3 char_num fixed bin (2) unaligned unsigned, 1 354 3 bit_num fixed bin (4) unaligned unsigned, 1 355 3 fill bit (4) unaligned, 1 356 3 inhibit bit (1) unaligned, 1 357 3 ext_base bit (1) unaligned, 1 358 3 tag bit (6) unaligned, 1 359 1 360 /* WORD 3 */ 1 361 1 362 2 units fixed bin (3) unaligned unsigned, 1 363 2 fill bit (3) unaligned, 1 364 2 reloc_hold bit (6) unaligned, 1 365 2 reloc bit (6) unaligned, 1 366 2 addr_hold bit (18) unaligned, 1 367 1 368 /* WORD 4 */ 1 369 1 370 2 next_constant fixed bin (18) unsigned unaligned, 1 371 2 hash_chain fixed bin (18) unsigned unaligned, 1 372 1 373 /* WORDS 5 thru n */ 1 374 1 375 2 length fixed bin (18) unsigned unaligned, 1 376 2 value char(char_constant_length refer(char_constant.length)) unaligned; 1 377 1 378 dcl char_constant_length fixed bin (18) unsigned; 1 379 1 380 1 381 /* DIMENSION NODE */ 1 382 1 383 dcl 1 dimension aligned based structure, 1 384 1 385 /* WORD 1 */ 1 386 1 387 2 node_type fixed bin (4) unaligned, /* The only field in common with other nodes */ 1 388 1 389 2 number_of_dims fixed bin (3) unaligned, /* Number of dimensions */ 1 390 1 391 2 v_bound (7) unaligned, /* Variable bound info - up to 7 dims. */ 1 392 3 lower bit (1) unaligned, /* On if lower bound is variable */ 1 393 3 upper bit (1) unaligned, /* On if upper bound is variable */ 1 394 1 395 2 has_virtual_origin bit (1) unaligned, /* On if virtual_origin is valid */ 1 396 2 has_array_size bit (1) unaligned, /* On if array_size is valid */ 1 397 2 has_dim_sizes bit (1) unaligned, /* On if dim.size (*) is valid */ 1 398 1 399 2 variable_virtual_origin bit (1) unaligned, /* On if virtual_origin is variable */ 1 400 2 variable_array_size bit (1) unaligned, /* On if array_size is variable */ 1 401 2 assumed_size bit (1) unaligned, /* On if array has assumed size */ 1 402 1 403 2 fill bit (7) unaligned, 1 404 1 405 /* WORD 2 */ 1 406 1 407 2 virtual_origin fixed bin (24) aligned, 1 408 1 409 /* WORD 3 */ 1 410 1 411 2 element_count fixed bin (24) aligned, 1 412 1 413 /* WORD 4 */ 1 414 1 415 2 array_size fixed bin (24) aligned, /* Expressed in symbol.units */ 1 416 1 417 /* WORD 5 */ 1 418 1 419 2 VLA_base_addressor fixed bin (18) aligned, 1 420 1 421 /* WORDS 6 - n (max = 26) */ 1 422 1 423 2 dim (num_dims refer (dimension.number_of_dims)) aligned, 1 424 1 425 3 lower_bound fixed bin (24) aligned, /* Lower bound of this dimension */ 1 426 1 427 3 upper_bound fixed bin (24) aligned, /* Upper bound of this dimension */ 1 428 1 429 3 size fixed bin (24) aligned; /* No. of elements in this dimension */ 1 430 1 431 dcl num_dims fixed bin (3); 1 432 1 433 1 434 /* HEADER NODE */ 1 435 1 436 dcl 1 header aligned based structure, 1 437 1 438 /* WORD 1 */ 1 439 1 440 2 node_type fixed bin (4) unaligned, 1 441 2 data_type fixed bin (4) unaligned unsigned, 1 442 2 operand_type fixed bin (4) unaligned, 1 443 1 444 2 addressing_bits unaligned structure, 1 445 3 is_addressable bit (1), 1 446 3 value_in, 1 447 4 eaq bit (1), 1 448 4 x bit (1), 1 449 3 allocated bit (1), 1 450 3 needs_pointer bit (1), 1 451 3 stack_indirect bit (1), 1 452 3 large_address bit (1), 1 453 3 address_in_base bit (1), 1 454 3 dont_update bit (1), /* for optimizer */ 1 455 3 not_in_storage bit (1), /* for optimizer */ 1 456 3 globally_assigned bit (1), /* for optimizer */ 1 457 1 458 2 bits unaligned structure, 1 459 3 storage_info, 1 460 4 standard_bits, 1 461 5 allocate bit (1), 1 462 5 set bit (1), 1 463 5 referenced bit (1), 1 464 5 passed_as_arg bit (1), 1 465 4 initialed bit (1), /* On if any member has initial attribute. */ 1 466 1 467 3 alignment structure unaligned, 1 468 4 even bit (1), 1 469 4 odd bit (1), 1 470 4 character bit (1), 1 471 1 472 3 storage_class structure unaligned, 1 473 4 automatic bit (1), 1 474 4 static bit (1), 1 475 4 in_common bit (1), 1 476 1 477 /* WORD 2 */ 1 478 1 479 2 address aligned structure, 1 480 3 base bit (3) unaligned, 1 481 3 offset fixed bin (14) unaligned, 1 482 3 char_num fixed bin (2) unaligned unsigned, 1 483 3 bit_num fixed bin (4) unaligned unsigned, 1 484 3 fill bit (4) unaligned, 1 485 3 inhibit bit (1) unaligned, 1 486 3 ext_base bit (1) unaligned, 1 487 3 tag bit (6) unaligned, 1 488 1 489 /* WORD 3 */ 1 490 1 491 2 units fixed bin (3) unaligned unsigned, 1 492 2 VLA bit (1) unaligned, /* chain for VLA's */ 1 493 2 LA bit (1) unaligned, /* chain for LA's */ 1 494 2 fill bit (1) unaligned, 1 495 2 reloc_hold bit (6) unaligned, 1 496 2 reloc bit (6) unaligned, 1 497 2 addr_hold bit (18) unaligned, 1 498 1 499 /* WORD 4 */ 1 500 1 501 2 next_header fixed bin (18) unsigned unaligned, 1 502 2 first_element fixed bin (18) unsigned unaligned, 1 503 1 504 /* WORD 5 */ 1 505 1 506 2 last_element fixed bin (18) unsigned unaligned, 1 507 2 name_length fixed bin (17) unaligned, 1 508 1 509 /* WORD 6 */ 1 510 1 511 2 location fixed bin (24) aligned, 1 512 1 513 /* WORD 7 */ 1 514 1 515 2 length fixed bin (24) aligned, 1 516 1 517 /* WORD 8 */ 1 518 1 519 2 VLA_base_addressor fixed bin (18) aligned, 1 520 1 521 /* WORDS 9 - n. This field is variable in length. Its length is zero for equivalence groups. */ 1 522 1 523 2 block_name char(allocate_symbol_name refer (header.name_length)) aligned; 1 524 1 525 dcl allocate_symbol_name fixed bin; 1 526 1 527 1 528 /* LABEL NODE */ 1 529 1 530 dcl 1 label aligned based structure, 1 531 1 532 /* WORD 1 */ 1 533 1 534 2 node_type fixed bin (4) unaligned, 1 535 2 data_type fixed bin (4) unaligned unsigned, 1 536 2 operand_type fixed bin (4) unaligned, 1 537 1 538 2 addressing_bits unaligned structure, 1 539 3 is_addressable bit (1), 1 540 3 value_in, 1 541 4 eaq bit (1), 1 542 4 x bit (1), 1 543 3 allocated bit (1), 1 544 3 needs_pointer bit (1), 1 545 3 stack_indirect bit (1), 1 546 3 large_address bit (1), 1 547 3 address_in_base bit (1), 1 548 3 dont_update bit (1), /* for optimizer */ 1 549 3 not_in_storage bit (1), /* for optimizer */ 1 550 3 globally_assigned bit (1), /* for optimizer */ 1 551 1 552 2 bits unaligned structure, 1 553 3 storage_info, 1 554 4 standard_bits, 1 555 5 allocate bit (1), 1 556 5 set bit (1), 1 557 5 referenced bit (1), 1 558 5 passed_as_arg bit (1), 1 559 4 referenced_executable bit (1), 1 560 1 561 3 usage, /* Label is on a non-executable stmnt if both bits are ON. */ 1 562 4 format bit (1), 1 563 4 executable bit (1), 1 564 1 565 3 restore_prs bit (1), 1 566 3 not_referencable bit (1), 1 567 3 branched_to bit (1), 1 568 3 ends_do_loop bit (1), 1 569 1 570 /* WORD 2 */ 1 571 1 572 2 address aligned structure, 1 573 3 location fixed bin (18) unsigned unaligned, 1 574 3 op bit (10) unaligned, 1 575 3 inhibit bit (1) unaligned, 1 576 3 ext_base bit (1) unaligned, 1 577 3 tag bit (6) unaligned, 1 578 1 579 /* WORD 3 */ 1 580 1 581 2 units fixed bin (3) unaligned unsigned, 1 582 2 fill bit (3) unaligned, 1 583 2 reloc_hold bit (6) unaligned, 1 584 2 reloc bit (6) unaligned, 1 585 2 addr_hold bit (18) unaligned, 1 586 1 587 /* WORD 4 */ 1 588 1 589 2 next_label fixed bin (18) unsigned unaligned, 1 590 2 hash_chain fixed bin (18) unsigned unaligned, 1 591 1 592 /* WORD 5 */ 1 593 1 594 2 format_var fixed bin (18) unsigned unaligned, 1 595 2 name fixed bin (17) unaligned, 1 596 1 597 /* WORD 6 */ 1 598 1 599 2 statement fixed bin (18) unsigned unaligned, 1 600 2 loop_end fixed bin (18) unsigned unaligned; 1 601 1 602 1 603 /* LIBRARY NODE */ 1 604 1 605 dcl 1 library aligned based structure, 1 606 1 607 /* WORD 1 */ 1 608 1 609 2 node_type fixed bin (4) unaligned, /* The only field in common with the other nodes. */ 1 610 2 fill bit (13) unaligned, 1 611 2 next_library_node fixed bin (18) unsigned unaligned, 1 612 1 613 /* WORD 2 */ 1 614 1 615 2 character_operand fixed bin (18) unsigned aligned; 1 616 1 617 1 618 /* MACHINE_STATE NODE */ 1 619 1 620 dcl 1 machine_state aligned based structure, 1 621 1 622 /* WORD 1 */ 1 623 1 624 2 node_type fixed bin (4) unal, 1 625 2 pad bit (31) unal, 1 626 1 627 /* WORD 2 */ 1 628 1 629 2 next pointer unaligned, 1 630 1 631 /* WORDS 3-104 */ 1 632 1 633 2 ms aligned, 1 634 1 635 3 eaq (4), /* One for each of the A, Q, EAQ, and IND */ 1 636 4 name fixed bin, 1 637 4 number fixed bin, 1 638 4 variable(4) fixed bin (18), 1 639 4 reserved bit (1) aligned, 1 640 3 rounded bit (1) aligned, 1 641 3 indicators_valid fixed bin (18), 1 642 1 643 3 value_in_xr bit (1) aligned, 1 644 1 645 3 index_regs(0:7), 1 646 4 bits structure unaligned, 1 647 5 global bit (1), 1 648 5 reserved bit (1), 1 649 5 mbz bit (34), 1 650 4 type fixed bin (18), 1 651 4 variable fixed bin (18), 1 652 4 used fixed bin (18), 1 653 4 mbz fixed bin (18), 1 654 1 655 3 address_in_base bit (1) aligned, 1 656 1 657 3 base_regs(0:7), 1 658 4 bits structure unaligned, 1 659 5 global bit (1), 1 660 5 reserved bit (1), 1 661 5 mbz bit (34), 1 662 4 type fixed bin (18), 1 663 4 variable fixed bin (18), 1 664 4 used fixed bin (18), 1 665 4 offset fixed bin (18), 1 666 1 667 3 stack_extended bit (1) aligned, 1 668 3 last_dynamic_temp fixed bin (18); 1 669 1 670 /* POINTER NODE */ 1 671 1 672 dcl 1 pointer aligned based structure, 1 673 1 674 /* WORD 1 */ 1 675 1 676 2 node_type fixed bin (4) unaligned, 1 677 2 pad bit (4) unaligned, 1 678 2 code fixed bin (9) unaligned unsigned, 1 679 2 variable fixed bin (18) unaligned unsigned, 1 680 1 681 /* WORD 2 */ 1 682 1 683 2 offset fixed bin (18) unaligned unsigned, 1 684 2 count fixed bin (18) unaligned unsigned, 1 685 1 686 /* WORD 3 */ 1 687 1 688 2 hash_chain fixed bin (18) aligned; 1 689 1 690 1 691 /* SOURCE NODE */ 1 692 1 693 dcl 1 source aligned based structure, 1 694 1 695 /* WORD 1 */ 1 696 1 697 2 node_type fixed bin (4) unal, 1 698 2 pad bit (13) unal, 1 699 2 line_number fixed bin (17) unaligned, 1 700 1 701 /* WORD 2 */ 1 702 1 703 2 uid bit (36) aligned, 1 704 1 705 /* WORDS 3 & 4 */ 1 706 1 707 2 dtm fixed bin (71) unaligned, 1 708 1 709 /* WORD 5 */ 1 710 1 711 2 next fixed bin (18) unsigned unaligned, 1 712 2 initial_subprogram fixed bin (18) unsigned unaligned, 1 713 1 714 /* WORDS 6 - ? (depends on length of pathname) */ 1 715 1 716 2 pathname char(256) varying; 1 717 1 718 1 719 /* STATEMENT NODE - This node only appears in the polish. */ 1 720 1 721 dcl 1 statement aligned based structure, 1 722 1 723 /* WORD 1 */ 1 724 1 725 2 op_code fixed bin aligned, /* Always equal to "stat_op". */ 1 726 1 727 /* WORD 2 */ 1 728 1 729 2 next bit (18) unaligned, /* "0"b = no next stmnt */ 1 730 2 location bit (18) unaligned, /* (18)"1"b = no text */ 1 731 1 732 /* WORD 3 */ 1 733 1 734 2 source_id structure unaligned, 1 735 3 file fixed bin (8) unsigned, /* 0 = first file */ 1 736 3 line bit (14), 1 737 3 statement bit (5), /* 1 = first statement */ 1 738 1 739 2 length bit (9) unaligned, 1 740 1 741 /* WORD 4 */ 1 742 1 743 2 bits structure unaligned, 1 744 3 put_in_map bit (1) unaligned, 1 745 3 put_in_profile bit (1) unaligned, 1 746 3 pad bit (7) unaligned, 1 747 1 748 2 start fixed bin (26) unaligned; 1 749 1 750 1 751 /* SUBPROGRAM NODE */ 1 752 1 753 dcl 1 subprogram aligned based structure, 1 754 1 755 /* WORD 1 */ 1 756 1 757 2 node_type fixed bin (4) unaligned, /* The only field in common with the other nodes. */ 1 758 2 subprogram_type fixed bin (3) unaligned, 1 759 2 default_is unaligned, 1 760 3 auto bit (1), 1 761 3 static bit (1), 1 762 2 need_PS bit (1) unaligned, 1 763 2 need_prologue bit (1) unaligned, 1 764 2 multiple_entry bit (1) unaligned, 1 765 2 namelist_used bit (1) unaligned, 1 766 2 has_parameters bit (1) unaligned, 1 767 2 star_extent_function bit (1) unaligned, 1 768 2 fill bit (1) unaligned, 1 769 1 770 2 symbol fixed bin (18) unsigned unaligned, /* symbol node for subprogram name */ 1 771 1 772 /* WORD 2 */ 1 773 1 774 2 previous_subprogram fixed bin (18) unsigned unaligned, 1 775 2 next_subprogram fixed bin (18) unsigned unaligned, 1 776 1 777 /* WORD 3 */ 1 778 1 779 2 common_chain fixed bin (18) unsigned unaligned, 1 780 2 equiv_chain fixed bin (18) unsigned unaligned, 1 781 1 782 /* WORD 4 */ 1 783 1 784 2 first_symbol fixed bin (18) unsigned unaligned, 1 785 2 last_symbol fixed bin (18) unsigned unaligned, 1 786 1 787 /* WORD 5 */ 1 788 1 789 2 first_label fixed bin (18) unsigned unaligned, 1 790 2 last_label fixed bin (18) unsigned unaligned, 1 791 1 792 /* WORD 6 */ 1 793 1 794 2 first_polish fixed bin (18) unsigned unaligned, 1 795 2 last_polish fixed bin (18) unsigned unaligned, 1 796 1 797 /* WORD 7 */ 1 798 1 799 2 map unaligned, 1 800 3 first fixed bin (18) unsigned unaligned, 1 801 3 last fixed bin (18) unsigned unaligned, 1 802 1 803 /* WORD 8 */ 1 804 1 805 2 entry_info fixed bin (18) unsigned unaligned, 1 806 2 runtime fixed bin (18) unsigned unaligned, 1 807 1 808 /* WORD 9 */ 1 809 1 810 2 first_quad fixed bin (18) unsigned unaligned, 1 811 2 last_quad fixed bin (18) unsigned unaligned, 1 812 1 813 /* WORD 10 */ 1 814 1 815 2 options aligned like fortran_options, 1 816 1 817 /* WORDS 11 - 44 */ 1 818 1 819 2 storage_info(17) aligned, 1 820 3 first fixed bin (18) unsigned unaligned, 1 821 3 last fixed bin (18) unsigned unaligned, 1 822 3 next_loc fixed bin (18) aligned, 1 823 1 824 /* WORD 45 */ 1 825 1 826 2 loop_vector_p pointer unaligned, 1 827 1 828 /* WORD 46 */ 1 829 1 830 2 n_loops fixed bin (18) unsigned unaligned, 1 831 2 max_operators fixed bin (18) unsigned unaligned, 1 832 1 833 /* WORD 47 */ 1 834 1 835 2 VLA_chain fixed bin (18) unsigned unaligned, /* Mod 1 */ 1 836 2 LA_chain fixed bin (18) unsigned unaligned, /* Mod 1 */ 1 837 /* WORD 48 */ 1 838 1 839 2 max_sym fixed bin (18) aligned; 1 840 1 841 1 842 /* SYMBOL NODE */ 1 843 1 844 dcl 1 symbol aligned based structure, 1 845 1 846 /* WORD 1 */ 1 847 1 848 2 node_type fixed bin (4) unaligned, 1 849 2 data_type fixed bin (4) unaligned unsigned, 1 850 2 operand_type fixed bin (4) unaligned, 1 851 1 852 2 addressing_bits unaligned structure, 1 853 3 is_addressable bit (1), 1 854 3 value_in, 1 855 4 eaq bit (1), 1 856 4 x bit (1), 1 857 3 allocated bit (1), 1 858 3 needs_pointer bit (1), 1 859 3 stack_indirect bit (1), 1 860 3 large_address bit (1), 1 861 3 address_in_base bit (1), 1 862 3 dont_update bit (1), /* for optimizer */ 1 863 3 not_in_storage bit (1), /* for optimizer */ 1 864 3 globally_assigned bit (1), /* for optimizer */ 1 865 1 866 2 bits unaligned structure, 1 867 3 storage_info, 1 868 4 standard_bits, 1 869 5 allocate bit (1), 1 870 5 set bit (1), 1 871 5 referenced bit (1), 1 872 5 passed_as_arg bit (1), 1 873 4 initialed bit (1), /* Allows variable to become a constant. */ 1 874 1 875 3 variable_arglist bit (1), 1 876 3 dummy_arg bit (1), 1 877 3 variable_extents bit (1), 1 878 3 needs_descriptors bit (1), 1 879 3 put_in_symtab bit (1), 1 880 3 by_compiler bit (1), 1 881 1 882 /* WORD 2 */ 1 883 1 884 2 address aligned structure, 1 885 3 base bit (3) unaligned, 1 886 3 offset fixed bin (14) unaligned, 1 887 3 char_num fixed bin (2) unaligned unsigned, 1 888 3 bit_num fixed bin (4) unaligned unsigned, 1 889 3 fill bit (4) unaligned, 1 890 3 inhibit bit (1) unaligned, 1 891 3 ext_base bit (1) unaligned, 1 892 3 tag bit (6) unaligned, 1 893 1 894 /* WORD 3 */ 1 895 1 896 2 units fixed bin (3) unaligned unsigned, 1 897 2 aliasable bit (1) unaligned, 1 898 2 has_constant_value bit (1) unaligned, 1 899 2 new_induction_var bit (1) unaligned, 1 900 2 reloc_hold bit (6) unaligned, 1 901 2 reloc bit (6) unaligned, 1 902 2 addr_hold bit (18) unaligned, 1 903 1 904 /* WORD 4 */ 1 905 1 906 2 next_symbol fixed bin (18) unsigned unaligned, 1 907 2 hash_chain fixed bin (18) unsigned unaligned, 1 908 1 909 /* WORD 5 */ 1 910 1 911 2 ext_attributes unaligned structure, 1 912 3 VLA bit (1), /* symbol is Very large Element */ 1 913 3 LA bit (1), /* symbol is Large Element */ 1 914 3 pad bit (18-2), 1 915 1 916 2 loop_ref_count fixed bin (17) unaligned, 1 917 1 918 /* WORD 6 */ 1 919 1 920 2 location fixed bin (24) aligned, 1 921 1 922 /* WORD 7 */ 1 923 1 924 2 v_length fixed bin (18) unsigned unaligned, 1 925 2 general fixed bin (18) unsigned unaligned, 1 926 1 927 /* WORD 8 */ 1 928 1 929 2 parent fixed bin (18) unsigned unaligned, 1 930 2 next_member fixed bin (18) unsigned unaligned, 1 931 1 932 /* WORD 9 */ 1 933 1 934 2 attributes aligned structure, 1 935 3 mode_bits unaligned structure, 1 936 4 char_size fixed bin (20) unsigned, 1 937 4 mode, 1 938 5 integer bit (1), 1 939 5 real bit (1), 1 940 5 double_precision bit (1), 1 941 5 complex bit (1), 1 942 5 logical bit (1), 1 943 5 character bit (1), 1 944 5 label_value bit (1), 1 945 5 entry_value bit (1), 1 946 1 947 3 misc_attributes unaligned structure, 1 948 4 function bit (1), 1 949 4 subroutine bit (1), 1 950 4 entry_point bit (1), 1 951 4 external bit (1), 1 952 4 builtin bit (1), 1 953 4 stmnt_func bit (1), 1 954 4 namelist bit (1), 1 955 4 dimensioned bit (1), 1 956 1 957 /* WORD 10 */ 1 958 1 959 3 storage_class unaligned structure, 1 960 4 automatic bit (1), 1 961 4 static bit (1), 1 962 4 in_common bit (1), 1 963 4 equivalenced bit (1), 1 964 4 parameter bit (1), 1 965 4 constant bit (1), /* If external or entry_point. */ 1 966 4 named_constant bit (1), 1 967 1 968 3 variable bit (1) unaligned, 1 969 3 in_equiv_stmnt bit (1) unaligned, 1 970 3 star_extents bit (1) unaligned, 1 971 3 descriptor bit (1) unaligned, 1 972 2 pad bit (25) unaligned, 1 973 1 974 /* WORD 11 */ 1 975 1 976 2 dimension fixed bin (18) unsigned unaligned, /* Bounds may be added after symbol is declared. */ 1 977 2 initial fixed bin (18) unsigned unaligned, 1 978 1 979 /* WORD 12 */ 1 980 1 981 2 runtime bit (18) unaligned, 1 982 2 name_length fixed bin (17) unaligned, 1 983 1 984 /* WORD 13 */ 1 985 1 986 2 coordinate fixed bin (17) unaligned, /* used by loop optimizer */ 1 987 2 element_size fixed bin (17) unaligned, 1 988 1 989 /* WORD 14 */ 1 990 1 991 2 secondary pointer unaligned, /* used by loop optimizer */ 1 992 1 993 /* WORD 15 */ 1 994 1 995 2 offset fixed bin (24) aligned, 1 996 1 997 /* WORDS 16 - n. This field is variable in length. */ 1 998 1 999 2 name char(allocate_symbol_name refer (symbol.name_length)) aligned; 1 1000 1 1001 1 1002 1 1003 /* TEMPORARY NODE -- Must be same size as ARRAY REF NODE. */ 1 1004 1 1005 dcl 1 temporary aligned based structure, 1 1006 1 1007 /* WORD 1 */ 1 1008 1 1009 2 node_type fixed bin (4) unaligned, 1 1010 2 data_type fixed bin (4) unaligned unsigned, 1 1011 2 operand_type fixed bin (4) unaligned, 1 1012 1 1013 2 addressing_bits unaligned structure, 1 1014 3 is_addressable bit (1), 1 1015 3 value_in, 1 1016 4 eaq bit (1), 1 1017 4 x bit (1), 1 1018 3 allocated bit (1), 1 1019 3 needs_pointer bit (1), 1 1020 3 stack_indirect bit (1), 1 1021 3 large_address bit (1), 1 1022 3 address_in_base bit (1), 1 1023 3 dont_update bit (1), /* for optimizer */ 1 1024 3 not_in_storage bit (1), /* for optimizer */ 1 1025 3 globally_assigned bit (1), /* for optimizer */ 1 1026 1 1027 2 bits unaligned structure, 1 1028 3 standard_bits, 1 1029 4 allocate bit (1), 1 1030 4 set bit (1), 1 1031 4 referenced bit (1), 1 1032 4 passed_as_arg bit (1), 1 1033 1 1034 3 variable_length bit (1), 1 1035 1 1036 3 fill bit (1), /* can be used */ 1 1037 1 1038 3 invariant bit (1), /* must line up with array_ref node */ 1 1039 3 irreducible bit (1), /* .. */ 1 1040 3 used_across_loops bit (1), /* .. */ 1 1041 3 frozen_for_do bit (1), 1 1042 3 used_as_subscript bit (1), 1 1043 1 1044 /* WORD 2 */ 1 1045 1 1046 2 address aligned structure, 1 1047 3 base bit (3) unaligned, 1 1048 3 offset fixed bin (14) unaligned, 1 1049 3 char_num fixed bin (2) unaligned unsigned, 1 1050 3 bit_num fixed bin (4) unaligned unsigned, 1 1051 3 fill bit (4) unaligned, 1 1052 3 inhibit bit (1) unaligned, 1 1053 3 ext_base bit (1) unaligned, 1 1054 3 tag bit (6) unaligned, 1 1055 1 1056 /* WORD 3 */ 1 1057 1 1058 2 units fixed bin (3) unaligned unsigned, 1 1059 2 fill bit (3) unaligned, 1 1060 2 reloc_hold bit (6) unaligned, 1 1061 2 reloc bit (6) unaligned, 1 1062 2 addr_hold bit (18) unaligned, 1 1063 1 1064 /* WORD 4 */ 1 1065 1 1066 2 next fixed bin (18) unsigned unaligned, 1 1067 2 loop_end_fu_pos fixed bin (17) unaligned, /* must overlay array_ref.loop_end_fu_pos */ 1 1068 1 1069 /* WORD 5 */ 1 1070 1 1071 2 pad fixed bin (18) unsigned unaligned, 1 1072 2 loop_ref_count fixed bin (17) unaligned, 1 1073 1 1074 /* WORD 6 */ 1 1075 1 1076 2 location fixed bin (24) aligned, 1 1077 1 1078 /* WORD 7*/ 1 1079 1 1080 2 ref_count fixed bin (17) unaligned, /* must overlay array_ref.ref_count */ 1 1081 2 output_by fixed bin (18) unsigned unal, /* must overlay array_ref.output_by */ 1 1082 1 1083 /* WORD 8 */ 1 1084 1 1085 2 size fixed bin (24) aligned, /* size in words */ 1 1086 1 1087 /* WORD 9 */ 1 1088 1 1089 2 start_input_to fixed bin (18) unsigned unal, /* must overlay array_ref.start_input_to */ 1 1090 2 end_input_to fixed bin (18) unsigned unal, /* must overlay array_ref.end_input_to */ 1 1091 1 1092 /* WORD 10 */ 1 1093 1 1094 2 ref_count_copy fixed bin (17) unaligned, /* must overlay array_ref.ref_count_copy */ 1 1095 2 ms_ref_count fixed bin (17) unaligned, /* counts occurances in saved machine states */ 1 1096 1 1097 /* WORD 11 */ 1 1098 1 1099 2 length fixed bin (24) aligned; /* length in characters */ 1 1100 1 1101 /* END fort_nodes.incl.pl1 */ 137 138 2 1 /* BEGIN fort_opt_nodes.incl.pl1 */ 2 2 2 3 /* Created: 22 November 1977 by Richard A. Barnes for the optimizing Fortran compiler */ 2 4 2 5 /* Modified: 09 October 1978 by Paul E. Smee for larger common and arrays. 2 6* Modified: 2 June 1979 by RAB to speed up intersection of optimizer 2 7* machine states by adding operator.coordinate and 2 8* flow_unit.is_active_operator 2 9* Modified: 28 June 1979 by RAB to speed up compute_busy_on_exit by 2 10* adding flow_unit.dim_or_alias_or_not_set. 2 11* Modified: 02 July 1979 by RAB to fix 218 by moving loop_end_chain stuff 2 12* to flow_unit node from loop node. 2 13* Modified: 14 August 1979 by RAB to change flow_unit.dim_or_alias_or_not_set 2 14* to flow_unit.always_completely_set. 2 15* Modified: 17 September 1979 by RAB in preparation for register optimizer. 2 16* Modified: 20 September 1979 by RAB for index_value_analysis of register optimizer. 2 17* Modified: 03 November 1979 by RAB for flow_unit.refreshed for register optimizer. 2 18* Modified: 30 November 1979 by RAB to add more info to the loop node 2 19* for the register optimizer. 2 20* Modified: 18 December 1979 by RAB to make remainder of register 2 21* optimizer changes. 2 22* Modified: 17 December 1980 by CRD to add opt_statement.removable. 2 23**/ 2 24 2 25 /* CHAIN (2 words) */ 2 26 2 27 dcl 1 chain based aligned, 2 28 2 next pointer unaligned, 2 29 2 value pointer unaligned; 2 30 2 31 /* EDGE (6 words) */ 2 32 2 33 dcl 1 edge based aligned, 2 34 2 from structure, 2 35 3 value ptr unal, 2 36 3 next ptr unal, 2 37 3 back ptr unal, 2 38 2 to structure, 2 39 3 value ptr unal, 2 40 3 next ptr unal, 2 41 3 back ptr unal; 2 42 2 43 2 44 /* FLOW_UNIT (22 words) */ 2 45 2 46 dcl 1 flow_unit based aligned, 2 47 2 next ptr unal, 2 48 2 back ptr unal, 2 49 2 successors ptr unal, 2 50 2 predecessors ptr unal, 2 51 2 dominator ptr unal, 2 52 2 loop ptr unal, 2 53 2 next_in_loop ptr unal, 2 54 2 loop_end_chain ptr unal, 2 55 2 position fixed bin(17) aligned, 2 56 2 number fixed bin(17) unal, 2 57 2 n_in_loop_end fixed bin(17) unal, 2 58 2 level_number fixed bin(17) aligned, 2 59 2 first_statement fixed bin (18) unsigned unal, 2 60 2 last_statement fixed bin (18) unsigned unal, 2 61 2 insert_statement fixed bin (18) unsigned unal, 2 62 2 insert_operator fixed bin (18) unsigned unal, 2 63 2 info structure unal, 2 64 3 processed bit(1), 2 65 3 loop_entry bit(1), 2 66 3 falls_through bit(1), 2 67 3 has_label bit(1), 2 68 3 entry_pt bit(1), 2 69 3 in_queue bit(1), 2 70 3 is_back_target bit(1), 2 71 3 has_side_effects bit(1), 2 72 3 removed bit(1), 2 73 3 refreshed bit(1), 2 74 3 pad bit(26), 2 75 2 used ptr unal, 2 76 2 set ptr unal, 2 77 2 busy_on_entry ptr unal, 2 78 2 set_multiple ptr unal, 2 79 2 busy_on_exit ptr unal, 2 80 2 dominated_by ptr unal, 2 81 2 is_active_operator ptr unal, 2 82 2 always_completely_set ptr unal; 2 83 2 84 2 85 /* INPUT_TO (3 words) */ 2 86 2 87 dcl 1 input_to based aligned, 2 88 2 next pointer unaligned, 2 89 2 operator pointer unaligned, 2 90 2 which fixed bin aligned; 2 91 2 92 /* LCHAIN (2 words) */ 2 93 2 94 dcl 1 lchain based aligned, 2 95 2 next pointer unaligned, 2 96 2 value fixed bin(18) aligned; 2 97 2 98 /* LOOP (33 words) */ 2 99 2 100 dcl 1 loop based aligned, 2 101 2 number fixed bin(18), 2 102 2 depth fixed bin(18), 2 103 2 father pointer unaligned, 2 104 2 brother pointer unaligned, 2 105 2 prev_brother pointer unaligned, 2 106 2 son pointer unaligned, 2 107 2 last_son pointer unaligned, 2 108 2 entry_unit pointer unaligned, 2 109 2 members pointer unaligned, 2 110 2 back_target pointer unaligned, 2 111 2 exits pointer unaligned, 2 112 2 first_unit pointer unaligned, 2 113 2 last_unit pointer unaligned, 2 114 2 is_member pointer unaligned, 2 115 2 is_exit pointer unaligned, 2 116 2 articulation_blocks pointer unaligned, 2 117 2 used pointer unaligned, 2 118 2 set pointer unaligned, 2 119 2 busy_on_exit pointer unaligned, 2 120 2 set_multiple pointer unaligned, 2 121 2 ancestors_and_me pointer unaligned, 2 122 2 bits structure unaligned, 2 123 3 has_side_effects bit(1), 2 124 3 erases structure unaligned, 2 125 4 xr(0:7) bit(1), 2 126 4 pr(6) bit(1), 2 127 3 avoid_pr(6) bit(1), 2 128 3 all_xrs_globally_assigned bit(1), 2 129 3 pad bit(14), 2 130 2 induction_var pointer unaligned, 2 131 2 may_keep_in_xr pointer unaligned, 2 132 2 computed pointer unaligned, 2 133 2 xregs_used fixed bin(4), 2 134 2 pregs_used fixed bin(4), 2 135 2 global_xr_items pointer unaligned, 2 136 2 global_pr_items pointer unaligned, 2 137 2 range_list pointer unaligned, 2 138 2 msp pointer unaligned, 2 139 2 eligible_ind_var_op_var pointer unaligned, 2 140 2 left_shift_chain pointer unaligned; 2 141 2 142 /* OPERATOR */ 2 143 2 144 dcl 1 operator based aligned, 2 145 2 146 /* WORD 1 */ 2 147 2 148 2 op_code fixed bin(8) unal, 2 149 2 assigns_constant_to_symbol bit(1) unal, 2 150 2 freed bit(1) unal, 2 151 2 number fixed bin(7) unsigned unal, 2 152 2 coordinate fixed bin(18) unsigned unal, 2 153 2 154 /* WORD 2 */ 2 155 2 156 2 next fixed bin(18) unsigned unal, 2 157 2 back fixed bin(18) unsigned unal, 2 158 2 159 /* WORD 3 */ 2 160 2 161 2 primary pointer unal, 2 162 2 163 /* WORD 4 */ 2 164 2 165 2 output fixed bin(18) aligned, 2 166 2 167 /* WORDS 5 - n */ 2 168 2 169 2 operand(n_operands refer (operator.number)) fixed bin (18) aligned; 2 170 2 171 dcl n_operands fixed bin; 2 172 2 173 2 174 /* OPT_STATEMENT */ 2 175 2 176 dcl 1 opt_statement based aligned structure, 2 177 2 178 /* WORD 1 */ 2 179 2 180 2 op_code fixed bin(8) unal, /* must be stat_op */ 2 181 2 number fixed bin(8) unal, /* must be 0 */ 2 182 2 label fixed bin (18) unsigned unal, 2 183 2 184 /* WORD 2 */ 2 185 2 186 2 first_operator fixed bin (18) unsigned unal, 2 187 2 prev_operator fixed bin (18) unsigned unal, 2 188 2 189 /* WORD 3 */ 2 190 2 191 2 next bit(18) unal, /* "0"b = no next statement */ 2 192 2 back bit(18) unal, /* "0"b = no prev statement */ 2 193 2 194 /* WORD 4 */ 2 195 2 196 2 source_id structure unaligned, 2 197 3 file fixed bin (8) unsigned, /* 0 = first file */ 2 198 3 line bit(14), 2 199 3 statement bit(5), /* 1 = first statement */ 2 200 2 201 2 length bit(9) unaligned, 2 202 2 203 /* WORD 5 */ 2 204 2 205 2 bits structure unaligned, 2 206 3 put_in_map bit(1), 2 207 3 put_in_profile bit(1), 2 208 3 processed_by_converter bit(1), 2 209 3 referenced_backwards bit(1), 2 210 3 referenced_by_assign bit(1), 2 211 3 has_operator_list bit(1), 2 212 3 moved bit(1), 2 213 3 removable bit(1), 2 214 3 pad bit(1), 2 215 2 216 2 start fixed bin(26) unaligned, 2 217 2 218 /* WORD 6 */ 2 219 2 220 2 location bit(18) unaligned, /* (18)"1"b = no code */ 2 221 2 machine_state fixed bin (18) unsigned unaligned, 2 222 2 223 /* WORD 7 */ 2 224 2 225 2 flow_unit pointer unaligned, 2 226 2 227 /* WORD 8 */ 2 228 2 229 2 operator_list pointer unaligned; 2 230 2 231 2 232 /* PRIMARY (4 words) */ 2 233 2 234 dcl 1 primary based aligned, 2 235 2 next pointer unaligned, 2 236 2 last pointer unaligned, 2 237 2 data structure aligned, 2 238 3 expression pointer unaligned, 2 239 3 flow_unit pointer unaligned; 2 240 2 241 /* RANGE (3 words) */ 2 242 2 243 dcl 1 range based aligned, 2 244 2 next pointer unaligned, 2 245 2 variable pointer unaligned, 2 246 2 bits structure unaligned, 2 247 3 range_bits structure unaligned, 2 248 4 fb17 bit(1), 2 249 4 fb18_uns bit(1), 2 250 3 mbz bit(34); 2 251 2 252 2 253 /* END fort_opt_nodes.incl.pl1 */ 139 140 3 1 /* BEGIN fort_listing_nodes.incl.pl1 */ 3 2 3 3 /* Created: 30 August 1976, David Levin 3 4* 3 5*Last Modified: 9 October 1978, Paul Smee 3 6**/ 3 7 3 8 dcl 1 cross_reference(261120) aligned structure based(cref_base), 3 9 2 symbol fixed bin (18) unsigned unaligned, 3 10 2 line_no fixed bin(17) unaligned; 3 11 3 12 dcl 1 listing_info aligned structure based(cur_listing), 3 13 2 subprogram fixed bin (18) unsigned, 3 14 2 next fixed bin (18) unsigned, 3 15 2 first_line fixed bin (18) unsigned, 3 16 2 last_line fixed bin (18) unsigned, 3 17 2 first_cref fixed bin (18) unsigned, 3 18 2 last_cref fixed bin (18) unsigned, 3 19 2 first_error fixed bin (18) unsigned, 3 20 2 last_error fixed bin (18) unsigned; 3 21 3 22 dcl listing_seg(0:261119) fixed bin based(listing_base); 3 23 3 24 dcl 1 error_text aligned structure based, 3 25 2 next fixed bin (18) unsigned, 3 26 2 length fixed bin, 3 27 2 string char(error_text_length refer(error_text.length)) aligned; 3 28 3 29 dcl error_text_length fixed bin; 3 30 3 31 dcl 1 source_list (130560) aligned structure based (source_line_base), 3 32 2 file_number fixed bin (8) unaligned, 3 33 2 line_start fixed bin (21) unsigned unaligned, 3 34 2 unused_bits bit (6) unaligned, 3 35 2 line_length fixed bin (18) unsigned unaligned, 3 36 2 line_number_in_file fixed bin (18) unsigned unaligned; 3 37 3 38 /* END fort_listing_nodes.incl.pl1 */ 141 142 143 declare 144 145 1 shared_globals structure aligned based (shared_global_ptr), 146 4 1 4 2 /* BEGIN fort_shared_vars.incl.pl1 */ 4 3 4 4 4 5 4 6 /****^ HISTORY COMMENTS: 4 7* 1) change(86-07-14,BWong), approve(86-07-14,MCR7286), audit(86-07-17,Ginter), 4 8* install(86-07-28,MR12.0-1105): 4 9* Fix fortran bug 463. 4 10* END HISTORY COMMENTS */ 4 11 4 12 4 13 /* Created: June 1976, David Levin 4 14* 4 15* Modified: 30 Aug 76, David Levin - to add global variables for listing segment. 4 16* Modified: 22 Nov 76, Richard Barnes - to add profile_size 4 17* Modified: 24 Feb 77, Gabriel Chang - for the optimizer 4 18* Modified: 06 Oct 77, Richard Barnes - for the loop optimizer 4 19* Modified: 16 Nov 77, David Levin - add next_free_(temp array_ref). 4 20* Modified: 09 Oct 78, Paul Smee - for larger common and arrays. 4 21* Modified: 03 Apr 79, Paul Smee - add list of include file data. 4 22* Modified: 17 May 79, Paul Smee - add cur_statement_list. 4 23* Modified: 28 Jun 79, Paul Smee - add compile-time math entry arrays. 4 24* Modified: 13 Sep 79, Paul Smee - add default_char_size. 4 25* Modified: 18 Dec 79, Richard Barnes - add free and freei 4 26* Modified: 03 Mar 80, C R Davis - add must_save_stack_extent. 4 27* Modified: 15 Mar 82, T G Oke - add source (line_number, file_number). 4 28* Modified: 20 Sept 82, T G Oke - add VLA_is_256K flag 4 29* Modified: 22 Sept 82, T G Oke - add area creation info to pass to 4 30* listing generator. 4 31* Modified: 17 May 83, M Mabey - add declared_options. 4 32* Modified: 02 Aug 85, B Wong - 463: changed 'must_save_stack_extent' 4 33* to 'pad' since the variable is no longer used. 4 34**/ 4 35 4 36 2 polish_base ptr, 4 37 2 operand_base ptr, 4 38 2 object_base ptr, 4 39 2 quadruple_base ptr, 4 40 2 opt_base ptr, 4 41 2 relocation_base ptr, 4 42 4 43 2 cref_base ptr, /* base of cross reference segment */ 4 44 2 source_line_base ptr, /* base of source line offset segment */ 4 45 2 listing_base ptr, /* base of listing info segment */ 4 46 2 cur_listing ptr, /* points to listing info for the active subprogram */ 4 47 4 48 2 free(2:4) ptr, /* free chains for optimizer */ 4 49 2 freei ptr, /* .. */ 4 50 4 51 2 polish_max_len fixed bin (19), 4 52 2 operand_max_len fixed bin (19), 4 53 2 object_max_len fixed bin (19), 4 54 2 quad_max_len fixed bin (19), 4 55 2 opt_max_len fixed bin (19), 4 56 4 57 2 next_free_polish fixed bin (18), 4 58 2 next_free_operand fixed bin (18), 4 59 2 next_free_object fixed bin (18), 4 60 2 next_free_listing fixed bin (18), 4 61 2 next_free_quad fixed bin (18), 4 62 2 next_free_array_ref fixed bin (18), /* Chain for freed array_ref nodes. */ 4 63 2 next_free_temp fixed bin (18), /* Chain for freed temporary nodes. */ 4 64 2 next_free_opt fixed bin (18), 4 65 4 66 2 first_segment fixed bin, 4 67 2 number_of_source_segments fixed bin (8), 4 68 2 number_of_lines fixed bin, 4 69 2 number_of_crefs fixed bin, 4 70 2 profile_size fixed bin, 4 71 4 72 2 main_entry_point_name char (32) varying, 4 73 4 74 2 cur_statement fixed bin (18), 4 75 2 cur_statement_list fixed bin (17), 4 76 2 cur_subprogram fixed bin (18), 4 77 2 first_subprogram fixed bin (18), 4 78 2 last_subprogram fixed bin (18), 4 79 2 unnamed_block_data_subprogram 4 80 fixed bin (18), 4 81 2 first_entry_name fixed bin (18), 4 82 2 last_entry_name fixed bin (18), 4 83 4 84 2 constant_info (4) aligned structure, 4 85 3 constant_count fixed bin (17), 4 86 3 first_constant fixed bin (18), 4 87 3 last_constant fixed bin (18), 4 88 4 89 2 options aligned, 4 90 3 user_options aligned like fortran_options, 4 91 3 system_options aligned, 4 92 4 is_fast bit (1) unaligned, 4 93 4 namelist_used bit (1) unaligned, 4 94 4 compile_only bit (1) unaligned, 4 95 4 VLA_is_256K bit (1) unaligned, /* FLAG 255/256K code */ 4 96 4 pad bit (32) unaligned, 4 97 4 98 2 incl_data aligned, 4 99 3 incl_count fixed bin, 4 100 3 file_list (0:255), 4 101 4 source_node_offset fixed bin (18), 4 102 4 incl_len fixed bin (21), 4 103 4 incl_ptr unaligned ptr, 4 104 4 105 2 create_constant entry (fixed bin (4), bit (72) aligned) returns (fixed bin (18)) 4 106 variable, 4 107 2 create_char_constant entry (char (*)) returns (fixed bin (18)) 4 108 variable, 4 109 2 print_message entry options (variable) 4 110 variable, 4 111 2 get_next_temp_segment entry (ptr, fixed bin (18)) returns (ptr) 4 112 variable, 4 113 2 negate_round (6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 4 114 returns (bit (72)) variable, 4 115 2 negate_trunc (6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 4 116 returns (bit (72)) variable, 4 117 2 binop_round (6,6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 4 118 returns (bit (72)) variable, 4 119 2 binop_trunc (6,6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 4 120 returns (bit (72)) variable, 4 121 2 comp_parm (6,6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 4 122 returns (bit (72)) variable, 4 123 2 conv_round (6,6) entry (bit (72), fixed bin (35)) 4 124 returns (bit (72)) variable, 4 125 2 conv_trunc (6,6) entry (bit (72), fixed bin (35)) 4 126 returns (bit (72)) variable, 4 127 2 pad bit (1) aligned, 4 128 4 129 /* The following are used by "print_message - decode_source_id" if use_source_info set. */ 4 130 4 131 2 use_source_info bit (1) aligned, 4 132 2 source_file_number fixed bin (35), 4 133 2 source_line_number fixed bin (35), 4 134 2 Area_create_first fixed bin (18), /* start of text to do creation */ 4 135 2 Area_create_last fixed bin (18), /* Last item */ 4 136 2 Area_init_first fixed bin (18), /* start of text to init areas */ 4 137 2 Area_init_last fixed bin (18), /* Last item */ 4 138 2 declared_options aligned like fortran_declared; 4 139 4 140 dcl num_of_word_constants fixed bin (17) defined (constant_info (1).constant_count); 4 141 dcl first_word_constant fixed bin (18) defined (constant_info (1).first_constant); 4 142 dcl last_word_constant fixed bin (18) defined (constant_info (1).last_constant); 4 143 4 144 dcl num_of_dw_constants fixed bin (17) defined (constant_info (2).constant_count); 4 145 dcl first_dw_constant fixed bin (18) defined (constant_info (2).first_constant); 4 146 dcl last_dw_constant fixed bin (18) defined (constant_info (2).last_constant); 4 147 4 148 dcl num_of_char_constants fixed bin (17) defined (constant_info (3).constant_count); 4 149 dcl first_char_constant fixed bin (18) defined (constant_info (3).first_constant); 4 150 dcl last_char_constant fixed bin (18) defined (constant_info (3).last_constant); 4 151 4 152 dcl num_of_block_constants fixed bin (17) defined (constant_info (4).constant_count); 4 153 dcl first_block_constant fixed bin (18) defined (constant_info (4).first_constant); 4 154 dcl last_block_constant fixed bin (18) defined (constant_info (4).last_constant); 4 155 4 156 /* END fort_shared_vars.incl.pl1 */ 147 148 149 declare 150 151 1 cg_globals structure aligned based (cg_global_ptr), 152 5 1 5 2 /* BEGIN fort_cg_vars.incl.pl1 */ 5 3 5 4 /* Created: June 1976 5 5* 5 6* Modified: 5 7* 9 December 1976, David Levin - change version_name to ext static 5 8* 10 September 1976, David Levin - to add date time compiled, user id, options,version, and compiler name 5 9* 6 June 1978, Richard Barnes - for loop optimizer 5 10* 9 Oct 1978, Paul E. Smee - changes for larger common and arrays. 5 11* 30 Nov 1978, Paul E. Smee - add fort_version_info$version_number*/ 5 12 5 13 2 num_of_lib_names fixed bin(17), 5 14 2 first_lib_name fixed bin (18) unsigned, 5 15 2 last_lib_name fixed bin (18) unsigned, 5 16 5 17 2 error_level fixed bin(17), 5 18 5 19 2 message_structure structure aligned, 5 20 3 message_number fixed bin (18), 5 21 3 number_of_operands fixed bin, 5 22 3 operands(3), 5 23 4 is_string bit(1) aligned, 5 24 4 operand_index fixed bin (18), 5 25 4 string_length fixed bin, 5 26 4 string_ptr ptr, 5 27 5 28 2 print_message_op entry variable, 5 29 2 create_constant_block entry(ptr,fixed bin) returns(fixed bin (18) unsigned) 5 30 variable, 5 31 2 date_time_compiled fixed bin(71), 5 32 2 objectname char(32) varying, 5 33 2 vuser_id char(32) varying, 5 34 2 options_string char(256) varying; 5 35 5 36 dcl fort_version_info$version_name char(132) varying ext static; 5 37 dcl fort_version_info$version_number char(16) ext static; 5 38 5 39 dcl compiler_name char(8) int static options(constant) init("fortran2"); 5 40 5 41 /* END fort_cg_vars.incl.pl1 */ 153 154 6 1 /* BEGIN INCLUDE FILE fort_options.incl.pl1 */ 6 2 6 3 /****^ *********************************************************** 6 4* * * 6 5* * Copyright, (C) Honeywell Information Systems Inc., 1987 * 6 6* * * 6 7* *********************************************************** */ 6 8 6 9 /****^ HISTORY COMMENTS: 6 10* 1) change(86-07-14,BWong), approve(86-07-14,MCR7382), audit(86-07-17,Ginter), 6 11* install(86-07-28,MR12.0-1105): 6 12* Fix fortran bug 473. 6 13* 2) change(87-06-23,RWaters), approve(87-06-23,MCR7703), audit(87-07-10,Huen), 6 14* install(87-08-06,MR12.1-1069): 6 15* Implemented SCP 6315: fortran error-handling argument. 6 16* END HISTORY COMMENTS */ 6 17 6 18 6 19 /* 6 20* Modified: 12 May 87 by RWaters added debug_io 6 21* Modified: 19 February 1986 by B. Wong & A. Ginter - 473.a: Correct 6 22* comments and size of pad field in fort_declared 6 23* and pad out dfast and fast bit masks to two words. 6 24* Modified: 09 October 1985 by B. Wong - 473: add VLA_auto, VLA_static, 6 25* VLA_parm, VLC, LA_auto, and LA_static. Remove VLA and LA. 6 26* Modified: 28 March 1984 by M. Mabey - Install HFP support. 6 27* Modified: 21 September 1983 by M. Mabey - correct size of pad field in fortran_declared. 6 28* Modified: 16 May 1983 by M. Mabey - add fortran_declared 6 29* Modified: 18 December 1982 by T. Oke - Add 'long_profile'. 6 30* Modified: 22 September 1982 by T. Oke - add VLA and LA 6 31* Modified: 3 May 1982 by T. Oke - add check_multiply 6 32* Modified: 06/24/81 by S. Herbst - add do_rounding & auto_zero to fast_mask and dfast_mask 6 33* Modified: 26 February 1980 by C R Davis - add fast_mask, fix dfast_mask. 6 34* Modified: 31 January 1980 by C R Davis - add stringrange. 6 35* Modified: 13 September 1979 by Paul E. Smee--add ansi_77. 6 36* Modified: 05 December 1978 by Paul E. Smee--add do_rounding, auto_zero. 6 37* Modified: 25 January 1978 by Richard A. Barnes for the loop optimizer 6 38**/ 6 39 6 40 declare 6 41 6 42 1 fortran_options aligned based, 6 43 2 use_library bit (1) unaligned, /* (1) ON if library statements will be parsed */ 6 44 2 optimize bit (1) unaligned, /* (2) ON if optimized code is to be produced */ 6 45 2 time bit (1) unaligned, /* (3) ON for compile timing */ 6 46 2 source_format unaligned, 6 47 3 has_line_numbers bit (1) unaligned, /* (4) ON if each line begins with a line number */ 6 48 3 fold bit (1) unaligned, /* (5) ON if variable names are to be folded to lowercase */ 6 49 3 card bit (1) unaligned, /* (6) ON for card format */ 6 50 3 convert bit (1) unaligned, /* (7) ON for card format to be converted */ 6 51 2 listing unaligned, 6 52 3 source bit (1) unaligned, /* (8) ON for listing of numbered source */ 6 53 3 symbol bit (1) unaligned, /* (9) ON for listing with symbol map */ 6 54 3 map bit (1) unaligned, /* (10) ON for listing with statement map */ 6 55 3 list bit (1) unaligned, /* (11) ON for listing with assembler instructions */ 6 56 2 error_messages unaligned, 6 57 3 brief bit (1) unaligned, /* (12) ON for brief error messages */ 6 58 3 severity fixed bin (3), /* (13-16) suppresses messages below this severity */ 6 59 2 debugging unaligned, 6 60 3 subscriptrange bit (1) unaligned, /* (17) ON for subscript range checking */ 6 61 3 stringrange bit (1) unaligned, /* (18) ON for string range checking */ 6 62 3 brief_table bit (1) unaligned, /* (19) ON for statement table */ 6 63 3 table bit (1) unaligned, /* (20) ON for statement and symbol table */ 6 64 3 profile bit (1) unaligned, /* (21) ON to generate code to meter statements */ 6 65 3 check bit (1) unaligned, /* (22) ON for syntactic and semantic checking only */ 6 66 2 system_debugging unaligned, 6 67 3 stop_after_cg bit (1) unaligned, /* (23) ON if debug stop after code generator */ 6 68 3 stop_after_parse bit (1) unaligned, /* (24) ON if debug stop after parse */ 6 69 2 relocatable bit (1) unaligned, /* (25) ON if relocatable object segment generated */ 6 70 2 optimizing unaligned, 6 71 3 time_optimizer bit (1) unaligned, /* (26) ON if timings for optimizer requested */ 6 72 /* (27) ON if optimizer can loosen safety constraints */ 6 73 3 ignore_articulation_blocks bit (1) unaligned, 6 74 3 consolidate bit(1) unaligned, /* (28) ON if optimizer should run consolidation phase */ 6 75 2 do_rounding bit(1) unaligned, /* (29) ON if floating point round should be used */ 6 76 2 auto_zero bit(1) unaligned, /* (30) ON if auto storage should be zeroed when allocated */ 6 77 2 ansi_77 bit (1) unaligned, /* (31) ON if ansi77 rules are to be followed */ 6 78 2 check_multiply bit (1) unaligned, /* (32) ON if check integer multiply extent */ 6 79 2 VLA_auto bit (1) unaligned, /* (33) ON if auto VLA's being done */ 6 80 2 VLA_parm bit (1) unaligned, /* (34) ON if parm VLA's being done */ 6 81 2 VLA_static bit (1) unaligned, /* (35) ON if static VLA's being done */ 6 82 2 VLC bit (1) unaligned, /* (36) ON if VLC's being done */ 6 83 2 LA_auto bit (1) unaligned, /* (1) ON if auto LA's being done */ 6 84 2 LA_static bit (1) unaligned, /* (2) ON if static LA's being done */ 6 85 2 long_profile bit (1) unaligned, /* (3) ON to generate long_profile */ 6 86 2 static_storage bit (1) unaligned, /* (4) ON if static storage */ 6 87 2 hfp bit (1) unaligned, /* (5) ON if using hex floating point math */ 6 88 2 debug_io bit (1) unaligned, /* (6) */ 6 89 2 pad bit(30) unaligned; /* (7-36) Pad bits */ 6 90 6 91 declare 6 92 6 93 1 fortran_declared aligned based, 6 94 2 ansi66 bit(1) unaligned, /* (1) First word */ 6 95 2 ansi77 bit(1) unaligned, /* (2) */ 6 96 2 auto bit(1) unaligned, /* (3) */ 6 97 2 auto_zero bit(1) unaligned, /* (4) */ 6 98 2 brief bit(1) unaligned, /* (5) */ 6 99 2 binary_floating_point bit(1) unaligned, /* (6) */ 6 100 2 brief_table bit(1) unaligned, /* (7) */ 6 101 2 card bit(1) unaligned, /* (8) */ 6 102 2 check bit(1) unaligned, /* (9) */ 6 103 2 check_multiply bit(1) unaligned, /* (10) */ 6 104 2 consolidate bit(1) unaligned, /* (11) */ 6 105 2 debug bit(1) unaligned, /* (12) */ 6 106 2 debug_cg bit(1) unaligned, /* (13) */ 6 107 2 debug_io bit(1) unaligned, /* (14) */ 6 108 2 default_full bit(1) unaligned, /* (15) */ 6 109 2 default_safe bit(1) unaligned, /* (16) */ 6 110 2 fold bit(1) unaligned, /* (17) */ 6 111 2 free bit(1) unaligned, /* (18) */ 6 112 2 full_optimize bit(1) unaligned, /* (19) */ 6 113 2 hexadecimal_floating_point bit(1) unaligned, 6 114 /* (20) */ 6 115 2 la_auto bit(1) unaligned, /* (21) */ 6 116 2 la_static bit(1) unaligned, /* (22) */ 6 117 2 large_array bit(1) unaligned, /* (23) */ 6 118 2 line_numbers bit(1) unaligned, /* (24) */ 6 119 2 list bit(1) unaligned, /* (25) */ 6 120 2 long bit(1) unaligned, /* (26) */ 6 121 2 long_profile bit(1) unaligned, /* (27) */ 6 122 2 map bit(1) unaligned, /* (28) */ 6 123 2 no_auto_zero bit(1) unaligned, /* (29) */ 6 124 2 no_check bit(1) unaligned, /* (30) */ 6 125 2 no_fold bit(1) unaligned, /* (31) */ 6 126 2 no_large_array bit(1) unaligned, /* (32) */ 6 127 2 no_line_numbers bit(1) unaligned, /* (33) */ 6 128 2 no_map bit(1) unaligned, /* (34) */ 6 129 2 no_optimize bit(1) unaligned, /* (35) */ 6 130 2 no_check_multiply bit(1) unaligned, /* (36) */ 6 131 2 no_debug_io bit(1) unal, /* (1) Second Word */ 6 132 2 no_stringrange bit(1) unaligned, /* (2) */ 6 133 2 no_subscriptrange bit(1) unaligned, /* (3) */ 6 134 2 no_table bit(1) unaligned, /* (4) */ 6 135 2 no_very_large_array bit(1) unaligned, /* (5) */ 6 136 2 no_vla_parm bit(1) unaligned, /* (6) */ 6 137 2 no_version bit(1) unaligned, /* (7) */ 6 138 2 non_relocatable bit(1) unaligned, /* (8) */ 6 139 2 optimize bit(1) unaligned, /* (9) */ 6 140 2 profile bit(1) unaligned, /* (10) */ 6 141 2 relocatable bit(1) unaligned, /* (11) */ 6 142 2 round bit(1) unaligned, /* (12) */ 6 143 2 safe_optimize bit(1) unaligned, /* (13) */ 6 144 2 severity fixed bin(3) unaligned, /* (14-16) */ 6 145 2 static bit(1) unaligned, /* (17) */ 6 146 2 stringrange bit(1) unaligned, /* (18) */ 6 147 2 subscriptrange bit(1) unaligned, /* (19) */ 6 148 2 table bit(1) unaligned, /* (20) */ 6 149 2 time bit(1) unaligned, /* (21) */ 6 150 2 time_ot bit(1) unaligned, /* (22) */ 6 151 2 top_down bit(1) unaligned, /* (23) */ 6 152 2 truncate bit(1) unaligned, /* (24) */ 6 153 2 version bit(1) unaligned, /* (25) */ 6 154 2 very_large_array bit(1) unaligned, /* (26) */ 6 155 2 very_large_common bit(1) unaligned, /* (27) */ 6 156 2 vla_auto bit(1) unaligned, /* (28) */ 6 157 2 vla_parm bit(1) unaligned, /* (29) */ 6 158 2 vla_static bit(1) unaligned, /* (30) */ 6 159 2 pad bit(6) unaligned; /* (31-36) */ 6 160 6 161 6 162 declare /* Options used by DFAST */ 6 163 6 164 dfast_mask bit (72) internal static options (constant) initial ("100110000000000010100000000011"b); 6 165 /* use_library, has_line_numbers, fold, subscriptrange, brief_table */ 6 166 6 167 6 168 declare /* Options used by FAST */ 6 169 6 170 fast_mask bit (72) internal static options (constant) initial ("000100000000000010100000000011"b); 6 171 /* has_line_numbers, subscriptrange, brief_table */ 6 172 6 173 /* END INCLUDE FILE fort_options.incl.pl1 */ 155 156 7 1 /* BEGIN fort_system_constants.incl.pl1 */ 7 2 7 3 7 4 7 5 /****^ HISTORY COMMENTS: 7 6* 1) change(86-07-14,BWong), approve(86-07-14,MCR7382), audit(86-07-17,Ginter), 7 7* install(86-07-28,MR12.0-1105): 7 8* Fix fortran bug 428. 7 9* END HISTORY COMMENTS */ 7 10 7 11 7 12 /* Created: June 1976, David Levin */ 7 13 7 14 /* Modified: 7 15* 15 Dec 85, RW - 428: Changed max_char_length from 256 to 512. 7 16* 22 Jun 84, MM - Install typeless functions support. 7 17* 17 Jun 83, HH - 383: Added 'process_param_list_op'. 7 18* 12 Jan 83, HH - Added 'form_VLA_packed_ptr_op'. 7 19* 05 Oct 82, HH - Added 'units_per_word'. 7 20* 27 Sep 82, HH - Added 'max_fixed_bin_18', 'max_fixed_bin_24' and 'sys_info$max_seg_size'. 7 21* Removed 'max_stored_value' and 'min_stored_value'. 7 22* 24 October 1981, ME Presser - added inquire_op. 7 23* 20 October 1981, C R Davis - add (read write)_internal_file_op. 7 24* 11 May 1981, Marshall Presser - added op-codes for .EQV. and .NEQV. 7 25* 28 April 1981, Marshall Presser - added default_main_entry_point_name 7 26* 11 March 1981, Marshall Presser - add min_stored_value 7 27* 8 December 1980, C R Davis - add block_if_op, else_if_op, else_op. 7 28* 15 January 1980, C R Davis - add bits_per_char. 7 29* 21 December 1979, Richard A. Barnes - add unrecoverable_errror and 7 30* max_error_level. 7 31* 3 November 1979, Richard Barnes - add pointer_node. 7 32* 17 September 1979, Richard Barnes - add load_preg_op & load_xreg_op 7 33* 13 September 1979, Paul Smee - add colon and concat token types, 7 34* change value of EOS_token, remove default_char_size. 7 35* 31 August 1979, Charlie Davis - change offset units to 7 36* be consistent with those in runtime symbols. 7 37* 13 August 1979, Richard Barnes - add cat_op & substr_op 7 38* 19 July 1979, Richard Barnes - char mode 7 39* 10 October 1978, Paul Smee - double max_stored_value and bias. 7 40* 15 June 1978, Paul Smee - add max_num_of_rands 7 41* 16 November 1977, David Levin - add machine_state_node 7 42* 12 September 1977, Richard Barnes - new ops for loop optimizer 7 43* 30 August 1977, David Levin - change bias from 65536 to 131072. 7 44* 5 July 1977, David Levin - add open_op, close_op, and iostat_op. 7 45* 28 April 1977, David Levin - add xmit_vector_op in operator list 7 46* 22 April 1977, David Levin - add max_prec_single, last_assigned_mode 7 47* 24 February 1977, Gabriel Chang for the optimizer. 7 48* 23 February 1977, David Levin to change name of count operand. 7 49* 28 October 1976, David Levin and Gabriel Chang to add 2 new ops and 7 50* 1 new node type. 7 51* 2 September 1976, David Levin - add 8 new ops and change name of 7 52* data_op. 7 53**/ 7 54 /* SYSTEM CONSTANTS */ 7 55 7 56 dcl bias init(262144) fixed bin(19) int static options(constant); 7 57 dcl gap_value init(0) fixed bin int static options(constant); 7 58 dcl max_fixed_bin_18 init(111111111111111111b) fixed bin (18) static options (constant); 7 59 dcl max_fixed_bin_24 init(111111111111111111111111b) fixed bin (24) static options (constant); 7 60 dcl max_num_of_rands init(127) fixed bin int static options(constant); 7 61 dcl sys_info$max_seg_size 7 62 fixed bin (18) ext; 7 63 7 64 dcl ( unrecoverable_error init(3), 7 65 max_error_level init(4)) 7 66 fixed bin int static options(constant); 7 67 7 68 dcl (main_program init(0), 7 69 block_data init(1), 7 70 subroutine init(2), 7 71 function init(3), 7 72 chars_per_word init(4), 7 73 chars_per_dw init(8), 7 74 bits_per_char init(9), 7 75 first_auto_loc init(64), 7 76 max_prec_single init(8)) fixed bin(9) int static options(constant); 7 77 dcl max_char_length init(512) fixed bin(10) int static options(constant); 7 78 7 79 dcl blank_common_name init("blnk*com") char(8) aligned int static options(constant); 7 80 declare default_main_entry_point_name 7 81 char (5) int static options (constant) initial ("main_"); 7 82 declare unnamed_block_data_subprg_name 7 83 char (29) int static options (constant) initial ("unnamed block data subprogram"); 7 84 7 85 /* NODE TYPES */ 7 86 7 87 dcl (fill_node init(0), 7 88 source_node init(1), 7 89 symbol_node init(2), 7 90 dimension_node init(3), 7 91 temporary_node init(4), 7 92 constant_node init(5), 7 93 label_node init(6), 7 94 header_node init(7), 7 95 char_constant_node init(8), 7 96 array_ref_node init(9), 7 97 proc_frame_node init(10), 7 98 library_node init(11), 7 99 subprogram_node init(12), 7 100 arg_desc_node init(13), 7 101 pointer_node init(14), 7 102 machine_state_node init(15)) fixed bin(4) aligned internal static options(constant); 7 103 7 104 /* DATA TYPES */ 7 105 7 106 dcl (int_mode init(1), 7 107 real_mode init(2), 7 108 dp_mode init(3), 7 109 cmpx_mode init(4), 7 110 logical_mode init(5), 7 111 char_mode init(6), 7 112 typeless_mode init(7), 7 113 last_assigned_mode init(7)) fixed bin(4) aligned internal static options(constant); 7 114 7 115 dcl data_type_size(7) init(1,1,2,2,1,0,1) fixed bin int static options(constant); 7 116 7 117 7 118 /* OPERAND TYPES */ 7 119 7 120 dcl (variable_type init(1), 7 121 constant_type init(2), 7 122 array_ref_type init(3), 7 123 temp_type init(4), 7 124 count_type init(5), 7 125 rel_constant init(6), 7 126 bif init(7), 7 127 statement_function init(8), 7 128 external init(9), 7 129 entry_type init(10), 7 130 dummy init(11), 7 131 error init(12)) fixed bin(4) aligned internal static options(constant); 7 132 7 133 7 134 /* OFFSET UNITS */ 7 135 7 136 dcl 7 137 (word_units init (0), 7 138 bit_units init (1), 7 139 char_units init (2), 7 140 halfword_units init (3)) fixed bin (3) aligned internal static options(constant); 7 141 7 142 dcl units_per_word (0:3) init (1, 36, 4, 2) fixed bin (6) static options (constant); 7 143 7 144 7 145 /* TOKEN MASKS */ 7 146 7 147 dcl 7 148 (is_operand initial("101000000"b), 7 149 is_operator initial("010000000"b), 7 150 is_constant initial("001000000"b), 7 151 is_arith_constant initial("000100000"b)) bit(9) aligned internal static options(constant); 7 152 7 153 7 154 /* TOKEN TYPES */ 7 155 7 156 dcl (no_token initial("000000000"b), 7 157 ident initial("100000000"b), 7 158 plus initial("010000001"b), 7 159 minus initial("010000010"b), 7 160 asterisk initial("010000011"b), 7 161 slash initial("010000100"b), 7 162 expon initial("010000101"b), 7 163 not initial("010000110"b), 7 164 and initial("010000111"b), 7 165 or initial("010001000"b), 7 166 eq initial("010001001"b), 7 167 ne initial("010001010"b), 7 168 lt initial("010001011"b), 7 169 gt initial("010001100"b), 7 170 le initial("010001101"b), 7 171 ge initial("010001110"b), 7 172 assign initial("010001111"b), 7 173 comma initial("010010000"b), 7 174 left_parn initial("010010001"b), 7 175 right_parn initial("010010010"b), 7 176 apostrophe initial("010010011"b), 7 177 colon initial("010010100"b), 7 178 concat initial("010010101"b), 7 179 substr_left_parn initial("010010110"b), 7 180 eqv initial("010010111"b), 7 181 neqv initial("010011000"b), 7 182 EOS_token initial("010011111"b), 7 183 char_string initial("001000001"b), 7 184 logical_const initial("001000010"b), 7 185 false initial("001000010"b), /* Must be identical to true except low order bit off. */ 7 186 true initial("001000011"b), /* Must be identical to false except low order bit on. */ 7 187 label_const initial("001000100"b), 7 188 octal_const initial("001000101"b), 7 189 dec_int initial("001100110"b), 7 190 real_const initial("001100111"b), 7 191 double_const initial("001101000"b), 7 192 complex_const initial("001101001"b)) bit(9) aligned internal static options(constant); 7 193 7 194 7 195 /* OPERATOR NAMES */ 7 196 7 197 declare 7 198 (assign_op initial(1), 7 199 add_op initial(2), 7 200 sub_op initial(3), 7 201 mult_op initial(4), 7 202 div_op initial(5), 7 203 exponentiation_op initial(6), 7 204 negate_op initial(7), 7 205 less_op initial(8), 7 206 less_or_equal_op initial(9), 7 207 equal_op initial(10), 7 208 not_equal_op initial(11), 7 209 greater_or_equal_op initial(12), 7 210 greater_op initial(13), 7 211 or_op initial(14), 7 212 and_op initial(15), 7 213 not_op initial(16), 7 214 jump_op initial(17), 7 215 jump_logical_op initial(18), 7 216 jump_arithmetic_op initial(19), 7 217 jump_computed_op initial(20), 7 218 jump_assigned_op initial(21), 7 219 assign_label_op initial(22), 7 220 read_op initial(23), 7 221 write_op initial(24), 7 222 format_op initial(25), 7 223 end_label_op initial(26), 7 224 error_label_op initial(27), 7 225 xmit_scalar_op initial(28), 7 226 xmit_array_op initial(29), 7 227 xmit_vector_op initial(30), 7 228 endfile_op initial(31), 7 229 rewind_op initial(32), 7 230 backspace_op initial(33), 7 231 margin_op initial(34), 7 232 openfile_op initial(35), 7 233 closefile_op initial(36), 7 234 record_number_op initial(37), 7 235 string_op initial(38), 7 236 string_length_op initial(39), 7 237 terminate_op initial(40), 7 238 return_op initial(41), 7 239 pause_op initial(42), 7 240 stop_op initial(43), 7 241 item_op initial(44), 7 242 exit_op initial(45), 7 243 eol_op initial(46), 7 244 do_op initial(47), 7 245 builtin_op initial(48), 7 246 sf_op initial(49), 7 247 sf_def_op initial(50), 7 248 subscript_op initial(51), 7 249 func_ref_op initial(52), 7 250 block_data_op initial(53), 7 251 increment_polish_op initial(54), 7 252 main_op initial(55), 7 253 func_op initial(56), 7 254 subr_op initial(57), 7 255 stat_op initial(58), 7 256 label_op initial(59), 7 257 call_op initial(60), 7 258 chain_op initial(61), 7 259 endunit_op initial(62), 7 260 non_executable initial(63), 7 261 no_op initial(64), 7 262 form_VLA_packed_ptr_op initial(65), 7 263 opt_subscript_op initial(66), 7 264 left_shift_op initial(67), 7 265 right_shift_op initial(68), 7 266 store_zero_op initial(69), 7 267 storage_add_op initial(70), 7 268 storage_sub_op initial(71), 7 269 neg_storage_add_op initial(72), 7 270 storage_add_one_op initial(73), 7 271 namelist_op initial(74), 7 272 open_op initial(75), 7 273 close_op initial(76), 7 274 iostat_op initial(77), 7 275 convert_to_int_op initial(78), 7 276 convert_to_real_op initial(79), 7 277 convert_to_dp_op initial(80), 7 278 convert_to_cmpx_op initial(81), 7 279 read_scalar_op initial(82), 7 280 read_array_op initial(83), 7 281 read_vector_op initial(84), 7 282 write_scalar_op initial(85), 7 283 write_array_op initial(86), 7 284 write_vector_op initial(87), 7 285 jump_true_op initial(88), 7 286 jump_false_op initial(89), 7 287 sub_index_op initial(90), 7 288 loop_end_op initial(91), 7 289 read_namelist_op initial(92), 7 290 write_namelist_op initial(93), 7 291 decode_string_op initial(94), 7 292 encode_string_op initial(95), 7 293 cat_op initial(96), 7 294 substr_op initial(97), 7 295 load_xreg_op initial(98), 7 296 load_preg_op initial(99), 7 297 block_if_op initial(100), 7 298 else_if_op initial(101), 7 299 else_op initial(102), 7 300 equiv_op initial (103), 7 301 not_equiv_op initial (104), 7 302 read_internal_file_op initial (105), 7 303 write_internal_file_op initial (106), 7 304 inquire_op initial (107), 7 305 process_param_list_op initial (108), 7 306 lhs_fld_op initial (109), 7 307 last_assigned_op initial (109)) fixed bin(18) internal static options(constant); 7 308 7 309 /* END fort_system_constants.incl.pl1 */ 157 158 159 declare 160 161 1 symtab_parameters structure aligned based (symtab_param_ptr), 162 8 1 /* BEGIN INCLUDE FILE fort_symtab_parms.incl.pl1 8 2* 8 3* Read only parameters passed to fort_symbol_table which describe the 8 4* partially built object segment. 8 5* 8 6*Written: 23 August 1979 by C R Davis 8 7**/ 8 8 8 9 2 link_base_ptr pointer, 8 10 2 link_reloc_base_ptr pointer, 8 11 2 def_reloc_base_ptr pointer, 8 12 2 current_text_offset fixed binary (18), 8 13 2 current_def_offset fixed binary (18), 8 14 2 current_link_offset fixed binary (18), 8 15 2 final_text_offset fixed binary (18), 8 16 2 profile_offset fixed binary (18), 8 17 2 star_symbol_link fixed binary (18), 8 18 2 first_namelist_symbol fixed binary (18); 8 19 8 20 /* END INCLUDE FILE fort_symtab_parms.incl.pl1 */ 163 164 9 1 dcl 1 pl1_symbol_block aligned based, 9 2 2 version fixed bin, 9 3 2 identifier char(8), /* must be "pl1info" */ 9 4 2 flags, 9 5 3 profile bit(1) unal, 9 6 3 table bit(1) unal, 9 7 3 map bit(1) unal, 9 8 3 flow bit(1) unal, 9 9 3 io bit(1) unal, 9 10 3 table_removed bit(1) unal, 9 11 3 long_profile bit(1) unal, 9 12 3 pad bit(29) unal, 9 13 2 greatest_severity fixed bin, 9 14 2 root unal bit(18), 9 15 2 profile unal bit(18), 9 16 2 map unal, 9 17 3 first bit(18), 9 18 3 last bit(18), 9 19 2 segname unaligned, 9 20 3 offset bit(18), 9 21 3 size bit(18); 165 166 10 1 dcl 1 std_symbol_header based aligned, 10 2 2 dcl_version fixed bin, 10 3 2 identifier char(8), 10 4 2 gen_number fixed bin, 10 5 2 gen_created fixed bin(71), 10 6 2 object_created fixed bin(71), 10 7 2 generator char(8), 10 8 2 gen_version unaligned, 10 9 3 offset bit(18), 10 10 3 size bit(18), 10 11 2 userid unaligned, 10 12 3 offset bit(18), 10 13 3 size bit(18), 10 14 2 comment unaligned, 10 15 3 offset bit(18), 10 16 3 size bit(18), 10 17 2 text_boundary bit(18) unaligned, 10 18 2 stat_boundary bit(18) unaligned, 10 19 2 source_map bit(18) unaligned, 10 20 2 area_pointer bit(18) unaligned, 10 21 2 backpointer bit(18) unaligned, 10 22 2 block_size bit(18) unaligned, 10 23 2 next_block bit(18) unaligned, 10 24 2 rel_text bit(18) unaligned, 10 25 2 rel_def bit(18) unaligned, 10 26 2 rel_link bit(18) unaligned, 10 27 2 rel_symbol bit(18) unaligned, 10 28 2 mini_truncate bit(18) unaligned, 10 29 2 maxi_truncate bit(18) unaligned; 167 168 11 1 /* BEGIN INCLUDE FILE profile_entry.incl.pl1 */ 11 2 11 3 dcl 1 profile_entry aligned based, 11 4 2 map bit(18) unaligned, 11 5 2 skip bit(18) unaligned, 11 6 2 count fixed bin; 11 7 11 8 /* END INCLUDE FILE profile_entry.incl.pl1 */ 169 12 1 /* BEGIN INCLUDE FILE ... long_profile.incl.pl1 */ 12 2 /* coded December 1, 1976 by Richard A. Barnes */ 12 3 12 4 dcl 1 long_profile_header based aligned, 12 5 2 last_vcpu fixed bin(71), /* last virtual cpu reading */ 12 6 2 last_pf fixed bin, /* last page faults reading */ 12 7 2 last_offset fixed bin, /* offset of last profile entry metered */ 12 8 2 nentries fixed bin, /* number of profile entries */ 12 9 2 dummy like long_profile_entry aligned, /* dummy profile entry */ 12 10 2 control like long_profile_entry aligned; /* control profile entry for overhead calc */ 12 11 12 12 dcl 1 long_profile_entry based aligned, 12 13 2 map bit(18) unaligned, /* rel ptr to statement map entry */ 12 14 2 skip bit(18) unaligned, 12 15 2 count fixed bin, /* number of times stmt encountered */ 12 16 2 vcpu fixed bin, /* total execution time for this statement */ 12 17 2 pf fixed bin; /* total page faults for this statement */ 12 18 12 19 dcl (dummy_entry_offset init(5), /* offset in long_profile_header of dummy */ 12 20 control_entry_offset init(9)) /* offset in long_profile_header of control */ 12 21 fixed bin int static options(constant); 12 22 12 23 /* END INCLUDE FILE ... long_profile.incl.pl1 */ 170 171 13 1 /* BEGIN INCLUDE FILE relbts.incl.pl1 */ 13 2 13 3 /* This include file defines the relocation bits as bit (18) entities. See 13 4* also relocation_bits.incl.pl1 and reloc_lower.incl.pl1. */ 13 5 13 6 dcl ( rc_a initial("0"b), /* absolute */ 13 7 rc_t initial("000000000000010000"b), /* text */ 13 8 rc_nt initial("000000000000010001"b), /* negative text */ 13 9 rc_lp18 initial("000000000000010010"b), /* linkage, 18 bit */ 13 10 rc_nlp18 initial("000000000000010011"b), /* negative link, 18 bit */ 13 11 rc_lp15 initial("000000000000010100"b), /* linkage, 15 bit */ 13 12 rc_dp initial("000000000000010101"b), /* def section */ 13 13 rc_s initial("000000000000010110"b), /* symbol segment */ 13 14 rc_ns initial("000000000000010111"b), /* negative symbol */ 13 15 rc_is18 initial("000000000000011000"b), /* internal static 18 */ 13 16 rc_is15 initial("000000000000011001"b), /* internal static 15 */ 13 17 rc_lb initial("000000000000011000"b), /* link block */ 13 18 rc_nlb initial("000000000000011001"b), /* negative link block */ 13 19 rc_sr initial("000000000000011010"b), /* self relative */ 13 20 rc_e initial("000000000000011111"b)) /* escape */ 13 21 bit(18) internal static options(constant); 13 22 13 23 dcl ( rc_dp_dp initial("000000000000010101000000000000010101"b), /* def section, def section */ 13 24 rc_a_dp initial("000000000000000000000000000000010101"b)) /* absolute, def section */ 13 25 bit(36) internal static options(constant); 13 26 13 27 /* END INCLUDE FILE relbts.incl.pl1 */ 172 173 174 /* Copy input arguments */ 175 176 shared_global_ptr = P_shared_global_ptr; 177 cg_global_ptr = P_cg_global_ptr; 178 symtab_param_ptr = P_param_ptr; 179 symrel = P_sym_offset; 180 181 /* Copy status of partial object segment */ 182 183 link_base = symtab_parameters.link_base_ptr; 184 link_reloc_base = symtab_parameters.link_reloc_base_ptr; 185 def_reloc_base = symtab_parameters.def_reloc_base_ptr; 186 text_pos = symtab_parameters.current_text_offset; 187 def_pos = symtab_parameters.current_def_offset; 188 link_pos = symtab_parameters.current_link_offset; 189 last_pos = symtab_parameters.final_text_offset; 190 profile_start = symtab_parameters.profile_offset; 191 star_symbol_link = symtab_parameters.star_symbol_link; 192 first_namelist = symtab_parameters.first_namelist_symbol; 193 194 195 if shared_globals.options.list 196 then a_base = addr (source_list (number_of_lines + 2)); 197 198 199 /* Set up symbol table and relocation pointers */ 200 201 sym_base = addrel (object_base, symrel); 202 sym_reloc_base = addrel (relocation_base, symrel); 203 sym_pos = 0; 204 205 /* Decide how much of the symbol table to generate */ 206 207 generate_map = shared_globals.options.brief_table 208 | shared_globals.options.table 209 | shared_globals.options.profile; 210 generate_profile = shared_globals.options.profile; 211 generate_symtab = shared_globals.options.table 212 | shared_globals.options.namelist_used; 213 214 /* Now start generating the symbol table */ 215 216 call init_symbol (); 217 218 if generate_map 219 then if shared_globals.options.optimize 220 then call gen_opt_statement_map (); 221 else call gen_statement_map (); 222 223 if generate_symtab 224 then do; 225 call make_symbol_table (); 226 call fill_sym_info_into_entries (); 227 if shared_globals.options.namelist_used 228 then call make_ok_lists (); 229 end; 230 231 call end_symbol (); 232 233 P_sym_length = sym_pos; /* Return length */ 234 235 return; 236 237 init_symbol: 238 procedure (); 239 240 /* starts generating the symbol section */ 241 242 dcl (sym_ptr, map_ptr, sp, sym_reloc_ptr) ptr; 243 244 dcl source_index fixed bin (18); 245 dcl (m, n) fixed bin (18); 246 247 dcl version_name_and_number char (148) varying; 248 249 dcl fort_$symbol_table fixed bin (17) ext static; 250 251 dcl size builtin; 252 14 1 /* BEGIN INCLUDE FILE ... source_map.incl.pl1 */ 14 2 14 3 dcl 1 source_map aligned based, 14 4 2 version fixed bin, 14 5 2 number fixed bin, 14 6 2 map(n refer(source_map.number)) aligned, 14 7 3 pathname unaligned, 14 8 4 offset bit(18), 14 9 4 size bit(18), 14 10 3 uid bit(36), 14 11 3 dtm fixed bin(71); 14 12 14 13 /* END INCLUDE FILE ... source_map.incl.pl1 */ 253 254 255 /* generate symbol table header */ 256 257 sym_ptr = sym_base; 258 sym_pos = size (std_symbol_header); 259 260 sym_ptr -> std_symbol_header.dcl_version = 1; 261 sym_ptr -> std_symbol_header.identifier = "symbtree"; 262 sym_ptr -> std_symbol_header.gen_number = 1; 263 sym_ptr -> std_symbol_header.gen_created = addr (fort_$symbol_table) -> std_symbol_header.object_created; 264 265 sym_ptr -> std_symbol_header.object_created = date_time_compiled; 266 267 sym_ptr -> std_symbol_header.generator = compiler_name; 268 269 version_name_and_number = 270 fort_version_info$version_name || fort_version_info$version_number; 271 /* keep store_string quick */ 272 string (sym_ptr -> std_symbol_header.gen_version) = store_string (version_name_and_number); 273 274 string (sym_ptr -> std_symbol_header.userid) = store_string (vuser_id); 275 276 string (sym_ptr -> std_symbol_header.comment) = store_string (options_string); 277 278 sym_ptr -> std_symbol_header.text_boundary, 279 sym_ptr -> std_symbol_header.stat_boundary = "000000000000000010"b; 280 281 /* generate source map (which must start on even boundary) */ 282 283 sym_pos = sym_pos + mod (sym_pos, 2); 284 285 sym_ptr -> std_symbol_header.source_map = bit (sym_pos, 18); 286 287 map_ptr = addrel (sym_base, sym_pos); 288 map_ptr -> source_map.version = 1; 289 map_ptr -> source_map.number, n = number_of_source_segments; 290 291 sym_pos = sym_pos + size (source_map); 292 293 source_index = first_segment; 294 295 do m = 1 to n; 296 sp = addr (rands (source_index)); 297 string (map_ptr -> source_map.map (m).pathname) = store_string (sp -> source.pathname); 298 map_ptr -> source_map.map (m).uid = sp -> source.uid; 299 map_ptr -> source_map.map (m).dtm = sp -> source.dtm; 300 source_index = sp -> source.next; 301 end; 302 303 /* generate pl1 symbol block */ 304 305 sym_ptr -> std_symbol_header.area_pointer = bit (sym_pos, 18); 306 307 info_ptr, sym_ptr = addrel (sym_base, sym_pos); 308 sym_reloc_ptr = addrel (sym_reloc_base, sym_pos); 309 310 sym_pos = sym_pos + size (pl1_symbol_block); 311 312 sym_ptr -> pl1_symbol_block.version = 1; 313 sym_ptr -> pl1_symbol_block.identifier = "pl1info"; 314 sym_ptr -> pl1_symbol_block.greatest_severity = error_level; 315 316 sym_ptr -> pl1_symbol_block.flags.io = shared_globals.options.namelist_used; 317 sym_ptr -> pl1_symbol_block.flags.map = generate_map; 318 319 string (sym_ptr -> pl1_symbol_block.segname) = store_string (vsegname); 320 321 if generate_profile 322 then do; 323 sym_ptr -> pl1_symbol_block.flags.profile = "1"b; 324 sym_ptr -> pl1_symbol_block.profile = bit (profile_start, 18); 325 sym_reloc_ptr -> pl1_symbol_block.profile = rc_is18; 326 sym_ptr -> pl1_symbol_block.flags.long_profile = 327 shared_globals.options.long_profile; 328 end; 329 330 sym_base -> std_symbol_header.maxi_truncate = bit (sym_pos, 18); 331 332 return; 333 end init_symbol; 334 335 gen_opt_statement_map: 336 procedure (); 337 338 /* generates statement_map to support brief_table & table */ 339 340 dcl (cs, stm, q, pp, next_stm_ptr) ptr; 341 dcl first_code_loc fixed bin (18); 342 dcl first_time bit (1) aligned; 343 dcl last_code_loc fixed bin (18); 344 dcl map_start fixed bin (18); 345 dcl profile_pos fixed bin (18); 346 dcl old_id bit (27); 347 15 1 dcl 1 statement_map aligned based, 15 2 2 location bit(18) unaligned, 15 3 2 source_id unaligned, 15 4 3 file bit(8), 15 5 3 line bit(14), 15 6 3 statement bit(5), 15 7 2 source_info unaligned, 15 8 3 start bit(18), 15 9 3 length bit(9); 348 349 350 if shared_globals.options.long_profile 351 then do; 352 profile_pos = profile_start + size (long_profile_header); 353 pp = addrel (link_base, profile_start); 354 pp -> long_profile_header.nentries = 0; 355 end; 356 else profile_pos = profile_start; 357 358 map_start = sym_pos; 359 info_ptr -> pl1_symbol_block.map.first = bit (sym_pos, 18); 360 first_time = "1"b; 361 362 do cur_subprogram = first_subprogram repeat cs -> subprogram.next_subprogram 363 while (cur_subprogram > 0); 364 cs = addr (rands (cur_subprogram)); 365 old_id = (27)"1"b; 366 367 cs -> subprogram.map.first = sym_pos; 368 369 do cur_statement = cs -> subprogram.first_quad repeat binary (stm -> opt_statement.next, 18) 370 while (cur_statement > 0 | first_time); 371 first_time = "0"b; 372 stm = addr (quads (cur_statement)); 373 374 if stm -> opt_statement.put_in_map & ^stm -> opt_statement.moved 375 then if old_id ^= unspec (stm -> opt_statement.source_id) 376 | generate_profile & stm -> opt_statement.put_in_profile 377 then do; 378 first_code_loc = binary (stm -> opt_statement.location, 18); 379 if stm -> opt_statement.next = "0"b 380 then last_code_loc = -1; 381 else do; 382 next_stm_ptr = ptr (stm, stm -> opt_statement.next); 383 last_code_loc = binary (next_stm_ptr -> opt_statement.location, 18) - 1; 384 end; 385 if last_code_loc >= first_code_loc 386 /* Only put the line in the statement map if it contains object code. */ 387 then do; 388 old_id = unspec (stm -> opt_statement.source_id); 389 390 q = addrel (sym_base, sym_pos); 391 q -> statement_map.location = stm -> opt_statement.location; 392 unspec (q -> statement_map.source_id) = unspec (stm -> opt_statement.source_id); 393 q -> statement_map.source_info.start = 394 bit (fixed (stm -> opt_statement.start, 18), 18); 395 q -> statement_map.source_info.length = stm -> opt_statement.length; 396 397 addrel (sym_reloc_base, sym_pos) -> reloc (0) = rc_t; 398 399 if generate_profile 400 then if stm -> opt_statement.put_in_profile 401 then do; 402 addrel (link_base, profile_pos) -> profile_entry.map = 403 bit (fixed (sym_pos - map_start, 18), 18); 404 if shared_globals.options.long_profile 405 then do; 406 profile_pos = profile_pos + size (long_profile_entry); 407 pp -> long_profile_header.nentries = 408 pp -> long_profile_header.nentries + 1; 409 end; 410 else profile_pos = profile_pos + size (profile_entry); 411 end; 412 413 sym_pos = sym_pos + size (statement_map); 414 end; 415 end; 416 end; 417 cs -> subprogram.map.last = sym_pos; 418 end; 419 420 /* generate dummy last entry */ 421 422 q = addrel (sym_base, sym_pos); 423 q -> statement_map.location = bit (last_pos, 18); 424 unspec (q -> statement_map.source_id) = (27)"1"b; 425 426 addrel (sym_reloc_base, sym_pos) -> reloc (0) = rc_t; 427 428 if generate_profile 429 then addrel (link_base, profile_pos) -> profile_entry.map = bit (fixed (sym_pos - map_start, 18), 18); 430 431 sym_pos = sym_pos + size (statement_map); 432 433 info_ptr -> pl1_symbol_block.map.last = bit (sym_pos, 18); 434 435 end gen_opt_statement_map; 436 437 gen_statement_map: 438 procedure (); 439 440 /* generates statement_map to support brief_table & table */ 441 442 dcl (cs, stm, q, pp, next_stm_ptr) ptr; 443 dcl first_code_loc fixed bin (18); 444 dcl first_time bit (1) aligned; 445 dcl last_code_loc fixed bin (18); 446 dcl map_start fixed bin (18); 447 dcl profile_pos fixed bin (18); 448 dcl old_id bit (27); 449 16 1 dcl 1 statement_map aligned based, 16 2 2 location bit(18) unaligned, 16 3 2 source_id unaligned, 16 4 3 file bit(8), 16 5 3 line bit(14), 16 6 3 statement bit(5), 16 7 2 source_info unaligned, 16 8 3 start bit(18), 16 9 3 length bit(9); 450 451 452 if shared_globals.options.long_profile 453 then do; 454 profile_pos = profile_start + size (long_profile_header); 455 pp = addrel (link_base, profile_start); 456 pp -> long_profile_header.nentries = 0; 457 end; 458 else profile_pos = profile_start; 459 460 map_start = sym_pos; 461 info_ptr -> pl1_symbol_block.map.first = bit (sym_pos, 18); 462 first_time = "1"b; 463 464 do cur_subprogram = first_subprogram repeat cs -> subprogram.next_subprogram 465 while (cur_subprogram > 0); 466 cs = addr (rands (cur_subprogram)); 467 old_id = (27)"1"b; 468 469 cs -> subprogram.map.first = sym_pos; 470 471 do cur_statement = cs -> subprogram.first_polish repeat binary (stm -> statement.next, 18) 472 while (cur_statement > 0 | first_time); 473 first_time = "0"b; 474 stm = addr (polish (cur_statement)); 475 476 if stm -> statement.put_in_map 477 then if old_id ^= unspec (stm -> statement.source_id) 478 | generate_profile & stm -> statement.put_in_profile 479 then do; 480 first_code_loc = binary (stm -> statement.location, 18); 481 if stm -> statement.next = "0"b 482 then last_code_loc = -1; 483 else do; 484 next_stm_ptr = ptr (stm, stm -> statement.next); 485 last_code_loc = binary (next_stm_ptr -> statement.location, 18) - 1; 486 end; 487 if last_code_loc >= first_code_loc 488 /* Only put the line in the statement map if it contains object code. */ 489 then do; 490 old_id = unspec (stm -> statement.source_id); 491 492 q = addrel (sym_base, sym_pos); 493 q -> statement_map.location = stm -> statement.location; 494 unspec (q -> statement_map.source_id) = unspec (stm -> statement.source_id); 495 q -> statement_map.source_info.start = bit (fixed (stm -> statement.start, 18), 18); 496 q -> statement_map.source_info.length = stm -> statement.length; 497 498 addrel (sym_reloc_base, sym_pos) -> reloc (0) = rc_t; 499 500 if generate_profile 501 then if stm -> statement.put_in_profile 502 then do; 503 addrel (link_base, profile_pos) -> profile_entry.map = 504 bit (fixed (sym_pos - map_start, 18), 18); 505 if shared_globals.options.long_profile 506 then do; 507 profile_pos = profile_pos + size (long_profile_entry); 508 pp -> long_profile_header.nentries = 509 pp -> long_profile_header.nentries + 1; 510 end; 511 else profile_pos = profile_pos + size (profile_entry); 512 end; 513 514 sym_pos = sym_pos + size (statement_map); 515 end; 516 end; 517 end; 518 cs -> subprogram.map.last = sym_pos; 519 end; 520 521 /* generate dummy last entry */ 522 523 q = addrel (sym_base, sym_pos); 524 q -> statement_map.location = bit (last_pos, 18); 525 string (q -> statement_map.source_id) = (27)"1"b; 526 527 addrel (sym_reloc_base, sym_pos) -> reloc (0) = rc_t; 528 529 if generate_profile 530 then addrel (link_base, profile_pos) -> profile_entry.map = bit (fixed (sym_pos - map_start, 18), 18); 531 532 sym_pos = sym_pos + size (statement_map); 533 534 info_ptr -> pl1_symbol_block.map.last = bit (sym_pos, 18); 535 536 end gen_statement_map; 537 538 fill_sym_info_into_entries: 539 procedure (); 540 541 /* puts runtime symbol table info into entry sequence */ 542 543 dcl (cs, s, p) ptr; 544 dcl (sym, star_symbol) fixed bin (18); 545 dcl text_pos fixed bin (18); 546 547 s = addr (rands (star_symbol_link)); 548 star_symbol = s -> symbol.address.offset; 549 if s -> symbol.large_address 550 then star_symbol = star_symbol + s -> symbol.location; 551 552 do sym = first_entry_name repeat s -> symbol.next_symbol while (sym > 0); 553 s = addr (rands (sym)); 554 cs = addr (rands (s -> symbol.parent)); 555 556 /* do the following only if runtime block was allocated */ 557 558 if cs -> subprogram.runtime ^= 0 559 then do; 560 text_pos = s -> label.location; /* a slight kludge */ 561 562 /* fill in trailer */ 563 564 text_halfs (text_pos + 4).left = star_symbol; 565 text_halfs (text_pos + 4).right = cs -> subprogram.runtime; 566 567 reloc_halfs (text_pos + 4).left = rc_lp18; 568 reloc_halfs (text_pos + 4).right = rc_s; 569 570 /* fill in namelist information */ 571 572 if shared_globals.options.list /* tell listing generator which are not insts */ 573 then do; 574 a_name (text_pos + 3) = -1; 575 a_name (text_pos + 4) = -1; 576 end; 577 578 if cs -> subprogram.namelist_used 579 then do; 580 if cs -> subprogram.subprogram_type = main_program 581 then p = s; /* no associated rel con for main */ 582 else p = addr (rands (s -> symbol.initial)); 583 /* get associated rel con */ 584 585 text_pos = p -> label.hash_chain; 586 text_halfs (text_pos).left = cs -> subprogram.runtime; 587 reloc_halfs (text_pos).left = rc_s; 588 end; 589 end; /* do block for subprograms with runtime_block nodes */ 590 end; 591 592 end fill_sym_info_into_entries; 593 594 make_ok_lists: 595 procedure (); 596 597 /* builds ok lists for namelist */ 598 599 dcl (i, ipol, sym, text_pos) fixed bin (18); 600 dcl (s, q, qr) ptr; 601 602 dcl 1 ok_list aligned based, 603 2 number fixed bin (18), 604 2 offset (polish (ipol) + 1) bit (18) unal; 605 606 dcl 1 ok_list_reloc aligned based, 607 2 number fixed bin (18), 608 2 offset (polish (ipol) + 1) bit (18) unal; 609 610 do sym = first_namelist repeat s -> symbol.next_member while (sym > 0); 611 s = addr (rands (sym)); 612 text_pos = s -> label.location; 613 q = addrel (object_base, text_pos); 614 qr = addrel (relocation_base, text_pos); 615 ipol = s -> symbol.initial; 616 617 q -> ok_list.number = polish (ipol) + 1; 618 q -> ok_list.offset (1) = s -> symbol.runtime; 619 qr -> ok_list_reloc.offset (1) = rc_s; 620 621 do i = 1 to polish (ipol); 622 q -> ok_list.offset (i + 1) = addr (rands (polish (ipol + i))) -> symbol.runtime; 623 qr -> ok_list_reloc.offset (i + 1) = rc_s; 624 end; 625 end; 626 627 end make_ok_lists; 628 629 end_symbol: 630 procedure (); 631 632 /* finishes off the symbol section */ 633 634 dcl (p, sym_ptr) ptr; 635 dcl (i, j, k, l, m) fixed bin (18); 636 dcl b18 bit (18) aligned; 637 dcl sym_rel_bit_count fixed bin (27); 638 639 dcl 1 reloc_in aligned based (p), 640 2 half_word (0:1000) unaligned bit (18); 641 642 dcl 1 relinfo aligned based, 643 2 version fixed bin (18), 644 2 rel_bit_count fixed bin (18), 645 2 relbits bit (i refer (rel_bit_count)) unaligned; 646 647 sym_base -> std_symbol_header.mini_truncate = bit (sym_pos, 18); 648 649 /* following is section that packs relocation bits into the symbol section */ 650 651 l = 1; 652 sym_rel_bit_count = sym_pos; 653 sym_ptr = addrel (sym_base, sym_pos); 654 655 if shared_globals.options.relocatable 656 then do p = relocation_base, def_reloc_base, link_reloc_base, sym_reloc_base; 657 658 b18 = bit (sym_pos, 18); 659 660 if l = 1 661 then do; 662 m = text_pos; 663 sym_base -> std_symbol_header.rel_text = b18; 664 end; 665 else if l = 2 666 then do; 667 m = def_pos; 668 sym_base -> std_symbol_header.rel_def = b18; 669 end; 670 else if l = 3 671 then do; 672 m = link_pos; 673 sym_base -> std_symbol_header.rel_link = b18; 674 end; 675 else if l = 4 676 then do; 677 m = sym_rel_bit_count; 678 sym_base -> std_symbol_header.rel_symbol = b18; 679 end; 680 681 m = m * 2; 682 683 sym_ptr -> relinfo.version = 1; 684 685 i, k = 0; 686 687 do j = 0 to m - 1; 688 689 b18 = p -> reloc_in.half_word (j); 690 if b18 691 then do; 692 if k ^= 0 693 then do; 694 695 /* have a string of "k" consecutive half_words with 696* absolute relocation; use expanded absolute coding 697* if there are more than 15 halfwords */ 698 699 call expanded_absolute; 700 701 k = 0; 702 end; 703 704 substr (sym_ptr -> relbits, i + 1, 5) = substr (b18, 14, 5); 705 i = i + 5; 706 end; 707 708 else k = k + 1; 709 710 end; 711 712 if k ^= 0 then call expanded_absolute; 713 714 sym_ptr -> rel_bit_count = i; 715 l = l + 1; 716 717 j = size (sym_ptr -> relinfo); 718 sym_pos = sym_pos + j; 719 sym_ptr = addrel (sym_ptr, j); 720 721 end; 722 723 /* finish off symbol header */ 724 725 sym_base -> std_symbol_header.block_size = bit (sym_pos, 18); 726 727 expanded_absolute: 728 procedure (); 729 730 if k < 16 731 then i = i + k; 732 733 else do; 734 735 do while (k > 1023); 736 substr (sym_ptr -> relbits, i + 1, 15) = "111101111111111"b; 737 i = i + 15; 738 k = k - 1023; 739 end; 740 741 substr (sym_ptr -> relbits, i + 1, 15) = "11110"b || bit (fixed (k, 10), 10); 742 i = i + 15; 743 end; 744 745 end; 746 747 end end_symbol; 748 749 store_string: 750 procedure (str) returns (bit (36) aligned); 751 752 dcl str char (*) varying; 753 754 dcl b36 bit (36), 755 based_string char (length (str)) based aligned; 756 757 if length (str) = 0 758 then return ((36)"0"b); 759 760 substr (b36, 1, 18) = bit (sym_pos, 18); 761 addrel (sym_base, sym_pos) -> based_string = str; 762 sym_pos = sym_pos + divide (length (str) + 3, 4, 17, 0); 763 substr (b36, 19, 18) = bit (fixed (length (str), 18), 18); 764 765 return (b36); 766 767 end store_string; 768 769 make_symbol_table: 770 procedure (); 771 772 /* This procedure makes standard symbol table entries for the new fortran 773* compiler. It is called after the std_symbol_header and pl1_symbol_block 774* nodes and the statement map have been created. The following global 775* variables are assumed: 776* 777* sym_base - base of symbol section. ptr to std_symbol_header. 778* sym_pos - current length of symbol section. 779* symrel - offset of symbol section. 780* info_ptr - ptr to pl1_symbol_block. 781* objectname - name of the object segment. 782* 783* Others such as rands, polish, operand_base are not mentioned here. 784* 785**/ 786 787 788 /* Declarations */ 789 790 dcl all_symbols bit (1) aligned; /* local copy of options.table */ 791 dcl alloc_len fixed bin (18); /* length of CURRENT runtime_node being allocated */ 792 dcl blk fixed bin (18); 793 dcl blkp ptr; /* current runtime block pointer */ 794 dcl block_name char (32) varying; /* name for VLA/LA base */ 795 dcl count fixed bin (18); /* global count of symbols in sort array */ 796 dcl cur_subp ptr; /* pointer to subprogram node */ 797 dcl convert_data_type (0:1, 0:6) fixed bin (6) init 798 (0, ft_integer_dtype, ft_real_dtype, ft_double_dtype, ft_complex_dtype, ft_logical_dtype, ft_char_dtype, 799 0, ft_integer_dtype, ft_hex_real_dtype, ft_hex_double_dtype, ft_hex_complex_dtype, ft_logical_dtype, 800 ft_char_dtype); 801 dcl convert_size (0:5) fixed bin (18) int static options (constant) init (0, 35, 27, 63, 27, 1); 802 dcl dp ptr; 803 dcl ext_proc fixed bin (18); /* offset of ext proc block */ 804 dcl factor fixed bin (19) int static options (constant) init (262144); 805 dcl final (0:5) fixed bin (18); 806 dcl fptype fixed bin (1) init (fixed (shared_globals.options.hfp, 1, 0)); 807 dcl i fixed bin (18); /* temp */ 808 dcl i2 fixed bin (18); 809 dcl j fixed bin (18); 810 dcl last_blk fixed bin (18); /* for building int proc brother chain */ 811 dcl last_len fixed bin (18); /* for building length vectors */ 812 dcl last_sym fixed bin (18); /* for chaining symbols */ 813 dcl lbl_name picture "99999"; 814 dcl length builtin; 815 dcl lengths (0:6) fixed bin (18) int static options (constant) init (1, 2, 4, 8, 16, 32, 64); 816 dcl max_len fixed bin (18); 817 dcl min_len fixed bin (18); 818 dcl n fixed bin (18); /* = length(runtime_token.string); only set in get_acc_str! */ 819 dcl off fixed bin (18); /* temp */ 820 dcl rel_bits bit (18) unaligned; /* loop index */ 821 dcl pointer_pos fixed bin (18); /* position of pointer runtime */ 822 dcl rel_bits2 bit (18) unaligned; /* loop index */ 823 dcl root fixed bin (18); /* offset of root block */ 824 dcl simple_len fixed bin (18) int static options (constant) init (5); 825 dcl size builtin; 826 dcl sp ptr; /* pointer to symbol node */ 827 dcl sp2 ptr; /* pointer to symbol node */ 828 dcl string builtin; 829 dcl sym_sec (0:261119) fixed bin (18) aligned based (sym_base); 830 dcl symp ptr; /* current runtime symbol pointer */ 831 dcl sym_max_len fixed bin (18); /* max sym section length */ 832 dcl symtab_base ptr; /* base of array for sorting */ 833 dcl symtab_max fixed bin (18); /* max length for array */ 834 dcl text_ref bit (4) aligned int static options (constant) init ("1100"b); 835 dcl tkn_len fixed bin (9); /* set by get_acc_str */ 836 dcl tkn_ptr ptr; /* points to name for a runtime_token node, set by get_acc_str */ 837 dcl words (alloc_len) bit (36) aligned based; /* to zero area for each allocated node */ 838 839 dcl 1 symbol_template like runtime_symbol aligned; 840 841 dcl 1 block_template like runtime_block aligned; 842 843 dcl 1 token_list (256) aligned, 844 2 first fixed bin (18) unsigned unaligned, 845 2 last fixed bin (18) unsigned unaligned; 846 847 dcl 1 symbols (131071) aligned based (symtab_base), 848 2 str_p ptr unaligned, 849 2 offset fixed bin (18) unsigned unaligned, 850 2 length fixed bin (18) unsigned unaligned; 851 17 1 /* BEGIN INCLUDE FILE ... runtime_symbol.incl.pl1 ... Modified 07/79 */ 17 2 17 3 dcl 1 runtime_symbol aligned based, 17 4 2 flag unal bit(1), /* always "1"b for Version II */ 17 5 2 use_digit unal bit(1), /* if "1"b and units are half words units are really digits */ 17 6 2 array_units unal bit(2), 17 7 2 units unal bit(2), /* addressing units */ 17 8 2 type unal bit(6), /* data type */ 17 9 2 level unal bit(6), /* structure level */ 17 10 2 ndims unal bit(6), /* number of dimensions */ 17 11 2 bits unal, 17 12 3 aligned bit(1), 17 13 3 packed bit(1), 17 14 3 simple bit(1), 17 15 2 skip unal bit(1), 17 16 2 scale unal bit(8), /* arithmetic scale factor */ 17 17 2 name unal bit(18), /* rel ptr to acc name */ 17 18 2 brother unal bit(18), /* rel ptr to brother entry */ 17 19 2 father unal bit(18), /* rel ptr to father entry */ 17 20 2 son unal bit(18), /* rel ptr to son entry */ 17 21 2 address unal, 17 22 3 location bit(18), /* location in storage class */ 17 23 3 class bit(4), /* storage class */ 17 24 3 next bit(14), /* rel ptr to next of same class */ 17 25 2 size fixed bin(35), /* encoded string|arith size */ 17 26 2 offset fixed bin(35), /* encoded offset from address */ 17 27 2 virtual_org fixed bin(35), 17 28 2 bounds(1), 17 29 3 lower fixed bin(35), /* encoded lower bound */ 17 30 3 upper fixed bin(35), /* encoded upper bound */ 17 31 3 multiplier fixed bin(35); /* encoded multiplier */ 17 32 17 33 dcl 1 runtime_bound based, 17 34 2 lower fixed bin(35), 17 35 2 upper fixed bin(35), 17 36 2 multiplier fixed bin(35); 17 37 17 38 dcl 1 runtime_block aligned based, 17 39 2 flag unal bit(1), /* always "1"b for Version II */ 17 40 2 quick unal bit(1), /* "1"b if quick block */ 17 41 2 fortran unal bit(1), /* "1"b if fortran program */ 17 42 2 standard unal bit(1), /* "1"b if program has std obj segment */ 17 43 2 owner_flag unal bit(1), /* "1"b if block has valid owner field */ 17 44 2 skip unal bit(1), 17 45 2 type unal bit(6), /* = 0 for a block node */ 17 46 2 number unal bit(6), /* begin block number */ 17 47 2 start unal bit(18), /* rel ptr to start of symbols */ 17 48 2 name unal bit(18), /* rel ptr to name of proc */ 17 49 2 brother unal bit(18), /* rel ptr to brother block */ 17 50 2 father unal bit(18), /* rel ptr to father block */ 17 51 2 son unal bit(18), /* rel ptr to son block */ 17 52 2 map unal, 17 53 3 first bit(18), /* rel ptr to first word of map */ 17 54 3 last bit(18), /* rel ptr to last word of map */ 17 55 2 entry_info unal bit(18), /* info about entry of quick block */ 17 56 2 header unal bit(18), /* rel ptr to symbol header */ 17 57 2 chain(4) unal bit(18), /* chain(i) is rel ptr to first symbol 17 58* on start list with length >= 2**i */ 17 59 2 token(0:5) unal bit(18), /* token(i) is rel ptr to first token 17 60* on list with length >= 2 ** i */ 17 61 2 owner unal bit(18); /* rel ptr to owner block */ 17 62 17 63 dcl 1 runtime_token aligned based, 17 64 2 next unal bit(18), /* rel ptr to next token */ 17 65 2 dcl unal bit(18), /* rel ptr to first dcl of this token */ 17 66 2 name, /* ACC */ 17 67 3 size unal unsigned fixed bin (9), /* number of chars in token */ 17 68 3 string unal char(n refer(runtime_token.size)); 17 69 17 70 dcl 1 encoded_value aligned based, 17 71 2 flag bit (2) unal, 17 72 2 code bit (4) unal, 17 73 2 n1 bit (6) unal, 17 74 2 n2 bit (6) unal, 17 75 2 n3 bit (18) unal; 17 76 17 77 /* END INCLUDE FILE ... runtime_symbol.incl.pl1 */ 852 18 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 18 2 18 3 18 4 /****^ HISTORY COMMENTS: 18 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 18 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 18 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 18 8* Objects of this type are PASCAL string types. 18 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 18 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 18 11* Added the new C types. 18 12* END HISTORY COMMENTS */ 18 13 18 14 /* This include file defines mnemonic names for the Multics 18 15* standard descriptor types, using both pl1 and cobol terminology. 18 16* PG 780613 18 17* JRD 790530 18 18* JRD 791016 18 19* MBW 810731 18 20* TGO 830614 Add hex types. 18 21* Modified June 83 JMAthane to add PASCAL data types 18 22* TGO 840120 Add float dec extended and generic, float binary generic 18 23**/ 18 24 18 25 dcl (real_fix_bin_1_dtype init (1), 18 26 real_fix_bin_2_dtype init (2), 18 27 real_flt_bin_1_dtype init (3), 18 28 real_flt_bin_2_dtype init (4), 18 29 cplx_fix_bin_1_dtype init (5), 18 30 cplx_fix_bin_2_dtype init (6), 18 31 cplx_flt_bin_1_dtype init (7), 18 32 cplx_flt_bin_2_dtype init (8), 18 33 real_fix_dec_9bit_ls_dtype init (9), 18 34 real_flt_dec_9bit_dtype init (10), 18 35 cplx_fix_dec_9bit_ls_dtype init (11), 18 36 cplx_flt_dec_9bit_dtype init (12), 18 37 pointer_dtype init (13), 18 38 offset_dtype init (14), 18 39 label_dtype init (15), 18 40 entry_dtype init (16), 18 41 structure_dtype init (17), 18 42 area_dtype init (18), 18 43 bit_dtype init (19), 18 44 varying_bit_dtype init (20), 18 45 char_dtype init (21), 18 46 varying_char_dtype init (22), 18 47 file_dtype init (23), 18 48 real_fix_dec_9bit_ls_overp_dtype init (29), 18 49 real_fix_dec_9bit_ts_overp_dtype init (30), 18 50 real_fix_bin_1_uns_dtype init (33), 18 51 real_fix_bin_2_uns_dtype init (34), 18 52 real_fix_dec_9bit_uns_dtype init (35), 18 53 real_fix_dec_9bit_ts_dtype init (36), 18 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 18 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 18 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 18 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 18 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 18 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 18 60 real_flt_dec_4bit_bytealigned_dtype init (44), 18 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 18 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 18 63 real_flt_hex_1_dtype init (47), 18 64 real_flt_hex_2_dtype init (48), 18 65 cplx_flt_hex_1_dtype init (49), 18 66 cplx_flt_hex_2_dtype init (50), 18 67 c_typeref_dtype init (54), 18 68 c_enum_dtype init (55), 18 69 c_enum_const_dtype init (56), 18 70 c_union_dtype init (57), 18 71 algol68_straight_dtype init (59), 18 72 algol68_format_dtype init (60), 18 73 algol68_array_descriptor_dtype init (61), 18 74 algol68_union_dtype init (62), 18 75 18 76 cobol_comp_6_dtype init (1), 18 77 cobol_comp_7_dtype init (1), 18 78 cobol_display_ls_dtype init (9), 18 79 cobol_structure_dtype init (17), 18 80 cobol_char_string_dtype init (21), 18 81 cobol_display_ls_overp_dtype init (29), 18 82 cobol_display_ts_overp_dtype init (30), 18 83 cobol_display_uns_dtype init (35), 18 84 cobol_display_ts_dtype init (36), 18 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 18 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 18 87 cobol_comp_5_uns_dtype init (40), 18 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 18 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 18 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 18 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 18 92 cplx_flt_dec_generic_dtype init (84), 18 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 18 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 18 95 18 96 dcl (ft_integer_dtype init (1), 18 97 ft_real_dtype init (3), 18 98 ft_double_dtype init (4), 18 99 ft_complex_dtype init (7), 18 100 ft_complex_double_dtype init (8), 18 101 ft_external_dtype init (16), 18 102 ft_logical_dtype init (19), 18 103 ft_char_dtype init (21), 18 104 ft_hex_real_dtype init (47), 18 105 ft_hex_double_dtype init (48), 18 106 ft_hex_complex_dtype init (49), 18 107 ft_hex_complex_double_dtype init (50) 18 108 ) fixed bin internal static options (constant); 18 109 18 110 dcl (algol68_short_int_dtype init (1), 18 111 algol68_int_dtype init (1), 18 112 algol68_long_int_dtype init (2), 18 113 algol68_real_dtype init (3), 18 114 algol68_long_real_dtype init (4), 18 115 algol68_compl_dtype init (7), 18 116 algol68_long_compl_dtype init (8), 18 117 algol68_bits_dtype init (19), 18 118 algol68_bool_dtype init (19), 18 119 algol68_char_dtype init (21), 18 120 algol68_byte_dtype init (21), 18 121 algol68_struct_struct_char_dtype init (22), 18 122 algol68_struct_struct_bool_dtype init (20) 18 123 ) fixed bin internal static options (constant); 18 124 18 125 dcl (label_constant_runtime_dtype init (24), 18 126 int_entry_runtime_dtype init (25), 18 127 ext_entry_runtime_dtype init (26), 18 128 ext_procedure_runtime_dtype init (27), 18 129 picture_runtime_dtype init (63) 18 130 ) fixed bin internal static options (constant); 18 131 18 132 dcl (pascal_integer_dtype init (1), 18 133 pascal_real_dtype init (4), 18 134 pascal_label_dtype init (24), 18 135 pascal_internal_procedure_dtype init (25), 18 136 pascal_exportable_procedure_dtype init (26), 18 137 pascal_imported_procedure_dtype init (27), 18 138 pascal_typed_pointer_type_dtype init (64), 18 139 pascal_char_dtype init (65), 18 140 pascal_boolean_dtype init (66), 18 141 pascal_record_file_type_dtype init (67), 18 142 pascal_record_type_dtype init (68), 18 143 pascal_set_dtype init (69), 18 144 pascal_enumerated_type_dtype init (70), 18 145 pascal_enumerated_type_element_dtype init (71), 18 146 pascal_enumerated_type_instance_dtype init (72), 18 147 pascal_user_defined_type_dtype init (73), 18 148 pascal_user_defined_type_instance_dtype init (74), 18 149 pascal_text_file_dtype init (75), 18 150 pascal_procedure_type_dtype init (76), 18 151 pascal_variable_formal_parameter_dtype init (77), 18 152 pascal_value_formal_parameter_dtype init (78), 18 153 pascal_entry_formal_parameter_dtype init (79), 18 154 pascal_parameter_procedure_dtype init (80), 18 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 18 156 18 157 18 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 853 854 855 /* Initialization */ 856 857 unspec (block_template) = "0"b; 858 859 block_template.flag = "1"b; 860 block_template.fortran = "1"b; 861 block_template.standard = "1"b; 862 block_template.type = "011000"b; /* 24 - procedure */ 863 /* all others = "0"b */ 864 865 unspec (symbol_template) = "0"b; 866 867 symbol_template.flag = "1"b; 868 symbol_template.aligned = "1"b; 869 symbol_template.simple = "1"b; 870 /* all others = "0"b */ 871 872 min_len = hbound (token_list, 1); /* keep track of symbol length range */ 873 max_len = 0; 874 unspec (token_list) = "0"b; 875 876 symtab_base = addr (polish (next_free_polish)); 877 symtab_max = divide (polish_max_len - next_free_polish, 2, 17, 0); 878 /* NOTE - size(symbols) = 2 */ 879 880 sym_max_len = object_max_len - symrel; /* max sym sect len */ 881 882 cur_subprogram = 0; /* for error messages */ 883 all_symbols = shared_globals.options.table; 884 885 /* set relevant fields in pl1_symbol_block */ 886 887 info_ptr -> pl1_symbol_block.flags.table = "1"b; 888 info_ptr -> pl1_symbol_block.flags.io = shared_globals.options.namelist_used; 889 890 891 /* Allocate runtime root block 892* 893* BY block_template flag, quick, fortran, standard, owner_flag, skip, type, number, name, brother, 894* entry_info. 895* IN allocate_block father, header. 896* IN connect_symbols_to_block start, chain(*). 897* BY following code map.first, map.last. 898* BY allocating root son 899* BY finish up code token(*) */ 900 901 last_blk = 0; /* for brother chain */ 902 903 call allocate_block (0, size (runtime_block) - 1, 0, root, blkp); 904 905 if generate_map 906 then do; 907 blkp -> runtime_block.map.first = 908 backward_ref (binary (info_ptr -> pl1_symbol_block.map.first, 18) - root); 909 blkp -> runtime_block.map.last = backward_ref (binary (info_ptr -> pl1_symbol_block.map.last, 18) - root); 910 end; 911 912 /* allocate external entry constants for all entry points. 913* 914* BY symbol_template flag, skip, array_units, units, type, level, ndims, aligned, packed, simple, 915* decimal, scale, son, class, next, size. 916* IN allocate_symbol name, father. 917* IN connect_symbols_to_block brother. 918* BY following code location. 919* 920* NOTE - son is used to save text address of int entry const associated with this sym; used later */ 921 922 symbol_template.type = "011010"b; /* 26 - external entry constant */ 923 symbol_template.class = text_ref; 924 925 count = 0; 926 do i = first_entry_name repeat sp -> symbol.next_symbol while (i ^= 0); 927 sp = addr (rands (i)); 928 symp = null; /* symbol may not be allocated */ 929 930 if addr (rands (sp -> symbol.parent)) -> subprogram.namelist_used | all_symbols 931 then call allocate_symbol (get_acc_str$symbol (sp), simple_len, root, "1"b, symp); 932 933 /* continue only if the allocation was successful */ 934 935 if symp ^= null 936 then do; 937 call add_to_array; 938 939 symp -> runtime_symbol.location = get_address (sp); 940 addrel (relocation_base, rel (symp)) -> runtime_symbol.location = rc_t; 941 /* set reloc bits */ 942 943 /* if symbol has an associated int entry const, copy its text address */ 944 945 if sp -> symbol.initial ^= 0 946 then symp -> runtime_symbol.son = unspec (addr (rands (sp -> symbol.initial)) -> label.location); 947 948 sym_pos = sym_pos + simple_len; 949 end; 950 end; /* loop to generate ext entry consts */ 951 952 /* sort ext entry symbols and chain them together */ 953 954 call connect_symbols_to_block (root, blkp); 955 956 957 /* Allocate runtime ext proc block 958* 959* BY block_template flag, quick, fortran, standard, owner_flag, skip, type, number, brother, entry_info. 960* IN allocate_block name, father, header. 961* BY following code start, map.first, map.last, chain(*). 962* BY allocating int procs son 963* BY finish up code token(*) */ 964 965 last_blk = 0; /* for brother chain */ 966 967 call allocate_block (get_acc_str$varying (objectname), size (runtime_block) - 1, root, ext_proc, blkp); 968 969 if generate_map 970 then do; 971 blkp -> runtime_block.map.first = 972 backward_ref (binary (info_ptr -> pl1_symbol_block.map.first, 18) - ext_proc); 973 blkp -> runtime_block.map.last = 974 backward_ref (binary (info_ptr -> pl1_symbol_block.map.last, 18) - ext_proc); 975 end; 976 977 /* allocate internal entry constants. Only main_entry_point_name does not have one. If we walk the root block's 978* declaration chain, we can allocate everything in symbol and block nodes in one pass. 979* 980* BY symbol_template flag, skip, array_units, units, type, level, ndims, aligned, packed, simple, 981* decimal, scale, son, class, size. 982* IN allocate_symbol name, father, next. 983* BY following code brother, location. */ 984 985 last_sym = 0; /* to build brother chain */ 986 last_len = 1; /* to build block.chain(*) */ 987 symbol_template.type = "011001"b; /* = 25; internal entry constant; class is already set */ 988 symp = addr (sym_sec (root)); /* to provide easy entry into the loop */ 989 990 do rel_bits = symp -> runtime_block.start repeat symp -> runtime_symbol.brother while (rel_bits ^= "0"b); 991 symp = addrel (symp, rel_bits); 992 993 /* allocate it if it has an associated internal entry constant */ 994 995 if symp -> runtime_symbol.son ^= "0"b 996 then do; 997 998 off = unpack (symp -> runtime_symbol.name) + binary (rel (symp), 18) - symrel; 999 /* convert rel to absolute */ 1000 1001 call allocate_symbol (off, simple_len, ext_proc, "0"b, sp); 1002 1003 sp -> runtime_symbol.location = symp -> runtime_symbol.son; 1004 symp -> runtime_symbol.son = "0"b; 1005 1006 addrel (relocation_base, rel (sp)) -> runtime_symbol.location = rc_t; 1007 /* set reloc bits */ 1008 1009 if last_sym = 0 1010 then blkp -> runtime_block.start = forward_ref (sym_pos - ext_proc); 1011 else addr (sym_sec (last_sym)) -> runtime_symbol.brother = forward_ref (sym_pos - last_sym); 1012 1013 last_sym = sym_pos; 1014 1015 /* build runtime_block.chain(*) */ 1016 1017 tkn_len = binary (addr (sym_sec (off - 1)) -> runtime_token.size, 9); 1018 1019 do i = last_len to 4; 1020 if tkn_len >= lengths (i) 1021 then if blkp -> runtime_block.chain (i) = "0"b 1022 then do; 1023 last_len = i + 1; 1024 blkp -> runtime_block.chain (i) = forward_ref (sym_pos - ext_proc); 1025 end; 1026 end; /* loop to set chain(*) */ 1027 1028 sym_pos = sym_pos + simple_len; 1029 end; /* do block to build int entry const symbol */ 1030 end; /* loop thru ext entry constant symbols */ 1031 1032 1033 /* Walk subprogram chain, building internal blocks with their symbols 1034* 1035* block_template: flag, quick, fortran, standard, owner_flag, skip, type, number, son. 1036* allocate_block: proc name, brother, father, header. 1037* connect_symbols_to_block: start, chain(*). 1038* following code map.first, map.last, entry_info, owner. 1039* finish up code token(*). */ 1040 1041 block_template.quick = "1"b; 1042 block_template.owner_flag = "1"b; 1043 last_blk = 0; 1044 1045 do cur_subprogram = first_subprogram repeat cur_subp -> subprogram.next_subprogram while (cur_subprogram ^= 0); 1046 cur_subp = addr (rands (cur_subprogram)); 1047 1048 /* allocate block node and its symbol nodes, only if required */ 1049 1050 if cur_subp -> subprogram.namelist_used | all_symbols 1051 then do; 1052 call allocate_block (get_acc_str$symbol (addr (rands (cur_subp -> subprogram.symbol))), 1053 size (runtime_block), ext_proc, blk, blkp); 1054 cur_subp -> subprogram.runtime = blk; 1055 1056 if cur_subp -> subprogram.entry_info = 0/* subprogram is not quick procedure */ 1057 then do; 1058 blkp -> runtime_block.quick = "0"b; 1059 blkp -> runtime_block.owner_flag = "0"b; 1060 sym_pos = sym_pos - 1; 1061 end; 1062 1063 else do; /* quick procedure block */ 1064 blkp -> runtime_block.owner = backward_ref (ext_proc - blk); 1065 blkp -> runtime_block.entry_info = unspec (cur_subp -> subprogram.entry_info); 1066 end; 1067 1068 if generate_map 1069 then do; 1070 blkp -> runtime_block.map.first = backward_ref (cur_subp -> subprogram.map.first - blk); 1071 blkp -> runtime_block.map.last = backward_ref (cur_subp -> subprogram.map.last - blk); 1072 end; 1073 1074 /* process all relevant declarations for the block */ 1075 1076 count = 0; 1077 1078 /* automatic variables - buckets 1 to 4 1079* 1080* BY symbol_template flag, skip, array_units, units, level, [ndims,] aligned, packed, 1081* [simple,] decimal, scale, son, class, offset. 1082* IN process_variable type, [ndims,] [simple,] name, father, location, next, size, 1083* [virtual_org,] [bounds(*)] 1084* IN connect_symbols_to_block brother */ 1085 1086 symbol_template.class = "0001"b; /* automatic storage */ 1087 1088 do i = 1 to 4; 1089 do j = cur_subp -> subprogram.storage_info (i).first repeat sp -> node.next while (j ^= 0); 1090 sp = addr (rands (j)); 1091 1092 if sp -> node.node_type = symbol_node 1093 then do; 1094 call process_variable (sp, simple_len, "1"b, symp); 1095 sym_pos = sym_pos + alloc_len; 1096 end; 1097 1098 else do i2 = sp -> header.first_element repeat sp2 -> symbol.next_member while (i2 ^= 0); 1099 sp2 = addr (rands (i2)); 1100 1101 call process_variable (sp2, simple_len, "1"b, symp); 1102 1103 if (sp2->symbol.equivalenced & sp2->symbol.in_equiv_stmnt & sp2->symbol.char_num > 0 & sp2->symbol.character & sp2->symbol.offset > 0) 1104 then do; 1105 symp->runtime_symbol.aligned = "0"b; 1106 symp->runtime_symbol.simple = "0"b; 1107 symp->runtime_symbol.packed = "1"b; 1108 symp->runtime_symbol.offset = mod(sp2->symbol.offset, 4); 1109 end; 1110 sym_pos = sym_pos + alloc_len; 1111 end; 1112 end; /* buckets 1 to 4 */ 1113 end; /* automatic variables */ 1114 1115 /* static variables - buckets 5 to 8 1116* 1117* BY symbol_template flag, skip, array_units, units, level, [ndims,] aligned, packed, 1118* [simple,] decimal, scale, son, class, offset. 1119* IN process_variable type, [ndims,] [simple,] name, father, location, next, size, 1120* [virtual_org,] [bounds(*)] 1121* IN connect_symbols_to_block brother */ 1122 1123 symbol_template.class = "0100"b; /* static storage */ 1124 1125 do i = 5 to 8; 1126 do j = cur_subp -> subprogram.storage_info (i).first repeat sp -> node.next while (j ^= 0); 1127 sp = addr (rands (j)); 1128 1129 if sp -> node.node_type = symbol_node 1130 then do; 1131 call process_variable (sp, simple_len, "1"b, symp); 1132 1133 if symp ^= null 1134 then do; 1135 sym_pos = sym_pos + alloc_len; 1136 addrel (relocation_base, rel (symp)) -> runtime_symbol.location = rc_is18; 1137 /* set reloc bits */ 1138 end; 1139 end; 1140 1141 else do i2 = sp -> header.first_element repeat sp2 -> symbol.next_member while (i2 ^= 0); 1142 sp2 = addr (rands (i2)); 1143 1144 call process_variable (sp2, simple_len, "1"b, symp); 1145 1146 if symp ^= null 1147 then do; 1148 sym_pos = sym_pos + alloc_len; 1149 addrel (relocation_base, rel (symp)) -> runtime_symbol.location = rc_is18; 1150 /* set reloc bits */ 1151 end; 1152 end; 1153 end; /* buckets 5 to 8 */ 1154 end; /* static variables */ 1155 1156 /* external entries and common block members - bucket 9 1157* 1158* COMMON BLOCK MEMBERS 1159* 1160* BY symbol_template flag, skip, array_units, units, level, [ndims], aligned, packed, 1161* simple, decimal, scale, son, location, class. 1162* IN process_variable type, [ndims], name, father, next, size, [virtual_org], [bounds(*)]. 1163* IN connect_symbols_to_block brother. 1164* BY following code offset. 1165* 1166* EXTERNAL ENTRY REFERENCES 1167* 1168* BY symbol_template flag, skip, array_units, units, type, level, ndims, aligned, 1169* packed, simple, decimal, scale, sone, class, size. 1170* IN allocate_symbol name, father, next. 1171* IN connect_symbols_to_block brother. 1172* BY following code location. */ 1173 1174 do i = cur_subp -> storage_info (9).first repeat sp -> node.next while (i ^= 0); 1175 sp = addr (rands (i)); 1176 1177 if sp -> node.node_type = header_node 1178 then do; 1179 symbol_template.class = "0101"b; 1180 /* external static */ 1181 symbol_template.location = bit (fixed (sp -> header.location, 18), 18); 1182 symbol_template.simple = "0"b; 1183 1184 do i2 = sp -> header.first_element repeat sp2 -> symbol.next_member while (i2 ^= 0); 1185 sp2 = addr (rands (i2)); 1186 1187 call process_variable (sp2, simple_len + 2, "0"b, symp); 1188 1189 if symp ^= null 1190 then do; 1191 symp -> runtime_symbol.offset = sp2 -> symbol.offset; 1192 addrel (relocation_base, rel (symp)) -> runtime_symbol.location = rc_lp18; 1193 /* set reloc bits */ 1194 1195 sym_pos = sym_pos + alloc_len; 1196 end; 1197 end; /* loop thru common block members */ 1198 end; /* case of common block chain */ 1199 1200 else if sp -> symbol.initial = 0 & all_symbols 1201 /* for full table, allocate ext. ent. refs */ 1202 then do; 1203 symbol_template.class = "1101"b; 1204 /* link ref */ 1205 symbol_template.type = "011011"b; 1206 /* ext entry ref */ 1207 symbol_template.simple = "1"b; 1208 1209 call allocate_symbol (get_acc_str$symbol (sp), simple_len, blk, "0"b, symp); 1210 1211 if symp ^= null 1212 then do; 1213 call add_to_array; 1214 1215 symp -> runtime_symbol.location = get_address (sp); 1216 addrel (relocation_base, rel (symp)) -> runtime_symbol.location = rc_lp18; 1217 /* set reloc bits */ 1218 1219 sym_pos = sym_pos + alloc_len; 1220 end; 1221 end; /* case of external reference */ 1222 end; /* bucket 9 */ 1223 1224 /* parameters - bucket 10 1225* 1226* BY symbol_template flag, skip, array_units, units, level, [ndims,] aligned, packed, 1227* simple, decimal, scale, son, offset. 1228* IN process_variable type, [ndims,] [simple,] name, father, next, size, 1229* [virtual_org,] [bounds(*)] 1230* IN connect_symbols_to_block brother 1231* BY following code location, class. */ 1232 1233 symbol_template.simple = "1"b; 1234 1235 do i = cur_subp -> subprogram.storage_info (10).first repeat sp -> symbol.next_symbol while (i ^= 0); 1236 1237 sp = addr (rands (i)); 1238 1239 if sp -> symbol.VLA 1240 then do; 1241 1242 /* Allocate runtime block for base pointer. */ 1243 1244 symbol_template.units = "00"b; 1245 symbol_template.type = "001101"b; 1246 /* Pointer */ 1247 symbol_template.level = "00"b3; 1248 symbol_template.aligned = "0"b; 1249 symbol_template.packed = "1"b;/* Packed for VLA's */ 1250 symbol_template.simple = "1"b; 1251 symbol_template.scale = "00"b3; 1252 symbol_template.size = 0; 1253 1254 symbol_template.class = "0001"b; 1255 /* AUTOMATIC */ 1256 block_name = "vla$parm$"; 1257 symbol_template.location = bit (fixed (sp -> symbol.address.offset, 18), 18); 1258 1259 block_name = block_name || sp -> symbol.name; 1260 call allocate_symbol (get_acc_str$varying (block_name), 1261 simple_len, blk, "0"b, symp); 1262 call add_to_array; 1263 pointer_pos = sym_pos; /* save runtime position */ 1264 sym_pos = sym_pos + simple_len; 1265 1266 /* Template for parameter off this base */ 1267 1268 symbol_template.simple = "0"b; 1269 symbol_template.packed = "0"b; 1270 symbol_template.aligned = "1"b; 1271 end; 1272 1273 call process_variable (sp, simple_len, "0"b, symp); 1274 1275 1276 /* process runtime_symbol node only if it is allocated */ 1277 1278 if symp ^= null 1279 then do; 1280 if sp -> symbol.VLA 1281 then do; 1282 symp -> runtime_symbol.location = rel_ref (pointer_pos - sym_pos); 1283 symp -> runtime_symbol.class = "1010"b; 1284 /* VLA_based */ 1285 end; 1286 else if sp -> symbol.stack_indirect 1287 then do; 1288 symp -> runtime_symbol.location = get_address (sp); 1289 symp -> runtime_symbol.class = "1000"b; 1290 end; 1291 else do; 1292 symp -> runtime_symbol.location = 1293 bit (binary (divide (sp -> symbol.location, 2, 17, 0), 18), 18); 1294 symp -> runtime_symbol.class = "1001"b; 1295 end; 1296 1297 sym_pos = sym_pos + alloc_len; 1298 end; /* do block to finish off parameter runtime_symbol */ 1299 unspec (symbol_template) = "0"b; 1300 1301 symbol_template.flag = "1"b; 1302 symbol_template.aligned = "1"b; 1303 symbol_template.simple = "1"b; 1304 /* all others = "0"b */ 1305 end; /* parameters - bucket 10 */ 1306 1307 /* namelist names, PARAMETER variables - bucket 11 1308* All fields are set by the template. */ 1309 1310 1311 do i = cur_subp -> subprogram.storage_info (11).first repeat sp -> symbol.next_symbol while (i ^= 0); 1312 sp = addr (rands (i)); 1313 1314 /* Process PARAMETER variables. */ 1315 1316 if sp -> symbol.named_constant & ^sp -> symbol.by_compiler 1317 then do; 1318 sp2 = addr (rands (sp -> symbol.initial)); 1319 sp -> symbol.data_type = sp2 -> constant.data_type; 1320 symbol_template.simple = "1"b; 1321 symbol_template.location = bit (binary (sp2 -> constant.location, 18), 18); 1322 symbol_template.class = "1100"b; 1323 call process_variable (sp, simple_len, "0"b, symp); 1324 /* Bug 512: Set up reloc info */ 1325 addrel (relocation_base, rel (symp)) -> runtime_symbol.location = rc_t; 1326 if symp ^= null 1327 then do; 1328 if sp -> symbol.character 1329 then symp -> runtime_symbol.size = sp2 -> char_constant.length; 1330 sym_pos = sym_pos + simple_len; 1331 end; 1332 end /* named_constant */; 1333 else if sp -> symbol.namelist 1334 then do; 1335 symbol_template.type = "0"b; 1336 symbol_template.simple = "1"b; 1337 symbol_template.location = "0"b; 1338 symbol_template.class = "0"b; 1339 1340 call allocate_symbol (get_acc_str$symbol (sp), simple_len, blk, "0"b, symp); 1341 call add_to_array; 1342 1343 sp -> symbol.runtime = bit (sym_pos, 18); 1344 sym_pos = sym_pos + simple_len; 1345 end /* namelist */; 1346 end /* do i */; /* bucket 11 */ 1347 1348 /* Large Array block members - buckets 13, 14 1349* 1350* LARGE ARRAY BLOCK MEMBERS 1351* 1352* BY symbol_template flag, skip, array_units, units, level, [ndims], aligned, packed, 1353* simple, decimal, scale, son, location, class. 1354* IN process_variable type, [ndims], name, father, next, size, [virtual_org], [bounds(*)]. 1355* IN connect_symbols_to_block brother. 1356* BY following code offset. */ 1357 1358 1359 do j = 13, 14; /* scan auto and static */ 1360 do i = cur_subp -> storage_info (j).first repeat sp -> node.next while (i ^= 0); 1361 sp = addr (rands (i)); 1362 1363 if sp -> node.node_type = header_node 1364 then do; 1365 1366 /* Allocate runtime block for base pointer. */ 1367 1368 symbol_template.units = "00"b; 1369 symbol_template.type = "001101"b; 1370 /* Pointer */ 1371 symbol_template.level = "00"b3; 1372 symbol_template.aligned = "1"b; 1373 symbol_template.packed = "0"b; 1374 /* Not packed for LA's */ 1375 symbol_template.simple = "1"b; 1376 symbol_template.scale = "00"b3; 1377 symbol_template.size = 0; 1378 1379 if sp -> header.static 1380 then do; 1381 symbol_template.class = "0100"b; 1382 /* STATIC */ 1383 block_name = "la$static$"; 1384 end; 1385 else do; 1386 symbol_template.class = "0001"b; 1387 /* AUTOMATIC */ 1388 block_name = "la$auto$"; 1389 end; 1390 1391 symbol_template.location = bit (fixed (sp -> header.location, 18), 18); 1392 1393 block_name = block_name || ltrim (octal (unspec (sp -> header.location)), "0"); 1394 call allocate_symbol (get_acc_str$varying (block_name), 1395 simple_len, blk, "0"b, symp); 1396 call add_to_array; 1397 pointer_pos = sym_pos; /* save runtime position */ 1398 sym_pos = sym_pos + simple_len; 1399 if sp -> header.static 1400 then addrel (relocation_base, rel (symp)) -> 1401 runtime_symbol.location = rc_is18; 1402 1403 1404 /* Template for LA's off this header */ 1405 1406 symbol_template.class = "0011"b; 1407 /* BASED */ 1408 symbol_template.packed = "0"b; 1409 symbol_template.simple = "0"b; 1410 1411 do i2 = sp -> header.first_element repeat sp2 -> symbol.next_member while (i2 ^= 0); 1412 sp2 = addr (rands (i2)); 1413 1414 call process_variable (sp2, simple_len + 2, "0"b, symp); 1415 1416 if symp ^= null 1417 then do; 1418 symp -> runtime_symbol.offset = sp2 -> symbol.offset; 1419 symp -> runtime_symbol.location = rel_ref (pointer_pos - sym_pos); 1420 sym_pos = sym_pos + alloc_len; 1421 end; 1422 end; /* loop thru LA block members */ 1423 end; /* case of LA block chain */ 1424 end; 1425 end; /* buckets 13, 14 */ 1426 1427 1428 /* Very Large Array block members - buckets 15, 16, 17 1429* 1430* VERY LARGE ARRAY BLOCK MEMBERS 1431* 1432* BY symbol_template flag, skip, array_units, units, level, [ndims], aligned, packed, 1433* simple, decimal, scale, son, location, class. 1434* IN process_variable type, [ndims], name, father, next, size, [virtual_org], [bounds(*)]. 1435* IN connect_symbols_to_block brother. 1436* BY following code offset. */ 1437 1438 1439 do j = 15 to 17; /* scan auto, static, and common */ 1440 do i = cur_subp -> storage_info (j).first repeat sp -> node.next while (i ^= 0); 1441 sp = addr (rands (i)); 1442 1443 if sp -> node.node_type = header_node 1444 then do; 1445 1446 /* Allocate runtime block for base pointer. */ 1447 1448 symbol_template.units = "00"b; 1449 symbol_template.type = "001101"b; 1450 /* Pointer */ 1451 symbol_template.level = "00"b3; 1452 symbol_template.aligned = "0"b; 1453 symbol_template.packed = "1"b; 1454 /* Packed for VLA's */ 1455 symbol_template.simple = "1"b; 1456 symbol_template.scale = "00"b3; 1457 symbol_template.size = 0; 1458 1459 /* Find the first member of the VLA group which has no offset and use its */ 1460 /* packed pointer as the base pointer for the VLA. */ 1461 1462 do sp2 = addr (rands (sp -> header.first_element)) 1463 repeat addr (rands (sp2 -> symbol.next_member)) while (sp2 -> symbol.offset ^= 0); 1464 end; 1465 1466 /* if the first element is a nondimensioned symbol (only happens in */ 1467 /* VL Common), restore symbol.address.offset from symbol.addr_hold. */ 1468 if sp -> header.in_common & ^sp2 -> symbol.dimensioned 1469 then 1470 substr (unspec (sp2 -> symbol.address), 1, 18) = sp2 -> symbol.addr_hold; 1471 1472 if ^sp2 -> symbol.large_address 1473 then symbol_template.location = bit (fixed (sp2 -> symbol.address.offset, 18)); 1474 else symbol_template.location = 1475 bit (fixed (sp2 -> symbol.address.offset + sp2 -> symbol.location, 18)); 1476 1477 if sp -> header.static 1478 then do; 1479 symbol_template.class = "0100"b; 1480 /* STATIC */ 1481 block_name = "vla$static$" || sp2 -> symbol.name; 1482 end; 1483 else if sp -> header.automatic 1484 then do; 1485 symbol_template.class = "0001"b; 1486 /* AUTOMATIC */ 1487 block_name = "vla$auto$" || sp2 -> symbol.name; 1488 end; 1489 else do; 1490 symbol_template.class = "0100"b; 1491 /* COMMON */ 1492 if sp -> header.block_name = "blnk*com" 1493 then block_name = "vla$common$_"; 1494 else block_name = "vla$common$" || sp -> header.block_name; 1495 end; 1496 1497 call allocate_symbol (get_acc_str$varying (block_name), 1498 simple_len, blk, "0"b, symp); 1499 call add_to_array; 1500 pointer_pos = sym_pos; /* save runtime position */ 1501 sym_pos = sym_pos + simple_len; 1502 if sp -> header.static | sp -> header.in_common 1503 then addrel (relocation_base, rel (symp)) -> 1504 runtime_symbol.location = rc_is18; 1505 1506 1507 /* Template for VLA's off this header */ 1508 1509 symbol_template.class = "1010"b; 1510 /* VLA_based */ 1511 symbol_template.aligned = "1"b; 1512 symbol_template.packed = "0"b; 1513 symbol_template.simple = "0"b; 1514 1515 do i2 = sp -> header.first_element repeat sp2 -> symbol.next_member while (i2 ^= 0); 1516 sp2 = addr (rands (i2)); 1517 1518 call process_variable (sp2, simple_len + 2, "0"b, symp); 1519 1520 if symp ^= null 1521 then do; 1522 symp -> runtime_symbol.offset = sp2 -> symbol.offset; 1523 symp -> runtime_symbol.location = rel_ref (pointer_pos - sym_pos); 1524 sym_pos = sym_pos + alloc_len; 1525 end; 1526 end; /* loop thru VLA block members */ 1527 end; /* case of VLA block chain */ 1528 end; 1529 end; /* buckets 15, 16, 17 */ 1530 1531 1532 /* labels - separate chain 1533* All fields, except location, are set by the template. 1534* 1535* NOTE - allocated only if full symbol table. */ 1536 1537 symbol_template.type = "011000"b; /* = 24; label */ 1538 symbol_template.class = text_ref; 1539 1540 if all_symbols 1541 then do i = cur_subp -> subprogram.first_label repeat sp -> label.next_label while (i ^= 0); 1542 sp = addr (rands (i)); 1543 1544 if sp -> label.name > 0 & sp -> label.name <= 99999 & string (sp -> label.usage) = "01"b 1545 then do; 1546 lbl_name = sp -> label.name; 1547 call allocate_symbol (get_acc_str$varying (substr (lbl_name, verify (lbl_name, "0"))), 1548 simple_len, blk, "0"b, symp); 1549 call add_to_array; 1550 1551 symp -> runtime_symbol.location = unspec (sp -> label.location); 1552 addrel (relocation_base, rel (symp)) -> runtime_symbol.location = rc_t; 1553 /* set reloc bits */ 1554 1555 sym_pos = sym_pos + alloc_len; 1556 end; /* executable user labels */ 1557 end; /* labels */ 1558 1559 /* finish up the block */ 1560 1561 call connect_symbols_to_block (blk, blkp); 1562 1563 end; /* do block for subprograms to be allocated */ 1564 end; /* loop thru subprogram nodes */ 1565 1566 1567 /* Finish up - link up all tokens and set block.token(*) for all blocks */ 1568 1569 last_len = 0; /* for building length vector */ 1570 unspec (final) = "0"b; /* length vector in absolute form */ 1571 off = 0; /* offset of previous token node */ 1572 1573 /* build one continuous list of tokens while calculating the absolute vector */ 1574 1575 do i = min_len to max_len; 1576 1577 if token_list (i).first > 0 1578 then do; 1579 j = token_list (i).first; 1580 1581 if off > 0 then addr (sym_sec (off)) -> runtime_token.next = rel_ref (j - off); 1582 off = j; 1583 1584 do j = last_len to 5; 1585 if i >= lengths (j) 1586 then if final (j) = 0 1587 then do; 1588 last_len = j + 1; 1589 final (j) = off; 1590 end; 1591 end; /* loop to set vector elements */ 1592 off = token_list (i).last; /* get end of the vector */ 1593 end; /* block to link up partial list of tokens */ 1594 end; /* loop to find and link up all partial lists */ 1595 1596 /* now walk the block chains and set all their vectors */ 1597 1598 sp = sym_base; 1599 1600 do rel_bits = bit (root, 18) repeat sp -> runtime_block.son while (rel_bits ^= "0"b); 1601 sp = addrel (sp, rel_bits); 1602 off = binary (rel (sp), 18) - symrel; 1603 1604 do i = 0 to 5; 1605 if final (i) > 0 then sp -> runtime_block.token (i) = rel_ref (final (i) - off); 1606 end; 1607 1608 sp2 = sp; 1609 1610 do rel_bits2 = sp -> runtime_block.son repeat sp2 -> runtime_block.brother while (rel_bits2 ^= "0"b); 1611 sp2 = addrel (sp2, rel_bits2); 1612 off = binary (rel (sp2), 18) - symrel; 1613 1614 do i = 0 to 5; 1615 if final (i) > 0 then sp2 -> runtime_block.token (i) = rel_ref (final (i) - off); 1616 end; 1617 end; /* loop through brother chain */ 1618 end; /* loop through son chain */ 1619 return; 1620 1621 allocate_block: 1622 procedure (a_name, a_len, a_parent, blk_off, blk_ptr); 1623 1624 dcl B fixed bin (18); 1625 dcl BP ptr; 1626 dcl a_len fixed bin (18); 1627 dcl a_name fixed bin (18); 1628 dcl a_parent fixed bin (18); 1629 dcl blk_name fixed bin (18); 1630 dcl blk_off fixed bin (18); 1631 dcl blk_ptr ptr; 1632 dcl parent fixed bin (18); 1633 1634 /* copy input arguments */ 1635 1636 blk_name = a_name; 1637 alloc_len = a_len; 1638 parent = a_parent; 1639 1640 /* allocate block node */ 1641 1642 if sym_pos + alloc_len >= sym_max_len then call print_message (414, "object segment", object_max_len - bias); 1643 1644 B = sym_pos; 1645 BP = addr (sym_sec (B)); 1646 unspec (BP -> words) = unspec (block_template); 1647 sym_pos = sym_pos + alloc_len; 1648 1649 /* link this block to its parent block */ 1650 1651 if parent = 0 /* parent is std_symbol_header */ 1652 then do; 1653 parent = binary (rel (sym_base), 18) - symrel; 1654 info_ptr -> pl1_symbol_block.root = bit (B, 18); 1655 end; 1656 1657 /* if this block has no brother, it is first son; otherwise put it on brother chain */ 1658 1659 else if last_blk = 0 1660 then addr (sym_sec (parent)) -> runtime_block.son = forward_ref (B - parent); 1661 else addr (sym_sec (last_blk)) -> runtime_block.brother = forward_ref (B - last_blk); 1662 last_blk = B; 1663 1664 BP -> runtime_block.father = backward_ref (parent - B); 1665 1666 BP -> runtime_block.header = backward_ref (-B); 1667 1668 /* set name field */ 1669 1670 if blk_name > 0 then BP -> runtime_block.name = backward_ref (blk_name - B); 1671 1672 /* set output arguments */ 1673 1674 blk_off = B; 1675 blk_ptr = BP; 1676 end allocate_block; 1677 1678 allocate_symbol: 1679 procedure (a_name, a_len, a_parent, nd_sw, sym_ptr); 1680 1681 dcl SP ptr; 1682 dcl a_len fixed bin (18); 1683 dcl a_name fixed bin (18); 1684 dcl a_parent fixed bin (18); 1685 dcl distance fixed bin (18); 1686 dcl last_dcl fixed bin (14); 1687 dcl namedup_is_error bit (1) aligned; 1688 dcl nd_sw bit (1) aligned; 1689 dcl sym_blk fixed bin (18); 1690 dcl sym_name fixed bin (18); 1691 dcl sym_ptr ptr; 1692 1693 /* copy input arguments */ 1694 1695 sym_name = a_name - 1; /* convert from acc off to node offset */ 1696 alloc_len = a_len; 1697 sym_blk = a_parent; 1698 namedup_is_error = nd_sw; 1699 1700 /* allocate symbol node */ 1701 1702 if sym_pos + alloc_len >= sym_max_len then call print_message (414, "object segment", object_max_len - bias); 1703 1704 SP = addr (sym_sec (sym_pos)); 1705 sym_ptr = SP; /* set output argument */ 1706 unspec (SP -> words) = unspec (symbol_template); 1707 1708 /* link symbol to token */ 1709 1710 SP -> runtime_symbol.name = backward_ref (sym_name + 1 - sym_pos); 1711 1712 /* link token to symbol */ 1713 1714 if addr (sym_sec (sym_name)) -> runtime_token.dcl ^= "0"b 1715 /* previous symbol declared with this name */ 1716 then if namedup_is_error 1717 then do; 1718 call print_message (428, addr (sym_sec (sym_name)) -> runtime_token.string); 1719 unspec (SP -> runtime_symbol) = "0"b; 1720 sym_ptr = null; /* set output argument */ 1721 return; 1722 end; 1723 else do; /* must chain all symbols with same name */ 1724 last_dcl = unpack (addr (sym_sec (sym_name)) -> runtime_token.dcl) + sym_name; 1725 /* convert rel to absolute */ 1726 distance = last_dcl - sym_pos; 1727 if distance + 16384 <= 0 1728 then do; /* can't chain */ 1729 call print_message (503, addr (sym_sec (sym_name)) -> runtime_token.string); 1730 SP -> runtime_symbol.next = "0"b; 1731 end; 1732 else SP -> runtime_symbol.next = substr (backward_ref (distance), 5, 14); 1733 end; 1734 1735 addr (sym_sec (sym_name)) -> runtime_token.dcl = forward_ref (sym_pos - sym_name); 1736 1737 /* link to father block */ 1738 1739 SP -> runtime_symbol.father = backward_ref (sym_blk - sym_pos); 1740 end allocate_symbol; 1741 1742 add_to_array: 1743 procedure (); 1744 1745 /* put symbol in sort array */ 1746 1747 count = count + 1; 1748 if count > symtab_max then call print_message (414, "sort array", symtab_max - bias); 1749 symbols (count).str_p = addrel (tkn_ptr, 1); 1750 symbols (count).length = tkn_len; 1751 symbols (count).offset = sym_pos; 1752 1753 end add_to_array; 1754 1755 connect_symbols_to_block: 1756 procedure (a_parent, a_parent_ptr); /* implied input: addr(symbols), count */ 1757 1758 dcl a_parent fixed bin (18); 1759 dcl a_parent_ptr ptr; 1760 dcl (i1, j1, len) fixed bin (18); 1761 dcl last_len fixed bin (18); 1762 dcl SB fixed bin (18); 1763 dcl SBP ptr; 1764 1765 SB = a_parent; 1766 SBP = a_parent_ptr; 1767 1768 call sort_symbols; 1769 1770 last_len = 1; 1771 last_sym = 0; 1772 1773 do i1 = 1 to count; 1774 1775 /* chain symbols together using the brother chain */ 1776 1777 j1 = symbols (i1).offset; 1778 1779 if last_sym = 0 1780 then SBP -> runtime_block.start = forward_ref (j1 - SB); 1781 else addr (sym_sec (last_sym)) -> runtime_symbol.brother = rel_ref (j1 - last_sym); 1782 1783 last_sym = j1; 1784 1785 /* fill in lookup vector for block as we go */ 1786 1787 len = symbols (i1).length; 1788 1789 do j1 = last_len to 4 while (len >= lengths (j1)); 1790 if SBP -> runtime_block.chain (j1) = "0"b 1791 then do; 1792 last_len = j1 + 1; 1793 SBP -> runtime_block.chain (j1) = forward_ref (last_sym - SB); 1794 end; 1795 end; 1796 end; /* loop to chain symbols and build block.chain(*) */ 1797 end connect_symbols_to_block; 1798 1799 process_variable: 1800 procedure (a_symbol, a_len, a_set_address, a_var); 1801 1802 dcl a_len fixed bin (18); 1803 dcl a_set_address bit (1) aligned; 1804 dcl a_symbol ptr; 1805 dcl a_var ptr; 1806 dcl i1 fixed bin (18); 1807 dcl mult fixed bin (18); 1808 dcl nd fixed bin (6); 1809 dcl set_address bit (1) aligned; 1810 dcl stack_offset fixed bin (18); 1811 dcl symb ptr; 1812 dcl var ptr; 1813 dcl encodep ptr; /* pointer to encoded size */ 1814 1815 /* copy input arguments */ 1816 1817 symb = a_symbol; 1818 alloc_len = a_len; 1819 set_address = a_set_address; 1820 1821 /* allocate symbol */ 1822 1823 if symb -> symbol.by_compiler | (^all_symbols & ^symb -> symbol.put_in_symtab) 1824 then do; 1825 alloc_len = 0; 1826 a_var = null; /* set output argument */ 1827 return; 1828 end; 1829 1830 call allocate_symbol (get_acc_str$symbol (symb), alloc_len, blk, "0"b, var); 1831 call add_to_array; 1832 1833 /* set data type and precision */ 1834 1835 var -> runtime_symbol.type = bit (convert_data_type (fptype, symb -> symbol.data_type), 6); 1836 1837 if symb -> symbol.character 1838 then do; 1839 if symb -> symbol.star_extents 1840 then do; 1841 encodep = addr (var -> runtime_symbol.size); 1842 encodep -> encoded_value.flag = "10"b; /* ENCODED */ 1843 encodep -> encoded_value.code = "0"b; /* Value is contents of stack word (n3) */ 1844 encodep -> encoded_value.n1, encodep -> encoded_value.n2 = "0"b; 1845 encodep -> encoded_value.n3 = get_address (addr (rands (symb -> symbol.v_length))); 1846 end; 1847 else var -> runtime_symbol.size = symb -> symbol.char_size + 1; 1848 end; 1849 else var -> runtime_symbol.size = convert_size (symb -> symbol.data_type); 1850 1851 var -> runtime_symbol.units = substr (unspec (symb -> symbol.units), 2, 2); 1852 1853 /* set symbol address */ 1854 1855 if set_address then var -> runtime_symbol.location = get_address (symb); 1856 1857 /* if symbol is dimensioned, add bound fields */ 1858 1859 if symb -> symbol.dimensioned 1860 then do; 1861 dp = addr (rands (symb -> symbol.dimension));/* get pointer to dimension info */ 1862 1863 nd = dp -> dimension.number_of_dims; /* get and store number of dimensions */ 1864 var -> runtime_symbol.ndims = bit (nd, 6); 1865 var -> runtime_symbol.simple = "0"b; /* long runtime symbol node allocated */ 1866 var -> runtime_symbol.array_units = substr (unspec (symb -> symbol.units), 2, 2); 1867 alloc_len = simple_len + 2 + 3 * nd; 1868 1869 if sym_pos + alloc_len >= sym_max_len 1870 then call print_message (414, "object_segment", object_max_len - bias); 1871 1872 if symb -> symbol.v_length = 0 1873 then mult = symb -> symbol.element_size; 1874 else mult = 0; 1875 1876 /* if variable extents, may use values stored in the array's descriptor */ 1877 1878 if symb -> symbol.variable_extents | symb -> symbol.star_extents 1879 then stack_offset = binary (get_address (addr (rands (symb -> symbol.hash_chain))), 18); 1880 1881 /* process each bound in turn */ 1882 1883 do i1 = 0 to nd - 1; 1884 1885 /* multiplier is constant until variable bound is encountered */ 1886 1887 if mult > 0 /* multiplier is a constant */ 1888 then var -> runtime_symbol.bounds (nd - i1).multiplier = mult; 1889 else do; 1890 1891 /* multiplier will refer to field in runtime descriptor for the array */ 1892 /* If we are character*(*) we need a character 1893* multiplier from the extended descriptor. */ 1894 1895 if symb -> symbol.star_extents 1896 then var -> runtime_symbol.bounds (nd - i1).multiplier = stack_offset + i1 + 1 + nd * 3; 1897 else var -> runtime_symbol.bounds (nd - i1).multiplier = stack_offset + i1 * 3 + 3; 1898 substr (unspec (var -> runtime_symbol.bounds (nd - i1).multiplier), 1, 6) = "100000"b; 1899 end; 1900 1901 /* fill in the lower bound information */ 1902 1903 if dp -> dimension.v_bound (i1 + 1).lower 1904 then do; 1905 mult = 0; 1906 var -> runtime_symbol.bounds (nd - i1).lower = stack_offset + i1 * 3 + 1; 1907 substr (unspec (var -> runtime_symbol.bounds (nd - i1).lower), 1, 6) = "100000"b; 1908 end; 1909 else var -> runtime_symbol.bounds (nd - i1).lower = dp -> dimension.lower_bound (i1 + 1); 1910 1911 /* fill in the upper bound information */ 1912 1913 if dp -> dimension.v_bound (i1 + 1).upper 1914 then do; 1915 mult = 0; 1916 var -> runtime_symbol.bounds (nd - i1).upper = stack_offset + i1 * 3 + 2; 1917 substr (unspec (var -> runtime_symbol.bounds (nd - i1).upper), 1, 6) = "100000"b; 1918 end; 1919 else var -> runtime_symbol.bounds (nd - i1).upper = dp -> dimension.upper_bound (i1 + 1); 1920 1921 /* update multiplier for next dimension */ 1922 1923 if mult > 0 1924 then mult = mult * dp -> dimension.size (i1 + 1); 1925 1926 end; 1927 1928 /* set virtual origin */ 1929 1930 if dp -> dimension.variable_virtual_origin 1931 then do; 1932 var -> runtime_symbol.virtual_org = 1933 binary (get_address (addr (rands (dp -> dimension.virtual_origin))), 18); 1934 substr (unspec (var -> runtime_symbol.virtual_org), 1, 6) = "100000"b; 1935 end; 1936 else var -> runtime_symbol.virtual_org = dp -> dimension.virtual_origin; 1937 1938 end; /* do block for dimensioned variable */ 1939 1940 /* store offset of symbol entry in symbol node */ 1941 1942 if symb -> symbol.put_in_symtab then symb -> symbol.runtime = bit (sym_pos, 18); 1943 1944 /* set output argument */ 1945 1946 a_var = var; 1947 1948 end process_variable; 1949 1950 rel_ref: 1951 procedure (value) returns (bit (18) aligned); /* procedure to produce rel pointers */ 1952 1953 dcl value fixed bin (18); 1954 1955 if value >= 0 1956 then do; 1957 1958 forward_ref: 1959 entry (value) returns (bit (18) aligned); 1960 1961 return (bit (value, 18)); 1962 end; 1963 1964 else do; 1965 1966 backward_ref: 1967 entry (value) returns (bit (18) aligned); 1968 1969 return (bit (binary (factor + value, 18), 18)); 1970 end; 1971 1972 end rel_ref; 1973 1974 1975 unpack: 1976 procedure (field) returns (fixed bin (18)); 1977 1978 dcl field bit (18) unaligned; 1979 1980 if substr (field, 1, 1) = "0"b 1981 then return (binary (field, 18)); 1982 else return (binary (field, 18) - factor); 1983 1984 end unpack; 1985 1986 1987 get_address: 1988 procedure (symbol_ptr) returns (bit (18) aligned); 1989 1990 dcl symbol_ptr ptr; 1991 1992 if symbol_ptr -> symbol.large_address 1993 then return (bit (binary (symbol_ptr -> symbol.address.offset + symbol_ptr -> symbol.location, 18), 18)); 1994 else if symbol_ptr -> symbol.stack_indirect 1995 then return (bit (binary (symbol_ptr -> symbol.location, 18), 18)); 1996 else return (bit (binary (symbol_ptr -> symbol.address.offset, 18), 18)); 1997 1998 end get_address; 1999 2000 get_acc_str: 2001 procedure (a_str) returns (fixed bin (18)); 2002 2003 dcl a_str char (*); 2004 dcl full_offset fixed bin (18); 2005 dcl last_tkn ptr; 2006 dcl not_found bit (1) aligned; 2007 dcl str char (256) varying; 2008 dcl sym_node ptr; 2009 dcl tkn_off fixed bin (18); 2010 dcl vstr char (32) varying; 2011 2012 dcl 1 acc aligned based, 2013 2 pad1 bit (36) unaligned, 2014 2 pad2 bit (9) unaligned, 2015 2 str char (n) unaligned; 2016 2017 /* copy input arguments */ 2018 2019 str = a_str; 2020 n, tkn_len = length (str); 2021 goto common; 2022 2023 2024 get_acc_str$symbol: 2025 entry (sym_node) returns (fixed bin (18)); 2026 2027 str = sym_node -> symbol.name; 2028 n, tkn_len = length (str); 2029 goto common; 2030 2031 2032 get_acc_str$varying: 2033 entry (vstr) returns (fixed bin (18)); 2034 2035 str = vstr; 2036 n, tkn_len = length (str); 2037 2038 common: 2039 2040 /* save length info */ 2041 2042 min_len = min (n, min_len); 2043 max_len = max (n, max_len); 2044 2045 /* search appropriate partial list for this token */ 2046 2047 last_tkn = null; /* previous token in list */ 2048 2049 if token_list (n).first = 0 2050 then tkn_ptr = null; /* first token for this list */ 2051 else do; 2052 tkn_ptr = addr (sym_sec (token_list (n).first)); 2053 not_found = "1"b; 2054 2055 do while (not_found); 2056 if str = tkn_ptr -> acc.str /* token node already allocated */ 2057 then return (binary (rel (tkn_ptr), 18) - symrel + 1); 2058 2059 if str < tkn_ptr -> acc.str /* strings must be ordered alphabetically */ 2060 then not_found = "0"b; /* insert new token here */ 2061 else do; 2062 last_tkn = tkn_ptr; /* previous token in list */ 2063 if tkn_ptr -> runtime_token.next = "0"b 2064 then do; /* at the end of the list, get out */ 2065 not_found = "0"b; 2066 tkn_ptr = null; /* no following token in list */ 2067 end; 2068 else tkn_ptr = addrel (tkn_ptr, tkn_ptr -> runtime_token.next); 2069 end; /* do block to get next token */ 2070 end; /* loop thru partial list */ 2071 end; /* do block for searching partial list */ 2072 2073 /* must create a new token node; first link it into the list */ 2074 2075 full_offset = symrel + sym_pos; 2076 2077 if last_tkn = null 2078 then token_list (n).first = sym_pos; /* token is at the head of the list */ 2079 else last_tkn -> runtime_token.next = forward_ref (full_offset - binary (rel (last_tkn), 18)); 2080 2081 if tkn_ptr = null 2082 then do; 2083 token_list (n).last = sym_pos; /* token is at the tail of the list */ 2084 addr (sym_sec (sym_pos)) -> runtime_token.next = "0"b; 2085 end; 2086 else addr (sym_sec (sym_pos)) -> runtime_token.next = backward_ref (binary (rel (tkn_ptr), 18) - full_offset); 2087 2088 /* build a new token node */ 2089 2090 tkn_ptr = addr (sym_sec (sym_pos)); 2091 tkn_off = sym_pos + 1; 2092 tkn_ptr -> runtime_token.dcl = "0"b; 2093 tkn_ptr -> runtime_token.size = tkn_len; 2094 substr (tkn_ptr -> runtime_token.string, 1, n) = str; 2095 2096 /* bump length of sym section and return */ 2097 2098 sym_pos = sym_pos + size (tkn_ptr -> runtime_token); 2099 return (tkn_off); 2100 2101 end get_acc_str; 2102 2103 sort_symbols: 2104 procedure (); 2105 2106 dcl (i1, j1, d, first) fixed bin (18); 2107 dcl swap_em bit (1) aligned; 2108 dcl length builtin; 2109 2110 dcl 1 swap like symbols aligned; 2111 2112 dcl 1 j_struct aligned based (symbols (j1).str_p), 2113 2 pad bit (9) unaligned, 2114 2 j_string char (symbols (j1).length) unaligned; 2115 2116 dcl 1 j_plus_d_struct aligned based (symbols (j1 + d).str_p), 2117 2 pad bit (9) unaligned, 2118 2 j_plus_d_string char (symbols (j1 + d).length) unaligned; 2119 2120 /* get first power of two greater than number of symbols */ 2121 2122 do d = 1 repeat d + d while (d <= count); 2123 end; 2124 2125 d = divide (d, 2, 17, 0) - 1; /* get d such that d = 2**n-1 & 2**n < count <= 2**(n+1) */ 2126 2127 /* loop until entire list is processed */ 2128 2129 do while (d > 0); 2130 do first = 1 to d; 2131 do i1 = first to count by d; 2132 2133 /* bubble strings up on its parital list */ 2134 2135 j1 = i1; 2136 swap_em = "1"b; 2137 2138 do while (swap_em & j1 > 0 & j1 + d <= count); 2139 2140 swap_em = "0"b; 2141 2142 if length (j_string) > length (j_plus_d_string) 2143 then swap_em = "1"b; 2144 else if length (j_string) = length (j_plus_d_string) 2145 then if j_string > j_plus_d_string 2146 then swap_em = "1"b; 2147 2148 if swap_em 2149 then do; 2150 swap = symbols (j1); 2151 symbols (j1) = symbols (j1 + d); 2152 symbols (j1 + d) = swap; 2153 j1 = j1 - d; 2154 end; 2155 end; /* bubble loop */ 2156 end; 2157 end; 2158 2159 d = divide (d, 2, 17, 0); 2160 end; 2161 end sort_symbols; 2162 2163 octal: 2164 proc (bits) returns (char (12)); 2165 2166 dcl bits bit (36) aligned; 2167 dcl octal_string char (12) aligned; 2168 2169 dcl ioa_$rsnnl entry options (variable); 2170 2171 call ioa_$rsnnl ("^w", octal_string, 12, bits); 2172 return (octal_string); 2173 end octal; 2174 end make_symbol_table; 2175 2176 end fort_make_symbol_section; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/30/90 1533.8 fort_make_symbol_section.pl1 >spec>install>1011>fort_make_symbol_section.pl1 137 1 11/10/88 1550.9 fort_nodes.incl.pl1 >ldd>include>fort_nodes.incl.pl1 139 2 03/27/82 0524.8 fort_opt_nodes.incl.pl1 >ldd>include>fort_opt_nodes.incl.pl1 141 3 03/27/82 0539.3 fort_listing_nodes.incl.pl1 >ldd>include>fort_listing_nodes.incl.pl1 147 4 08/04/86 2115.0 fort_shared_vars.incl.pl1 >ldd>include>fort_shared_vars.incl.pl1 153 5 03/27/82 0539.4 fort_cg_vars.incl.pl1 >ldd>include>fort_cg_vars.incl.pl1 155 6 08/06/87 1253.7 fort_options.incl.pl1 >ldd>include>fort_options.incl.pl1 157 7 08/04/86 2115.0 fort_system_constants.incl.pl1 >ldd>include>fort_system_constants.incl.pl1 163 8 03/27/82 0537.1 fort_symtab_parms.incl.pl1 >ldd>include>fort_symtab_parms.incl.pl1 165 9 03/10/77 1445.4 pl1_symbol_block.incl.pl1 >ldd>include>pl1_symbol_block.incl.pl1 167 10 05/06/74 1851.6 std_symbol_header.incl.pl1 >ldd>include>std_symbol_header.incl.pl1 169 11 10/30/80 1748.7 profile_entry.incl.pl1 >ldd>include>profile_entry.incl.pl1 170 12 03/10/77 1445.4 long_profile.incl.pl1 >ldd>include>long_profile.incl.pl1 172 13 10/30/80 1748.7 relbts.incl.pl1 >ldd>include>relbts.incl.pl1 253 14 11/26/79 1420.6 source_map.incl.pl1 >ldd>include>source_map.incl.pl1 348 15 05/06/74 1851.6 statement_map.incl.pl1 >ldd>include>statement_map.incl.pl1 450 16 05/06/74 1851.6 statement_map.incl.pl1 >ldd>include>statement_map.incl.pl1 852 17 11/26/79 1420.6 runtime_symbol.incl.pl1 >ldd>include>runtime_symbol.incl.pl1 853 18 10/26/88 1355.5 std_descriptor_types.incl.pl1 >ldd>include>std_descriptor_types.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. B 001230 automatic fixed bin(18,0) dcl 1624 set ref 1644* 1645 1654 1659 1661 1662 1664 1666 1670 1674 BP 001232 automatic pointer dcl 1625 set ref 1645* 1646 1664 1666 1670 1675 P_cg_global_ptr parameter pointer dcl 74 ref 32 177 P_param_ptr parameter pointer dcl 74 ref 32 178 P_shared_global_ptr parameter pointer dcl 74 ref 32 176 P_sym_length parameter fixed bin(18,0) dcl 74 set ref 32 233* P_sym_offset parameter fixed bin(18,0) dcl 74 ref 32 179 SB 001274 automatic fixed bin(18,0) dcl 1762 set ref 1765* 1779 1793 SBP 001276 automatic pointer dcl 1763 set ref 1766* 1779 1790 1793 SP 001244 automatic pointer dcl 1681 set ref 1704* 1705 1706 1710 1719 1730 1732 1739 VLA 4 based bit(1) level 3 packed packed unaligned dcl 1-844 ref 1239 1280 a_base 000100 automatic pointer dcl 83 set ref 195* 574 575 a_len parameter fixed bin(18,0) dcl 1626 in procedure "allocate_block" ref 1621 1637 a_len parameter fixed bin(18,0) dcl 1682 in procedure "allocate_symbol" ref 1678 1696 a_len parameter fixed bin(18,0) dcl 1802 in procedure "process_variable" ref 1799 1818 a_name parameter fixed bin(18,0) dcl 1683 in procedure "allocate_symbol" ref 1678 1695 a_name based fixed bin(18,0) array dcl 108 in procedure "fort_make_symbol_section" set ref 574* 575* a_name parameter fixed bin(18,0) dcl 1627 in procedure "allocate_block" ref 1621 1636 a_parent parameter fixed bin(18,0) dcl 1628 in procedure "allocate_block" ref 1621 1638 a_parent parameter fixed bin(18,0) dcl 1758 in procedure "connect_symbols_to_block" ref 1755 1765 a_parent parameter fixed bin(18,0) dcl 1684 in procedure "allocate_symbol" ref 1678 1697 a_parent_ptr parameter pointer dcl 1759 ref 1755 1766 a_set_address parameter bit(1) dcl 1803 ref 1799 1819 a_str parameter char packed unaligned dcl 2003 ref 2000 2019 a_symbol parameter pointer dcl 1804 ref 1799 1817 a_var parameter pointer dcl 1805 set ref 1799 1826* 1946* acc based structure level 1 dcl 2012 addr builtin function dcl 131 ref 195 263 296 364 372 466 474 547 553 554 582 611 622 876 927 930 945 988 1011 1017 1046 1052 1052 1052 1052 1090 1099 1127 1142 1175 1185 1237 1312 1318 1361 1412 1441 1462 1464 1516 1542 1581 1645 1659 1661 1704 1714 1718 1724 1729 1735 1781 1841 1845 1845 1861 1878 1878 1932 1932 2052 2084 2086 2090 addr_hold 2(18) based bit(18) level 2 packed packed unaligned dcl 1-844 ref 1468 addrel builtin function dcl 131 ref 201 202 287 307 308 353 390 397 402 422 426 428 455 492 498 503 523 527 529 613 614 653 719 761 940 991 1006 1136 1149 1192 1216 1325 1399 1502 1552 1601 1611 1749 2068 address 3 based structure level 2 in structure "runtime_symbol" packed packed unaligned dcl 17-3 in procedure "make_symbol_table" address 3 000546 automatic structure level 2 in structure "symbol_template" packed packed unaligned dcl 839 in procedure "make_symbol_table" address 1 based structure level 2 in structure "label" dcl 1-530 in procedure "fort_make_symbol_section" address 1 based structure level 2 in structure "constant" dcl 1-256 in procedure "fort_make_symbol_section" address 1 based structure level 2 in structure "symbol" dcl 1-844 in procedure "fort_make_symbol_section" ref 1468 addressing_bits 0(14) based structure level 2 packed packed unaligned dcl 1-844 aligned 0(24) 000546 automatic bit(1) level 3 in structure "symbol_template" packed packed unaligned dcl 839 in procedure "make_symbol_table" set ref 868* 1248* 1270* 1302* 1372* 1452* 1511* aligned 0(24) based bit(1) level 3 in structure "runtime_symbol" packed packed unaligned dcl 17-3 in procedure "make_symbol_table" set ref 1105* all_symbols 000436 automatic bit(1) dcl 790 set ref 883* 930 1050 1200 1540 1823 alloc_len 000437 automatic fixed bin(18,0) dcl 791 set ref 1095 1110 1135 1148 1195 1219 1297 1420 1524 1555 1637* 1642 1646 1647 1696* 1702 1706 1818* 1825* 1830* 1867* 1869 area_pointer 16(18) based bit(18) level 2 packed packed unaligned dcl 10-1 set ref 305* array_units 0(02) based bit(2) level 2 packed packed unaligned dcl 17-3 set ref 1866* attributes 10 based structure level 2 dcl 1-844 automatic 0(33) based bit(1) level 4 packed packed unaligned dcl 1-436 ref 1483 b18 000403 automatic bit(18) dcl 636 set ref 658* 663 668 673 678 689* 690 704 b36 000426 automatic bit(36) packed unaligned dcl 754 set ref 760* 763* 765 based_string based char dcl 754 set ref 761* bias constant fixed bin(19,0) initial dcl 7-56 ref 1642 1702 1748 1869 binary builtin function dcl 131 ref 378 383 416 480 485 517 907 909 971 973 998 1017 1292 1321 1602 1612 1653 1878 1932 1969 1980 1982 1992 1994 1996 2056 2079 2086 bit builtin function dcl 131 ref 285 305 324 330 359 393 402 423 428 433 461 495 503 524 529 534 647 658 725 741 760 763 1181 1257 1292 1321 1343 1391 1472 1474 1600 1654 1835 1864 1942 1961 1969 1992 1994 1996 bits 0(24) 000546 automatic structure level 2 in structure "symbol_template" packed packed unaligned dcl 839 in procedure "make_symbol_table" bits parameter bit(36) dcl 2166 in procedure "octal" set ref 2163 2171* bits 4 based structure level 2 in structure "opt_statement" packed packed unaligned dcl 2-176 in procedure "fort_make_symbol_section" bits 0(25) based structure level 2 in structure "symbol" packed packed unaligned dcl 1-844 in procedure "fort_make_symbol_section" bits 0(25) based structure level 2 in structure "label" packed packed unaligned dcl 1-530 in procedure "fort_make_symbol_section" bits 3 based structure level 2 in structure "statement" packed packed unaligned dcl 1-721 in procedure "fort_make_symbol_section" bits 0(25) based structure level 2 in structure "header" packed packed unaligned dcl 1-436 in procedure "fort_make_symbol_section" bits 0(24) based structure level 2 in structure "runtime_symbol" packed packed unaligned dcl 17-3 in procedure "make_symbol_table" blk 000440 automatic fixed bin(18,0) dcl 792 set ref 1052* 1054 1064 1070 1071 1209* 1260* 1340* 1394* 1497* 1547* 1561* 1830* blk_name 001234 automatic fixed bin(18,0) dcl 1629 set ref 1636* 1670 1670 blk_off parameter fixed bin(18,0) dcl 1630 set ref 1621 1674* blk_ptr parameter pointer dcl 1631 set ref 1621 1675* blkp 000442 automatic pointer dcl 793 set ref 903* 907 909 954* 967* 971 973 1009 1020 1024 1052* 1058 1059 1064 1065 1070 1071 1561* block_name 10 based char level 2 in structure "header" dcl 1-436 in procedure "fort_make_symbol_section" ref 1492 1494 block_name 000444 automatic varying char(32) dcl 794 in procedure "make_symbol_table" set ref 1256* 1259* 1259 1260* 1260* 1383* 1388* 1393* 1393 1394* 1394* 1481* 1487* 1492* 1494* 1497* 1497* block_size 17(18) based bit(18) level 2 packed packed unaligned dcl 10-1 set ref 725* block_template 000560 automatic structure level 1 dcl 841 set ref 857* 1646 bounds 7 based structure array level 2 dcl 17-3 brief_table 113(18) based bit(1) level 5 packed packed unaligned dcl 143 ref 207 brother 1(18) based bit(18) level 2 in structure "runtime_block" packed packed unaligned dcl 17-38 in procedure "make_symbol_table" set ref 1617 1661* brother 1(18) based bit(18) level 2 in structure "runtime_symbol" packed packed unaligned dcl 17-3 in procedure "make_symbol_table" set ref 1011* 1030 1781* by_compiler 0(35) based bit(1) level 3 packed packed unaligned dcl 1-844 ref 1316 1823 cg_global_ptr 000102 automatic pointer dcl 83 set ref 177* 265 274 276 314 319 967 967 cg_globals based structure level 1 dcl 149 chain 5 based bit(18) array level 2 packed packed unaligned dcl 17-38 set ref 1020 1024* 1790 1793* char_constant based structure level 1 dcl 1-316 char_num 1(18) based fixed bin(2,0) level 3 packed packed unsigned unaligned dcl 1-844 ref 1103 char_size 10 based fixed bin(20,0) level 4 packed packed unsigned unaligned dcl 1-844 ref 1847 character 10(25) based bit(1) level 5 packed packed unaligned dcl 1-844 ref 1103 1328 1837 class 3(18) 000546 automatic bit(4) level 3 in structure "symbol_template" packed packed unaligned dcl 839 in procedure "make_symbol_table" set ref 923* 1086* 1123* 1179* 1203* 1254* 1322* 1338* 1381* 1386* 1406* 1479* 1485* 1490* 1509* 1538* class 3(18) based bit(4) level 3 in structure "runtime_symbol" packed packed unaligned dcl 17-3 in procedure "make_symbol_table" set ref 1283* 1289* 1294* code 0(02) based bit(4) level 2 packed packed unaligned dcl 17-70 set ref 1843* comment 14 based structure level 2 packed packed unaligned dcl 10-1 set ref 276* compiler_name 000016 constant char(8) initial packed unaligned dcl 5-39 ref 267 constant based structure level 1 dcl 1-256 convert_data_type 000460 automatic fixed bin(6,0) initial array dcl 797 set ref 797* 1835 convert_size 000007 constant fixed bin(18,0) initial array dcl 801 ref 1849 count 000455 automatic fixed bin(18,0) dcl 795 set ref 925* 1076* 1747* 1747 1748 1749 1750 1751 1773 2122 2131 2138 cs 000244 automatic pointer dcl 340 in procedure "gen_opt_statement_map" set ref 364* 367 369 417 418 cs 000330 automatic pointer dcl 543 in procedure "fill_sym_info_into_entries" set ref 554* 558 565 578 580 586 cs 000276 automatic pointer dcl 442 in procedure "gen_statement_map" set ref 466* 469 471 518 519 cur_statement 67 based fixed bin(18,0) level 2 dcl 143 set ref 369* 369* 372* 471* 471* 474* cur_subp 000456 automatic pointer dcl 796 set ref 1046* 1050 1052 1052 1052 1052 1054 1056 1065 1070 1071 1089 1126 1174 1235 1311 1360 1440 1540 1564 cur_subprogram 71 based fixed bin(18,0) level 2 dcl 143 set ref 362* 362* 364* 464* 464* 466* 882* 1045* 1045* 1046* current_def_offset 7 based fixed bin(18,0) level 2 dcl 159 ref 187 current_link_offset 10 based fixed bin(18,0) level 2 dcl 159 ref 188 current_text_offset 6 based fixed bin(18,0) level 2 dcl 159 ref 186 d 001476 automatic fixed bin(18,0) dcl 2106 set ref 2122* 2122* 2123 2123 2125* 2125 2129 2130 2131 2138 2142 2142 2144 2144 2144 2144 2151 2152 2153 2159* 2159 data_type 0(05) based fixed bin(4,0) level 2 in structure "symbol" packed packed unsigned unaligned dcl 1-844 in procedure "fort_make_symbol_section" set ref 1319* 1835 1849 data_type 0(05) based fixed bin(4,0) level 2 in structure "constant" packed packed unsigned unaligned dcl 1-256 in procedure "fort_make_symbol_section" ref 1319 date_time_compiled 40 based fixed bin(71,0) level 2 dcl 149 ref 265 dcl 0(18) based bit(18) level 2 packed packed unaligned dcl 17-63 set ref 1714 1724* 1735* 2092* dcl_version based fixed bin(17,0) level 2 dcl 10-1 set ref 260* debugging 113(16) based structure level 4 packed packed unaligned dcl 143 def_pos 000104 automatic fixed bin(18,0) dcl 83 set ref 187* 667 def_reloc_base 000106 automatic pointer dcl 83 set ref 185* 655 def_reloc_base_ptr 4 based pointer level 2 dcl 159 ref 185 dim 5 based structure array level 2 dcl 1-383 dimension 12(25) based fixed bin(18,0) level 2 in structure "symbol" packed packed unsigned unaligned dcl 1-844 in procedure "fort_make_symbol_section" ref 1861 dimension based structure level 1 dcl 1-383 in procedure "fort_make_symbol_section" dimensioned 10(35) based bit(1) level 4 packed packed unaligned dcl 1-844 ref 1468 1859 distance 001246 automatic fixed bin(18,0) dcl 1685 set ref 1726* 1727 1732* divide builtin function dcl 131 ref 762 877 1292 2125 2159 dp 000476 automatic pointer dcl 802 set ref 1861* 1863 1903 1909 1913 1919 1923 1930 1932 1932 1936 dtm 4 based fixed bin(71,0) array level 3 in structure "source_map" dcl 14-3 in procedure "init_symbol" set ref 299* dtm 2 based fixed bin(71,0) level 2 in structure "source" packed packed unaligned dcl 1-693 in procedure "fort_make_symbol_section" ref 299 element_size 15(07) based fixed bin(17,0) level 2 packed packed unaligned dcl 1-844 ref 1872 encoded_value based structure level 1 dcl 17-70 encodep 001322 automatic pointer dcl 1813 set ref 1841* 1842 1843 1844 1844 1845 entry_info 4 based bit(18) level 2 in structure "runtime_block" packed packed unaligned dcl 17-38 in procedure "make_symbol_table" set ref 1065* entry_info 7 based fixed bin(18,0) level 2 in structure "subprogram" packed packed unsigned unaligned dcl 1-753 in procedure "fort_make_symbol_section" ref 1056 1065 equivalenced 11(03) based bit(1) level 4 packed packed unaligned dcl 1-844 ref 1103 error_level 3 based fixed bin(17,0) level 2 dcl 149 ref 314 ext_attributes 4 based structure level 2 packed packed unaligned dcl 1-844 ext_proc 000500 automatic fixed bin(18,0) dcl 803 set ref 967* 971 973 1001* 1009 1024 1052* 1064 factor constant fixed bin(19,0) initial dcl 804 ref 1969 1982 father 2 based bit(18) level 2 in structure "runtime_symbol" packed packed unaligned dcl 17-3 in procedure "make_symbol_table" set ref 1739* father 2 based bit(18) level 2 in structure "runtime_block" packed packed unaligned dcl 17-38 in procedure "make_symbol_table" set ref 1664* field parameter bit(18) packed unaligned dcl 1978 ref 1975 1980 1980 1982 final 000501 automatic fixed bin(18,0) array dcl 805 set ref 1570* 1585 1589* 1605 1605 1615 1615 final_text_offset 11 based fixed bin(18,0) level 2 dcl 159 ref 189 first 3 based bit(18) level 3 in structure "runtime_block" packed packed unaligned dcl 17-38 in procedure "make_symbol_table" set ref 907* 971* 1070* first 6 based fixed bin(18,0) level 3 in structure "subprogram" packed packed unsigned unaligned dcl 1-753 in procedure "fort_make_symbol_section" set ref 367* 469* 1070 first 000573 automatic fixed bin(18,0) array level 2 in structure "token_list" packed packed unsigned unaligned dcl 843 in procedure "make_symbol_table" set ref 1577 1579 2049 2052 2077* first 001477 automatic fixed bin(18,0) dcl 2106 in procedure "sort_symbols" set ref 2130* 2131* first 13 based fixed bin(18,0) array level 3 in structure "subprogram" packed packed unsigned unaligned dcl 1-753 in procedure "fort_make_symbol_section" ref 1089 1126 1174 1235 1311 1360 1440 first 6 based bit(18) level 3 in structure "pl1_symbol_block" packed packed unaligned dcl 9-1 in procedure "fort_make_symbol_section" set ref 359* 461* 907 971 first_code_loc 000256 automatic fixed bin(18,0) dcl 341 in procedure "gen_opt_statement_map" set ref 378* 385 first_code_loc 000310 automatic fixed bin(18,0) dcl 443 in procedure "gen_statement_map" set ref 480* 487 first_element 3(18) based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-436 ref 1098 1141 1184 1411 1462 1515 first_entry_name 75 based fixed bin(18,0) level 2 dcl 143 ref 552 926 first_label 4 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-753 ref 1540 first_namelist 000110 automatic fixed bin(18,0) dcl 83 set ref 192* 610 first_namelist_symbol 14 based fixed bin(18,0) level 2 dcl 159 ref 192 first_polish 5 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-753 ref 471 first_quad 10 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-753 ref 369 first_segment 51 based fixed bin(17,0) level 2 dcl 143 ref 293 first_subprogram 72 based fixed bin(18,0) level 2 dcl 143 ref 362 464 1045 first_time 000257 automatic bit(1) dcl 342 in procedure "gen_opt_statement_map" set ref 360* 369 371* first_time 000311 automatic bit(1) dcl 444 in procedure "gen_statement_map" set ref 462* 471 473* fixed builtin function dcl 131 ref 393 402 428 495 503 529 741 763 806 1181 1257 1391 1472 1474 flag 000546 automatic bit(1) level 2 in structure "symbol_template" packed packed unaligned dcl 839 in procedure "make_symbol_table" set ref 867* 1301* flag 000560 automatic bit(1) level 2 in structure "block_template" packed packed unaligned dcl 841 in procedure "make_symbol_table" set ref 859* flag based bit(2) level 2 in structure "encoded_value" packed packed unaligned dcl 17-70 in procedure "make_symbol_table" set ref 1842* flags 3 based structure level 2 dcl 9-1 fort_$symbol_table 000014 external static fixed bin(17,0) dcl 249 set ref 263 fort_version_info$version_name 000010 external static varying char(132) dcl 5-36 ref 269 fort_version_info$version_number 000012 external static char(16) packed unaligned dcl 5-37 ref 269 fortran 0(02) 000560 automatic bit(1) level 2 packed packed unaligned dcl 841 set ref 860* fortran_declared based structure level 1 dcl 6-91 fortran_options based structure level 1 dcl 6-40 fptype 000507 automatic fixed bin(1,0) initial dcl 806 set ref 806* 1835 ft_char_dtype constant fixed bin(17,0) initial dcl 18-96 ref 797 797 ft_complex_dtype constant fixed bin(17,0) initial dcl 18-96 ref 797 ft_double_dtype constant fixed bin(17,0) initial dcl 18-96 ref 797 ft_hex_complex_dtype constant fixed bin(17,0) initial dcl 18-96 ref 797 ft_hex_double_dtype constant fixed bin(17,0) initial dcl 18-96 ref 797 ft_hex_real_dtype constant fixed bin(17,0) initial dcl 18-96 ref 797 ft_integer_dtype constant fixed bin(17,0) initial dcl 18-96 ref 797 797 ft_logical_dtype constant fixed bin(17,0) initial dcl 18-96 ref 797 797 ft_real_dtype constant fixed bin(17,0) initial dcl 18-96 ref 797 full_offset 001356 automatic fixed bin(18,0) dcl 2004 set ref 2075* 2079 2086 gen_created 4 based fixed bin(71,0) level 2 dcl 10-1 set ref 263* gen_number 3 based fixed bin(17,0) level 2 dcl 10-1 set ref 262* gen_version 12 based structure level 2 packed packed unaligned dcl 10-1 set ref 272* generate_map 000111 automatic bit(1) dcl 83 set ref 207* 218 317 905 969 1068 generate_profile 000112 automatic bit(1) dcl 83 set ref 210* 321 374 399 428 476 500 529 generate_symtab 000113 automatic bit(1) dcl 83 set ref 211* 223 generator 10 based char(8) level 2 dcl 10-1 set ref 267* greatest_severity 4 based fixed bin(17,0) level 2 dcl 9-1 set ref 314* half_word based bit(18) array level 2 packed packed unaligned dcl 639 ref 689 hash_chain 3(18) based fixed bin(18,0) level 2 in structure "label" packed packed unsigned unaligned dcl 1-530 in procedure "fort_make_symbol_section" ref 585 hash_chain 3(18) based fixed bin(18,0) level 2 in structure "symbol" packed packed unsigned unaligned dcl 1-844 in procedure "fort_make_symbol_section" ref 1878 1878 hbound builtin function dcl 131 ref 872 header 4(18) based bit(18) level 2 in structure "runtime_block" packed packed unaligned dcl 17-38 in procedure "make_symbol_table" set ref 1666* header based structure level 1 dcl 1-436 in procedure "fort_make_symbol_section" header_node constant fixed bin(4,0) initial dcl 7-87 ref 1177 1363 1443 hfp 114(04) based bit(1) level 4 packed packed unaligned dcl 143 ref 806 i 000350 automatic fixed bin(18,0) dcl 599 in procedure "make_ok_lists" set ref 621* 622 622 623* i 000376 automatic fixed bin(18,0) dcl 635 in procedure "end_symbol" set ref 685* 704 705* 705 714 717 730* 730 736 737* 737 741 742* 742 i 000510 automatic fixed bin(18,0) dcl 807 in procedure "make_symbol_table" set ref 926* 926* 927* 1019* 1020 1020 1023 1024* 1088* 1089* 1125* 1126* 1174* 1174* 1175* 1235* 1235* 1237* 1311* 1311* 1312* 1360* 1360* 1361* 1440* 1440* 1441* 1540* 1540* 1542* 1575* 1577 1579 1585 1592* 1604* 1605 1605 1605* 1614* 1615 1615 1615* i1 001270 automatic fixed bin(18,0) dcl 1760 in procedure "connect_symbols_to_block" set ref 1773* 1777 1787* i1 001310 automatic fixed bin(18,0) dcl 1806 in procedure "process_variable" set ref 1883* 1887 1895 1895 1897 1897 1898 1903 1906 1906 1907 1909 1909 1913 1916 1916 1917 1919 1919 1923* i1 001474 automatic fixed bin(18,0) dcl 2106 in procedure "sort_symbols" set ref 2131* 2135* i2 000511 automatic fixed bin(18,0) dcl 808 set ref 1098* 1098* 1099* 1141* 1141* 1142* 1184* 1184* 1185* 1411* 1411* 1412* 1515* 1515* 1516* identifier 1 based char(8) level 2 in structure "std_symbol_header" dcl 10-1 in procedure "fort_make_symbol_section" set ref 261* identifier 1 based char(8) level 2 in structure "pl1_symbol_block" dcl 9-1 in procedure "fort_make_symbol_section" set ref 313* in_common 0(35) based bit(1) level 4 packed packed unaligned dcl 1-436 ref 1468 1502 in_equiv_stmnt 11(08) based bit(1) level 3 packed packed unaligned dcl 1-844 ref 1103 info_ptr 000114 automatic pointer dcl 83 set ref 307* 359 433 461 534 887 888 907 909 971 973 1654 initial 13(07) based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-844 ref 582 615 945 945 1200 1318 io 3(04) based bit(1) level 3 packed packed unaligned dcl 9-1 set ref 316* 888* ioa_$rsnnl 000016 constant entry external dcl 2169 ref 2171 ipol 000351 automatic fixed bin(18,0) dcl 599 set ref 615* 617 621 622 j 000512 automatic fixed bin(18,0) dcl 809 in procedure "make_symbol_table" set ref 1089* 1089* 1090* 1126* 1126* 1127* 1359* 1360* 1439* 1440* 1579* 1581 1582 1584* 1585 1585 1588 1589* j 000377 automatic fixed bin(18,0) dcl 635 in procedure "end_symbol" set ref 687* 689* 717* 718 719 j1 001475 automatic fixed bin(18,0) dcl 2106 in procedure "sort_symbols" set ref 2135* 2138 2138 2142 2142 2142 2142 2144 2144 2144 2144 2144 2144 2144 2144 2150 2151 2151 2152 2153* 2153 j1 001271 automatic fixed bin(18,0) dcl 1760 in procedure "connect_symbols_to_block" set ref 1777* 1779 1781 1783 1789* 1789* 1790 1792 1793* j_plus_d_string 0(09) based char level 2 packed packed unaligned dcl 2116 ref 2142 2144 2144 j_plus_d_struct based structure level 1 dcl 2116 j_string 0(09) based char level 2 packed packed unaligned dcl 2112 ref 2142 2144 2144 j_struct based structure level 1 dcl 2112 k 000400 automatic fixed bin(18,0) dcl 635 set ref 685* 692 701* 708* 708 712 730 730 735 738* 738 741 l 000401 automatic fixed bin(18,0) dcl 635 set ref 651* 660 665 670 675 715* 715 label based structure level 1 dcl 1-530 large_address 0(20) based bit(1) level 3 packed packed unaligned dcl 1-844 ref 549 1472 1992 last 6(18) based fixed bin(18,0) level 3 in structure "subprogram" packed packed unsigned unaligned dcl 1-753 in procedure "fort_make_symbol_section" set ref 417* 518* 1071 last 3(18) based bit(18) level 3 in structure "runtime_block" packed packed unaligned dcl 17-38 in procedure "make_symbol_table" set ref 909* 973* 1071* last 0(18) 000573 automatic fixed bin(18,0) array level 2 in structure "token_list" packed packed unsigned unaligned dcl 843 in procedure "make_symbol_table" set ref 1592 2083* last 6(18) based bit(18) level 3 in structure "pl1_symbol_block" packed packed unaligned dcl 9-1 in procedure "fort_make_symbol_section" set ref 433* 534* 909 973 last_blk 000513 automatic fixed bin(18,0) dcl 810 set ref 901* 965* 1043* 1659 1661 1661 1662* last_code_loc 000312 automatic fixed bin(18,0) dcl 445 in procedure "gen_statement_map" set ref 481* 485* 487 last_code_loc 000260 automatic fixed bin(18,0) dcl 343 in procedure "gen_opt_statement_map" set ref 379* 383* 385 last_dcl 001247 automatic fixed bin(14,0) dcl 1686 set ref 1724* 1726 last_len 000514 automatic fixed bin(18,0) dcl 811 in procedure "make_symbol_table" set ref 986* 1019 1023* 1569* 1584 1588* last_len 001273 automatic fixed bin(18,0) dcl 1761 in procedure "connect_symbols_to_block" set ref 1770* 1789 1792* last_pos 000116 automatic fixed bin(18,0) dcl 83 set ref 189* 423 524 last_sym 000515 automatic fixed bin(18,0) dcl 812 set ref 985* 1009 1011 1011 1013* 1771* 1779 1781 1781 1783* 1793 last_tkn 001360 automatic pointer dcl 2005 set ref 2047* 2062* 2077 2079 2079 lbl_name 000516 automatic picture(5) packed unaligned dcl 813 set ref 1546* 1547 1547 1547 1547 1547 1547 1547 1547 left based bit(18) array level 2 in structure "reloc_halfs" packed packed unaligned dcl 124 in procedure "fort_make_symbol_section" set ref 567* 587* left based fixed bin(17,0) array level 2 in structure "text_halfs" packed packed unaligned dcl 117 in procedure "fort_make_symbol_section" set ref 564* 586* len 001272 automatic fixed bin(18,0) dcl 1760 set ref 1787* 1789 length builtin function dcl 814 in procedure "make_symbol_table" ref 2020 2028 2036 length 3(27) based bit(9) level 2 in structure "opt_statement" packed packed unaligned dcl 2-176 in procedure "fort_make_symbol_section" ref 395 length 1(27) based bit(9) level 3 in structure "statement_map" packed packed unaligned dcl 15-1 in procedure "gen_opt_statement_map" set ref 395* length 4 based fixed bin(18,0) level 2 in structure "char_constant" packed packed unsigned unaligned dcl 1-316 in procedure "fort_make_symbol_section" ref 1328 length builtin function dcl 131 in procedure "fort_make_symbol_section" ref 757 761 762 763 length 1(27) based bit(9) level 3 in structure "statement_map" packed packed unaligned dcl 16-1 in procedure "gen_statement_map" set ref 496* length builtin function dcl 2108 in procedure "sort_symbols" ref 2142 2142 2144 2144 length 2(27) based bit(9) level 2 in structure "statement" packed packed unaligned dcl 1-721 in procedure "fort_make_symbol_section" ref 496 length 1(18) based fixed bin(18,0) array level 2 in structure "symbols" packed packed unsigned unaligned dcl 847 in procedure "make_symbol_table" set ref 1750* 1787 2142 2142 2144 2144 2144 2144 lengths 000000 constant fixed bin(18,0) initial array dcl 815 ref 1020 1585 1789 level 0(12) 000546 automatic bit(6) level 2 packed packed unaligned dcl 839 set ref 1247* 1371* 1451* link_base 000120 automatic pointer dcl 83 set ref 183* 353 402 428 455 503 529 link_base_ptr based pointer level 2 dcl 159 ref 183 link_pos 000122 automatic fixed bin(18,0) dcl 83 set ref 188* 672 link_reloc_base 000124 automatic pointer dcl 83 set ref 184* 655 link_reloc_base_ptr 2 based pointer level 2 dcl 159 ref 184 list 113(10) based bit(1) level 5 packed packed unaligned dcl 143 ref 195 572 listing 113(07) based structure level 4 packed packed unaligned dcl 143 location 5 based fixed bin(24,0) level 2 in structure "symbol" dcl 1-844 in procedure "fort_make_symbol_section" ref 549 1292 1474 1992 1994 location based bit(18) level 2 in structure "statement_map" packed packed unaligned dcl 15-1 in procedure "gen_opt_statement_map" set ref 391* 423* location 1 based fixed bin(18,0) level 3 in structure "constant" packed packed unsigned unaligned dcl 1-256 in procedure "fort_make_symbol_section" ref 1321 location 1 based fixed bin(18,0) level 3 in structure "label" packed packed unsigned unaligned dcl 1-530 in procedure "fort_make_symbol_section" ref 560 612 945 1551 location 3 000546 automatic bit(18) level 3 in structure "symbol_template" packed packed unaligned dcl 839 in procedure "make_symbol_table" set ref 1181* 1257* 1321* 1337* 1391* 1472* 1474* location based bit(18) level 2 in structure "statement_map" packed packed unaligned dcl 16-1 in procedure "gen_statement_map" set ref 493* 524* location 3 based bit(18) level 3 in structure "runtime_symbol" packed packed unaligned dcl 17-3 in procedure "make_symbol_table" set ref 939* 940* 1003* 1006* 1136* 1149* 1192* 1215* 1216* 1282* 1288* 1292* 1325* 1399* 1419* 1502* 1523* 1551* 1552* 1855* location 5 based fixed bin(24,0) level 2 in structure "header" dcl 1-436 in procedure "fort_make_symbol_section" ref 1181 1391 1393 1393 location 1(18) based bit(18) level 2 in structure "statement" packed packed unaligned dcl 1-721 in procedure "fort_make_symbol_section" ref 480 485 493 location 5 based bit(18) level 2 in structure "opt_statement" packed packed unaligned dcl 2-176 in procedure "fort_make_symbol_section" ref 378 383 391 long_profile 114(02) based bit(1) level 4 in structure "shared_globals" packed packed unaligned dcl 143 in procedure "fort_make_symbol_section" ref 326 350 404 452 505 long_profile 3(06) based bit(1) level 3 in structure "pl1_symbol_block" packed packed unaligned dcl 9-1 in procedure "fort_make_symbol_section" set ref 326* long_profile_entry based structure level 1 dcl 12-12 ref 406 507 long_profile_header based structure level 1 dcl 12-4 set ref 352 454 lower 7 based fixed bin(35,0) array level 3 in structure "runtime_symbol" dcl 17-3 in procedure "make_symbol_table" set ref 1906* 1907 1909* lower 0(09) based bit(1) array level 3 in structure "dimension" packed packed unaligned dcl 1-383 in procedure "fort_make_symbol_section" ref 1903 lower_bound 5 based fixed bin(24,0) array level 3 dcl 1-383 ref 1909 ltrim builtin function dcl 131 ref 1393 m 000165 automatic fixed bin(18,0) dcl 245 in procedure "init_symbol" set ref 295* 297 298 299* m 000402 automatic fixed bin(18,0) dcl 635 in procedure "end_symbol" set ref 662* 667* 672* 677* 681* 681 687 main_program constant fixed bin(9,0) initial dcl 7-68 ref 580 map based bit(18) level 2 in structure "profile_entry" packed packed unaligned dcl 11-3 in procedure "fort_make_symbol_section" set ref 402* 428* 503* 529* map 2 based structure array level 2 in structure "source_map" dcl 14-3 in procedure "init_symbol" map 3 based structure level 2 in structure "runtime_block" packed packed unaligned dcl 17-38 in procedure "make_symbol_table" map 3(02) based bit(1) level 3 in structure "pl1_symbol_block" packed packed unaligned dcl 9-1 in procedure "fort_make_symbol_section" set ref 317* map 6 based structure level 2 in structure "pl1_symbol_block" packed packed unaligned dcl 9-1 in procedure "fort_make_symbol_section" map 6 based structure level 2 in structure "subprogram" packed packed unaligned dcl 1-753 in procedure "fort_make_symbol_section" map_ptr 000156 automatic pointer dcl 242 set ref 287* 288 289 297 298 299 map_start 000261 automatic fixed bin(18,0) dcl 344 in procedure "gen_opt_statement_map" set ref 358* 402 428 map_start 000313 automatic fixed bin(18,0) dcl 446 in procedure "gen_statement_map" set ref 460* 503 529 max builtin function dcl 131 ref 2043 max_len 000520 automatic fixed bin(18,0) dcl 816 set ref 873* 1575 2043* 2043 maxi_truncate 23 based bit(18) level 2 packed packed unaligned dcl 10-1 set ref 330* min builtin function dcl 131 ref 2038 min_len 000521 automatic fixed bin(18,0) dcl 817 set ref 872* 1575 2038* 2038 mini_truncate 22(18) based bit(18) level 2 packed packed unaligned dcl 10-1 set ref 647* misc_attributes 10(28) based structure level 3 packed packed unaligned dcl 1-844 mod builtin function dcl 131 ref 283 1108 mode 10(20) based structure level 4 packed packed unaligned dcl 1-844 mode_bits 10 based structure level 3 packed packed unaligned dcl 1-844 moved 4(06) based bit(1) level 3 packed packed unaligned dcl 2-176 ref 374 mult 001311 automatic fixed bin(18,0) dcl 1807 set ref 1872* 1874* 1887 1887 1905* 1915* 1923 1923* 1923 multiplier 11 based fixed bin(35,0) array level 3 dcl 17-3 set ref 1887* 1895* 1897* 1898 n 000522 automatic fixed bin(18,0) dcl 818 in procedure "make_symbol_table" set ref 2020* 2028* 2036* 2038 2043 2049 2052 2056 2059 2077 2083 2094 2098 n 000166 automatic fixed bin(18,0) dcl 245 in procedure "init_symbol" set ref 289* 291 295 n1 0(06) based bit(6) level 2 packed packed unaligned dcl 17-70 set ref 1844* n2 0(12) based bit(6) level 2 packed packed unaligned dcl 17-70 set ref 1844* n3 0(18) based bit(18) level 2 packed packed unaligned dcl 17-70 set ref 1845* name 1 based bit(18) level 2 in structure "runtime_symbol" packed packed unaligned dcl 17-3 in procedure "make_symbol_table" set ref 998* 1710* name 1 based structure level 2 in structure "runtime_token" dcl 17-63 in procedure "make_symbol_table" name 4(18) based fixed bin(17,0) level 2 in structure "label" packed packed unaligned dcl 1-530 in procedure "fort_make_symbol_section" ref 1544 1544 1546 name 20 based char level 2 in structure "symbol" dcl 1-844 in procedure "fort_make_symbol_section" ref 1259 1481 1487 2027 name 1 based bit(18) level 2 in structure "runtime_block" packed packed unaligned dcl 17-38 in procedure "make_symbol_table" set ref 1670* name_length 4(18) based fixed bin(17,0) level 2 in structure "header" packed packed unaligned dcl 1-436 in procedure "fort_make_symbol_section" ref 1492 1494 name_length 14(07) based fixed bin(17,0) level 2 in structure "symbol" packed packed unaligned dcl 1-844 in procedure "fort_make_symbol_section" ref 1259 1481 1487 2027 named_constant 11(06) based bit(1) level 4 packed packed unaligned dcl 1-844 ref 1316 namedup_is_error 001250 automatic bit(1) dcl 1687 set ref 1698* 1714 namelist 10(34) based bit(1) level 4 packed packed unaligned dcl 1-844 ref 1333 namelist_used 0(14) based bit(1) level 2 in structure "subprogram" packed packed unaligned dcl 1-753 in procedure "fort_make_symbol_section" ref 578 930 1050 namelist_used 115(01) based bit(1) level 4 in structure "shared_globals" packed packed unaligned dcl 143 in procedure "fort_make_symbol_section" ref 211 227 316 888 nd 001312 automatic fixed bin(6,0) dcl 1808 set ref 1863* 1864 1867 1883 1887 1895 1895 1897 1898 1906 1907 1909 1916 1917 1919 nd_sw parameter bit(1) dcl 1688 ref 1678 1698 ndims 0(18) based bit(6) level 2 packed packed unaligned dcl 17-3 set ref 1864* nentries 4 based fixed bin(17,0) level 2 dcl 12-4 set ref 354* 407* 407 456* 508* 508 next based bit(18) level 2 in structure "runtime_token" packed packed unaligned dcl 17-63 in procedure "make_symbol_table" set ref 1581* 2063 2068 2079* 2084* 2086* next 4 based fixed bin(18,0) level 2 in structure "source" packed packed unsigned unaligned dcl 1-693 in procedure "fort_make_symbol_section" ref 300 next 2 based bit(18) level 2 in structure "opt_statement" packed packed unaligned dcl 2-176 in procedure "fort_make_symbol_section" ref 379 382 416 next 3 based fixed bin(18,0) level 2 in structure "node" packed packed unsigned unaligned dcl 1-63 in procedure "fort_make_symbol_section" ref 1112 1153 1222 1424 1528 next 3(22) based bit(14) level 3 in structure "runtime_symbol" packed packed unaligned dcl 17-3 in procedure "make_symbol_table" set ref 1730* 1732* next 1 based bit(18) level 2 in structure "statement" packed packed unaligned dcl 1-721 in procedure "fort_make_symbol_section" ref 481 484 517 next_free_polish 41 based fixed bin(18,0) level 2 dcl 143 ref 876 877 next_label 3 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-530 ref 1557 next_member 7(18) based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-844 ref 625 1111 1152 1197 1422 1464 1526 next_stm_ptr 000306 automatic pointer dcl 442 in procedure "gen_statement_map" set ref 484* 485 next_stm_ptr 000254 automatic pointer dcl 340 in procedure "gen_opt_statement_map" set ref 382* 383 next_subprogram 1(18) based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-753 ref 418 519 1564 next_symbol 3 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-844 ref 590 950 1305 1346 node based structure level 1 dcl 1-63 node_type based fixed bin(4,0) level 2 packed packed unaligned dcl 1-63 ref 1092 1129 1177 1363 1443 not_found 001362 automatic bit(1) dcl 2006 set ref 2053* 2055 2059* 2065* null builtin function dcl 131 ref 928 935 1133 1146 1189 1211 1278 1326 1416 1520 1720 1826 2047 2049 2066 2077 2081 number based fixed bin(18,0) level 2 in structure "ok_list" dcl 602 in procedure "make_ok_lists" set ref 617* number 1 based fixed bin(17,0) level 2 in structure "source_map" dcl 14-3 in procedure "init_symbol" set ref 289* number_of_dims 0(05) based fixed bin(3,0) level 2 packed packed unaligned dcl 1-383 ref 1863 number_of_lines 53 based fixed bin(17,0) level 2 dcl 143 ref 195 number_of_source_segments 52 based fixed bin(8,0) level 2 dcl 143 ref 289 object_base 4 based pointer level 2 dcl 143 ref 201 564 565 586 613 object_created 6 based fixed bin(71,0) level 2 dcl 10-1 set ref 263 265* object_max_len 36 based fixed bin(19,0) level 2 dcl 143 ref 880 1642 1702 1869 objectname 42 based varying char(32) level 2 dcl 149 set ref 319 319 967* 967* octal_string 001516 automatic char(12) dcl 2167 set ref 2171* 2172 off 000523 automatic fixed bin(18,0) dcl 819 set ref 998* 1001* 1017 1571* 1581 1581 1581 1582* 1589 1592* 1602* 1605 1612* 1615 offset 1(03) based fixed bin(14,0) level 3 in structure "symbol" packed packed unaligned dcl 1-844 in procedure "fort_make_symbol_section" ref 548 1257 1472 1474 1992 1996 offset 1 based bit(18) array level 2 in structure "ok_list" packed packed unaligned dcl 602 in procedure "make_ok_lists" set ref 618* 622* offset 1 based fixed bin(18,0) array level 2 in structure "symbols" packed packed unsigned unaligned dcl 847 in procedure "make_symbol_table" set ref 1751* 1777 offset 1 based bit(18) array level 2 in structure "ok_list_reloc" packed packed unaligned dcl 606 in procedure "make_ok_lists" set ref 619* 623* offset 17 based fixed bin(24,0) level 2 in structure "symbol" dcl 1-844 in procedure "fort_make_symbol_section" ref 1103 1108 1191 1418 1462 1522 offset 5 based fixed bin(35,0) level 2 in structure "runtime_symbol" dcl 17-3 in procedure "make_symbol_table" set ref 1108* 1191* 1418* 1522* ok_list based structure level 1 dcl 602 ok_list_reloc based structure level 1 dcl 606 old_id 000315 automatic bit(27) packed unaligned dcl 448 in procedure "gen_statement_map" set ref 467* 476 490* old_id 000263 automatic bit(27) packed unaligned dcl 346 in procedure "gen_opt_statement_map" set ref 365* 374 388* operand_base 2 based pointer level 2 dcl 143 ref 296 364 466 547 553 554 582 611 622 927 930 945 1046 1052 1052 1052 1052 1090 1099 1127 1142 1175 1185 1237 1312 1318 1361 1412 1441 1462 1464 1516 1542 1845 1845 1861 1878 1878 1932 1932 opt_statement based structure level 1 dcl 2-176 optimize 113(01) based bit(1) level 4 packed packed unaligned dcl 143 ref 218 options 113 based structure level 2 dcl 143 options_string 64 based varying char(256) level 2 dcl 149 set ref 276* owner 12 based bit(18) level 2 packed packed unaligned dcl 17-38 set ref 1064* owner_flag 0(04) based bit(1) level 2 in structure "runtime_block" packed packed unaligned dcl 17-38 in procedure "make_symbol_table" set ref 1059* owner_flag 0(04) 000560 automatic bit(1) level 2 in structure "block_template" packed packed unaligned dcl 841 in procedure "make_symbol_table" set ref 1042* p 000372 automatic pointer dcl 634 in procedure "end_symbol" set ref 655* 689* p 000334 automatic pointer dcl 543 in procedure "fill_sym_info_into_entries" set ref 580* 582* 585 packed 0(25) based bit(1) level 3 in structure "runtime_symbol" packed packed unaligned dcl 17-3 in procedure "make_symbol_table" set ref 1107* packed 0(25) 000546 automatic bit(1) level 3 in structure "symbol_template" packed packed unaligned dcl 839 in procedure "make_symbol_table" set ref 1249* 1269* 1373* 1408* 1453* 1512* parent 7 based fixed bin(18,0) level 2 in structure "symbol" packed packed unsigned unaligned dcl 1-844 in procedure "fort_make_symbol_section" ref 554 930 parent 001235 automatic fixed bin(18,0) dcl 1632 in procedure "allocate_block" set ref 1638* 1651 1653* 1659 1659 1664 pathname 5 based varying char(256) level 2 in structure "source" dcl 1-693 in procedure "fort_make_symbol_section" set ref 297* pathname 2 based structure array level 3 in structure "source_map" packed packed unaligned dcl 14-3 in procedure "init_symbol" set ref 297* pl1_symbol_block based structure level 1 dcl 9-1 set ref 310 pointer_pos 000525 automatic fixed bin(18,0) dcl 821 set ref 1263* 1282 1397* 1419 1500* 1523 polish based fixed bin(18,0) array dcl 108 set ref 474 617 621 622 876 polish_base based pointer level 2 dcl 143 ref 474 617 621 622 876 polish_max_len 34 based fixed bin(19,0) level 2 dcl 143 ref 877 pp 000252 automatic pointer dcl 340 in procedure "gen_opt_statement_map" set ref 353* 354 407 407 pp 000304 automatic pointer dcl 442 in procedure "gen_statement_map" set ref 455* 456 508 508 print_message 1530 based entry variable level 2 dcl 143 ref 1642 1702 1718 1729 1748 1869 profile 113(20) based bit(1) level 5 in structure "shared_globals" packed packed unaligned dcl 143 in procedure "fort_make_symbol_section" ref 207 210 profile 3 based bit(1) level 3 in structure "pl1_symbol_block" packed packed unaligned dcl 9-1 in procedure "fort_make_symbol_section" set ref 323* profile 5(18) based bit(18) level 2 in structure "pl1_symbol_block" packed packed unaligned dcl 9-1 in procedure "fort_make_symbol_section" set ref 324* 325* profile_entry based structure level 1 dcl 11-3 set ref 410 511 profile_offset 12 based fixed bin(18,0) level 2 dcl 159 ref 190 profile_pos 000262 automatic fixed bin(18,0) dcl 345 in procedure "gen_opt_statement_map" set ref 352* 356* 402 406* 406 410* 410 428 profile_pos 000314 automatic fixed bin(18,0) dcl 447 in procedure "gen_statement_map" set ref 454* 458* 503 507* 507 511* 511 529 profile_start 000126 automatic fixed bin(18,0) dcl 83 set ref 190* 324 352 353 356 454 455 458 ptr builtin function dcl 131 ref 382 484 put_in_map 4 based bit(1) level 3 in structure "opt_statement" packed packed unaligned dcl 2-176 in procedure "fort_make_symbol_section" ref 374 put_in_map 3 based bit(1) level 3 in structure "statement" packed packed unaligned dcl 1-721 in procedure "fort_make_symbol_section" ref 476 put_in_profile 4(01) based bit(1) level 3 in structure "opt_statement" packed packed unaligned dcl 2-176 in procedure "fort_make_symbol_section" ref 374 399 put_in_profile 3(01) based bit(1) level 3 in structure "statement" packed packed unaligned dcl 1-721 in procedure "fort_make_symbol_section" ref 476 500 put_in_symtab 0(34) based bit(1) level 3 packed packed unaligned dcl 1-844 ref 1823 1942 q 000302 automatic pointer dcl 442 in procedure "gen_statement_map" set ref 492* 493 494 495 496 523* 524 525 q 000250 automatic pointer dcl 340 in procedure "gen_opt_statement_map" set ref 390* 391 392 393 395 422* 423 424 q 000356 automatic pointer dcl 600 in procedure "make_ok_lists" set ref 613* 617 618 622 qr 000360 automatic pointer dcl 600 set ref 614* 619 623 quadruple_base 6 based pointer level 2 dcl 143 ref 372 quads based fixed bin(18,0) array dcl 108 set ref 372 quick 0(01) based bit(1) level 2 in structure "runtime_block" packed packed unaligned dcl 17-38 in procedure "make_symbol_table" set ref 1058* quick 0(01) 000560 automatic bit(1) level 2 in structure "block_template" packed packed unaligned dcl 841 in procedure "make_symbol_table" set ref 1041* rands based fixed bin(18,0) array dcl 108 set ref 296 364 466 547 553 554 582 611 622 927 930 945 1046 1052 1052 1052 1052 1090 1099 1127 1142 1175 1185 1237 1312 1318 1361 1412 1441 1462 1464 1516 1542 1845 1845 1861 1878 1878 1932 1932 rc_is18 constant bit(18) initial packed unaligned dcl 13-6 ref 325 1136 1149 1399 1502 rc_lp18 constant bit(18) initial packed unaligned dcl 13-6 ref 567 1192 1216 rc_s 010442 constant bit(18) initial packed unaligned dcl 13-6 ref 568 587 619 623 rc_t constant bit(18) initial packed unaligned dcl 13-6 ref 397 426 498 527 940 1006 1325 1552 rel builtin function dcl 131 ref 940 998 1006 1136 1149 1192 1216 1325 1399 1502 1552 1602 1612 1653 2056 2079 2086 rel_bit_count 1 based fixed bin(18,0) level 2 dcl 642 set ref 704 714* 736 741 rel_bits 000524 automatic bit(18) packed unaligned dcl 820 set ref 990* 990* 991* 1600* 1600* 1601* rel_bits2 000526 automatic bit(18) packed unaligned dcl 822 set ref 1610* 1610* 1611* rel_def 21 based bit(18) level 2 packed packed unaligned dcl 10-1 set ref 668* rel_link 21(18) based bit(18) level 2 packed packed unaligned dcl 10-1 set ref 673* rel_symbol 22 based bit(18) level 2 packed packed unaligned dcl 10-1 set ref 678* rel_text 20(18) based bit(18) level 2 packed packed unaligned dcl 10-1 set ref 663* relbits 2 based bit level 2 packed packed unaligned dcl 642 set ref 704* 736* 741* relinfo based structure level 1 dcl 642 set ref 717 reloc based bit(36) array dcl 108 set ref 397* 426* 498* 527* reloc_halfs based structure array level 1 dcl 124 reloc_in based structure level 1 dcl 639 relocatable 113(24) based bit(1) level 4 packed packed unaligned dcl 143 ref 655 relocation_base 12 based pointer level 2 dcl 143 ref 202 567 568 587 614 655 940 1006 1136 1149 1192 1216 1325 1399 1502 1552 right 0(18) based bit(18) array level 2 in structure "reloc_halfs" packed packed unaligned dcl 124 in procedure "fort_make_symbol_section" set ref 568* right 0(18) based fixed bin(17,0) array level 2 in structure "text_halfs" packed packed unaligned dcl 117 in procedure "fort_make_symbol_section" set ref 565* root 5 based bit(18) level 2 in structure "pl1_symbol_block" packed packed unaligned dcl 9-1 in procedure "fort_make_symbol_section" set ref 1654* root 000527 automatic fixed bin(18,0) dcl 823 in procedure "make_symbol_table" set ref 903* 907 909 930* 954* 967* 988 1600 runtime 13(25) based bit(18) level 2 in structure "symbol" packed packed unaligned dcl 1-844 in procedure "fort_make_symbol_section" set ref 618 622 1343* 1942* runtime 7(18) based fixed bin(18,0) level 2 in structure "subprogram" packed packed unsigned unaligned dcl 1-753 in procedure "fort_make_symbol_section" set ref 558 565 586 1054* runtime_block based structure level 1 dcl 17-38 set ref 903 967 1052 1052 runtime_symbol based structure level 1 dcl 17-3 set ref 1719* runtime_token based structure level 1 dcl 17-63 set ref 2098 s 000332 automatic pointer dcl 543 in procedure "fill_sym_info_into_entries" set ref 547* 548 549 549 553* 554 560 580 582 590 s 000354 automatic pointer dcl 600 in procedure "make_ok_lists" set ref 611* 612 615 618 625 scale 0(28) 000546 automatic bit(8) level 2 packed packed unaligned dcl 839 set ref 1251* 1376* 1456* segname 7 based structure level 2 packed packed unaligned dcl 9-1 set ref 319* set_address 001313 automatic bit(1) dcl 1809 set ref 1819* 1855 shared_global_ptr 000130 automatic pointer dcl 83 set ref 176* 195 195 195 201 202 207 207 207 210 211 211 218 227 289 293 296 316 326 350 362 362 362 364 364 369 369 372 372 404 452 464 464 464 466 466 471 471 474 474 505 547 552 553 554 564 565 567 568 572 582 586 587 611 613 614 617 621 622 622 655 655 806 876 876 877 877 880 882 883 888 926 927 930 940 945 1006 1045 1045 1045 1046 1046 1052 1052 1052 1052 1090 1099 1127 1136 1142 1149 1175 1185 1192 1216 1237 1312 1318 1325 1361 1399 1412 1441 1462 1464 1502 1516 1542 1552 1642 1642 1702 1702 1718 1729 1748 1845 1845 1861 1869 1869 1878 1878 1932 1932 shared_globals based structure level 1 dcl 143 simple 0(26) based bit(1) level 3 in structure "runtime_symbol" packed packed unaligned dcl 17-3 in procedure "make_symbol_table" set ref 1106* 1865* simple 0(26) 000546 automatic bit(1) level 3 in structure "symbol_template" packed packed unaligned dcl 839 in procedure "make_symbol_table" set ref 869* 1182* 1207* 1233* 1250* 1268* 1303* 1320* 1336* 1375* 1409* 1455* 1513* simple_len constant fixed bin(18,0) initial dcl 824 set ref 930* 948 1001* 1028 1094* 1101* 1131* 1144* 1187 1209* 1260* 1264 1273* 1323* 1330 1340* 1344 1394* 1398 1414 1497* 1501 1518 1547* 1867 size 4 000546 automatic fixed bin(35,0) level 2 in structure "symbol_template" dcl 839 in procedure "make_symbol_table" set ref 1252* 1377* 1457* size 1 based fixed bin(9,0) level 3 in structure "runtime_token" packed packed unsigned unaligned dcl 17-63 in procedure "make_symbol_table" set ref 1017 1718 1718 1729 1729 2093* 2094 size builtin function dcl 251 in procedure "init_symbol" ref 258 291 310 size builtin function dcl 131 in procedure "fort_make_symbol_section" ref 352 406 410 413 431 454 507 511 514 532 717 size builtin function dcl 825 in procedure "make_symbol_table" ref 903 967 1052 1052 2098 size 7 based fixed bin(24,0) array level 3 in structure "dimension" dcl 1-383 in procedure "fort_make_symbol_section" ref 1923 size 4 based fixed bin(35,0) level 2 in structure "runtime_symbol" dcl 17-3 in procedure "make_symbol_table" set ref 1328* 1841 1847* 1849* son 2(18) based bit(18) level 2 in structure "runtime_block" packed packed unaligned dcl 17-38 in procedure "make_symbol_table" set ref 1610 1618 1659* son 2(18) based bit(18) level 2 in structure "runtime_symbol" packed packed unaligned dcl 17-3 in procedure "make_symbol_table" set ref 945* 995 1003 1004* source based structure level 1 dcl 1-693 source_id 3 based structure level 2 in structure "opt_statement" packed packed unaligned dcl 2-176 in procedure "fort_make_symbol_section" ref 374 388 392 source_id 0(18) based structure level 2 in structure "statement_map" packed packed unaligned dcl 16-1 in procedure "gen_statement_map" set ref 494* 525* source_id 2 based structure level 2 in structure "statement" packed packed unaligned dcl 1-721 in procedure "fort_make_symbol_section" ref 476 490 494 source_id 0(18) based structure level 2 in structure "statement_map" packed packed unaligned dcl 15-1 in procedure "gen_opt_statement_map" set ref 392* 424* source_index 000164 automatic fixed bin(18,0) dcl 244 set ref 293* 296 300* source_info 1(09) based structure level 2 in structure "statement_map" packed packed unaligned dcl 16-1 in procedure "gen_statement_map" source_info 1(09) based structure level 2 in structure "statement_map" packed packed unaligned dcl 15-1 in procedure "gen_opt_statement_map" source_line_base 16 based pointer level 2 dcl 143 ref 195 source_list based structure array level 1 dcl 3-31 set ref 195 source_map 16 based bit(18) level 2 in structure "std_symbol_header" packed packed unaligned dcl 10-1 in procedure "fort_make_symbol_section" set ref 285* source_map based structure level 1 dcl 14-3 in procedure "init_symbol" set ref 291 sp 000530 automatic pointer dcl 826 in procedure "make_symbol_table" set ref 927* 930 930* 930* 939* 945 945 950 1001* 1003 1006 1090* 1092 1094* 1098 1112 1127* 1129 1131* 1141 1153 1175* 1177 1181 1184 1200 1209* 1209* 1215* 1222 1237* 1239 1257 1259 1273* 1280 1286 1288* 1292 1305 1312* 1316 1316 1318 1319 1323* 1328 1333 1340* 1340* 1343 1346 1361* 1363 1379 1391 1393 1393 1399 1411 1424 1441* 1443 1462 1468 1477 1483 1492 1494 1502 1502 1515 1528 1542* 1544 1544 1544 1546 1551 1557 1598* 1601* 1601 1602 1605 1608 1610 1618 sp 000160 automatic pointer dcl 242 in procedure "init_symbol" set ref 296* 297 298 299 300 sp2 000532 automatic pointer dcl 827 set ref 1099* 1101* 1103 1103 1103 1103 1103 1108 1111 1142* 1144* 1152 1185* 1187* 1191 1197 1318* 1319 1321 1328 1412* 1414* 1418 1422 1462* 1462* 1464 1468 1468 1468 1472 1472 1474 1474 1481 1487 1516* 1518* 1522 1526 1608* 1611* 1611 1612 1615 1617 stack_indirect 0(19) based bit(1) level 3 packed packed unaligned dcl 1-844 ref 1286 1994 stack_offset 001314 automatic fixed bin(18,0) dcl 1810 set ref 1878* 1895 1897 1906 1916 standard 0(03) 000560 automatic bit(1) level 2 packed packed unaligned dcl 841 set ref 861* star_extents 11(09) based bit(1) level 3 packed packed unaligned dcl 1-844 ref 1839 1878 1895 star_symbol 000337 automatic fixed bin(18,0) dcl 544 set ref 548* 549* 549 564 star_symbol_link 13 based fixed bin(18,0) level 2 in structure "symtab_parameters" dcl 159 in procedure "fort_make_symbol_section" ref 191 star_symbol_link 000132 automatic fixed bin(18,0) dcl 83 in procedure "fort_make_symbol_section" set ref 191* 547 start 4(09) based fixed bin(26,0) level 2 in structure "opt_statement" packed packed unaligned dcl 2-176 in procedure "fort_make_symbol_section" ref 393 start 3(09) based fixed bin(26,0) level 2 in structure "statement" packed packed unaligned dcl 1-721 in procedure "fort_make_symbol_section" ref 495 start 0(18) based bit(18) level 2 in structure "runtime_block" packed packed unaligned dcl 17-38 in procedure "make_symbol_table" set ref 990 1009* 1779* start 1(09) based bit(18) level 3 in structure "statement_map" packed packed unaligned dcl 16-1 in procedure "gen_statement_map" set ref 495* start 1(09) based bit(18) level 3 in structure "statement_map" packed packed unaligned dcl 15-1 in procedure "gen_opt_statement_map" set ref 393* stat_boundary 15(18) based bit(18) level 2 packed packed unaligned dcl 10-1 set ref 278* statement based structure level 1 dcl 1-721 statement_map based structure level 1 dcl 15-1 in procedure "gen_opt_statement_map" set ref 413 431 statement_map based structure level 1 dcl 16-1 in procedure "gen_statement_map" set ref 514 532 static 0(34) based bit(1) level 4 packed packed unaligned dcl 1-436 ref 1379 1399 1477 1502 std_symbol_header based structure level 1 dcl 10-1 set ref 258 stm 000300 automatic pointer dcl 442 in procedure "gen_statement_map" set ref 474* 476 476 476 480 481 484 484 490 493 494 495 496 500 517 stm 000246 automatic pointer dcl 340 in procedure "gen_opt_statement_map" set ref 372* 374 374 374 374 378 379 382 382 388 391 392 393 395 399 416 storage_class 0(33) based structure level 3 in structure "header" packed packed unaligned dcl 1-436 in procedure "fort_make_symbol_section" storage_class 11 based structure level 3 in structure "symbol" packed packed unaligned dcl 1-844 in procedure "fort_make_symbol_section" storage_info 13 based structure array level 2 dcl 1-753 str 001363 automatic varying char(256) dcl 2007 in procedure "get_acc_str" set ref 2019* 2020 2027* 2028 2035* 2036 2056 2059 2094 str 1(09) based char level 2 in structure "acc" packed packed unaligned dcl 2012 in procedure "get_acc_str" ref 2056 2059 str parameter varying char dcl 752 in procedure "store_string" ref 749 757 761 761 762 763 str_p based pointer array level 2 packed packed unaligned dcl 847 set ref 1749* 2142 2142 2144 2144 2144 2144 string builtin function dcl 828 in procedure "make_symbol_table" ref 1544 string 1(09) based char level 3 in structure "runtime_token" packed packed unaligned dcl 17-63 in procedure "make_symbol_table" set ref 1718* 1729* 2094* string builtin function dcl 131 in procedure "fort_make_symbol_section" set ref 272* 274* 276* 297* 319* 525* subprogram based structure level 1 dcl 1-753 subprogram_type 0(05) based fixed bin(3,0) level 2 packed packed unaligned dcl 1-753 ref 580 substr builtin function dcl 131 set ref 704* 704 736* 741* 760* 763* 1468* 1547 1547 1547 1547 1732 1851 1866 1898* 1907* 1917* 1934* 1980 2094* swap 001502 automatic structure level 1 dcl 2110 set ref 2150* 2152 swap_em 001500 automatic bit(1) dcl 2107 set ref 2136* 2138 2140* 2142* 2144* 2148 sym 000336 automatic fixed bin(18,0) dcl 544 in procedure "fill_sym_info_into_entries" set ref 552* 552* 553* sym 000352 automatic fixed bin(18,0) dcl 599 in procedure "make_ok_lists" set ref 610* 610* 611* sym_base 000134 automatic pointer dcl 83 set ref 201* 257 287 307 330 390 422 492 523 647 653 663 668 673 678 725 761 988 1011 1017 1581 1598 1645 1653 1659 1661 1704 1714 1718 1724 1729 1735 1781 2052 2084 2086 2090 sym_blk 001251 automatic fixed bin(18,0) dcl 1689 set ref 1697* 1739 sym_max_len 000536 automatic fixed bin(18,0) dcl 831 set ref 880* 1642 1702 1869 sym_name 001252 automatic fixed bin(18,0) dcl 1690 set ref 1695* 1710 1714 1718 1724 1724 1729 1735 1735 sym_node parameter pointer dcl 2008 ref 2024 2027 sym_pos 000136 automatic fixed bin(18,0) dcl 83 set ref 203* 233 258* 283* 283 283 285 287 291* 291 305 307 308 310* 310 330 358 359 367 390 397 402 413* 413 417 422 426 428 431* 431 433 460 461 469 492 498 503 514* 514 518 523 527 529 532* 532 534 647 652 653 658 718* 718 725 760 761 762* 762 948* 948 1009 1011 1013 1024 1028* 1028 1060* 1060 1095* 1095 1110* 1110 1135* 1135 1148* 1148 1195* 1195 1219* 1219 1263 1264* 1264 1282 1297* 1297 1330* 1330 1343 1344* 1344 1397 1398* 1398 1419 1420* 1420 1500 1501* 1501 1523 1524* 1524 1555* 1555 1642 1644 1647* 1647 1702 1704 1710 1726 1735 1739 1751 1869 1942 2075 2077 2083 2084 2086 2090 2091 2098* 2098 sym_ptr 000374 automatic pointer dcl 634 in procedure "end_symbol" set ref 653* 683 704 714 717 719* 719 736 741 sym_ptr parameter pointer dcl 1691 in procedure "allocate_symbol" set ref 1678 1705* 1720* sym_ptr 000154 automatic pointer dcl 242 in procedure "init_symbol" set ref 257* 260 261 262 263 265 267 272 274 276 278 278 285 305 307* 312 313 314 316 317 319 323 324 326 sym_rel_bit_count 000404 automatic fixed bin(27,0) dcl 637 set ref 652* 677 sym_reloc_base 000140 automatic pointer dcl 83 set ref 202* 308 397 426 498 527 655 sym_reloc_ptr 000162 automatic pointer dcl 242 set ref 308* 325 sym_sec based fixed bin(18,0) array dcl 829 set ref 988 1011 1017 1581 1645 1659 1661 1704 1714 1718 1724 1729 1735 1781 2052 2084 2086 2090 symb 001316 automatic pointer dcl 1811 set ref 1817* 1823 1823 1830* 1830* 1835 1837 1839 1845 1845 1847 1849 1851 1855* 1859 1861 1866 1872 1872 1878 1878 1878 1878 1895 1942 1942 symbol based structure level 1 dcl 1-844 in procedure "fort_make_symbol_section" symbol 0(18) based fixed bin(18,0) level 2 in structure "subprogram" packed packed unsigned unaligned dcl 1-753 in procedure "fort_make_symbol_section" ref 1052 1052 1052 1052 symbol_node constant fixed bin(4,0) initial dcl 7-87 ref 1092 1129 symbol_ptr parameter pointer dcl 1990 ref 1987 1992 1992 1992 1994 1994 1996 symbol_template 000546 automatic structure level 1 dcl 839 set ref 865* 1299* 1706 symbols based structure array level 1 dcl 847 set ref 2150 2151* 2151 2152* symp 000534 automatic pointer dcl 830 set ref 928* 930* 935 939 940 945 988* 990 991* 991 995 998 998 1003 1004 1030 1094* 1101* 1105 1106 1107 1108 1131* 1133 1136 1144* 1146 1149 1187* 1189 1191 1192 1209* 1211 1215 1216 1260* 1273* 1278 1282 1283 1288 1289 1292 1294 1323* 1325 1326 1328 1340* 1394* 1399 1414* 1416 1418 1419 1497* 1502 1518* 1520 1522 1523 1547* 1551 1552 symrel 000137 automatic fixed bin(18,0) dcl 83 set ref 179* 201 202 880 998 1602 1612 1653 2056 2075 symtab_base 000540 automatic pointer dcl 832 set ref 876* 1749 1750 1751 1777 1787 2142 2142 2142 2142 2144 2144 2144 2144 2144 2144 2144 2144 2150 2151 2151 2152 symtab_max 000542 automatic fixed bin(18,0) dcl 833 set ref 877* 1748 1748 symtab_param_ptr 000142 automatic pointer dcl 83 set ref 178* 183 184 185 186 187 188 189 190 191 192 symtab_parameters based structure level 1 dcl 159 system_options 115 based structure level 3 dcl 143 table 113(19) based bit(1) level 5 in structure "shared_globals" packed packed unaligned dcl 143 in procedure "fort_make_symbol_section" ref 207 211 883 table 3(01) based bit(1) level 3 in structure "pl1_symbol_block" packed packed unaligned dcl 9-1 in procedure "fort_make_symbol_section" set ref 887* text_boundary 15 based bit(18) level 2 packed packed unaligned dcl 10-1 set ref 278* text_halfs based structure array level 1 dcl 117 text_pos 000353 automatic fixed bin(18,0) dcl 599 in procedure "make_ok_lists" set ref 612* 613 614 text_pos 000144 automatic fixed bin(18,0) dcl 83 in procedure "fort_make_symbol_section" set ref 186* 662 text_pos 000340 automatic fixed bin(18,0) dcl 545 in procedure "fill_sym_info_into_entries" set ref 560* 564 565 567 568 574 575 585* 586 587 text_ref constant bit(4) initial dcl 834 ref 923 1538 tkn_len 000543 automatic fixed bin(9,0) dcl 835 set ref 1017* 1020 1750 2020* 2028* 2036* 2093 tkn_off 001464 automatic fixed bin(18,0) dcl 2009 set ref 2091* 2099 tkn_ptr 000544 automatic pointer dcl 836 set ref 1749 2049* 2052* 2056 2056 2059 2062 2063 2066* 2068* 2068 2068 2081 2086 2090* 2092 2093 2094 2098 token 7 based bit(18) array level 2 packed packed unaligned dcl 17-38 set ref 1605* 1615* token_list 000573 automatic structure array level 1 dcl 843 set ref 872 874* type 0(06) based bit(6) level 2 in structure "runtime_symbol" packed packed unaligned dcl 17-3 in procedure "make_symbol_table" set ref 1835* type 0(06) 000546 automatic bit(6) level 2 in structure "symbol_template" packed packed unaligned dcl 839 in procedure "make_symbol_table" set ref 922* 987* 1205* 1245* 1335* 1369* 1449* 1537* type 0(06) 000560 automatic bit(6) level 2 in structure "block_template" packed packed unaligned dcl 841 in procedure "make_symbol_table" set ref 862* uid 3 based bit(36) array level 3 in structure "source_map" dcl 14-3 in procedure "init_symbol" set ref 298* uid 1 based bit(36) level 2 in structure "source" dcl 1-693 in procedure "fort_make_symbol_section" ref 298 units 2 based fixed bin(3,0) level 2 in structure "symbol" packed packed unsigned unaligned dcl 1-844 in procedure "fort_make_symbol_section" ref 1851 1866 units 0(04) based bit(2) level 2 in structure "runtime_symbol" packed packed unaligned dcl 17-3 in procedure "make_symbol_table" set ref 1851* units 0(04) 000546 automatic bit(2) level 2 in structure "symbol_template" packed packed unaligned dcl 839 in procedure "make_symbol_table" set ref 1244* 1368* 1448* unspec builtin function dcl 131 set ref 374 388 392* 392 424* 476 490 494* 494 857* 865* 874* 945 1065 1299* 1393 1393 1468 1551 1570* 1646* 1646 1706* 1706 1719* 1851 1866 1898 1907 1917 1934 upper 10 based fixed bin(35,0) array level 3 in structure "runtime_symbol" dcl 17-3 in procedure "make_symbol_table" set ref 1916* 1917 1919* upper 0(10) based bit(1) array level 3 in structure "dimension" packed packed unaligned dcl 1-383 in procedure "fort_make_symbol_section" ref 1913 upper_bound 6 based fixed bin(24,0) array level 3 dcl 1-383 ref 1919 usage 0(30) based structure level 3 packed packed unaligned dcl 1-530 ref 1544 user_options 113 based structure level 3 dcl 143 userid 13 based structure level 2 packed packed unaligned dcl 10-1 set ref 274* v_bound 0(09) based structure array level 2 packed packed unaligned dcl 1-383 v_length 6 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-844 ref 1845 1845 1872 value parameter fixed bin(18,0) dcl 1953 ref 1950 1955 1958 1961 1966 1969 var 001320 automatic pointer dcl 1812 set ref 1830* 1835 1841 1847 1849 1851 1855 1864 1865 1866 1887 1895 1897 1898 1906 1907 1909 1916 1917 1919 1932 1934 1936 1946 variable_extents 0(32) based bit(1) level 3 packed packed unaligned dcl 1-844 ref 1878 variable_virtual_origin 0(26) based bit(1) level 2 packed packed unaligned dcl 1-383 ref 1930 verify builtin function dcl 131 ref 1547 1547 1547 1547 version based fixed bin(18,0) level 2 in structure "relinfo" dcl 642 in procedure "end_symbol" set ref 683* version based fixed bin(17,0) level 2 in structure "source_map" dcl 14-3 in procedure "init_symbol" set ref 288* version based fixed bin(17,0) level 2 in structure "pl1_symbol_block" dcl 9-1 in procedure "fort_make_symbol_section" set ref 312* version_name_and_number 000167 automatic varying char(148) dcl 247 set ref 269* 272* virtual_org 6 based fixed bin(35,0) level 2 dcl 17-3 set ref 1932* 1934 1936* virtual_origin 1 based fixed bin(24,0) level 2 dcl 1-383 ref 1932 1932 1936 vsegname defined varying char(32) dcl 108 set ref 319* vstr parameter varying char(32) dcl 2010 ref 2032 2035 vuser_id 53 based varying char(32) level 2 dcl 149 set ref 274* words based bit(36) array dcl 837 set ref 1646* 1706* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. EOS_token internal static bit(9) initial dcl 7-156 add_op internal static fixed bin(18,0) initial dcl 7-197 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 18-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 18-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 18-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 18-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 18-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 18-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 18-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 18-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 18-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 18-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 18-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 18-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 18-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 18-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 18-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 18-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 18-25 allocate_symbol_name automatic fixed bin(17,0) dcl 1-525 and internal static bit(9) initial dcl 7-156 and_op internal static fixed bin(18,0) initial dcl 7-197 apostrophe internal static bit(9) initial dcl 7-156 area_dtype internal static fixed bin(17,0) initial dcl 18-25 arg_desc based structure level 1 dcl 1-130 arg_desc_node internal static fixed bin(4,0) initial dcl 7-87 array_ref based structure level 1 dcl 1-155 array_ref_node internal static fixed bin(4,0) initial dcl 7-87 array_ref_type internal static fixed bin(4,0) initial dcl 7-120 assign internal static bit(9) initial dcl 7-156 assign_label_op internal static fixed bin(18,0) initial dcl 7-197 assign_op internal static fixed bin(18,0) initial dcl 7-197 asterisk internal static bit(9) initial dcl 7-156 backspace_op internal static fixed bin(18,0) initial dcl 7-197 bif internal static fixed bin(4,0) initial dcl 7-120 bit_dtype internal static fixed bin(17,0) initial dcl 18-25 bit_units internal static fixed bin(3,0) initial dcl 7-136 bits_per_char internal static fixed bin(9,0) initial dcl 7-68 blank_common_name internal static char(8) initial dcl 7-79 block_data internal static fixed bin(9,0) initial dcl 7-68 block_data_op internal static fixed bin(18,0) initial dcl 7-197 block_if_op internal static fixed bin(18,0) initial dcl 7-197 builtin_op internal static fixed bin(18,0) initial dcl 7-197 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 18-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 18-25 c_typeref_dtype internal static fixed bin(17,0) initial dcl 18-25 c_union_dtype internal static fixed bin(17,0) initial dcl 18-25 call_op internal static fixed bin(18,0) initial dcl 7-197 cat_op internal static fixed bin(18,0) initial dcl 7-197 chain based structure level 1 dcl 2-27 chain_op internal static fixed bin(18,0) initial dcl 7-197 char_constant_length automatic fixed bin(18,0) unsigned dcl 1-378 char_constant_node internal static fixed bin(4,0) initial dcl 7-87 char_dtype internal static fixed bin(17,0) initial dcl 18-25 char_mode internal static fixed bin(4,0) initial dcl 7-106 char_string internal static bit(9) initial dcl 7-156 char_units internal static fixed bin(3,0) initial dcl 7-136 chars_per_dw internal static fixed bin(9,0) initial dcl 7-68 chars_per_word internal static fixed bin(9,0) initial dcl 7-68 close_op internal static fixed bin(18,0) initial dcl 7-197 closefile_op internal static fixed bin(18,0) initial dcl 7-197 cmpx_mode internal static fixed bin(4,0) initial dcl 7-106 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 18-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 18-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 18-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 18-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 18-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 18-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 18-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 18-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 18-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 18-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 18-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 18-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 18-25 colon internal static bit(9) initial dcl 7-156 comma internal static bit(9) initial dcl 7-156 complex_const internal static bit(9) initial dcl 7-156 concat internal static bit(9) initial dcl 7-156 constant_node internal static fixed bin(4,0) initial dcl 7-87 constant_type internal static fixed bin(4,0) initial dcl 7-120 control_entry_offset internal static fixed bin(17,0) initial dcl 12-19 convert_to_cmpx_op internal static fixed bin(18,0) initial dcl 7-197 convert_to_dp_op internal static fixed bin(18,0) initial dcl 7-197 convert_to_int_op internal static fixed bin(18,0) initial dcl 7-197 convert_to_real_op internal static fixed bin(18,0) initial dcl 7-197 count_type internal static fixed bin(4,0) initial dcl 7-120 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 18-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 18-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 18-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 18-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 18-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 18-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 18-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 18-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 18-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 18-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 18-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 18-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 18-25 cross_reference based structure array level 1 dcl 3-8 data_type_size internal static fixed bin(17,0) initial array dcl 7-115 dec_int internal static bit(9) initial dcl 7-156 decode_string_op internal static fixed bin(18,0) initial dcl 7-197 default_main_entry_point_name internal static char(5) initial packed unaligned dcl 7-80 dfast_mask internal static bit(72) initial packed unaligned dcl 6-162 dimension_node internal static fixed bin(4,0) initial dcl 7-87 div_op internal static fixed bin(18,0) initial dcl 7-197 do_op internal static fixed bin(18,0) initial dcl 7-197 double_const internal static bit(9) initial dcl 7-156 dp_mode internal static fixed bin(4,0) initial dcl 7-106 dummy internal static fixed bin(4,0) initial dcl 7-120 dummy_entry_offset internal static fixed bin(17,0) initial dcl 12-19 edge based structure level 1 dcl 2-33 else_if_op internal static fixed bin(18,0) initial dcl 7-197 else_op internal static fixed bin(18,0) initial dcl 7-197 encode_string_op internal static fixed bin(18,0) initial dcl 7-197 end_label_op internal static fixed bin(18,0) initial dcl 7-197 endfile_op internal static fixed bin(18,0) initial dcl 7-197 endunit_op internal static fixed bin(18,0) initial dcl 7-197 entry_dtype internal static fixed bin(17,0) initial dcl 18-25 entry_type internal static fixed bin(4,0) initial dcl 7-120 eol_op internal static fixed bin(18,0) initial dcl 7-197 eq internal static bit(9) initial dcl 7-156 equal_op internal static fixed bin(18,0) initial dcl 7-197 equiv_op internal static fixed bin(18,0) initial dcl 7-197 eqv internal static bit(9) initial dcl 7-156 error internal static fixed bin(4,0) initial dcl 7-120 error_label_op internal static fixed bin(18,0) initial dcl 7-197 error_text based structure level 1 dcl 3-24 error_text_length automatic fixed bin(17,0) dcl 3-29 exit_op internal static fixed bin(18,0) initial dcl 7-197 expon internal static bit(9) initial dcl 7-156 exponentiation_op internal static fixed bin(18,0) initial dcl 7-197 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 18-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 18-125 external internal static fixed bin(4,0) initial dcl 7-120 false internal static bit(9) initial dcl 7-156 fast_mask internal static bit(72) initial packed unaligned dcl 6-168 file_dtype internal static fixed bin(17,0) initial dcl 18-25 fill_node internal static fixed bin(4,0) initial dcl 7-87 first_auto_loc internal static fixed bin(9,0) initial dcl 7-68 first_block_constant defined fixed bin(18,0) dcl 4-153 first_char_constant defined fixed bin(18,0) dcl 4-149 first_dw_constant defined fixed bin(18,0) dcl 4-145 first_word_constant defined fixed bin(18,0) dcl 4-141 flow_unit based structure level 1 dcl 2-46 form_VLA_packed_ptr_op internal static fixed bin(18,0) initial dcl 7-197 format_op internal static fixed bin(18,0) initial dcl 7-197 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 18-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 18-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 18-96 func_op internal static fixed bin(18,0) initial dcl 7-197 func_ref_op internal static fixed bin(18,0) initial dcl 7-197 function internal static fixed bin(9,0) initial dcl 7-68 gap_value internal static fixed bin(17,0) initial dcl 7-57 ge internal static bit(9) initial dcl 7-156 greater_op internal static fixed bin(18,0) initial dcl 7-197 greater_or_equal_op internal static fixed bin(18,0) initial dcl 7-197 gt internal static bit(9) initial dcl 7-156 halfword_units internal static fixed bin(3,0) initial dcl 7-136 ident internal static bit(9) initial dcl 7-156 increment_polish_op internal static fixed bin(18,0) initial dcl 7-197 input_to based structure level 1 dcl 2-87 inquire_op internal static fixed bin(18,0) initial dcl 7-197 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 18-125 int_mode internal static fixed bin(4,0) initial dcl 7-106 iostat_op internal static fixed bin(18,0) initial dcl 7-197 is_arith_constant internal static bit(9) initial dcl 7-147 is_constant internal static bit(9) initial dcl 7-147 is_operand internal static bit(9) initial dcl 7-147 is_operator internal static bit(9) initial dcl 7-147 item_op internal static fixed bin(18,0) initial dcl 7-197 jump_arithmetic_op internal static fixed bin(18,0) initial dcl 7-197 jump_assigned_op internal static fixed bin(18,0) initial dcl 7-197 jump_computed_op internal static fixed bin(18,0) initial dcl 7-197 jump_false_op internal static fixed bin(18,0) initial dcl 7-197 jump_logical_op internal static fixed bin(18,0) initial dcl 7-197 jump_op internal static fixed bin(18,0) initial dcl 7-197 jump_true_op internal static fixed bin(18,0) initial dcl 7-197 label_const internal static bit(9) initial dcl 7-156 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 18-125 label_dtype internal static fixed bin(17,0) initial dcl 18-25 label_node internal static fixed bin(4,0) initial dcl 7-87 label_op internal static fixed bin(18,0) initial dcl 7-197 last_assigned_mode internal static fixed bin(4,0) initial dcl 7-106 last_assigned_op internal static fixed bin(18,0) initial dcl 7-197 last_block_constant defined fixed bin(18,0) dcl 4-154 last_char_constant defined fixed bin(18,0) dcl 4-150 last_dw_constant defined fixed bin(18,0) dcl 4-146 last_word_constant defined fixed bin(18,0) dcl 4-142 lchain based structure level 1 dcl 2-94 le internal static bit(9) initial dcl 7-156 left_parn internal static bit(9) initial dcl 7-156 left_shift_op internal static fixed bin(18,0) initial dcl 7-197 less_op internal static fixed bin(18,0) initial dcl 7-197 less_or_equal_op internal static fixed bin(18,0) initial dcl 7-197 lhs_fld_op internal static fixed bin(18,0) initial dcl 7-197 library based structure level 1 dcl 1-605 library_node internal static fixed bin(4,0) initial dcl 7-87 listing_info based structure level 1 dcl 3-12 listing_seg based fixed bin(17,0) array dcl 3-22 load_preg_op internal static fixed bin(18,0) initial dcl 7-197 load_xreg_op internal static fixed bin(18,0) initial dcl 7-197 logical_const internal static bit(9) initial dcl 7-156 logical_mode internal static fixed bin(4,0) initial dcl 7-106 loop based structure level 1 dcl 2-100 loop_end_op internal static fixed bin(18,0) initial dcl 7-197 lt internal static bit(9) initial dcl 7-156 machine_state based structure level 1 dcl 1-620 machine_state_node internal static fixed bin(4,0) initial dcl 7-87 main_op internal static fixed bin(18,0) initial dcl 7-197 margin_op internal static fixed bin(18,0) initial dcl 7-197 max_char_length internal static fixed bin(10,0) initial dcl 7-77 max_error_level internal static fixed bin(17,0) initial dcl 7-64 max_fixed_bin_18 internal static fixed bin(18,0) initial dcl 7-58 max_fixed_bin_24 internal static fixed bin(24,0) initial dcl 7-59 max_num_of_rands internal static fixed bin(17,0) initial dcl 7-60 max_prec_single internal static fixed bin(9,0) initial dcl 7-68 minus internal static bit(9) initial dcl 7-156 mult_op internal static fixed bin(18,0) initial dcl 7-197 n_operands automatic fixed bin(17,0) dcl 2-171 namelist_op internal static fixed bin(18,0) initial dcl 7-197 ne internal static bit(9) initial dcl 7-156 neg_storage_add_op internal static fixed bin(18,0) initial dcl 7-197 negate_op internal static fixed bin(18,0) initial dcl 7-197 neqv internal static bit(9) initial dcl 7-156 no_op internal static fixed bin(18,0) initial dcl 7-197 no_token internal static bit(9) initial dcl 7-156 non_executable internal static fixed bin(18,0) initial dcl 7-197 not internal static bit(9) initial dcl 7-156 not_equal_op internal static fixed bin(18,0) initial dcl 7-197 not_equiv_op internal static fixed bin(18,0) initial dcl 7-197 not_op internal static fixed bin(18,0) initial dcl 7-197 num_args automatic fixed bin(17,0) dcl 1-150 num_dims automatic fixed bin(3,0) dcl 1-431 num_of_block_constants defined fixed bin(17,0) dcl 4-152 num_of_char_constants defined fixed bin(17,0) dcl 4-148 num_of_dw_constants defined fixed bin(17,0) dcl 4-144 num_of_word_constants defined fixed bin(17,0) dcl 4-140 octal_const internal static bit(9) initial dcl 7-156 offset_dtype internal static fixed bin(17,0) initial dcl 18-25 open_op internal static fixed bin(18,0) initial dcl 7-197 openfile_op internal static fixed bin(18,0) initial dcl 7-197 operator based structure level 1 dcl 2-144 opt_subscript_op internal static fixed bin(18,0) initial dcl 7-197 or internal static bit(9) initial dcl 7-156 or_op internal static fixed bin(18,0) initial dcl 7-197 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 18-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 18-132 pause_op internal static fixed bin(18,0) initial dcl 7-197 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 18-125 plus internal static bit(9) initial dcl 7-156 pointer based structure level 1 dcl 1-672 pointer_dtype internal static fixed bin(17,0) initial dcl 18-25 pointer_node internal static fixed bin(4,0) initial dcl 7-87 primary based structure level 1 dcl 2-234 proc_frame_node internal static fixed bin(4,0) initial dcl 7-87 process_param_list_op internal static fixed bin(18,0) initial dcl 7-197 range based structure level 1 dcl 2-243 rc_a internal static bit(18) initial packed unaligned dcl 13-6 rc_a_dp internal static bit(36) initial packed unaligned dcl 13-23 rc_dp internal static bit(18) initial packed unaligned dcl 13-6 rc_dp_dp internal static bit(36) initial packed unaligned dcl 13-23 rc_e internal static bit(18) initial packed unaligned dcl 13-6 rc_is15 internal static bit(18) initial packed unaligned dcl 13-6 rc_lb internal static bit(18) initial packed unaligned dcl 13-6 rc_lp15 internal static bit(18) initial packed unaligned dcl 13-6 rc_nlb internal static bit(18) initial packed unaligned dcl 13-6 rc_nlp18 internal static bit(18) initial packed unaligned dcl 13-6 rc_ns internal static bit(18) initial packed unaligned dcl 13-6 rc_nt internal static bit(18) initial packed unaligned dcl 13-6 rc_sr internal static bit(18) initial packed unaligned dcl 13-6 read_array_op internal static fixed bin(18,0) initial dcl 7-197 read_internal_file_op internal static fixed bin(18,0) initial dcl 7-197 read_namelist_op internal static fixed bin(18,0) initial dcl 7-197 read_op internal static fixed bin(18,0) initial dcl 7-197 read_scalar_op internal static fixed bin(18,0) initial dcl 7-197 read_vector_op internal static fixed bin(18,0) initial dcl 7-197 real_const internal static bit(9) initial dcl 7-156 real_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 18-25 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 18-25 real_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 18-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 18-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 18-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 18-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 18-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 18-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 18-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 18-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 18-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 18-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 18-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 18-25 real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 18-25 real_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 18-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 18-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 18-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 18-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 18-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 18-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 18-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 18-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 18-25 real_mode internal static fixed bin(4,0) initial dcl 7-106 record_number_op internal static fixed bin(18,0) initial dcl 7-197 rel_constant internal static fixed bin(4,0) initial dcl 7-120 return_op internal static fixed bin(18,0) initial dcl 7-197 rewind_op internal static fixed bin(18,0) initial dcl 7-197 right_parn internal static bit(9) initial dcl 7-156 right_shift_op internal static fixed bin(18,0) initial dcl 7-197 runtime_bound based structure level 1 unaligned dcl 17-33 sf_def_op internal static fixed bin(18,0) initial dcl 7-197 sf_op internal static fixed bin(18,0) initial dcl 7-197 slash internal static bit(9) initial dcl 7-156 source_node internal static fixed bin(4,0) initial dcl 7-87 stat_op internal static fixed bin(18,0) initial dcl 7-197 statement_function internal static fixed bin(4,0) initial dcl 7-120 stop_op internal static fixed bin(18,0) initial dcl 7-197 storage_add_one_op internal static fixed bin(18,0) initial dcl 7-197 storage_add_op internal static fixed bin(18,0) initial dcl 7-197 storage_sub_op internal static fixed bin(18,0) initial dcl 7-197 store_zero_op internal static fixed bin(18,0) initial dcl 7-197 string_length_op internal static fixed bin(18,0) initial dcl 7-197 string_op internal static fixed bin(18,0) initial dcl 7-197 structure_dtype internal static fixed bin(17,0) initial dcl 18-25 sub_index_op internal static fixed bin(18,0) initial dcl 7-197 sub_op internal static fixed bin(18,0) initial dcl 7-197 subprogram_node internal static fixed bin(4,0) initial dcl 7-87 subr_op internal static fixed bin(18,0) initial dcl 7-197 subroutine internal static fixed bin(9,0) initial dcl 7-68 subscript_op internal static fixed bin(18,0) initial dcl 7-197 substr_left_parn internal static bit(9) initial dcl 7-156 substr_op internal static fixed bin(18,0) initial dcl 7-197 sys_info$max_seg_size external static fixed bin(18,0) dcl 7-61 temp_type internal static fixed bin(4,0) initial dcl 7-120 temporary based structure level 1 dcl 1-1005 temporary_node internal static fixed bin(4,0) initial dcl 7-87 terminate_op internal static fixed bin(18,0) initial dcl 7-197 true internal static bit(9) initial dcl 7-156 typeless_mode internal static fixed bin(4,0) initial dcl 7-106 units_per_word internal static fixed bin(6,0) initial array dcl 7-142 unnamed_block_data_subprg_name internal static char(29) initial packed unaligned dcl 7-82 unrecoverable_error internal static fixed bin(17,0) initial dcl 7-64 variable_type internal static fixed bin(4,0) initial dcl 7-120 varying_bit_dtype internal static fixed bin(17,0) initial dcl 18-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 18-25 word_units internal static fixed bin(3,0) initial dcl 7-136 write_array_op internal static fixed bin(18,0) initial dcl 7-197 write_internal_file_op internal static fixed bin(18,0) initial dcl 7-197 write_namelist_op internal static fixed bin(18,0) initial dcl 7-197 write_op internal static fixed bin(18,0) initial dcl 7-197 write_scalar_op internal static fixed bin(18,0) initial dcl 7-197 write_vector_op internal static fixed bin(18,0) initial dcl 7-197 xmit_array_op internal static fixed bin(18,0) initial dcl 7-197 xmit_scalar_op internal static fixed bin(18,0) initial dcl 7-197 xmit_vector_op internal static fixed bin(18,0) initial dcl 7-197 NAMES DECLARED BY EXPLICIT CONTEXT. add_to_array 006050 constant entry internal dcl 1742 ref 937 1213 1262 1341 1396 1499 1549 1831 allocate_block 005373 constant entry internal dcl 1621 ref 903 967 1052 allocate_symbol 005567 constant entry internal dcl 1678 ref 930 1001 1209 1260 1340 1394 1497 1547 1830 backward_ref 007041 constant entry internal dcl 1966 ref 907 909 971 973 1064 1070 1071 1664 1666 1670 1710 1732 1739 2086 common 007234 constant label dcl 2038 ref 2021 2029 connect_symbols_to_block 006126 constant entry internal dcl 1755 ref 954 1561 end_symbol 001710 constant entry internal dcl 629 ref 231 expanded_absolute 002113 constant entry internal dcl 727 ref 699 712 fill_sym_info_into_entries 001452 constant entry internal dcl 538 ref 226 fort_make_symbol_section 000132 constant entry external dcl 32 forward_ref 007030 constant entry internal dcl 1958 ref 1009 1011 1024 1659 1661 1735 1779 1793 2079 gen_opt_statement_map 000641 constant entry internal dcl 335 ref 218 gen_statement_map 001147 constant entry internal dcl 437 ref 221 get_acc_str 007147 constant entry internal dcl 2000 get_acc_str$symbol 007175 constant entry internal dcl 2024 ref 930 930 1052 1052 1209 1209 1340 1340 1830 1830 get_acc_str$varying 007220 constant entry internal dcl 2032 ref 967 967 1260 1260 1394 1394 1497 1497 1547 1547 get_address 007102 constant entry internal dcl 1987 ref 939 1215 1288 1845 1855 1878 1932 init_symbol 000275 constant entry internal dcl 237 ref 216 make_ok_lists 001607 constant entry internal dcl 594 ref 227 make_symbol_table 002226 constant entry internal dcl 769 ref 225 octal 007615 constant entry internal dcl 2163 ref 1393 process_variable 006266 constant entry internal dcl 1799 ref 1094 1101 1131 1144 1187 1273 1323 1414 1518 rel_ref 007023 constant entry internal dcl 1950 ref 1282 1419 1523 1581 1605 1615 1781 sort_symbols 007434 constant entry internal dcl 2103 ref 1768 store_string 002156 constant entry internal dcl 749 ref 272 274 276 297 319 unpack 007054 constant entry internal dcl 1975 ref 998 1724 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 10536 10556 10447 10546 Length 11322 10447 20 530 67 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME fort_make_symbol_section 1032 external procedure is an external procedure. init_symbol internal procedure shares stack frame of external procedure fort_make_symbol_section. gen_opt_statement_map internal procedure shares stack frame of external procedure fort_make_symbol_section. gen_statement_map internal procedure shares stack frame of external procedure fort_make_symbol_section. fill_sym_info_into_entries internal procedure shares stack frame of external procedure fort_make_symbol_section. make_ok_lists internal procedure shares stack frame of external procedure fort_make_symbol_section. end_symbol internal procedure shares stack frame of external procedure fort_make_symbol_section. expanded_absolute internal procedure shares stack frame of external procedure fort_make_symbol_section. store_string internal procedure shares stack frame of external procedure fort_make_symbol_section. make_symbol_table internal procedure shares stack frame of external procedure fort_make_symbol_section. allocate_block internal procedure shares stack frame of external procedure fort_make_symbol_section. allocate_symbol internal procedure shares stack frame of external procedure fort_make_symbol_section. add_to_array internal procedure shares stack frame of external procedure fort_make_symbol_section. connect_symbols_to_block internal procedure shares stack frame of external procedure fort_make_symbol_section. process_variable internal procedure shares stack frame of external procedure fort_make_symbol_section. rel_ref internal procedure shares stack frame of external procedure fort_make_symbol_section. unpack internal procedure shares stack frame of external procedure fort_make_symbol_section. get_address internal procedure shares stack frame of external procedure fort_make_symbol_section. get_acc_str internal procedure shares stack frame of external procedure fort_make_symbol_section. sort_symbols internal procedure shares stack frame of external procedure fort_make_symbol_section. octal internal procedure shares stack frame of external procedure fort_make_symbol_section. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME fort_make_symbol_section 000100 a_base fort_make_symbol_section 000102 cg_global_ptr fort_make_symbol_section 000104 def_pos fort_make_symbol_section 000106 def_reloc_base fort_make_symbol_section 000110 first_namelist fort_make_symbol_section 000111 generate_map fort_make_symbol_section 000112 generate_profile fort_make_symbol_section 000113 generate_symtab fort_make_symbol_section 000114 info_ptr fort_make_symbol_section 000116 last_pos fort_make_symbol_section 000120 link_base fort_make_symbol_section 000122 link_pos fort_make_symbol_section 000124 link_reloc_base fort_make_symbol_section 000126 profile_start fort_make_symbol_section 000130 shared_global_ptr fort_make_symbol_section 000132 star_symbol_link fort_make_symbol_section 000134 sym_base fort_make_symbol_section 000136 sym_pos fort_make_symbol_section 000137 symrel fort_make_symbol_section 000140 sym_reloc_base fort_make_symbol_section 000142 symtab_param_ptr fort_make_symbol_section 000144 text_pos fort_make_symbol_section 000154 sym_ptr init_symbol 000156 map_ptr init_symbol 000160 sp init_symbol 000162 sym_reloc_ptr init_symbol 000164 source_index init_symbol 000165 m init_symbol 000166 n init_symbol 000167 version_name_and_number init_symbol 000244 cs gen_opt_statement_map 000246 stm gen_opt_statement_map 000250 q gen_opt_statement_map 000252 pp gen_opt_statement_map 000254 next_stm_ptr gen_opt_statement_map 000256 first_code_loc gen_opt_statement_map 000257 first_time gen_opt_statement_map 000260 last_code_loc gen_opt_statement_map 000261 map_start gen_opt_statement_map 000262 profile_pos gen_opt_statement_map 000263 old_id gen_opt_statement_map 000276 cs gen_statement_map 000300 stm gen_statement_map 000302 q gen_statement_map 000304 pp gen_statement_map 000306 next_stm_ptr gen_statement_map 000310 first_code_loc gen_statement_map 000311 first_time gen_statement_map 000312 last_code_loc gen_statement_map 000313 map_start gen_statement_map 000314 profile_pos gen_statement_map 000315 old_id gen_statement_map 000330 cs fill_sym_info_into_entries 000332 s fill_sym_info_into_entries 000334 p fill_sym_info_into_entries 000336 sym fill_sym_info_into_entries 000337 star_symbol fill_sym_info_into_entries 000340 text_pos fill_sym_info_into_entries 000350 i make_ok_lists 000351 ipol make_ok_lists 000352 sym make_ok_lists 000353 text_pos make_ok_lists 000354 s make_ok_lists 000356 q make_ok_lists 000360 qr make_ok_lists 000372 p end_symbol 000374 sym_ptr end_symbol 000376 i end_symbol 000377 j end_symbol 000400 k end_symbol 000401 l end_symbol 000402 m end_symbol 000403 b18 end_symbol 000404 sym_rel_bit_count end_symbol 000426 b36 store_string 000436 all_symbols make_symbol_table 000437 alloc_len make_symbol_table 000440 blk make_symbol_table 000442 blkp make_symbol_table 000444 block_name make_symbol_table 000455 count make_symbol_table 000456 cur_subp make_symbol_table 000460 convert_data_type make_symbol_table 000476 dp make_symbol_table 000500 ext_proc make_symbol_table 000501 final make_symbol_table 000507 fptype make_symbol_table 000510 i make_symbol_table 000511 i2 make_symbol_table 000512 j make_symbol_table 000513 last_blk make_symbol_table 000514 last_len make_symbol_table 000515 last_sym make_symbol_table 000516 lbl_name make_symbol_table 000520 max_len make_symbol_table 000521 min_len make_symbol_table 000522 n make_symbol_table 000523 off make_symbol_table 000524 rel_bits make_symbol_table 000525 pointer_pos make_symbol_table 000526 rel_bits2 make_symbol_table 000527 root make_symbol_table 000530 sp make_symbol_table 000532 sp2 make_symbol_table 000534 symp make_symbol_table 000536 sym_max_len make_symbol_table 000540 symtab_base make_symbol_table 000542 symtab_max make_symbol_table 000543 tkn_len make_symbol_table 000544 tkn_ptr make_symbol_table 000546 symbol_template make_symbol_table 000560 block_template make_symbol_table 000573 token_list make_symbol_table 001230 B allocate_block 001232 BP allocate_block 001234 blk_name allocate_block 001235 parent allocate_block 001244 SP allocate_symbol 001246 distance allocate_symbol 001247 last_dcl allocate_symbol 001250 namedup_is_error allocate_symbol 001251 sym_blk allocate_symbol 001252 sym_name allocate_symbol 001270 i1 connect_symbols_to_block 001271 j1 connect_symbols_to_block 001272 len connect_symbols_to_block 001273 last_len connect_symbols_to_block 001274 SB connect_symbols_to_block 001276 SBP connect_symbols_to_block 001310 i1 process_variable 001311 mult process_variable 001312 nd process_variable 001313 set_address process_variable 001314 stack_offset process_variable 001316 symb process_variable 001320 var process_variable 001322 encodep process_variable 001356 full_offset get_acc_str 001360 last_tkn get_acc_str 001362 not_found get_acc_str 001363 str get_acc_str 001464 tkn_off get_acc_str 001474 i1 sort_symbols 001475 j1 sort_symbols 001476 d sort_symbols 001477 first sort_symbols 001500 swap_em sort_symbols 001502 swap sort_symbols 001516 octal_string octal THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ent_var_desc call_ext_out_desc return_mac mdfx1 shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_$rsnnl THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. fort_$symbol_table fort_version_info$version_name fort_version_info$version_number LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 32 000125 176 000137 177 000143 178 000146 179 000151 183 000153 184 000155 185 000157 186 000161 187 000163 188 000165 189 000167 190 000171 191 000173 192 000175 195 000177 201 000210 202 000214 203 000217 207 000220 210 000236 211 000240 216 000245 218 000246 221 000256 223 000257 225 000261 226 000262 227 000263 231 000270 233 000271 235 000274 237 000275 257 000276 258 000300 260 000302 261 000304 262 000310 263 000312 265 000316 267 000321 269 000324 272 000350 274 000357 276 000377 278 000417 283 000423 285 000427 287 000434 288 000440 289 000442 291 000446 293 000451 295 000453 296 000463 297 000467 298 000511 299 000514 300 000520 301 000523 305 000525 307 000533 308 000541 310 000544 312 000546 313 000550 314 000553 316 000556 317 000564 319 000571 321 000610 323 000612 324 000614 325 000621 326 000624 330 000632 332 000640 335 000641 350 000642 352 000646 353 000651 354 000655 355 000656 356 000657 358 000661 359 000663 360 000671 362 000673 364 000703 365 000705 367 000707 369 000712 371 000725 372 000726 374 000730 378 000750 379 000755 382 000764 383 000767 385 000773 388 000775 390 000777 391 001003 392 001005 393 001011 395 001022 397 001024 399 001031 402 001036 404 001050 406 001053 407 001055 409 001057 410 001060 413 001062 416 001064 417 001071 418 001074 422 001101 423 001105 424 001112 426 001115 428 001122 431 001136 433 001140 435 001146 437 001147 452 001150 454 001154 455 001157 456 001163 457 001164 458 001165 460 001167 461 001171 462 001177 464 001201 466 001211 467 001213 469 001215 471 001220 473 001233 474 001234 476 001236 480 001253 481 001260 484 001267 485 001272 487 001276 490 001300 492 001302 493 001306 494 001310 495 001314 496 001325 498 001327 500 001334 503 001341 505 001353 507 001356 508 001360 510 001362 511 001363 514 001365 517 001367 518 001374 519 001377 523 001404 524 001410 525 001415 527 001420 529 001425 532 001441 534 001443 536 001451 538 001452 547 001453 548 001457 549 001463 552 001470 553 001476 554 001501 558 001504 560 001510 564 001513 565 001521 567 001527 568 001533 572 001536 574 001541 575 001544 578 001545 580 001550 582 001557 585 001565 586 001571 587 001576 590 001601 592 001606 594 001607 610 001610 611 001614 612 001617 613 001622 614 001626 615 001631 617 001635 618 001640 619 001644 621 001646 622 001657 623 001674 624 001700 625 001702 627 001707 629 001710 647 001711 651 001717 652 001721 653 001723 655 001726 658 001736 660 001743 662 001746 663 001750 664 001753 665 001754 667 001756 668 001760 669 001762 670 001763 672 001765 673 001767 674 001772 675 001773 677 001775 678 001777 681 002001 683 002004 685 002006 687 002010 689 002017 690 002025 692 002027 699 002031 701 002032 704 002033 705 002040 706 002042 708 002043 710 002044 712 002046 714 002051 715 002054 717 002055 718 002061 719 002062 721 002064 725 002104 747 002112 727 002113 730 002114 735 002121 736 002125 737 002132 738 002134 739 002136 741 002137 742 002153 745 002155 749 002156 757 002167 760 002175 761 002202 762 002212 763 002216 765 002223 769 002226 797 002227 806 002344 857 002351 859 002354 860 002356 861 002360 862 002362 865 002364 867 002367 868 002371 869 002373 872 002375 873 002377 874 002400 876 002403 877 002406 880 002412 882 002415 883 002416 887 002422 888 002425 901 002432 903 002433 905 002441 907 002443 909 002456 922 002472 923 002474 925 002500 926 002501 927 002506 928 002511 930 002513 935 002532 937 002536 939 002537 940 002545 945 002553 948 002570 950 002572 954 002577 965 002601 967 002602 969 002617 971 002621 973 002634 985 002650 986 002651 987 002653 988 002655 990 002660 991 002666 995 002671 998 002674 1001 002711 1003 002715 1004 002722 1006 002724 1009 002732 1011 002747 1013 002762 1017 002764 1019 002770 1020 002775 1023 003010 1024 003013 1026 003033 1028 003035 1030 003037 1041 003044 1042 003046 1043 003050 1045 003051 1046 003061 1050 003063 1052 003070 1054 003101 1056 003104 1058 003107 1059 003111 1060 003113 1061 003115 1064 003116 1065 003127 1068 003132 1070 003134 1071 003147 1076 003163 1086 003164 1088 003170 1089 003175 1090 003204 1092 003207 1094 003213 1095 003217 1096 003221 1098 003222 1099 003230 1101 003233 1103 003237 1105 003255 1106 003257 1107 003261 1108 003263 1110 003267 1111 003271 1112 003275 1113 003302 1123 003304 1125 003310 1126 003315 1127 003324 1129 003327 1131 003333 1133 003337 1135 003343 1136 003345 1139 003353 1141 003354 1142 003362 1144 003365 1146 003371 1148 003375 1149 003377 1152 003405 1153 003412 1154 003417 1174 003421 1175 003430 1177 003433 1179 003437 1181 003443 1182 003450 1184 003452 1185 003460 1187 003463 1189 003471 1191 003475 1192 003501 1195 003507 1197 003511 1198 003516 1200 003517 1203 003525 1205 003531 1207 003533 1209 003535 1211 003543 1213 003547 1215 003550 1216 003556 1219 003564 1222 003566 1233 003573 1235 003575 1237 003604 1239 003607 1244 003612 1245 003614 1247 003616 1248 003620 1249 003622 1250 003624 1251 003626 1252 003630 1254 003631 1256 003635 1257 003642 1259 003652 1260 003670 1262 003676 1263 003677 1264 003701 1268 003703 1269 003705 1270 003707 1273 003711 1278 003715 1280 003721 1282 003725 1283 003736 1285 003742 1286 003743 1288 003746 1289 003754 1290 003760 1292 003761 1294 003771 1297 003775 1299 003777 1301 004002 1302 004004 1303 004006 1305 004010 1311 004015 1312 004024 1316 004027 1318 004035 1319 004042 1320 004046 1321 004050 1322 004057 1323 004063 1325 004067 1326 004075 1328 004101 1330 004112 1332 004114 1333 004115 1335 004120 1336 004122 1337 004124 1338 004126 1340 004130 1341 004136 1343 004137 1344 004152 1346 004154 1359 004161 1360 004165 1361 004176 1363 004201 1368 004205 1369 004207 1371 004211 1372 004213 1373 004215 1375 004217 1376 004221 1377 004223 1379 004224 1381 004227 1383 004233 1384 004240 1386 004241 1388 004245 1391 004252 1393 004257 1394 004310 1396 004316 1397 004317 1398 004321 1399 004323 1406 004334 1408 004340 1409 004342 1411 004344 1412 004352 1414 004355 1416 004363 1418 004367 1419 004373 1420 004404 1422 004406 1424 004413 1425 004420 1439 004426 1440 004433 1441 004442 1443 004445 1448 004451 1449 004453 1451 004455 1452 004457 1453 004461 1455 004463 1456 004465 1457 004467 1462 004470 1464 004477 1468 004504 1472 004515 1474 004531 1477 004542 1479 004545 1481 004551 1482 004574 1483 004576 1485 004601 1487 004605 1488 004630 1490 004632 1492 004636 1494 004653 1495 004674 1497 004675 1499 004703 1500 004704 1501 004706 1502 004710 1509 004724 1511 004730 1512 004732 1513 004734 1515 004736 1516 004744 1518 004747 1520 004755 1522 004761 1523 004765 1524 004776 1526 005000 1528 005005 1529 005012 1537 005014 1538 005016 1540 005022 1542 005032 1544 005035 1546 005051 1547 005061 1549 005115 1551 005116 1552 005122 1555 005130 1557 005132 1561 005136 1564 005140 1569 005146 1570 005147 1571 005152 1575 005153 1577 005163 1579 005166 1581 005167 1582 005203 1584 005205 1585 005213 1588 005221 1589 005224 1591 005226 1592 005230 1594 005234 1598 005236 1600 005240 1601 005250 1602 005253 1604 005257 1605 005263 1606 005306 1608 005310 1610 005312 1611 005320 1612 005323 1614 005327 1615 005333 1616 005356 1617 005360 1618 005365 1619 005372 1621 005373 1636 005375 1637 005377 1638 005401 1642 005403 1644 005443 1645 005445 1646 005447 1647 005454 1651 005456 1653 005460 1654 005464 1655 005472 1659 005473 1661 005511 1662 005524 1664 005526 1666 005537 1670 005550 1674 005562 1675 005565 1676 005566 1678 005567 1695 005571 1696 005574 1697 005576 1698 005600 1702 005603 1704 005643 1705 005646 1706 005650 1710 005655 1714 005667 1718 005677 1719 005725 1720 005731 1721 005734 1724 005735 1726 005752 1727 005754 1729 005756 1730 006007 1731 006012 1732 006013 1735 006023 1739 006036 1740 006047 1742 006050 1747 006051 1748 006052 1749 006107 1750 006115 1751 006121 1753 006125 1755 006126 1765 006130 1766 006132 1768 006135 1770 006136 1771 006140 1773 006141 1777 006151 1779 006156 1781 006173 1783 006206 1787 006210 1789 006216 1790 006227 1792 006236 1793 006241 1795 006261 1796 006263 1797 006265 1799 006266 1817 006270 1818 006273 1819 006275 1823 006300 1825 006310 1826 006311 1827 006313 1830 006314 1831 006322 1835 006323 1837 006342 1839 006346 1841 006351 1842 006354 1843 006360 1844 006362 1845 006366 1846 006401 1847 006402 1848 006407 1849 006410 1851 006414 1855 006422 1859 006432 1861 006436 1863 006445 1864 006451 1865 006460 1866 006462 1867 006467 1869 006474 1872 006533 1874 006544 1878 006545 1883 006564 1887 006573 1895 006605 1897 006627 1898 006641 1903 006647 1905 006657 1906 006660 1907 006672 1908 006675 1909 006676 1913 006707 1915 006714 1916 006715 1917 006726 1918 006731 1919 006732 1923 006742 1926 006752 1930 006754 1932 006757 1934 006772 1935 006774 1936 006775 1942 007001 1946 007017 1948 007022 1950 007023 1955 007025 1958 007027 1961 007032 1966 007040 1969 007043 1975 007054 1980 007056 1982 007072 1987 007102 1992 007104 1994 007123 1996 007135 2000 007147 2019 007160 2020 007171 2021 007174 2024 007175 2027 007177 2028 007214 2029 007217 2032 007220 2035 007222 2036 007231 2038 007234 2043 007240 2047 007245 2049 007247 2052 007257 2053 007262 2055 007264 2056 007266 2059 007304 2062 007307 2063 007310 2065 007314 2066 007315 2067 007317 2068 007320 2070 007322 2075 007323 2077 007326 2079 007340 2081 007354 2083 007360 2084 007364 2085 007366 2086 007367 2090 007402 2091 007405 2092 007410 2093 007412 2094 007415 2098 007422 2099 007430 2103 007434 2122 007435 2123 007443 2125 007445 2129 007450 2130 007452 2131 007461 2135 007502 2136 007504 2138 007506 2140 007515 2142 007516 2144 007543 2148 007562 2150 007564 2151 007570 2152 007575 2153 007600 2155 007602 2156 007603 2157 007606 2159 007610 2160 007613 2161 007614 2163 007615 2171 007617 2172 007651 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved