COMPILATION LISTING OF SEGMENT gen_pl1_symbol Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/20/86 1204.3 mst Thu Options: optimize list 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* Program to create symbol table for Version II PL/I 12* 13* Initial Version: 11 September 1972 by BLW 14* Modified: 22 January 1972 by BLW 15* Modified: 18 July 1975 by RAB for link_head.static_length 16* Modified: 1 Dec 1976 by RAB for -long_profile 17* Modified: 27 October 1980 by M. N. Davidoff to increase length of pl1_stat_$options. 18* 19* This entry initializes the symbol table header 20**/ 21 /* format: style3 */ 22 gen_pl1_symbol$beg_symbol: 23 proc; 24 25 dcl cg_static_$version_name 26 char (132) varying ext, 27 cg_static_$seg_name char (32) varying ext, 28 cg_static_$compiler_name 29 char (12) varying ext; 30 dcl pl1_stat_$options char (400) varying ext; 31 dcl pl1_stat_$user_id char (32) aligned ext, 32 cg_static_$last_def bit (18) ext, 33 ( 34 cg_static_$text_reloc_base, 35 cg_static_$link_base, 36 cg_static_$def_base, 37 cg_static_$link_reloc_base, 38 cg_static_$sym_base, 39 cg_static_$sym_reloc_base, 40 cg_static_$def_reloc_base 41 ) ptr ext, 42 ( 43 cg_static_$text_pos, 44 cg_static_$link_pos, 45 cg_static_$def_pos, 46 cg_static_$link_begin, 47 cg_static_$version_number, 48 cg_static_$sym_pos, 49 cg_static_$profile_pos, 50 pl1_stat_$greatest_severity, 51 cg_static_$stat_pos, 52 cg_static_$profile_start 53 ) fixed bin (18) ext, 54 cg_static_$clock_time 55 fixed bin (71) ext static, 56 ( 57 cg_static_$generate_symtab, 58 cg_static_$table_option, 59 cg_static_$separate_static, 60 cg_static_$io_used, 61 cg_static_$profile_option, 62 cg_static_$generate_map, 63 cg_static_$long_profile 64 ) bit (1) ext static, 65 code_gen_$symbol_table 66 fixed bin (15) external static; 67 68 dcl 1 cg_static_$statement_map 69 ext unaligned, 70 2 first bit (18), 71 2 last bit (18); 72 73 dcl (p, sym_reloc_ptr, map_ptr, link_base, link_reloc_base, sym_base, sym_ptr) 74 ptr, 75 info_ptr ptr int static, 76 (link_pos, sym_pos) fixed bin (18), 77 (i, j, k, l, n) fixed bin (15), 78 sym_rel_bit_count fixed bin (27), 79 b18 bit (18) aligned; 80 81 dcl error entry (fixed bin, ptr, ptr); 82 83 dcl (addr, addrel, bit, divide, fixed, index, length, mod, null, size, string, substr) 84 builtin; 85 86 dcl max_link_size init (16384) fixed bin int static; 87 88 dcl 1 link_head aligned based (p), 89 2 word_zero unaligned bit (36), 90 2 word_one, 91 3 def_base unaligned bit (18), 92 3 rh unaligned bit (18), 93 2 word_two unaligned bit (36), 94 2 word_three unaligned bit (36), 95 2 word_four unaligned bit (36), 96 2 word_five unaligned bit (36), 97 2 word_six, 98 3 first_link unaligned bit (18), 99 3 block_length unaligned bit (18), 100 2 word_seven, 101 3 skip unal bit (18), 102 3 static_length unaligned bit (18); 103 104 dcl reloc (0:1) bit (36) aligned based; 105 106 dcl 1 relinfo aligned based, 107 2 version fixed bin, 108 2 rel_bit_count fixed bin, 109 2 relbits bit (i refer (rel_bit_count)) unaligned; 110 111 dcl 1 reloc_in aligned based (p), 112 2 half_word (0:1000) unaligned bit (18); 113 1 1 /* BEGIN INCLUDE FILE definition.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(86-05-02,Elhard), approve(86-05-02,MCR7391), 1 7* audit(86-07-18,DGHowe), install(86-11-20,MR12.0-1222): 1 8* Modified to add indirect bit to definition flags. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 dcl 1 definition aligned based, 1 13 2 forward unal bit(18), /* offset of next def */ 1 14 2 backward unal bit(18), /* offset of previous def */ 1 15 2 value unal bit(18), 1 16 2 flags unal, 1 17 3 new bit(1), 1 18 3 ignore bit(1), 1 19 3 entry bit(1), 1 20 3 retain bit(1), 1 21 3 argcount bit(1), 1 22 3 descriptors bit(1), 1 23 3 indirect bit(1), 1 24 3 unused bit(8), 1 25 2 class unal bit(3), 1 26 2 symbol unal bit(18), /* offset of ACC for symbol */ 1 27 2 segname unal bit(18); /* offset of segname def */ 1 28 1 29 /* END INCLUDE FILE definition.incl.pl1 */ 114 2 1 /* BEGIN INCLUDE FILE relbts.incl.pl1 */ 2 2 2 3 /* This include file defines the relocation bits as bit (18) entities. See 2 4* also relocation_bits.incl.pl1 and reloc_lower.incl.pl1. */ 2 5 2 6 dcl ( rc_a initial("0"b), /* absolute */ 2 7 rc_t initial("000000000000010000"b), /* text */ 2 8 rc_nt initial("000000000000010001"b), /* negative text */ 2 9 rc_lp18 initial("000000000000010010"b), /* linkage, 18 bit */ 2 10 rc_nlp18 initial("000000000000010011"b), /* negative link, 18 bit */ 2 11 rc_lp15 initial("000000000000010100"b), /* linkage, 15 bit */ 2 12 rc_dp initial("000000000000010101"b), /* def section */ 2 13 rc_s initial("000000000000010110"b), /* symbol segment */ 2 14 rc_ns initial("000000000000010111"b), /* negative symbol */ 2 15 rc_is18 initial("000000000000011000"b), /* internal static 18 */ 2 16 rc_is15 initial("000000000000011001"b), /* internal static 15 */ 2 17 rc_lb initial("000000000000011000"b), /* link block */ 2 18 rc_nlb initial("000000000000011001"b), /* negative link block */ 2 19 rc_sr initial("000000000000011010"b), /* self relative */ 2 20 rc_e initial("000000000000011111"b)) /* escape */ 2 21 bit(18) internal static options(constant); 2 22 2 23 dcl ( rc_dp_dp initial("000000000000010101000000000000010101"b), /* def section, def section */ 2 24 rc_a_dp initial("000000000000000000000000000000010101"b)) /* absolute, def section */ 2 25 bit(36) internal static options(constant); 2 26 2 27 /* END INCLUDE FILE relbts.incl.pl1 */ 115 3 1 dcl 1 std_symbol_header based aligned, 3 2 2 dcl_version fixed bin, 3 3 2 identifier char(8), 3 4 2 gen_number fixed bin, 3 5 2 gen_created fixed bin(71), 3 6 2 object_created fixed bin(71), 3 7 2 generator char(8), 3 8 2 gen_version unaligned, 3 9 3 offset bit(18), 3 10 3 size bit(18), 3 11 2 userid unaligned, 3 12 3 offset bit(18), 3 13 3 size bit(18), 3 14 2 comment unaligned, 3 15 3 offset bit(18), 3 16 3 size bit(18), 3 17 2 text_boundary bit(18) unaligned, 3 18 2 stat_boundary bit(18) unaligned, 3 19 2 source_map bit(18) unaligned, 3 20 2 area_pointer bit(18) unaligned, 3 21 2 backpointer bit(18) unaligned, 3 22 2 block_size bit(18) unaligned, 3 23 2 next_block bit(18) unaligned, 3 24 2 rel_text bit(18) unaligned, 3 25 2 rel_def bit(18) unaligned, 3 26 2 rel_link bit(18) unaligned, 3 27 2 rel_symbol bit(18) unaligned, 3 28 2 mini_truncate bit(18) unaligned, 3 29 2 maxi_truncate bit(18) unaligned; 116 4 1 /* BEGIN INCLUDE FILE ... source_map.incl.pl1 */ 4 2 4 3 dcl 1 source_map aligned based, 4 4 2 version fixed bin, 4 5 2 number fixed bin, 4 6 2 map(n refer(source_map.number)) aligned, 4 7 3 pathname unaligned, 4 8 4 offset bit(18), 4 9 4 size bit(18), 4 10 3 uid bit(36), 4 11 3 dtm fixed bin(71); 4 12 4 13 /* END INCLUDE FILE ... source_map.incl.pl1 */ 117 5 1 dcl m fixed bin(15); 5 2 dcl pl1_stat_$source_seg fixed bin(8) ext static; 5 3 dcl pl1_stat_$last_source fixed bin(15) ext static; 5 4 dcl pl1_stat_$source_list_ptr ptr ext static; 5 5 dcl source_list(0:source_list_length) ptr based(pl1_stat_$source_list_ptr); 5 6 dcl source_list_length fixed bin(15) internal static initial(255) options(constant); 5 7 5 8 dcl 1 source based(source_list(m)) aligned, 5 9 2 node_type unal bit(9), 5 10 2 source_id unal structure, 5 11 3 file_number bit(8), 5 12 3 line_number bit(14), 5 13 3 statement_number bit(5), 5 14 2 standard_object_info aligned structure, 5 15 3 uid bit(36), 5 16 3 dtm fixed bin(71), 5 17 2 seg_ptr unal ptr, 5 18 2 name unal ptr, 5 19 2 source_length unal fixed bin(24), 5 20 2 pathlen unal fixed bin(10), 5 21 2 pathname char(n refer(source.pathlen)); 118 6 1 dcl 1 pl1_symbol_block aligned based, 6 2 2 version fixed bin, 6 3 2 identifier char(8), /* must be "pl1info" */ 6 4 2 flags, 6 5 3 profile bit(1) unal, 6 6 3 table bit(1) unal, 6 7 3 map bit(1) unal, 6 8 3 flow bit(1) unal, 6 9 3 io bit(1) unal, 6 10 3 table_removed bit(1) unal, 6 11 3 long_profile bit(1) unal, 6 12 3 pad bit(29) unal, 6 13 2 greatest_severity fixed bin, 6 14 2 root unal bit(18), 6 15 2 profile unal bit(18), 6 16 2 map unal, 6 17 3 first bit(18), 6 18 3 last bit(18), 6 19 2 segname unaligned, 6 20 3 offset bit(18), 6 21 3 size bit(18); 119 120 121 /* Generate the symbol table header. Ref. MSB-27 */ 122 123 sym_ptr = cg_static_$sym_base; 124 cg_static_$sym_pos = size (sym_ptr -> std_symbol_header); 125 126 sym_ptr -> std_symbol_header.dcl_version = 1; 127 sym_ptr -> std_symbol_header.identifier = "symbtree"; 128 sym_ptr -> std_symbol_header.gen_number = cg_static_$version_number; 129 sym_ptr -> std_symbol_header.gen_created = addr (code_gen_$symbol_table) -> std_symbol_header.object_created; 130 sym_ptr -> std_symbol_header.object_created = cg_static_$clock_time; 131 sym_ptr -> std_symbol_header.generator = cg_static_$compiler_name; 132 string (sym_ptr -> std_symbol_header.gen_version) = store_string ((cg_static_$version_name)); 133 134 m = index (pl1_stat_$user_id, " ") - 1; 135 if m < 0 136 then m = length (pl1_stat_$user_id); 137 string (sym_ptr -> std_symbol_header.userid) = store_string (substr (pl1_stat_$user_id, 1, m)); 138 139 string (sym_ptr -> std_symbol_header.comment) = store_string ((pl1_stat_$options)); 140 sym_ptr -> std_symbol_header.text_boundary = "000000000000000010"b; 141 sym_ptr -> std_symbol_header.stat_boundary = "000000000000000010"b; 142 143 /* generate source map (which has to start on even boundary) */ 144 145 cg_static_$sym_pos = cg_static_$sym_pos + mod (cg_static_$sym_pos, 2); 146 147 sym_ptr -> std_symbol_header.source_map = bit (cg_static_$sym_pos, 18); 148 149 map_ptr = addrel (cg_static_$sym_base, cg_static_$sym_pos); 150 map_ptr -> source_map.version = 1; 151 map_ptr -> source_map.number, n = pl1_stat_$last_source + 1; 152 153 cg_static_$sym_pos = cg_static_$sym_pos + size (map_ptr -> source_map); 154 155 do m = 0 to pl1_stat_$last_source; 156 string (map_ptr -> source_map.map (m + 1).pathname) = store_string (source.pathname); 157 map_ptr -> source_map.map (m + 1).uid = source.uid; 158 map_ptr -> source_map.map (m + 1).dtm = source.dtm; 159 end; 160 161 /* generate pl1 symbol block */ 162 163 sym_ptr -> std_symbol_header.area_pointer = bit (cg_static_$sym_pos, 18); 164 165 info_ptr, sym_ptr = addrel (cg_static_$sym_base, cg_static_$sym_pos); 166 sym_reloc_ptr = addrel (cg_static_$sym_reloc_base, cg_static_$sym_pos); 167 168 cg_static_$sym_pos = cg_static_$sym_pos + size (sym_ptr -> pl1_symbol_block); 169 170 sym_ptr -> pl1_symbol_block.version = 1; 171 sym_ptr -> pl1_symbol_block.identifier = "pl1info"; 172 sym_ptr -> pl1_symbol_block.greatest_severity = pl1_stat_$greatest_severity; 173 174 sym_ptr -> pl1_symbol_block.flags.io = cg_static_$io_used; 175 sym_ptr -> pl1_symbol_block.flags.map = cg_static_$generate_map; 176 177 string (sym_ptr -> pl1_symbol_block.segname) = store_string ((cg_static_$seg_name)); 178 179 if cg_static_$generate_symtab | cg_static_$table_option 180 then do; 181 sym_ptr -> pl1_symbol_block.flags.table = "1"b; 182 183 sym_ptr -> pl1_symbol_block.root = bit (cg_static_$sym_pos, 18); 184 end; 185 186 if cg_static_$profile_option 187 then do; 188 sym_ptr -> pl1_symbol_block.flags.profile = "1"b; 189 sym_ptr -> pl1_symbol_block.profile = bit (cg_static_$profile_pos, 18); 190 sym_reloc_ptr -> pl1_symbol_block.profile = rc_is18; 191 end; 192 193 if cg_static_$long_profile 194 then do; 195 sym_ptr -> pl1_symbol_block.flags.long_profile = "1"b; 196 sym_ptr -> pl1_symbol_block.profile = bit (cg_static_$profile_start, 18); 197 sym_reloc_ptr -> pl1_symbol_block.profile = rc_is18; 198 end; 199 200 cg_static_$sym_base -> std_symbol_header.maxi_truncate = bit (cg_static_$sym_pos, 18); 201 202 return; 203 204 /* This entry does the following: 205* 1. Fills in the linkage section header. Ref. MSPM BD.7.01 206* 2. Fills in the rel bits for the linkage header. 207* 3. Transfers and packs the relocation bits generated during compilation into 208* packed regions in the symbol segment. Ref. MSPM BD.2.01 209* 210* Assumptions: 211* 1. Any field not explicity set will contain 0's. 212* 2. The relocation code for absolute relocation is assumed to 213* be zero; when an 18 bit relocation code is assigned to 214* the full relocation word, absolute relocation will be set 215* for the right hand side. */ 216 217 /* because of a glitch in the coding of the Multics checker, the word of 218* of zeros pointed at by the forward chain of the last definition has to 219* be the last word in the definition section */ 220 221 gen_pl1_symbol$end_symbol: 222 entry; 223 224 addrel (cg_static_$def_base, cg_static_$last_def) -> definition.forward = bit (cg_static_$def_pos, 18); 225 cg_static_$def_pos = cg_static_$def_pos + 1; 226 227 link_pos = cg_static_$link_pos; 228 229 if link_pos > max_link_size 230 then call error (259, null, null); 231 232 link_base = cg_static_$link_base; 233 link_reloc_base = cg_static_$link_reloc_base; 234 235 sym_base = cg_static_$sym_base; 236 sym_pos = cg_static_$sym_pos; 237 sym_ptr = addrel (sym_base, sym_pos); 238 239 /* Fill in linkage header information */ 240 241 link_base -> link_head.def_base = bit (cg_static_$text_pos, 18); 242 243 link_base -> link_head.first_link = bit (cg_static_$link_begin, 18); 244 245 link_base -> link_head.block_length = bit (cg_static_$link_pos, 18); 246 247 if cg_static_$separate_static 248 then link_base -> link_head.static_length = bit (cg_static_$stat_pos, 18); 249 else link_base -> link_head.static_length = bit (fixed (cg_static_$link_begin - size (link_head), 18), 18); 250 251 /* Fill in rel bits for linkage header */ 252 253 link_reloc_base -> reloc (1) = rc_t; 254 255 /* Convert relcation bits to packed format */ 256 257 sym_base -> std_symbol_header.mini_truncate = bit (sym_pos, 18); 258 259 l = 1; 260 sym_rel_bit_count = sym_pos; 261 262 do p = cg_static_$text_reloc_base, cg_static_$def_reloc_base, link_reloc_base, cg_static_$sym_reloc_base; 263 264 b18 = bit (sym_pos, 18); 265 266 if l = 1 267 then do; 268 m = cg_static_$text_pos; 269 sym_base -> std_symbol_header.rel_text = b18; 270 end; 271 else if l = 2 272 then do; 273 m = cg_static_$def_pos; 274 sym_base -> std_symbol_header.rel_def = b18; 275 end; 276 else if l = 3 277 then do; 278 m = link_pos; 279 sym_base -> std_symbol_header.rel_link = b18; 280 end; 281 else if l = 4 282 then do; 283 m = sym_rel_bit_count; 284 sym_base -> std_symbol_header.rel_symbol = b18; 285 end; 286 287 m = m * 2; 288 289 sym_ptr -> relinfo.version = 1; 290 291 i, k = 0; 292 293 do j = 0 to m - 1; 294 b18 = p -> reloc_in.half_word (j); 295 if b18 296 then do; 297 if k ^= 0 298 then do; 299 300 /* have a string of "k" consecutive half-words with 301* absolute relocation; use expanded absolute coding 302* if there are more than 15 half words */ 303 304 call expanded_absolute; 305 306 k = 0; 307 end; 308 309 substr (sym_ptr -> relbits, i + 1, 5) = substr (b18, 14, 5); 310 i = i + 5; 311 end; 312 else k = k + 1; 313 end; 314 315 if k ^= 0 316 then call expanded_absolute; 317 318 sym_ptr -> rel_bit_count = i; 319 l = l + 1; 320 321 j = size (sym_ptr -> relinfo); 322 sym_pos = sym_pos + j; 323 sym_ptr = addrel (sym_ptr, j); 324 end; 325 326 cg_static_$sym_pos = sym_pos; 327 328 cg_static_$sym_base -> std_symbol_header.block_size = bit (sym_pos, 18); 329 330 if cg_static_$generate_map 331 then string (info_ptr -> pl1_symbol_block.map) = string (cg_static_$statement_map); 332 333 return; 334 335 expanded_absolute: 336 proc; 337 338 if k < 16 339 then i = i + k; 340 else do; 341 do while (k > 1023); 342 substr (sym_ptr -> relbits, i + 1, 15) = "111101111111111"b; 343 i = i + 15; 344 k = k - 1023; 345 end; 346 347 substr (sym_ptr -> relbits, i + 1, 15) = "11110"b || bit (fixed (k, 10), 10); 348 i = i + 15; 349 end; 350 end expanded_absolute; 351 352 store_string: 353 proc (str) returns (bit (36)); 354 355 dcl str char (*) aligned; 356 357 dcl p ptr, 358 b36 bit (36), 359 based_string char (length (str)) based aligned; 360 361 if length (str) = 0 362 then return ((36)"0"b); 363 364 substr (b36, 1, 18) = bit (cg_static_$sym_pos, 18); 365 p = addrel (cg_static_$sym_base, cg_static_$sym_pos); 366 p -> based_string = str; 367 cg_static_$sym_pos = cg_static_$sym_pos + divide (length (str) + 3, 4, 17, 0); 368 substr (b36, 19, 18) = bit (fixed (length (str), 18), 18); 369 return (b36); 370 end store_string; 371 372 end gen_pl1_symbol$beg_symbol; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/20/86 1145.0 gen_pl1_symbol.pl1 >special_ldd>install>MR12.0-1222>gen_pl1_symbol.pl1 114 1 11/20/86 1035.2 definition.incl.pl1 >special_ldd>install>MR12.0-1222>definition.incl.pl1 115 2 10/30/80 1648.7 relbts.incl.pl1 >ldd>include>relbts.incl.pl1 116 3 05/06/74 1751.6 std_symbol_header.incl.pl1 >ldd>include>std_symbol_header.incl.pl1 117 4 11/26/79 1320.6 source_map.incl.pl1 >ldd>include>source_map.incl.pl1 118 5 05/03/76 1320.4 source_list.incl.pl1 >ldd>include>source_list.incl.pl1 119 6 03/10/77 1345.4 pl1_symbol_block.incl.pl1 >ldd>include>pl1_symbol_block.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. addr builtin function dcl 83 ref 129 addrel builtin function dcl 83 ref 149 165 166 224 237 323 365 area_pointer 16(18) based bit(18) level 2 packed unaligned dcl 3-1 set ref 163* b18 000126 automatic bit(18) dcl 73 set ref 264* 269 274 279 284 294* 295 309 b36 000102 automatic bit(36) unaligned dcl 357 set ref 364* 368* 369 based_string based char dcl 357 set ref 366* bit builtin function dcl 83 ref 147 163 183 189 196 200 224 241 243 245 247 249 257 264 328 347 364 368 block_length 6(18) based bit(18) level 3 packed unaligned dcl 88 set ref 245* block_size 17(18) based bit(18) level 2 packed unaligned dcl 3-1 set ref 328* cg_static_$clock_time 000070 external static fixed bin(71,0) dcl 31 ref 130 cg_static_$compiler_name 000016 external static varying char(12) dcl 25 ref 131 cg_static_$def_base 000032 external static pointer dcl 31 ref 224 cg_static_$def_pos 000050 external static fixed bin(18,0) dcl 31 set ref 224 225* 225 273 cg_static_$def_reloc_base 000042 external static pointer dcl 31 ref 262 cg_static_$generate_map 000104 external static bit(1) unaligned dcl 31 ref 175 330 cg_static_$generate_symtab 000072 external static bit(1) unaligned dcl 31 ref 179 cg_static_$io_used 000100 external static bit(1) unaligned dcl 31 ref 174 cg_static_$last_def 000024 external static bit(18) unaligned dcl 31 ref 224 cg_static_$link_base 000030 external static pointer dcl 31 ref 232 cg_static_$link_begin 000052 external static fixed bin(18,0) dcl 31 ref 243 249 cg_static_$link_pos 000046 external static fixed bin(18,0) dcl 31 ref 227 245 cg_static_$link_reloc_base 000034 external static pointer dcl 31 ref 233 cg_static_$long_profile 000106 external static bit(1) unaligned dcl 31 ref 193 cg_static_$profile_option 000102 external static bit(1) unaligned dcl 31 ref 186 cg_static_$profile_pos 000060 external static fixed bin(18,0) dcl 31 ref 189 cg_static_$profile_start 000066 external static fixed bin(18,0) dcl 31 ref 196 cg_static_$seg_name 000014 external static varying char(32) dcl 25 ref 177 cg_static_$separate_static 000076 external static bit(1) unaligned dcl 31 ref 247 cg_static_$stat_pos 000064 external static fixed bin(18,0) dcl 31 ref 247 cg_static_$statement_map 000112 external static structure level 1 packed unaligned dcl 68 ref 330 cg_static_$sym_base 000036 external static pointer dcl 31 ref 123 149 165 200 235 328 365 cg_static_$sym_pos 000056 external static fixed bin(18,0) dcl 31 set ref 124* 145* 145 145 147 149 153* 153 163 165 166 168* 168 183 200 236 326* 364 365 367* 367 cg_static_$sym_reloc_base 000040 external static pointer dcl 31 ref 166 262 cg_static_$table_option 000074 external static bit(1) unaligned dcl 31 ref 179 cg_static_$text_pos 000044 external static fixed bin(18,0) dcl 31 ref 241 268 cg_static_$text_reloc_base 000026 external static pointer dcl 31 ref 262 cg_static_$version_name 000012 external static varying char(132) dcl 25 ref 132 cg_static_$version_number 000054 external static fixed bin(18,0) dcl 31 ref 128 code_gen_$symbol_table 000110 external static fixed bin(15,0) dcl 31 set ref 129 comment 14 based structure level 2 packed unaligned dcl 3-1 set ref 139* dcl_version based fixed bin(17,0) level 2 dcl 3-1 set ref 126* def_base 1 based bit(18) level 3 packed unaligned dcl 88 set ref 241* definition based structure level 1 dcl 1-12 divide builtin function dcl 83 ref 367 dtm 4 based fixed bin(71,0) level 3 in structure "source" dcl 5-8 in procedure "gen_pl1_symbol$beg_symbol" ref 158 dtm 4 based fixed bin(71,0) array level 3 in structure "source_map" dcl 4-3 in procedure "gen_pl1_symbol$beg_symbol" set ref 158* error 000114 constant entry external dcl 81 ref 229 first_link 6 based bit(18) level 3 packed unaligned dcl 88 set ref 243* fixed builtin function dcl 83 ref 249 347 368 flags 3 based structure level 2 dcl 6-1 forward based bit(18) level 2 packed unaligned dcl 1-12 set ref 224* gen_created 4 based fixed bin(71,0) level 2 dcl 3-1 set ref 129* gen_number 3 based fixed bin(17,0) level 2 dcl 3-1 set ref 128* gen_version 12 based structure level 2 packed unaligned dcl 3-1 set ref 132* generator 10 based char(8) level 2 dcl 3-1 set ref 131* greatest_severity 4 based fixed bin(17,0) level 2 dcl 6-1 set ref 172* half_word based bit(18) array level 2 packed unaligned dcl 111 ref 294 i 000120 automatic fixed bin(15,0) dcl 73 set ref 291* 309 310* 310 318 321 338* 338 342 343* 343 347 348* 348 identifier 1 based char(8) level 2 in structure "std_symbol_header" dcl 3-1 in procedure "gen_pl1_symbol$beg_symbol" set ref 127* identifier 1 based char(8) level 2 in structure "pl1_symbol_block" dcl 6-1 in procedure "gen_pl1_symbol$beg_symbol" set ref 171* index builtin function dcl 83 ref 134 info_ptr 000010 internal static pointer dcl 73 set ref 165* 330 io 3(04) based bit(1) level 3 packed unaligned dcl 6-1 set ref 174* j 000121 automatic fixed bin(15,0) dcl 73 set ref 293* 294* 321* 322 323 k 000122 automatic fixed bin(15,0) dcl 73 set ref 291* 297 306* 312* 312 315 338 338 341 344* 344 347 l 000123 automatic fixed bin(15,0) dcl 73 set ref 259* 266 271 276 281 319* 319 length builtin function dcl 83 ref 135 361 366 367 368 link_base 000106 automatic pointer dcl 73 set ref 232* 241 243 245 247 249 link_head based structure level 1 dcl 88 set ref 249 link_pos 000116 automatic fixed bin(18,0) dcl 73 set ref 227* 229 278 link_reloc_base 000110 automatic pointer dcl 73 set ref 233* 253 262 long_profile 3(06) based bit(1) level 3 packed unaligned dcl 6-1 set ref 195* m 000127 automatic fixed bin(15,0) dcl 5-1 set ref 134* 135 135* 137 137 155* 156 156 157 157 158 158* 268* 273* 278* 283* 287* 287 293 map 3(02) based bit(1) level 3 in structure "pl1_symbol_block" packed unaligned dcl 6-1 in procedure "gen_pl1_symbol$beg_symbol" set ref 175* map 6 based structure level 2 in structure "pl1_symbol_block" packed unaligned dcl 6-1 in procedure "gen_pl1_symbol$beg_symbol" set ref 330* map 2 based structure array level 2 in structure "source_map" dcl 4-3 in procedure "gen_pl1_symbol$beg_symbol" map_ptr 000104 automatic pointer dcl 73 set ref 149* 150 151 153 156 157 158 max_link_size constant fixed bin(17,0) initial dcl 86 ref 229 maxi_truncate 23 based bit(18) level 2 packed unaligned dcl 3-1 set ref 200* mini_truncate 22(18) based bit(18) level 2 packed unaligned dcl 3-1 set ref 257* mod builtin function dcl 83 ref 145 n 000124 automatic fixed bin(15,0) dcl 73 set ref 151* 153 null builtin function dcl 83 ref 229 229 229 229 number 1 based fixed bin(17,0) level 2 dcl 4-3 set ref 151* object_created 6 based fixed bin(71,0) level 2 dcl 3-1 set ref 129 130* p 000100 automatic pointer dcl 73 in procedure "gen_pl1_symbol$beg_symbol" set ref 249 262* 294* p 000100 automatic pointer dcl 357 in procedure "store_string" set ref 365* 366 pathlen 10(25) based fixed bin(10,0) level 2 packed unaligned dcl 5-8 ref 156 156 pathname 2 based structure array level 3 in structure "source_map" packed unaligned dcl 4-3 in procedure "gen_pl1_symbol$beg_symbol" set ref 156* pathname 11 based char level 2 in structure "source" dcl 5-8 in procedure "gen_pl1_symbol$beg_symbol" set ref 156* pl1_stat_$greatest_severity 000062 external static fixed bin(18,0) dcl 31 ref 172 pl1_stat_$last_source 000116 external static fixed bin(15,0) dcl 5-3 ref 151 155 pl1_stat_$options 000020 external static varying char(400) dcl 30 ref 139 pl1_stat_$source_list_ptr 000120 external static pointer dcl 5-4 ref 156 157 158 pl1_stat_$user_id 000022 external static char(32) dcl 31 ref 134 135 137 137 pl1_symbol_block based structure level 1 dcl 6-1 set ref 168 profile 5(18) based bit(18) level 2 in structure "pl1_symbol_block" packed unaligned dcl 6-1 in procedure "gen_pl1_symbol$beg_symbol" set ref 189* 190* 196* 197* profile 3 based bit(1) level 3 in structure "pl1_symbol_block" packed unaligned dcl 6-1 in procedure "gen_pl1_symbol$beg_symbol" set ref 188* rc_is18 constant bit(18) initial unaligned dcl 2-6 ref 190 197 rc_t constant bit(18) initial unaligned dcl 2-6 ref 253 rel_bit_count 1 based fixed bin(17,0) level 2 dcl 106 set ref 309 318* 342 347 rel_def 21 based bit(18) level 2 packed unaligned dcl 3-1 set ref 274* rel_link 21(18) based bit(18) level 2 packed unaligned dcl 3-1 set ref 279* rel_symbol 22 based bit(18) level 2 packed unaligned dcl 3-1 set ref 284* rel_text 20(18) based bit(18) level 2 packed unaligned dcl 3-1 set ref 269* relbits 2 based bit level 2 packed unaligned dcl 106 set ref 309* 342* 347* relinfo based structure level 1 dcl 106 set ref 321 reloc based bit(36) array dcl 104 set ref 253* reloc_in based structure level 1 dcl 111 root 5 based bit(18) level 2 packed unaligned dcl 6-1 set ref 183* segname 7 based structure level 2 packed unaligned dcl 6-1 set ref 177* size builtin function dcl 83 ref 124 153 168 249 321 source based structure level 1 dcl 5-8 source_list based pointer array dcl 5-5 ref 156 157 158 source_map 16 based bit(18) level 2 in structure "std_symbol_header" packed unaligned dcl 3-1 in procedure "gen_pl1_symbol$beg_symbol" set ref 147* source_map based structure level 1 dcl 4-3 in procedure "gen_pl1_symbol$beg_symbol" set ref 153 standard_object_info 2 based structure level 2 dcl 5-8 stat_boundary 15(18) based bit(18) level 2 packed unaligned dcl 3-1 set ref 141* static_length 7(18) based bit(18) level 3 packed unaligned dcl 88 set ref 247* 249* std_symbol_header based structure level 1 dcl 3-1 set ref 124 str parameter char dcl 355 ref 352 361 366 366 367 368 string builtin function dcl 83 set ref 132* 137* 139* 156* 177* 330* 330 substr builtin function dcl 83 set ref 137 137 309* 309 342* 347* 364* 368* sym_base 000112 automatic pointer dcl 73 set ref 235* 237 257 269 274 279 284 sym_pos 000117 automatic fixed bin(18,0) dcl 73 set ref 236* 237 257 260 264 322* 322 326 328 sym_ptr 000114 automatic pointer dcl 73 set ref 123* 124 126 127 128 129 130 131 132 137 139 140 141 147 163 165* 168 170 171 172 174 175 177 181 183 188 189 195 196 237* 289 309 318 321 323* 323 342 347 sym_rel_bit_count 000125 automatic fixed bin(27,0) dcl 73 set ref 260* 283 sym_reloc_ptr 000102 automatic pointer dcl 73 set ref 166* 190 197 table 3(01) based bit(1) level 3 packed unaligned dcl 6-1 set ref 181* text_boundary 15 based bit(18) level 2 packed unaligned dcl 3-1 set ref 140* uid 3 based bit(36) array level 3 in structure "source_map" dcl 4-3 in procedure "gen_pl1_symbol$beg_symbol" set ref 157* uid 2 based bit(36) level 3 in structure "source" dcl 5-8 in procedure "gen_pl1_symbol$beg_symbol" ref 157 userid 13 based structure level 2 packed unaligned dcl 3-1 set ref 137* version based fixed bin(17,0) level 2 in structure "pl1_symbol_block" dcl 6-1 in procedure "gen_pl1_symbol$beg_symbol" set ref 170* version based fixed bin(17,0) level 2 in structure "source_map" dcl 4-3 in procedure "gen_pl1_symbol$beg_symbol" set ref 150* version based fixed bin(17,0) level 2 in structure "relinfo" dcl 106 in procedure "gen_pl1_symbol$beg_symbol" set ref 289* word_one 1 based structure level 2 dcl 88 word_seven 7 based structure level 2 dcl 88 word_six 6 based structure level 2 dcl 88 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. pl1_stat_$source_seg external static fixed bin(8,0) dcl 5-2 rc_a internal static bit(18) initial unaligned dcl 2-6 rc_a_dp internal static bit(36) initial unaligned dcl 2-23 rc_dp internal static bit(18) initial unaligned dcl 2-6 rc_dp_dp internal static bit(36) initial unaligned dcl 2-23 rc_e internal static bit(18) initial unaligned dcl 2-6 rc_is15 internal static bit(18) initial unaligned dcl 2-6 rc_lb internal static bit(18) initial unaligned dcl 2-6 rc_lp15 internal static bit(18) initial unaligned dcl 2-6 rc_lp18 internal static bit(18) initial unaligned dcl 2-6 rc_nlb internal static bit(18) initial unaligned dcl 2-6 rc_nlp18 internal static bit(18) initial unaligned dcl 2-6 rc_ns internal static bit(18) initial unaligned dcl 2-6 rc_nt internal static bit(18) initial unaligned dcl 2-6 rc_s internal static bit(18) initial unaligned dcl 2-6 rc_sr internal static bit(18) initial unaligned dcl 2-6 source_list_length internal static fixed bin(15,0) initial dcl 5-6 NAMES DECLARED BY EXPLICIT CONTEXT. expanded_absolute 001022 constant entry internal dcl 335 ref 304 315 gen_pl1_symbol$beg_symbol 000013 constant entry external dcl 22 gen_pl1_symbol$end_symbol 000461 constant entry external dcl 221 store_string 001065 constant entry internal dcl 352 ref 132 137 139 156 177 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1614 1736 1150 1624 Length 2332 1150 122 360 443 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gen_pl1_symbol$beg_symbol 120 external procedure is an external procedure. expanded_absolute internal procedure shares stack frame of external procedure gen_pl1_symbol$beg_symbol. store_string 68 internal procedure is called during a stack extension. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 info_ptr gen_pl1_symbol$beg_symbol STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gen_pl1_symbol$beg_symbol 000100 p gen_pl1_symbol$beg_symbol 000102 sym_reloc_ptr gen_pl1_symbol$beg_symbol 000104 map_ptr gen_pl1_symbol$beg_symbol 000106 link_base gen_pl1_symbol$beg_symbol 000110 link_reloc_base gen_pl1_symbol$beg_symbol 000112 sym_base gen_pl1_symbol$beg_symbol 000114 sym_ptr gen_pl1_symbol$beg_symbol 000116 link_pos gen_pl1_symbol$beg_symbol 000117 sym_pos gen_pl1_symbol$beg_symbol 000120 i gen_pl1_symbol$beg_symbol 000121 j gen_pl1_symbol$beg_symbol 000122 k gen_pl1_symbol$beg_symbol 000123 l gen_pl1_symbol$beg_symbol 000124 n gen_pl1_symbol$beg_symbol 000125 sym_rel_bit_count gen_pl1_symbol$beg_symbol 000126 b18 gen_pl1_symbol$beg_symbol 000127 m gen_pl1_symbol$beg_symbol store_string 000100 p store_string 000102 b36 store_string THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out call_int_this_desc return_mac mdfx1 shorten_stack ext_entry int_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. error THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cg_static_$clock_time cg_static_$compiler_name cg_static_$def_base cg_static_$def_pos cg_static_$def_reloc_base cg_static_$generate_map cg_static_$generate_symtab cg_static_$io_used cg_static_$last_def cg_static_$link_base cg_static_$link_begin cg_static_$link_pos cg_static_$link_reloc_base cg_static_$long_profile cg_static_$profile_option cg_static_$profile_pos cg_static_$profile_start cg_static_$seg_name cg_static_$separate_static cg_static_$stat_pos cg_static_$statement_map cg_static_$sym_base cg_static_$sym_pos cg_static_$sym_reloc_base cg_static_$table_option cg_static_$text_pos cg_static_$text_reloc_base cg_static_$version_name cg_static_$version_number code_gen_$symbol_table pl1_stat_$greatest_severity pl1_stat_$last_source pl1_stat_$options pl1_stat_$source_list_ptr pl1_stat_$user_id CONSTANTS 000000 aa 524077777777 001146 aa 757770000000 000001 aa 524000000000 000002 aa 516000000044 001147 aa 000000000002 000004 aa 077777000043 000005 aa 000001000000 000006 aa 160 154 061 151 pl1i 000007 aa 156 146 157 040 nfo 000010 aa 163 171 155 142 symb 000011 aa 164 162 145 145 tree BEGIN PROCEDURE gen_pl1_symbol$beg_symbol ENTRY TO gen_pl1_symbol$beg_symbol STATEMENT 1 ON LINE 22 gen_pl1_symbol$beg_symbol: proc; 000012 da 000410200000 000013 aa 000200 6270 00 eax7 128 000014 aa 7 00034 3521 20 epp2 pr7|28,* 000015 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000016 aa 000000000000 000017 aa 000000000000 STATEMENT 1 ON LINE 123 sym_ptr = cg_static_$sym_base; 000020 la 4 00036 3735 20 epp7 pr4|30,* cg_static_$sym_base 000021 aa 7 00000 3735 20 epp7 pr7|0,* cg_static_$sym_base 000022 aa 6 00114 6535 00 spri7 pr6|76 sym_ptr STATEMENT 1 ON LINE 124 cg_static_$sym_pos = size (sym_ptr -> std_symbol_header); 000023 aa 000024 2360 07 ldq 20,dl 000024 la 4 00056 7561 20 stq pr4|46,* cg_static_$sym_pos STATEMENT 1 ON LINE 126 sym_ptr -> std_symbol_header.dcl_version = 1; 000025 aa 000001 2360 07 ldq 1,dl 000026 aa 6 00114 7561 20 stq pr6|76,* std_symbol_header.dcl_version STATEMENT 1 ON LINE 127 sym_ptr -> std_symbol_header.identifier = "symbtree"; 000027 aa 777761 2370 04 ldaq -15,ic 000010 = 163171155142 164162145145 000030 aa 6 00114 3715 20 epp5 pr6|76,* sym_ptr 000031 aa 5 00001 7551 00 sta pr5|1 std_symbol_header.identifier 000032 aa 5 00002 7561 00 stq pr5|2 std_symbol_header.identifier STATEMENT 1 ON LINE 128 sym_ptr -> std_symbol_header.gen_number = cg_static_$version_number; 000033 la 4 00054 2361 20 ldq pr4|44,* cg_static_$version_number 000034 aa 5 00003 7561 00 stq pr5|3 std_symbol_header.gen_number STATEMENT 1 ON LINE 129 sym_ptr -> std_symbol_header.gen_created = addr (code_gen_$symbol_table) -> std_symbol_header.object_created; 000035 la 4 00110 3535 20 epp3 pr4|72,* 000036 aa 3 00006 2371 00 ldaq pr3|6 std_symbol_header.object_created 000037 aa 5 00004 7571 00 staq pr5|4 std_symbol_header.gen_created STATEMENT 1 ON LINE 130 sym_ptr -> std_symbol_header.object_created = cg_static_$clock_time; 000040 la 4 00070 2371 20 ldaq pr4|56,* cg_static_$clock_time 000041 aa 5 00006 7571 00 staq pr5|6 std_symbol_header.object_created STATEMENT 1 ON LINE 131 sym_ptr -> std_symbol_header.generator = cg_static_$compiler_name; 000042 la 4 00016 3515 20 epp1 pr4|14,* 000043 la 4 00016 7271 20 lxl7 pr4|14,* cg_static_$compiler_name 000044 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 000045 aa 1 00001 00 0017 desc9a pr1|1,x7 cg_static_$compiler_name 000046 aa 5 00010 00 0010 desc9a pr5|8,8 std_symbol_header.generator STATEMENT 1 ON LINE 132 string (sym_ptr -> std_symbol_header.gen_version) = store_string ((cg_static_$version_name)); 000047 la 4 00012 2361 20 ldq pr4|10,* cg_static_$version_name 000050 aa 524000 2760 03 orq 174080,du 000051 aa 6 00144 7561 00 stq pr6|100 000052 la 4 00012 2361 20 ldq pr4|10,* cg_static_$version_name 000053 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 000054 aa 6 00152 2521 00 spri2 pr6|106 000055 la 4 00012 3535 20 epp3 pr4|10,* 000056 la 4 00012 7271 20 lxl7 pr4|10,* cg_static_$version_name 000057 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000060 aa 3 00001 00 0017 desc9a pr3|1,x7 cg_static_$version_name 000061 aa 2 00000 00 0006 desc9a pr2|0,ql 000062 aa 5 00012 3521 00 epp2 pr5|10 000063 aa 6 00154 2521 00 spri2 pr6|108 000064 aa 6 00144 3521 00 epp2 pr6|100 000065 aa 6 00160 2521 00 spri2 pr6|112 000066 aa 777714 3520 04 epp2 -52,ic 000002 = 516000000044 000067 aa 6 00162 2521 00 spri2 pr6|114 000070 aa 6 00150 6211 00 eax1 pr6|104 000071 aa 010000 4310 07 fld 4096,dl 000072 aa 000773 3520 04 epp2 507,ic 001065 = 000120627000 000073 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 134 m = index (pl1_stat_$user_id, " ") - 1; 000074 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 000075 aa 6 00044 3701 20 epp4 pr6|36,* 000076 la 4 00022 3735 20 epp7 pr4|18,* pl1_stat_$user_id 000077 aa 000 003 124 500 scm (pr),(du),mask(000) 000100 aa 7 00000 00 0040 desc9a pr7|0,32 pl1_stat_$user_id 000101 aa 040000 00 0001 desc9a 16384,1 000102 aa 6 00056 0001 00 arg pr6|46 000103 aa 6 00056 2361 00 ldq pr6|46 000104 aa 000002 6070 04 ttf 2,ic 000106 000105 aa 000001 3360 07 lcq 1,dl 000106 aa 6 00127 7561 00 stq pr6|87 m STATEMENT 1 ON LINE 135 if m < 0 then m = length (pl1_stat_$user_id); 000107 aa 000003 6050 04 tpl 3,ic 000112 000110 aa 000040 2360 07 ldq 32,dl 000111 aa 6 00127 7561 00 stq pr6|87 m STATEMENT 1 ON LINE 137 string (sym_ptr -> std_symbol_header.userid) = store_string (substr (pl1_stat_$user_id, 1, m)); 000112 aa 524000 2760 03 orq 174080,du 000113 aa 6 00144 7561 00 stq pr6|100 000114 aa 6 00127 2361 00 ldq pr6|87 m 000115 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 000116 aa 6 00152 2521 00 spri2 pr6|106 000117 la 4 00022 3715 20 epp5 pr4|18,* pl1_stat_$user_id 000120 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000121 aa 5 00000 00 0006 desc9a pr5|0,ql pl1_stat_$user_id 000122 aa 2 00000 00 0006 desc9a pr2|0,ql 000123 aa 6 00114 3535 20 epp3 pr6|76,* sym_ptr 000124 aa 3 00013 3521 00 epp2 pr3|11 000125 aa 6 00154 2521 00 spri2 pr6|108 000126 aa 6 00144 3521 00 epp2 pr6|100 000127 aa 6 00160 2521 00 spri2 pr6|112 000130 aa 777652 3520 04 epp2 -86,ic 000002 = 516000000044 000131 aa 6 00162 2521 00 spri2 pr6|114 000132 aa 6 00150 6211 00 eax1 pr6|104 000133 aa 010000 4310 07 fld 4096,dl 000134 aa 000731 3520 04 epp2 473,ic 001065 = 000120627000 000135 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 139 string (sym_ptr -> std_symbol_header.comment) = store_string ((pl1_stat_$options)); 000136 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 000137 aa 6 00044 3701 20 epp4 pr6|36,* 000140 la 4 00020 2361 20 ldq pr4|16,* pl1_stat_$options 000141 aa 524000 2760 03 orq 174080,du 000142 aa 6 00144 7561 00 stq pr6|100 000143 la 4 00020 2361 20 ldq pr4|16,* pl1_stat_$options 000144 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 000145 aa 6 00152 2521 00 spri2 pr6|106 000146 la 4 00020 3735 20 epp7 pr4|16,* 000147 la 4 00020 7271 20 lxl7 pr4|16,* pl1_stat_$options 000150 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000151 aa 7 00001 00 0017 desc9a pr7|1,x7 pl1_stat_$options 000152 aa 2 00000 00 0006 desc9a pr2|0,ql 000153 aa 6 00114 3715 20 epp5 pr6|76,* sym_ptr 000154 aa 5 00014 3521 00 epp2 pr5|12 000155 aa 6 00154 2521 00 spri2 pr6|108 000156 aa 6 00144 3521 00 epp2 pr6|100 000157 aa 6 00160 2521 00 spri2 pr6|112 000160 aa 777622 3520 04 epp2 -110,ic 000002 = 516000000044 000161 aa 6 00162 2521 00 spri2 pr6|114 000162 aa 6 00150 6211 00 eax1 pr6|104 000163 aa 010000 4310 07 fld 4096,dl 000164 aa 000701 3520 04 epp2 449,ic 001065 = 000120627000 000165 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 140 sym_ptr -> std_symbol_header.text_boundary = "000000000000000010"b; 000166 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 000167 aa 000002 2350 03 lda 2,du 000170 aa 6 00114 3735 20 epp7 pr6|76,* sym_ptr 000171 aa 7 00015 5511 60 stba pr7|13,60 std_symbol_header.text_boundary STATEMENT 1 ON LINE 141 sym_ptr -> std_symbol_header.stat_boundary = "000000000000000010"b; 000172 aa 000002 2350 07 lda 2,dl 000173 aa 7 00015 5511 14 stba pr7|13,14 std_symbol_header.stat_boundary STATEMENT 1 ON LINE 145 cg_static_$sym_pos = cg_static_$sym_pos + mod (cg_static_$sym_pos, 2); 000174 aa 6 00044 3701 20 epp4 pr6|36,* 000175 la 4 00056 2361 20 ldq pr4|46,* cg_static_$sym_pos 000176 aa 000751 3520 04 epp2 489,ic 001147 = 000000000002 000177 aa 0 00704 7001 00 tsx0 pr0|452 mdfx1 000200 la 4 00056 0561 20 asq pr4|46,* cg_static_$sym_pos STATEMENT 1 ON LINE 147 sym_ptr -> std_symbol_header.source_map = bit (cg_static_$sym_pos, 18); 000201 la 4 00056 2351 20 lda pr4|46,* cg_static_$sym_pos 000202 aa 000002 6050 04 tpl 2,ic 000204 000203 aa 000000 5310 00 neg 0 000204 aa 000022 7350 00 als 18 000205 aa 7 00016 5511 60 stba pr7|14,60 std_symbol_header.source_map STATEMENT 1 ON LINE 149 map_ptr = addrel (cg_static_$sym_base, cg_static_$sym_pos); 000206 la 4 00056 2361 20 ldq pr4|46,* cg_static_$sym_pos 000207 la 4 00036 3515 20 epp1 pr4|30,* cg_static_$sym_base 000210 aa 1 00000 3515 66 epp1 pr1|0,*ql cg_static_$sym_base 000211 aa 000000 0510 03 adwp1 0,du 000212 aa 6 00104 2515 00 spri1 pr6|68 map_ptr STATEMENT 1 ON LINE 150 map_ptr -> source_map.version = 1; 000213 aa 000001 2360 07 ldq 1,dl 000214 aa 1 00000 7561 00 stq pr1|0 source_map.version STATEMENT 1 ON LINE 151 map_ptr -> source_map.number, n = pl1_stat_$last_source + 1; 000215 la 4 00116 2361 20 ldq pr4|78,* pl1_stat_$last_source 000216 aa 000001 0760 07 adq 1,dl 000217 aa 1 00001 7561 00 stq pr1|1 source_map.number 000220 aa 6 00124 7561 00 stq pr6|84 n STATEMENT 1 ON LINE 153 cg_static_$sym_pos = cg_static_$sym_pos + size (map_ptr -> source_map); 000221 aa 000002 7360 00 qls 2 000222 aa 2 00000 0761 00 adq pr2|0 000223 la 4 00056 0561 20 asq pr4|46,* cg_static_$sym_pos STATEMENT 1 ON LINE 155 do m = 0 to pl1_stat_$last_source; 000224 la 4 00116 2361 20 ldq pr4|78,* pl1_stat_$last_source 000225 aa 6 00130 7561 00 stq pr6|88 000226 aa 6 00127 4501 00 stz pr6|87 m 000227 aa 000000 0110 03 nop 0,du 000230 aa 6 00127 2361 00 ldq pr6|87 m 000231 aa 6 00130 1161 00 cmpq pr6|88 000232 aa 000053 6054 04 tpnz 43,ic 000305 STATEMENT 1 ON LINE 156 string (map_ptr -> source_map.map (m + 1).pathname) = store_string (source.pathname); 000233 aa 000001 7360 00 qls 1 000234 aa 6 00044 3701 20 epp4 pr6|36,* 000235 la 4 00120 3735 20 epp7 pr4|80,* pl1_stat_$source_list_ptr 000236 aa 7 00000 3715 66 epp5 pr7|0,*ql source_list 000237 aa 5 00000 3715 20 epp5 pr5|0,* source_list 000240 aa 5 00010 2351 00 lda pr5|8 source.pathlen 000241 aa 000031 7350 00 als 25 000242 aa 6 00164 7561 00 stq pr6|116 000243 aa 000075 7330 00 lrs 61 000244 aa 6 00145 7561 00 stq pr6|101 000245 aa 524000 2760 03 orq 174080,du 000246 aa 6 00144 7561 00 stq pr6|100 000247 aa 6 00127 2361 00 ldq pr6|87 m 000250 aa 000002 7360 00 qls 2 000251 aa 5 00011 3521 00 epp2 pr5|9 source.pathname 000252 aa 6 00152 2521 00 spri2 pr6|106 000253 aa 6 00104 3535 20 epp3 pr6|68,* map_ptr 000254 aa 3 00002 3521 06 epp2 pr3|2,ql 000255 aa 6 00154 2521 00 spri2 pr6|108 000256 aa 6 00144 3521 00 epp2 pr6|100 000257 aa 6 00160 2521 00 spri2 pr6|112 000260 aa 777522 3520 04 epp2 -174,ic 000002 = 516000000044 000261 aa 6 00162 2521 00 spri2 pr6|114 000262 aa 6 00164 7561 00 stq pr6|116 000263 aa 6 00150 6211 00 eax1 pr6|104 000264 aa 010000 4310 07 fld 4096,dl 000265 aa 000600 3520 04 epp2 384,ic 001065 = 000120627000 000266 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 157 map_ptr -> source_map.map (m + 1).uid = source.uid; 000267 aa 6 00127 2361 00 ldq pr6|87 m 000270 aa 000001 7360 00 qls 1 000271 aa 6 00044 3701 20 epp4 pr6|36,* 000272 la 4 00120 3735 20 epp7 pr4|80,* pl1_stat_$source_list_ptr 000273 aa 7 00000 3715 66 epp5 pr7|0,*ql source_list 000274 aa 5 00000 3715 20 epp5 pr5|0,* source_list 000275 aa 5 00002 2351 00 lda pr5|2 source.uid 000276 aa 6 00164 7271 00 lxl7 pr6|116 000277 aa 6 00104 3535 20 epp3 pr6|68,* map_ptr 000300 aa 3 00003 7551 17 sta pr3|3,7 source_map.uid STATEMENT 1 ON LINE 158 map_ptr -> source_map.map (m + 1).dtm = source.dtm; 000301 aa 5 00004 2371 00 ldaq pr5|4 source.dtm 000302 aa 3 00004 7571 17 staq pr3|4,7 source_map.dtm STATEMENT 1 ON LINE 159 end; 000303 aa 6 00127 0541 00 aos pr6|87 m 000304 aa 777724 7100 04 tra -44,ic 000230 STATEMENT 1 ON LINE 163 sym_ptr -> std_symbol_header.area_pointer = bit (cg_static_$sym_pos, 18); 000305 aa 6 00044 3701 20 epp4 pr6|36,* 000306 la 4 00056 2351 20 lda pr4|46,* cg_static_$sym_pos 000307 aa 000002 6050 04 tpl 2,ic 000311 000310 aa 000000 5310 00 neg 0 000311 aa 0 00264 3771 00 anaq pr0|180 = 000000777777 777777777777 000312 aa 6 00114 3735 20 epp7 pr6|76,* sym_ptr 000313 aa 7 00016 5511 14 stba pr7|14,14 std_symbol_header.area_pointer STATEMENT 1 ON LINE 165 info_ptr, sym_ptr = addrel (cg_static_$sym_base, cg_static_$sym_pos); 000314 la 4 00056 2361 20 ldq pr4|46,* cg_static_$sym_pos 000315 la 4 00036 3521 20 epp2 pr4|30,* cg_static_$sym_base 000316 aa 2 00000 3521 66 epp2 pr2|0,*ql cg_static_$sym_base 000317 aa 000000 0520 03 adwp2 0,du 000320 aa 6 00146 2521 00 spri2 pr6|102 000321 ia 4 00010 2521 00 spri2 pr4|8 info_ptr 000322 aa 6 00114 2521 00 spri2 pr6|76 sym_ptr STATEMENT 1 ON LINE 166 sym_reloc_ptr = addrel (cg_static_$sym_reloc_base, cg_static_$sym_pos); 000323 la 4 00040 3515 20 epp1 pr4|32,* cg_static_$sym_reloc_base 000324 aa 1 00000 3515 66 epp1 pr1|0,*ql cg_static_$sym_reloc_base 000325 aa 000000 0510 03 adwp1 0,du 000326 aa 6 00102 2515 00 spri1 pr6|66 sym_reloc_ptr STATEMENT 1 ON LINE 168 cg_static_$sym_pos = cg_static_$sym_pos + size (sym_ptr -> pl1_symbol_block); 000327 aa 000010 2360 07 ldq 8,dl 000330 la 4 00056 0561 20 asq pr4|46,* cg_static_$sym_pos STATEMENT 1 ON LINE 170 sym_ptr -> pl1_symbol_block.version = 1; 000331 aa 000001 2360 07 ldq 1,dl 000332 aa 2 00000 7561 00 stq pr2|0 pl1_symbol_block.version STATEMENT 1 ON LINE 171 sym_ptr -> pl1_symbol_block.identifier = "pl1info"; 000333 aa 777453 2370 04 ldaq -213,ic 000006 = 160154061151 156146157040 000334 aa 2 00001 7551 00 sta pr2|1 pl1_symbol_block.identifier 000335 aa 2 00002 7561 00 stq pr2|2 pl1_symbol_block.identifier STATEMENT 1 ON LINE 172 sym_ptr -> pl1_symbol_block.greatest_severity = pl1_stat_$greatest_severity; 000336 la 4 00062 2361 20 ldq pr4|50,* pl1_stat_$greatest_severity 000337 aa 2 00004 7561 00 stq pr2|4 pl1_symbol_block.greatest_severity STATEMENT 1 ON LINE 174 sym_ptr -> pl1_symbol_block.flags.io = cg_static_$io_used; 000340 la 4 00100 2351 20 lda pr4|64,* cg_static_$io_used 000341 aa 000004 7710 00 arl 4 000342 aa 2 00003 6751 00 era pr2|3 pl1_symbol_block.io 000343 aa 020000 3750 03 ana 8192,du 000344 aa 2 00003 6551 00 ersa pr2|3 pl1_symbol_block.io STATEMENT 1 ON LINE 175 sym_ptr -> pl1_symbol_block.flags.map = cg_static_$generate_map; 000345 la 4 00104 2351 20 lda pr4|68,* cg_static_$generate_map 000346 aa 000002 7710 00 arl 2 000347 aa 2 00003 6751 00 era pr2|3 pl1_symbol_block.map 000350 aa 100000 3750 03 ana 32768,du 000351 aa 2 00003 6551 00 ersa pr2|3 pl1_symbol_block.map STATEMENT 1 ON LINE 177 string (sym_ptr -> pl1_symbol_block.segname) = store_string ((cg_static_$seg_name)); 000352 la 4 00014 2361 20 ldq pr4|12,* cg_static_$seg_name 000353 aa 524000 2760 03 orq 174080,du 000354 aa 6 00164 7561 00 stq pr6|116 000355 la 4 00014 2361 20 ldq pr4|12,* cg_static_$seg_name 000356 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 000357 aa 6 00152 2521 00 spri2 pr6|106 000360 la 4 00014 3735 20 epp7 pr4|12,* 000361 la 4 00014 7271 20 lxl7 pr4|12,* cg_static_$seg_name 000362 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000363 aa 7 00001 00 0017 desc9a pr7|1,x7 cg_static_$seg_name 000364 aa 2 00000 00 0006 desc9a pr2|0,ql 000365 aa 6 00114 3715 20 epp5 pr6|76,* sym_ptr 000366 aa 5 00007 3521 00 epp2 pr5|7 000367 aa 6 00154 2521 00 spri2 pr6|108 000370 aa 6 00164 3521 00 epp2 pr6|116 000371 aa 6 00160 2521 00 spri2 pr6|112 000372 aa 777410 3520 04 epp2 -248,ic 000002 = 516000000044 000373 aa 6 00162 2521 00 spri2 pr6|114 000374 aa 6 00150 6211 00 eax1 pr6|104 000375 aa 010000 4310 07 fld 4096,dl 000376 aa 000467 3520 04 epp2 311,ic 001065 = 000120627000 000377 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 179 if cg_static_$generate_symtab | cg_static_$table_option then do; 000400 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 000401 aa 6 00044 3701 20 epp4 pr6|36,* 000402 la 4 00072 2351 20 lda pr4|58,* cg_static_$generate_symtab 000403 aa 000003 6010 04 tnz 3,ic 000406 000404 la 4 00074 2351 20 lda pr4|60,* cg_static_$table_option 000405 aa 000011 6000 04 tze 9,ic 000416 STATEMENT 1 ON LINE 181 sym_ptr -> pl1_symbol_block.flags.table = "1"b; 000406 aa 200000 2350 03 lda 65536,du 000407 aa 6 00114 3735 20 epp7 pr6|76,* sym_ptr 000410 aa 7 00003 2551 00 orsa pr7|3 pl1_symbol_block.table STATEMENT 1 ON LINE 183 sym_ptr -> pl1_symbol_block.root = bit (cg_static_$sym_pos, 18); 000411 la 4 00056 2351 20 lda pr4|46,* cg_static_$sym_pos 000412 aa 000002 6050 04 tpl 2,ic 000414 000413 aa 000000 5310 00 neg 0 000414 aa 000022 7350 00 als 18 000415 aa 7 00005 5511 60 stba pr7|5,60 pl1_symbol_block.root STATEMENT 1 ON LINE 184 end; STATEMENT 1 ON LINE 186 if cg_static_$profile_option then do; 000416 la 4 00102 2351 20 lda pr4|66,* cg_static_$profile_option 000417 aa 000014 6000 04 tze 12,ic 000433 STATEMENT 1 ON LINE 188 sym_ptr -> pl1_symbol_block.flags.profile = "1"b; 000420 aa 400000 2350 03 lda 131072,du 000421 aa 6 00114 3735 20 epp7 pr6|76,* sym_ptr 000422 aa 7 00003 2551 00 orsa pr7|3 pl1_symbol_block.profile STATEMENT 1 ON LINE 189 sym_ptr -> pl1_symbol_block.profile = bit (cg_static_$profile_pos, 18); 000423 la 4 00060 2351 20 lda pr4|48,* cg_static_$profile_pos 000424 aa 000002 6050 04 tpl 2,ic 000426 000425 aa 000000 5310 00 neg 0 000426 aa 0 00264 3771 00 anaq pr0|180 = 000000777777 777777777777 000427 aa 7 00005 5511 14 stba pr7|5,14 pl1_symbol_block.profile STATEMENT 1 ON LINE 190 sym_reloc_ptr -> pl1_symbol_block.profile = rc_is18; 000430 aa 000030 2350 07 lda 24,dl 000431 aa 6 00102 3715 20 epp5 pr6|66,* sym_reloc_ptr 000432 aa 5 00005 5511 14 stba pr5|5,14 pl1_symbol_block.profile STATEMENT 1 ON LINE 191 end; STATEMENT 1 ON LINE 193 if cg_static_$long_profile then do; 000433 la 4 00106 2351 20 lda pr4|70,* cg_static_$long_profile 000434 aa 000014 6000 04 tze 12,ic 000450 STATEMENT 1 ON LINE 195 sym_ptr -> pl1_symbol_block.flags.long_profile = "1"b; 000435 aa 004000 2350 03 lda 2048,du 000436 aa 6 00114 3735 20 epp7 pr6|76,* sym_ptr 000437 aa 7 00003 2551 00 orsa pr7|3 pl1_symbol_block.long_profile STATEMENT 1 ON LINE 196 sym_ptr -> pl1_symbol_block.profile = bit (cg_static_$profile_start, 18); 000440 la 4 00066 2351 20 lda pr4|54,* cg_static_$profile_start 000441 aa 000002 6050 04 tpl 2,ic 000443 000442 aa 000000 5310 00 neg 0 000443 aa 0 00264 3771 00 anaq pr0|180 = 000000777777 777777777777 000444 aa 7 00005 5511 14 stba pr7|5,14 pl1_symbol_block.profile STATEMENT 1 ON LINE 197 sym_reloc_ptr -> pl1_symbol_block.profile = rc_is18; 000445 aa 000030 2350 07 lda 24,dl 000446 aa 6 00102 3715 20 epp5 pr6|66,* sym_reloc_ptr 000447 aa 5 00005 5511 14 stba pr5|5,14 pl1_symbol_block.profile STATEMENT 1 ON LINE 198 end; STATEMENT 1 ON LINE 200 cg_static_$sym_base -> std_symbol_header.maxi_truncate = bit (cg_static_$sym_pos, 18); 000450 la 4 00056 2351 20 lda pr4|46,* cg_static_$sym_pos 000451 aa 000002 6050 04 tpl 2,ic 000453 000452 aa 000000 5310 00 neg 0 000453 aa 000022 7350 00 als 18 000454 la 4 00036 3735 20 epp7 pr4|30,* cg_static_$sym_base 000455 aa 7 00000 3735 20 epp7 pr7|0,* cg_static_$sym_base 000456 aa 7 00023 5511 60 stba pr7|19,60 std_symbol_header.maxi_truncate STATEMENT 1 ON LINE 202 return; 000457 aa 0 00631 7101 00 tra pr0|409 return_mac ENTRY TO gen_pl1_symbol$end_symbol STATEMENT 1 ON LINE 221 gen_pl1_symbol$end_symbol: entry; 000460 da 000430200000 000461 aa 000200 6270 00 eax7 128 000462 aa 7 00034 3521 20 epp2 pr7|28,* 000463 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000464 aa 000000000000 000465 aa 000000000000 STATEMENT 1 ON LINE 224 addrel (cg_static_$def_base, cg_static_$last_def) -> definition.forward = bit (cg_static_$def_pos, 18); 000466 aa 6 00044 3701 20 epp4 pr6|36,* 000467 la 4 00024 2351 20 lda pr4|20,* cg_static_$last_def 000470 la 4 00032 3521 20 epp2 pr4|26,* cg_static_$def_base 000471 aa 2 00000 3521 61 epp2 pr2|0,*au cg_static_$def_base 000472 aa 000000 0520 03 adwp2 0,du 000473 la 4 00050 2351 20 lda pr4|40,* cg_static_$def_pos 000474 aa 000002 6050 04 tpl 2,ic 000476 000475 aa 000000 5310 00 neg 0 000476 aa 000022 7350 00 als 18 000477 aa 2 00000 5511 60 stba pr2|0,60 definition.forward STATEMENT 1 ON LINE 225 cg_static_$def_pos = cg_static_$def_pos + 1; 000500 la 4 00050 0541 20 aos pr4|40,* cg_static_$def_pos STATEMENT 1 ON LINE 227 link_pos = cg_static_$link_pos; 000501 la 4 00046 2361 20 ldq pr4|38,* cg_static_$link_pos 000502 aa 6 00116 7561 00 stq pr6|78 link_pos STATEMENT 1 ON LINE 229 if link_pos > max_link_size then call error (259, null, null); 000503 aa 040000 1160 07 cmpq 16384,dl 000504 aa 000020 6044 04 tmoz 16,ic 000524 000505 aa 000403 2360 07 ldq 259,dl 000506 aa 6 00164 7561 00 stq pr6|116 000507 aa 777275 3734 24 epp7 -323,ic* 000510 aa 6 00146 6535 00 spri7 pr6|102 000511 aa 6 00166 6535 00 spri7 pr6|118 000512 aa 6 00164 3521 00 epp2 pr6|116 000513 aa 6 00152 2521 00 spri2 pr6|106 000514 aa 6 00146 3521 00 epp2 pr6|102 000515 aa 6 00154 2521 00 spri2 pr6|108 000516 aa 6 00166 3521 00 epp2 pr6|118 000517 aa 6 00156 2521 00 spri2 pr6|110 000520 aa 6 00150 6211 00 eax1 pr6|104 000521 aa 014000 4310 07 fld 6144,dl 000522 la 4 00114 3521 20 epp2 pr4|76,* error 000523 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 232 link_base = cg_static_$link_base; 000524 aa 6 00044 3701 20 epp4 pr6|36,* 000525 la 4 00030 3735 20 epp7 pr4|24,* cg_static_$link_base 000526 aa 7 00000 3735 20 epp7 pr7|0,* cg_static_$link_base 000527 aa 6 00106 6535 00 spri7 pr6|70 link_base STATEMENT 1 ON LINE 233 link_reloc_base = cg_static_$link_reloc_base; 000530 la 4 00034 3715 20 epp5 pr4|28,* cg_static_$link_reloc_base 000531 aa 5 00000 3715 20 epp5 pr5|0,* cg_static_$link_reloc_base 000532 aa 6 00110 6515 00 spri5 pr6|72 link_reloc_base STATEMENT 1 ON LINE 235 sym_base = cg_static_$sym_base; 000533 la 4 00036 3535 20 epp3 pr4|30,* cg_static_$sym_base 000534 aa 3 00000 3535 20 epp3 pr3|0,* cg_static_$sym_base 000535 aa 6 00112 2535 00 spri3 pr6|74 sym_base STATEMENT 1 ON LINE 236 sym_pos = cg_static_$sym_pos; 000536 la 4 00056 2361 20 ldq pr4|46,* cg_static_$sym_pos 000537 aa 6 00117 7561 00 stq pr6|79 sym_pos STATEMENT 1 ON LINE 237 sym_ptr = addrel (sym_base, sym_pos); 000540 aa 6 00112 3521 66 epp2 pr6|74,*ql sym_base 000541 aa 000000 0520 03 adwp2 0,du 000542 aa 6 00114 2521 00 spri2 pr6|76 sym_ptr STATEMENT 1 ON LINE 241 link_base -> link_head.def_base = bit (cg_static_$text_pos, 18); 000543 la 4 00044 2351 20 lda pr4|36,* cg_static_$text_pos 000544 aa 000002 6050 04 tpl 2,ic 000546 000545 aa 000000 5310 00 neg 0 000546 aa 000022 7350 00 als 18 000547 aa 6 00106 3515 20 epp1 pr6|70,* link_base 000550 aa 1 00001 5511 60 stba pr1|1,60 link_head.def_base STATEMENT 1 ON LINE 243 link_base -> link_head.first_link = bit (cg_static_$link_begin, 18); 000551 la 4 00052 2351 20 lda pr4|42,* cg_static_$link_begin 000552 aa 000002 6050 04 tpl 2,ic 000554 000553 aa 000000 5310 00 neg 0 000554 aa 000022 7350 00 als 18 000555 aa 1 00006 5511 60 stba pr1|6,60 link_head.first_link STATEMENT 1 ON LINE 245 link_base -> link_head.block_length = bit (cg_static_$link_pos, 18); 000556 la 4 00046 2351 20 lda pr4|38,* cg_static_$link_pos 000557 aa 000002 6050 04 tpl 2,ic 000561 000560 aa 000000 5310 00 neg 0 000561 aa 0 00264 3771 00 anaq pr0|180 = 000000777777 777777777777 000562 aa 1 00006 5511 14 stba pr1|6,14 link_head.block_length STATEMENT 1 ON LINE 247 if cg_static_$separate_static then link_base -> link_head.static_length = bit (cg_static_$stat_pos, 18); 000563 la 4 00076 2351 20 lda pr4|62,* cg_static_$separate_static 000564 aa 000007 6000 04 tze 7,ic 000573 000565 la 4 00064 2351 20 lda pr4|52,* cg_static_$stat_pos 000566 aa 000002 6050 04 tpl 2,ic 000570 000567 aa 000000 5310 00 neg 0 000570 aa 0 00264 3771 00 anaq pr0|180 = 000000777777 777777777777 000571 aa 1 00007 5511 14 stba pr1|7,14 link_head.static_length 000572 aa 000011 7100 04 tra 9,ic 000603 STATEMENT 1 ON LINE 249 else link_base -> link_head.static_length = bit (fixed (cg_static_$link_begin - size (link_head), 18), 18); 000573 la 4 00052 2361 20 ldq pr4|42,* cg_static_$link_begin 000574 aa 000010 1760 07 sbq 8,dl 000575 aa 000003 6050 04 tpl 3,ic 000600 000576 aa 0 00110 6761 00 erq pr0|72 = 777777777777 000577 aa 000001 0760 07 adq 1,dl 000600 aa 000066 7370 00 lls 54 000601 aa 000022 7730 00 lrl 18 000602 aa 1 00007 5511 14 stba pr1|7,14 link_head.static_length STATEMENT 1 ON LINE 253 link_reloc_base -> reloc (1) = rc_t; 000603 aa 000020 2350 03 lda 16,du 000604 aa 6 00110 3735 20 epp7 pr6|72,* link_reloc_base 000605 aa 7 00001 7551 00 sta pr7|1 reloc STATEMENT 1 ON LINE 257 sym_base -> std_symbol_header.mini_truncate = bit (sym_pos, 18); 000606 aa 6 00117 2351 00 lda pr6|79 sym_pos 000607 aa 000002 6050 04 tpl 2,ic 000611 000610 aa 000000 5310 00 neg 0 000611 aa 0 00264 3771 00 anaq pr0|180 = 000000777777 777777777777 000612 aa 6 00112 3715 20 epp5 pr6|74,* sym_base 000613 aa 5 00022 5511 14 stba pr5|18,14 std_symbol_header.mini_truncate STATEMENT 1 ON LINE 259 l = 1; 000614 aa 000001 2360 07 ldq 1,dl 000615 aa 6 00123 7561 00 stq pr6|83 l STATEMENT 1 ON LINE 260 sym_rel_bit_count = sym_pos; 000616 aa 6 00117 2361 00 ldq pr6|79 sym_pos 000617 aa 6 00125 7561 00 stq pr6|85 sym_rel_bit_count STATEMENT 1 ON LINE 262 do p = cg_static_$text_reloc_base, cg_static_$def_reloc_base, link_reloc_base, cg_static_$sym_reloc_base; 000620 aa 000137 3520 04 epp2 95,ic 000757 = 000007352004 000621 aa 6 00132 2521 00 spri2 pr6|90 000622 la 4 00026 3535 20 epp3 pr4|22,* cg_static_$text_reloc_base 000623 aa 3 00000 3535 20 epp3 pr3|0,* cg_static_$text_reloc_base 000624 aa 6 00100 2535 00 spri3 pr6|64 p STATEMENT 1 ON LINE 264 b18 = bit (sym_pos, 18); 000625 aa 6 00117 2351 00 lda pr6|79 sym_pos 000626 aa 000002 6050 04 tpl 2,ic 000630 000627 aa 000000 5310 00 neg 0 000630 aa 000022 7350 00 als 18 000631 aa 6 00126 7551 00 sta pr6|86 b18 STATEMENT 1 ON LINE 266 if l = 1 then do; 000632 aa 6 00123 2361 00 ldq pr6|83 l 000633 aa 000001 1160 07 cmpq 1,dl 000634 aa 000010 6010 04 tnz 8,ic 000644 STATEMENT 1 ON LINE 268 m = cg_static_$text_pos; 000635 aa 6 00044 3701 20 epp4 pr6|36,* 000636 la 4 00044 2361 20 ldq pr4|36,* cg_static_$text_pos 000637 aa 6 00127 7561 00 stq pr6|87 m STATEMENT 1 ON LINE 269 sym_base -> std_symbol_header.rel_text = b18; 000640 aa 000022 7710 00 arl 18 000641 aa 6 00112 3735 20 epp7 pr6|74,* sym_base 000642 aa 7 00020 5511 14 stba pr7|16,14 std_symbol_header.rel_text STATEMENT 1 ON LINE 270 end; 000643 aa 000027 7100 04 tra 23,ic 000672 STATEMENT 1 ON LINE 271 else if l = 2 then do; 000644 aa 000002 1160 07 cmpq 2,dl 000645 aa 000007 6010 04 tnz 7,ic 000654 STATEMENT 1 ON LINE 273 m = cg_static_$def_pos; 000646 aa 6 00044 3701 20 epp4 pr6|36,* 000647 la 4 00050 2361 20 ldq pr4|40,* cg_static_$def_pos 000650 aa 6 00127 7561 00 stq pr6|87 m STATEMENT 1 ON LINE 274 sym_base -> std_symbol_header.rel_def = b18; 000651 aa 6 00112 3735 20 epp7 pr6|74,* sym_base 000652 aa 7 00021 5511 60 stba pr7|17,60 std_symbol_header.rel_def STATEMENT 1 ON LINE 275 end; 000653 aa 000017 7100 04 tra 15,ic 000672 STATEMENT 1 ON LINE 276 else if l = 3 then do; 000654 aa 000003 1160 07 cmpq 3,dl 000655 aa 000007 6010 04 tnz 7,ic 000664 STATEMENT 1 ON LINE 278 m = link_pos; 000656 aa 6 00116 2361 00 ldq pr6|78 link_pos 000657 aa 6 00127 7561 00 stq pr6|87 m STATEMENT 1 ON LINE 279 sym_base -> std_symbol_header.rel_link = b18; 000660 aa 000022 7710 00 arl 18 000661 aa 6 00112 3735 20 epp7 pr6|74,* sym_base 000662 aa 7 00021 5511 14 stba pr7|17,14 std_symbol_header.rel_link STATEMENT 1 ON LINE 280 end; 000663 aa 000007 7100 04 tra 7,ic 000672 STATEMENT 1 ON LINE 281 else if l = 4 then do; 000664 aa 000004 1160 07 cmpq 4,dl 000665 aa 000005 6010 04 tnz 5,ic 000672 STATEMENT 1 ON LINE 283 m = sym_rel_bit_count; 000666 aa 6 00125 2361 00 ldq pr6|85 sym_rel_bit_count 000667 aa 6 00127 7561 00 stq pr6|87 m STATEMENT 1 ON LINE 284 sym_base -> std_symbol_header.rel_symbol = b18; 000670 aa 6 00112 3735 20 epp7 pr6|74,* sym_base 000671 aa 7 00022 5511 60 stba pr7|18,60 std_symbol_header.rel_symbol STATEMENT 1 ON LINE 285 end; STATEMENT 1 ON LINE 287 m = m * 2; 000672 aa 6 00127 2361 00 ldq pr6|87 m 000673 aa 000001 7360 00 qls 1 000674 aa 6 00127 7561 00 stq pr6|87 m STATEMENT 1 ON LINE 289 sym_ptr -> relinfo.version = 1; 000675 aa 000001 2360 07 ldq 1,dl 000676 aa 6 00114 7561 20 stq pr6|76,* relinfo.version STATEMENT 1 ON LINE 291 i, k = 0; 000677 aa 6 00120 4501 00 stz pr6|80 i 000700 aa 6 00122 4501 00 stz pr6|82 k STATEMENT 1 ON LINE 293 do j = 0 to m - 1; 000701 aa 6 00127 2361 00 ldq pr6|87 m 000702 aa 000001 1760 07 sbq 1,dl 000703 aa 6 00134 7561 00 stq pr6|92 000704 aa 6 00121 4501 00 stz pr6|81 j 000705 aa 000000 0110 03 nop 0,du 000706 aa 6 00121 2361 00 ldq pr6|81 j 000707 aa 6 00134 1161 00 cmpq pr6|92 000710 aa 000030 6054 04 tpnz 24,ic 000740 STATEMENT 1 ON LINE 294 b18 = p -> reloc_in.half_word (j); 000711 aa 000022 4020 07 mpy 18,dl 000712 aa 6 00126 4501 00 stz pr6|86 b18 000713 aa 6 00100 3735 20 epp7 pr6|64,* p 000714 aa 003 100 060 506 csl (pr,ql),(pr),fill(0),bool(move) 000715 aa 7 00000 00 0022 descb pr7|0,18 reloc_in.half_word 000716 aa 6 00126 00 0022 descb pr6|86,18 b18 STATEMENT 1 ON LINE 295 if b18 then do; 000717 aa 6 00126 2351 00 lda pr6|86 b18 000720 aa 000015 6000 04 tze 13,ic 000735 STATEMENT 1 ON LINE 297 if k ^= 0 then do; 000721 aa 6 00122 2361 00 ldq pr6|82 k 000722 aa 000003 6000 04 tze 3,ic 000725 STATEMENT 1 ON LINE 304 call expanded_absolute; 000723 aa 000077 6700 04 tsp4 63,ic 001022 STATEMENT 1 ON LINE 306 k = 0; 000724 aa 6 00122 4501 00 stz pr6|82 k STATEMENT 1 ON LINE 307 end; STATEMENT 1 ON LINE 309 substr (sym_ptr -> relbits, i + 1, 5) = substr (b18, 14, 5); 000725 aa 6 00120 7271 00 lxl7 pr6|80 i 000726 aa 6 00114 3735 20 epp7 pr6|76,* sym_ptr 000727 aa 003 117 060 500 csl (pr),(pr,x7),fill(0),bool(move) 000730 aa 6 00126 24 0005 descb pr6|86(13),5 b18 000731 aa 7 00002 00 0005 descb pr7|2,5 relinfo.relbits STATEMENT 1 ON LINE 310 i = i + 5; 000732 aa 000005 2360 07 ldq 5,dl 000733 aa 6 00120 0561 00 asq pr6|80 i STATEMENT 1 ON LINE 311 end; 000734 aa 000002 7100 04 tra 2,ic 000736 STATEMENT 1 ON LINE 312 else k = k + 1; 000735 aa 6 00122 0541 00 aos pr6|82 k STATEMENT 1 ON LINE 313 end; 000736 aa 6 00121 0541 00 aos pr6|81 j 000737 aa 777747 7100 04 tra -25,ic 000706 STATEMENT 1 ON LINE 315 if k ^= 0 then call expanded_absolute; 000740 aa 6 00122 2361 00 ldq pr6|82 k 000741 aa 000002 6000 04 tze 2,ic 000743 000742 aa 000060 6700 04 tsp4 48,ic 001022 STATEMENT 1 ON LINE 318 sym_ptr -> rel_bit_count = i; 000743 aa 6 00120 2361 00 ldq pr6|80 i 000744 aa 6 00114 3735 20 epp7 pr6|76,* sym_ptr 000745 aa 7 00001 7561 00 stq pr7|1 relinfo.rel_bit_count STATEMENT 1 ON LINE 319 l = l + 1; 000746 aa 6 00123 0541 00 aos pr6|83 l STATEMENT 1 ON LINE 321 j = size (sym_ptr -> relinfo); 000747 aa 000110 0760 07 adq 72,dl 000750 aa 000043 0760 07 adq 35,dl 000751 aa 000044 5060 07 div 36,dl 000752 aa 6 00121 7561 00 stq pr6|81 j STATEMENT 1 ON LINE 322 sym_pos = sym_pos + j; 000753 aa 6 00117 0561 00 asq pr6|79 sym_pos STATEMENT 1 ON LINE 323 sym_ptr = addrel (sym_ptr, j); 000754 aa 7 00000 5075 06 awd pr7|0,ql 000755 aa 6 00114 6535 00 spri7 pr6|76 sym_ptr STATEMENT 1 ON LINE 324 end; 000756 aa 6 00132 7101 20 tra pr6|90,* 000757 aa 000007 3520 04 epp2 7,ic 000766 = 000005352004 000760 aa 6 00132 2521 00 spri2 pr6|90 000761 aa 6 00044 3701 20 epp4 pr6|36,* 000762 la 4 00042 3735 20 epp7 pr4|34,* cg_static_$def_reloc_base 000763 aa 7 00000 3735 20 epp7 pr7|0,* cg_static_$def_reloc_base 000764 aa 6 00100 6535 00 spri7 pr6|64 p 000765 aa 777640 7100 04 tra -96,ic 000625 000766 aa 000005 3520 04 epp2 5,ic 000773 = 000007352004 000767 aa 6 00132 2521 00 spri2 pr6|90 000770 aa 6 00110 3735 20 epp7 pr6|72,* link_reloc_base 000771 aa 6 00100 6535 00 spri7 pr6|64 p 000772 aa 777633 7100 04 tra -101,ic 000625 000773 aa 000007 3520 04 epp2 7,ic 001002 = 600117236100 000774 aa 6 00132 2521 00 spri2 pr6|90 000775 aa 6 00044 3701 20 epp4 pr6|36,* 000776 la 4 00040 3735 20 epp7 pr4|32,* cg_static_$sym_reloc_base 000777 aa 7 00000 3735 20 epp7 pr7|0,* cg_static_$sym_reloc_base 001000 aa 6 00100 6535 00 spri7 pr6|64 p 001001 aa 777624 7100 04 tra -108,ic 000625 STATEMENT 1 ON LINE 326 cg_static_$sym_pos = sym_pos; 001002 aa 6 00117 2361 00 ldq pr6|79 sym_pos 001003 aa 6 00044 3701 20 epp4 pr6|36,* 001004 la 4 00056 7561 20 stq pr4|46,* cg_static_$sym_pos STATEMENT 1 ON LINE 328 cg_static_$sym_base -> std_symbol_header.block_size = bit (sym_pos, 18); 001005 aa 6 00117 2351 00 lda pr6|79 sym_pos 001006 aa 000002 6050 04 tpl 2,ic 001010 001007 aa 000000 5310 00 neg 0 001010 aa 0 00264 3771 00 anaq pr0|180 = 000000777777 777777777777 001011 la 4 00036 3735 20 epp7 pr4|30,* cg_static_$sym_base 001012 aa 7 00000 3735 20 epp7 pr7|0,* cg_static_$sym_base 001013 aa 7 00017 5511 14 stba pr7|15,14 std_symbol_header.block_size STATEMENT 1 ON LINE 330 if cg_static_$generate_map then string (info_ptr -> pl1_symbol_block.map) = string (cg_static_$statement_map); 001014 la 4 00104 2351 20 lda pr4|68,* cg_static_$generate_map 001015 aa 000004 6000 04 tze 4,ic 001021 001016 la 4 00112 2351 20 lda pr4|74,* 001017 ia 4 00010 3715 20 epp5 pr4|8,* info_ptr 001020 aa 5 00006 7551 00 sta pr5|6 STATEMENT 1 ON LINE 333 return; 001021 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 372 end gen_pl1_symbol$beg_symbol; BEGIN PROCEDURE expanded_absolute ENTRY TO expanded_absolute STATEMENT 1 ON LINE 335 expanded_absolute: proc; 001022 aa 6 00136 6501 00 spri4 pr6|94 STATEMENT 1 ON LINE 338 if k < 16 then i = i + k; 001023 aa 6 00122 2361 00 ldq pr6|82 k 001024 aa 000020 1160 07 cmpq 16,dl 001025 aa 000003 6050 04 tpl 3,ic 001030 001026 aa 6 00120 0561 00 asq pr6|80 i 001027 aa 000034 7100 04 tra 28,ic 001063 STATEMENT 1 ON LINE 340 else do; STATEMENT 1 ON LINE 341 do while (k > 1023); 001030 aa 6 00122 2361 00 ldq pr6|82 k 001031 aa 001777 1160 07 cmpq 1023,dl 001032 aa 000013 6044 04 tmoz 11,ic 001045 STATEMENT 1 ON LINE 342 substr (sym_ptr -> relbits, i + 1, 15) = "111101111111111"b; 001033 aa 6 00120 7271 00 lxl7 pr6|80 i 001034 aa 6 00114 3735 20 epp7 pr6|76,* sym_ptr 001035 aa 003 117 060 404 csl (ic),(pr,x7),fill(0),bool(move) 001036 aa 000111 00 0017 descb 73,15 001146 = 757770000000 001037 aa 7 00002 00 0017 descb pr7|2,15 relinfo.relbits STATEMENT 1 ON LINE 343 i = i + 15; 001040 aa 000017 2360 07 ldq 15,dl 001041 aa 6 00120 0561 00 asq pr6|80 i STATEMENT 1 ON LINE 344 k = k - 1023; 001042 aa 001777 3360 07 lcq 1023,dl 001043 aa 6 00122 0561 00 asq pr6|82 k STATEMENT 1 ON LINE 345 end; 001044 aa 777764 7100 04 tra -12,ic 001030 STATEMENT 1 ON LINE 347 substr (sym_ptr -> relbits, i + 1, 15) = "11110"b || bit (fixed (k, 10), 10); 001045 aa 6 00122 2351 00 lda pr6|82 k 001046 aa 000002 6050 04 tpl 2,ic 001050 001047 aa 000000 5310 00 neg 0 001050 aa 000032 7350 00 als 26 001051 aa 000005 7710 00 arl 5 001052 aa 740000 2750 03 ora 245760,du 001053 aa 6 00056 7551 00 sta pr6|46 001054 aa 6 00120 7271 00 lxl7 pr6|80 i 001055 aa 6 00114 3735 20 epp7 pr6|76,* sym_ptr 001056 aa 003 117 060 500 csl (pr),(pr,x7),fill(0),bool(move) 001057 aa 6 00056 00 0017 descb pr6|46,15 001060 aa 7 00002 00 0017 descb pr7|2,15 relinfo.relbits STATEMENT 1 ON LINE 348 i = i + 15; 001061 aa 000017 2360 07 ldq 15,dl 001062 aa 6 00120 0561 00 asq pr6|80 i STATEMENT 1 ON LINE 349 end; STATEMENT 1 ON LINE 350 end expanded_absolute; 001063 aa 6 00136 6101 00 rtcd pr6|94 END PROCEDURE expanded_absolute BEGIN PROCEDURE store_string ENTRY TO store_string STATEMENT 1 ON LINE 352 store_string: proc (str) returns (bit (36)); 001064 da 000437220000 001065 aa 000120 6270 00 eax7 80 001066 aa 7 00034 3521 20 epp2 pr7|28,* 001067 aa 2 01050 2721 00 tsp2 pr2|552 int_entry_desc 001070 aa 000004000000 001071 aa 000000000000 001072 aa 6 00042 3735 20 epp7 pr6|34,* 001073 aa 7 00000 2361 20 ldq pr7|0,* 001074 aa 000002 6040 04 tmi 2,ic 001076 001075 aa 777777 3760 07 anq 262143,dl 001076 aa 0 00250 3761 00 anq pr0|168 = 000077777777 001077 aa 6 00103 7561 00 stq pr6|67 STATEMENT 1 ON LINE 361 if length (str) = 0 then return ((36)"0"b); 001100 aa 6 00103 2361 00 ldq pr6|67 001101 aa 000007 6010 04 tnz 7,ic 001110 001102 aa 6 00032 3715 20 epp5 pr6|26,* 001103 aa 5 00004 3535 20 epp3 pr5|4,* 001104 aa 003 100 060 400 csl (),(pr),fill(0),bool(move) 001105 aa 000000 00 0000 descb 0,0 001106 aa 3 00000 00 0044 descb pr3|0,36 001107 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 364 substr (b36, 1, 18) = bit (cg_static_$sym_pos, 18); 001110 la 4 00056 2351 20 lda pr4|46,* cg_static_$sym_pos 001111 aa 000002 6050 04 tpl 2,ic 001113 001112 aa 000000 5310 00 neg 0 001113 aa 000022 7350 00 als 18 001114 aa 6 00102 5511 60 stba pr6|66,60 b36 STATEMENT 1 ON LINE 365 p = addrel (cg_static_$sym_base, cg_static_$sym_pos); 001115 la 4 00056 2361 20 ldq pr4|46,* cg_static_$sym_pos 001116 la 4 00036 3521 20 epp2 pr4|30,* cg_static_$sym_base 001117 aa 2 00000 3521 66 epp2 pr2|0,*ql cg_static_$sym_base 001120 aa 000000 0520 03 adwp2 0,du 001121 aa 6 00100 2521 00 spri2 pr6|64 p STATEMENT 1 ON LINE 366 p -> based_string = str; 001122 aa 6 00032 3715 20 epp5 pr6|26,* 001123 aa 5 00002 3535 20 epp3 pr5|2,* 001124 aa 6 00103 2351 00 lda pr6|67 001125 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 001126 aa 3 00000 00 0005 desc9a pr3|0,al str 001127 aa 2 00000 00 0005 desc9a pr2|0,al based_string STATEMENT 1 ON LINE 367 cg_static_$sym_pos = cg_static_$sym_pos + divide (length (str) + 3, 4, 17, 0); 001130 aa 6 00103 2361 00 ldq pr6|67 001131 aa 000003 0760 07 adq 3,dl 001132 aa 000004 5060 07 div 4,dl 001133 la 4 00056 0561 20 asq pr4|46,* cg_static_$sym_pos STATEMENT 1 ON LINE 368 substr (b36, 19, 18) = bit (fixed (length (str), 18), 18); 001134 aa 6 00103 2351 00 lda pr6|67 001135 aa 000002 6050 04 tpl 2,ic 001137 001136 aa 000000 5310 00 neg 0 001137 aa 0 00264 3771 00 anaq pr0|180 = 000000777777 777777777777 001140 aa 6 00102 5511 14 stba pr6|66,14 b36 STATEMENT 1 ON LINE 369 return (b36); 001141 aa 5 00004 3515 20 epp1 pr5|4,* 001142 aa 003 100 060 500 csl (pr),(pr),fill(0),bool(move) 001143 aa 6 00102 00 0044 descb pr6|66,36 b36 001144 aa 1 00000 00 0044 descb pr1|0,36 001145 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 370 end store_string; END PROCEDURE store_string END PROCEDURE gen_pl1_symbol$beg_symbol ----------------------------------------------------------- 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