COMPILATION LISTING OF SEGMENT load_size Compiled by: Multics PL/I Compiler, Release 28d, of September 14, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 10/03/83 1648.1 mst Mon Options: optimize map 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 load size of specified string 12* 13* Modified: 14 December 1972 by BLW 14* Modified: 22 May 1973 by RAB 15* Modified: 6 May 1977 by RAB to fix 1617 16* Modified: 11 August 1978 by RAB to fix 1729 17* Modified: 18 December 1978 by RAB to fix 1805 */ 18 19 load_size: proc(pt); 20 21 dcl pt ptr; /* points at reference node */ 22 dcl breg bit(4) aligned; /* reg picked for loading size */ 23 dcl preg fixed bin; /* reg to be used for loading size */ 24 25 dcl (p,q,q1) ptr, 26 (for_eis,in_storage,in_str_aq,useless) bit(1) aligned, 27 addr_hold bit(36) aligned, 28 reloc_hold bit(12) aligned, 29 macro fixed bin(15), 30 (n,reg) fixed bin; 31 32 dcl expmac entry(fixed bin(15),ptr), 33 generate_constant$real_fix_bin_1 entry(fixed bin) returns(ptr), 34 m_a entry(ptr,bit(2) aligned), 35 eval_exp entry(ptr,bit(1) aligned) returns(ptr), 36 prepare_operand entry(ptr,fixed bin,bit(1) aligned) returns(ptr), 37 (state_man$flush_ref,state_man$update_ref) entry(ptr), 38 aq_man$load_var entry(ptr,fixed bin), 39 (aq_man$load_any_var_and_lock,xr_man$load_any_var_and_lock) entry(ptr,fixed bin,fixed bin), 40 aq_man$lock entry(ptr,fixed bin); 41 42 dcl (bit,fixed,null) builtin; 43 44 dcl fix_bin(0:1) fixed bin based; 45 46 dcl load_aq(2) init(1,7) fixed bin(15) int static; 47 1 1 /* BEGIN INCLUDE FILE ... reference.incl.pl1 */ 1 2 1 3 dcl 1 reference based aligned, 1 4 2 node_type bit(9) unaligned, 1 5 2 array_ref bit(1) unaligned, 1 6 2 varying_ref bit(1) unaligned, 1 7 2 shared bit(1) unaligned, 1 8 2 put_data_sw bit(1) unaligned, 1 9 2 processed bit(1) unaligned, 1 10 2 units fixed(3) unaligned, 1 11 2 ref_count fixed(17) unaligned, 1 12 2 c_offset fixed(24), 1 13 2 c_length fixed(24), 1 14 2 symbol ptr unaligned, 1 15 2 qualifier ptr unaligned, 1 16 2 offset ptr unaligned, 1 17 2 length ptr unaligned, 1 18 2 subscript_list ptr unaligned, 1 19 /* these fields are used by the 645 code generator */ 1 20 2 address structure unaligned, 1 21 3 base bit(3), 1 22 3 offset bit(15), 1 23 3 op bit(9), 1 24 3 no_address bit(1), 1 25 3 inhibit bit(1), 1 26 3 ext_base bit(1), 1 27 3 tag bit(6), 1 28 2 info structure unaligned, 1 29 3 address_in structure, 1 30 4 b dimension(0:7) bit(1), 1 31 4 storage bit(1), 1 32 3 value_in structure, 1 33 4 a bit(1), 1 34 4 q bit(1), 1 35 4 aq bit(1), 1 36 4 string_aq bit(1), 1 37 4 complex_aq bit(1), 1 38 4 decimal_aq bit(1), 1 39 4 b dimension(0:7) bit(1), 1 40 4 storage bit(1), 1 41 4 indicators bit(1), 1 42 4 x dimension(0:7) bit(1), 1 43 3 other structure, 1 44 4 big_offset bit(1), 1 45 4 big_length bit(1), 1 46 4 modword_in_offset bit(1), 1 47 2 data_type fixed(5) unaligned, 1 48 2 bits structure unaligned, 1 49 3 padded_ref bit(1), 1 50 3 aligned_ref bit(1), 1 51 3 long_ref bit(1), 1 52 3 forward_ref bit(1), 1 53 3 ic_ref bit(1), 1 54 3 temp_ref bit(1), 1 55 3 defined_ref bit(1), 1 56 3 evaluated bit(1), 1 57 3 allocate bit(1), 1 58 3 allocated bit(1), 1 59 3 aliasable bit(1), 1 60 3 even bit(1), 1 61 3 perm_address bit(1), 1 62 3 aggregate bit(1), 1 63 3 hit_zero bit(1), 1 64 3 dont_save bit(1), 1 65 3 fo_in_qual bit(1), 1 66 3 hard_to_load bit(1), 1 67 2 relocation bit(12) unaligned, 1 68 2 more_bits structure unaligned, 1 69 3 substr bit(1), 1 70 3 padded_for_store_ref bit(1), 1 71 3 aligned_for_store_ref bit(1), 1 72 3 mbz bit(15), 1 73 2 store_ins bit(18) unaligned; 1 74 1 75 /* END INCLUDE FILE ... reference.incl.pl1 */ 48 2 1 /* BEGIN INCLUDE FILE ... symbol.incl.pl1 */ 2 2 2 3 dcl 1 symbol based aligned, 2 4 2 node_type bit(9) unal, 2 5 2 source_id structure unal, 2 6 3 file_number bit(8), 2 7 3 line_number bit(14), 2 8 3 statement_number bit(5), 2 9 2 location fixed(18) unal unsigned, 2 10 2 allocated bit(1) unal, 2 11 2 dcl_type bit(3) unal, 2 12 2 reserved bit(6) unal, 2 13 2 pix unal, 2 14 3 pic_fixed bit(1) unal, 2 15 3 pic_float bit(1) unal, 2 16 3 pic_char bit(1) unal, 2 17 3 pic_scale fixed(7) unal, 2 18 3 pic_size fixed(7) unal, 2 19 2 level fixed(8) unal, 2 20 2 boundary fixed(3) unal, 2 21 2 size_units fixed(3) unal, 2 22 2 scale fixed(7) unal, 2 23 2 runtime bit(18) unal, 2 24 2 runtime_offset bit(18) unal, 2 25 2 block_node ptr unal, 2 26 2 token ptr unal, 2 27 2 next ptr unal, 2 28 2 multi_use ptr unal, 2 29 2 cross_references ptr unal, 2 30 2 initial ptr unal, 2 31 2 array ptr unal, 2 32 2 descriptor ptr unal, 2 33 2 equivalence ptr unal, 2 34 2 reference ptr unal, 2 35 2 general ptr unal, 2 36 2 father ptr unal, 2 37 2 brother ptr unal, 2 38 2 son ptr unal, 2 39 2 word_size ptr unal, 2 40 2 bit_size ptr unal, 2 41 2 dcl_size ptr unal, 2 42 2 symtab_size ptr unal, 2 43 2 c_word_size fixed(24), 2 44 2 c_bit_size fixed(24), 2 45 2 c_dcl_size fixed(24), 2 46 2 47 2 attributes structure aligned, 2 48 3 data_type structure unal, 2 49 4 structure bit(1) , 2 50 4 fixed bit(1), 2 51 4 float bit(1), 2 52 4 bit bit(1), 2 53 4 char bit(1), 2 54 4 ptr bit(1), 2 55 4 offset bit(1), 2 56 4 area bit(1), 2 57 4 label bit(1), 2 58 4 entry bit(1), 2 59 4 file bit(1), 2 60 4 arg_descriptor bit(1), 2 61 4 storage_block bit(1), 2 62 4 explicit_packed bit(1), /* options(packed) */ 2 63 4 condition bit(1), 2 64 4 format bit(1), 2 65 4 builtin bit(1), 2 66 4 generic bit(1), 2 67 4 picture bit(1), 2 68 2 69 3 misc_attributes structure unal, 2 70 4 dimensioned bit(1), 2 71 4 initialed bit(1), 2 72 4 aligned bit(1), 2 73 4 unaligned bit(1), 2 74 4 signed bit(1), 2 75 4 unsigned bit(1), 2 76 4 precision bit(1), 2 77 4 varying bit(1), 2 78 4 local bit(1), 2 79 4 decimal bit(1), 2 80 4 binary bit(1), 2 81 4 real bit(1), 2 82 4 complex bit(1), 2 83 4 variable bit(1), 2 84 4 reducible bit(1), 2 85 4 irreducible bit(1), 2 86 4 returns bit(1), 2 87 4 position bit(1), 2 88 4 internal bit(1), 2 89 4 external bit(1), 2 90 4 like bit(1), 2 91 4 member bit(1), 2 92 4 non_varying bit(1), 2 93 4 options bit(1), 2 94 4 variable_arg_list bit(1), /* options(variable) */ 2 95 4 alloc_in_text bit(1), /* options(constant) */ 2 96 2 97 3 storage_class structure unal, 2 98 4 auto bit(1), 2 99 4 based bit(1), 2 100 4 static bit(1), 2 101 4 controlled bit(1), 2 102 4 defined bit(1), 2 103 4 parameter bit(1), 2 104 4 param_desc bit(1), 2 105 4 constant bit(1), 2 106 4 temporary bit(1), 2 107 4 return_value bit(1), 2 108 2 109 3 file_attributes structure unal, 2 110 4 print bit(1), 2 111 4 input bit(1), 2 112 4 output bit(1), 2 113 4 update bit(1), 2 114 4 stream bit(1), 2 115 4 reserved_1 bit(1), 2 116 4 record bit(1), 2 117 4 sequential bit(1), 2 118 4 direct bit(1), 2 119 4 interactive bit(1), /* env(interactive) */ 2 120 4 reserved_2 bit(1), 2 121 4 reserved_3 bit(1), 2 122 4 stringvalue bit(1), /* env(stringvalue) */ 2 123 4 keyed bit(1), 2 124 4 reserved_4 bit(1), 2 125 4 environment bit(1), 2 126 2 127 3 compiler_developed structure unal, 2 128 4 aliasable bit(1), 2 129 4 packed bit(1), 2 130 4 passed_as_arg bit(1), 2 131 4 allocate bit(1), 2 132 4 set bit(1), 2 133 4 exp_extents bit(1), 2 134 4 refer_extents bit(1), 2 135 4 star_extents bit(1), 2 136 4 isub bit(1), 2 137 4 put_in_symtab bit(1), 2 138 4 contiguous bit(1), 2 139 4 put_data bit(1), 2 140 4 overlayed bit(1), 2 141 4 error bit(1), 2 142 4 symtab_processed bit(1), 2 143 4 overlayed_by_builtin bit(1), 2 144 4 defaulted bit(1), 2 145 4 connected bit(1); 2 146 2 147 /* END INCLUDE FILE ... symbol.incl.pl1 */ 49 3 1 /* BEGIN INCLUDE FILE ... operator.incl.pl1 */ 3 2 3 3 /* Modified: 2 Apr 1980 by PCK to add max_number_of_operands */ 3 4 3 5 /* format: style3 */ 3 6 dcl 1 operator based aligned, 3 7 2 node_type bit (9) unaligned, 3 8 2 op_code bit (9) unaligned, 3 9 2 shared bit (1) unaligned, 3 10 2 processed bit (1) unaligned, 3 11 2 optimized bit (1) unaligned, 3 12 2 number fixed (14) unaligned, 3 13 2 operand dimension (n refer (operator.number)) ptr unaligned; 3 14 3 15 dcl max_number_of_operands 3 16 fixed bin (15) int static options (constant) initial (32767); 3 17 3 18 /* END INCLUDE FILE ... operator.incl.pl1 */ 50 4 1 /* BEGIN INCLUDE FILE ... nodes.incl.pl1 */ 4 2 4 3 /* Modified: 26 Dec 1979 by PCK to implement by name assignment */ 4 4 4 5 dcl ( block_node initial("000000001"b), 4 6 statement_node initial("000000010"b), 4 7 operator_node initial("000000011"b), 4 8 reference_node initial("000000100"b), 4 9 token_node initial("000000101"b), 4 10 symbol_node initial("000000110"b), 4 11 context_node initial("000000111"b), 4 12 array_node initial("000001000"b), 4 13 bound_node initial("000001001"b), 4 14 format_value_node initial("000001010"b), 4 15 list_node initial("000001011"b), 4 16 default_node initial("000001100"b), 4 17 machine_state_node initial("000001101"b), 4 18 source_node initial("000001110"b), 4 19 label_node initial("000001111"b), 4 20 cross_reference_node initial("000010000"b), 4 21 sf_par_node initial("000010001"b), 4 22 temporary_node initial("000010010"b), 4 23 label_array_element_node initial("000010011"b), 4 24 by_name_agg_node initial("000010100"b)) 4 25 bit(9) internal static aligned options(constant); 4 26 4 27 dcl 1 node based aligned, 4 28 2 type unal bit(9), 4 29 2 source_id unal structure, 4 30 3 file_number bit(8), 4 31 3 line_number bit(14), 4 32 3 statement_number bit(5); 4 33 4 34 /* END INCLUDE FILE ... nodes.incl.pl1 */ 51 52 53 for_eis = "0"b; 54 reg = 2; 55 go to join; 56 57 load_size$a_or_q: entry(pt,preg); 58 59 for_eis = "0"b; 60 reg = preg; 61 go to join; 62 63 load_size$xr_or_aq: entry(pt,breg); 64 65 for_eis = "1"b; 66 67 join: p = pt; 68 q = p -> reference.length; 69 n = p -> reference.c_length; 70 71 if p -> reference.varying_ref 72 then do; 73 74 if q ^= null then goto l2; 75 if n ^= 0 then goto l3; 76 77 /* for a varying string, we'll load the word before the 78* start of the string if string is not constant */ 79 80 q = p -> reference.offset; 81 if q = null 82 then do; 83 q = p -> reference.symbol; 84 if q -> symbol.constant 85 then do; 86 n = q -> symbol.initial -> fix_bin(p -> reference.c_offset); 87 goto l3; 88 end; 89 end; 90 91 if ^p -> reference.shared 92 then p -> reference.ref_count = p -> reference.ref_count + 1; 93 94 if string(p -> reference.address_in.b) ^= "0"b & ^ p -> reference.temp_ref 95 /* temp_ref restriction same as in m_a */ 96 then do; 97 if p -> address.offset ^= (15)"0"b | p -> reference.no_address 98 then call m_a(p,"00"b); 99 p -> address.offset = (15)"1"b; 100 p -> reference.perm_address = "1"b; 101 end; 102 else do; 103 addr_hold = string(p -> reference.address); 104 reloc_hold = p -> reference.relocation; 105 p -> reference.c_offset = p -> reference.c_offset - 1; 106 call m_a(p,"00"b); 107 p -> reference.c_offset = p -> reference.c_offset + 1; 108 p -> reference.perm_address = "1"b; 109 end; 110 111 if for_eis 112 then do; 113 q = p; 114 call load_reg; 115 116 /* We don't want to believe that the varying string itself 117* is in the a or q register */ 118 119 in_storage = p -> reference.value_in.storage; 120 in_str_aq = p -> reference.value_in.string_aq; 121 call state_man$flush_ref(p); 122 if in_str_aq 123 then call state_man$update_ref(q); 124 p -> reference.value_in.storage = in_storage; 125 end; 126 else call expmac((load_aq(reg)),p); 127 128 if string(p -> reference.address_in.b) ^= "0"b & ^ p -> reference.temp_ref 129 then p -> address.offset = (15)"0"b; 130 else do; 131 string(p -> reference.address) = addr_hold; 132 p -> reference.relocation = reloc_hold; 133 end; 134 135 p -> reference.perm_address = "0"b; 136 137 return; 138 end; 139 140 if q = null 141 then do; 142 l3: q = generate_constant$real_fix_bin_1(n); 143 goto l1; 144 end; 145 146 l2: if q -> node.type = operator_node 147 then do; 148 q1 = q -> operand(1); 149 if q1 -> reference.evaluated then q = q1; 150 else do; 151 q, p -> reference.length = eval_exp(q,"1"b); 152 if q -> node.type = operator_node 153 then q = q -> operand(1); 154 end; 155 end; 156 157 l1: if ^ q -> reference.shared 158 then q -> reference.ref_count = q -> reference.ref_count + 1; 159 160 if q -> reference.data_type = 0 then q = prepare_operand(q,1,useless); 161 162 if ^ for_eis 163 then call aq_man$load_var(q,reg); 164 else call load_reg; 165 166 167 load_reg: proc; 168 169 dcl reg fixed bin; 170 171 if q -> reference.value_in.a 172 then do; 173 breg = "0101"b; /* a */ 174 reg = 1; 175 go to lock_aq; 176 end; 177 178 if q -> reference.value_in.q 179 then do; 180 breg = "0110"b; /* q */ 181 reg = 2; 182 lock_aq: call aq_man$lock(null,reg); 183 if ^ q -> reference.shared 184 then q -> reference.ref_count = q -> reference.ref_count - 1; 185 return; 186 end; 187 188 if p -> reference.big_length 189 then do; 190 call aq_man$load_any_var_and_lock(q,reg,0); 191 breg = "01"b || bit(fixed(reg,2),2); 192 end; 193 else do; 194 call xr_man$load_any_var_and_lock(q,reg,0); 195 breg = "1"b || bit(fixed(reg,3),3); 196 end; 197 198 end; 199 200 201 202 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/03/83 1008.9 load_size.pl1 >spec>on>pl128d>load_size.pl1 48 1 07/21/80 1546.3 reference.incl.pl1 >ldd>include>reference.incl.pl1 49 2 10/02/83 0828.4 symbol.incl.pl1 >spec>on>pl128d>symbol.incl.pl1 50 3 07/21/80 1546.3 operator.incl.pl1 >ldd>include>operator.incl.pl1 51 4 07/21/80 1546.3 nodes.incl.pl1 >ldd>include>nodes.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. a 11(09) based bit(1) level 4 packed unaligned dcl 1-3 ref 171 addr_hold 000112 automatic bit(36) dcl 25 set ref 103* 131 address 10 based structure level 2 packed unaligned dcl 1-3 set ref 103 131* address_in 11 based structure level 3 packed unaligned dcl 1-3 aq_man$load_any_var_and_lock 000030 constant entry external dcl 32 ref 190 aq_man$load_var 000026 constant entry external dcl 32 ref 162 aq_man$lock 000034 constant entry external dcl 32 ref 182 attributes 31 based structure level 2 dcl 2-3 b 11 based bit(1) array level 4 packed unaligned dcl 1-3 ref 94 128 big_length 11(34) based bit(1) level 4 packed unaligned dcl 1-3 ref 188 bit builtin function dcl 42 ref 191 195 bits 12(06) based structure level 2 packed unaligned dcl 1-3 breg parameter bit(4) dcl 22 set ref 63 173* 180* 191* 195* c_length 2 based fixed bin(24,0) level 2 dcl 1-3 ref 69 c_offset 1 based fixed bin(24,0) level 2 dcl 1-3 set ref 86 105* 105 107* 107 constant 32(16) based bit(1) level 4 packed unaligned dcl 2-3 ref 84 data_type 12 based fixed bin(5,0) level 2 packed unaligned dcl 1-3 ref 160 eval_exp 000016 constant entry external dcl 32 ref 151 evaluated 12(13) based bit(1) level 3 packed unaligned dcl 1-3 ref 149 expmac 000010 constant entry external dcl 32 ref 126 fix_bin based fixed bin(17,0) array dcl 44 ref 86 fixed builtin function dcl 42 ref 191 195 for_eis 000106 automatic bit(1) dcl 25 set ref 53* 59* 65* 111 162 generate_constant$real_fix_bin_1 000012 constant entry external dcl 32 ref 142 in_storage 000107 automatic bit(1) dcl 25 set ref 119* 124 in_str_aq 000110 automatic bit(1) dcl 25 set ref 120* 122 info 11 based structure level 2 packed unaligned dcl 1-3 initial 11 based pointer level 2 packed unaligned dcl 2-3 ref 86 length 6 based pointer level 2 packed unaligned dcl 1-3 set ref 68 151* load_aq 000000 constant fixed bin(15,0) initial array dcl 46 ref 126 m_a 000014 constant entry external dcl 32 ref 97 106 n 000114 automatic fixed bin(17,0) dcl 25 set ref 69* 75 86* 142* no_address 10(27) based bit(1) level 3 packed unaligned dcl 1-3 set ref 97 node based structure level 1 dcl 4-27 null builtin function dcl 42 ref 74 81 140 182 182 offset 5 based pointer level 2 in structure "reference" packed unaligned dcl 1-3 in procedure "load_size" ref 80 offset 10(03) based bit(15) level 3 in structure "reference" packed unaligned dcl 1-3 in procedure "load_size" set ref 97 99* 128* operand 1 based pointer array level 2 packed unaligned dcl 3-6 ref 148 152 operator based structure level 1 dcl 3-6 operator_node constant bit(9) initial dcl 4-5 ref 146 152 other 11(33) based structure level 3 packed unaligned dcl 1-3 p 000100 automatic pointer dcl 25 set ref 67* 68 69 71 80 83 86 91 91 91 94 94 97 97 97* 99 100 103 104 105 105 106* 107 107 108 113 119 120 121* 124 126* 128 128 128 131 132 135 151 188 perm_address 12(18) based bit(1) level 3 packed unaligned dcl 1-3 set ref 100* 108* 135* preg parameter fixed bin(17,0) dcl 23 ref 57 60 prepare_operand 000020 constant entry external dcl 32 ref 160 pt parameter pointer dcl 21 ref 19 57 63 67 q 000102 automatic pointer dcl 25 in procedure "load_size" set ref 68* 74 80* 81 83* 84 86 113* 122* 140 142* 146 148 149* 151* 151* 152 152* 152 157 157 157 160 160* 160* 162* 171 178 183 183 183 190* 194* q 11(10) based bit(1) level 4 in structure "reference" packed unaligned dcl 1-3 in procedure "load_size" ref 178 q1 000104 automatic pointer dcl 25 set ref 148* 149 149 ref_count 0(18) based fixed bin(17,0) level 2 packed unaligned dcl 1-3 set ref 91* 91 157* 157 183* 183 reference based structure level 1 dcl 1-3 reg 000115 automatic fixed bin(17,0) dcl 25 in procedure "load_size" set ref 54* 60* 126 162* reg 000124 automatic fixed bin(17,0) dcl 169 in procedure "load_reg" set ref 174* 181* 182* 190* 191 194* 195 reloc_hold 000113 automatic bit(12) dcl 25 set ref 104* 132 relocation 12(24) based bit(12) level 2 packed unaligned dcl 1-3 set ref 104 132* shared 0(11) based bit(1) level 2 packed unaligned dcl 1-3 ref 91 157 183 state_man$flush_ref 000022 constant entry external dcl 32 ref 121 state_man$update_ref 000024 constant entry external dcl 32 ref 122 storage 11(23) based bit(1) level 4 packed unaligned dcl 1-3 set ref 119 124* storage_class 32(09) based structure level 3 packed unaligned dcl 2-3 string_aq 11(12) based bit(1) level 4 packed unaligned dcl 1-3 ref 120 symbol based structure level 1 dcl 2-3 in procedure "load_size" symbol 3 based pointer level 2 in structure "reference" packed unaligned dcl 1-3 in procedure "load_size" ref 83 temp_ref 12(11) based bit(1) level 3 packed unaligned dcl 1-3 ref 94 128 type based bit(9) level 2 packed unaligned dcl 4-27 ref 146 152 useless 000111 automatic bit(1) dcl 25 set ref 160* value_in 11(09) based structure level 3 packed unaligned dcl 1-3 varying_ref 0(10) based bit(1) level 2 packed unaligned dcl 1-3 ref 71 xr_man$load_any_var_and_lock 000032 constant entry external dcl 32 ref 194 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. array_node internal static bit(9) initial dcl 4-5 block_node internal static bit(9) initial dcl 4-5 bound_node internal static bit(9) initial dcl 4-5 by_name_agg_node internal static bit(9) initial dcl 4-5 context_node internal static bit(9) initial dcl 4-5 cross_reference_node internal static bit(9) initial dcl 4-5 default_node internal static bit(9) initial dcl 4-5 format_value_node internal static bit(9) initial dcl 4-5 label_array_element_node internal static bit(9) initial dcl 4-5 label_node internal static bit(9) initial dcl 4-5 list_node internal static bit(9) initial dcl 4-5 machine_state_node internal static bit(9) initial dcl 4-5 macro automatic fixed bin(15,0) dcl 25 max_number_of_operands internal static fixed bin(15,0) initial dcl 3-15 reference_node internal static bit(9) initial dcl 4-5 sf_par_node internal static bit(9) initial dcl 4-5 source_node internal static bit(9) initial dcl 4-5 statement_node internal static bit(9) initial dcl 4-5 symbol_node internal static bit(9) initial dcl 4-5 temporary_node internal static bit(9) initial dcl 4-5 token_node internal static bit(9) initial dcl 4-5 NAMES DECLARED BY EXPLICIT CONTEXT. join 000055 constant label dcl 67 ref 55 61 l1 000374 constant label dcl 157 ref 143 l2 000331 constant label dcl 146 ref 74 l3 000317 constant label dcl 142 ref 75 87 load_reg 000446 constant entry internal dcl 167 ref 114 164 load_size 000013 constant entry external dcl 19 load_size$a_or_q 000030 constant entry external dcl 57 load_size$xr_or_aq 000046 constant entry external dcl 63 lock_aq 000471 constant label dcl 182 ref 175 NAME DECLARED BY CONTEXT OR IMPLICATION. string builtin function set ref 94 103 128 131* STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 772 1030 576 1002 Length 1300 576 36 234 173 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME load_size 130 external procedure is an external procedure. load_reg internal procedure shares stack frame of external procedure load_size. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME load_size 000100 p load_size 000102 q load_size 000104 q1 load_size 000106 for_eis load_size 000107 in_storage load_size 000110 in_str_aq load_size 000111 useless load_size 000112 addr_hold load_size 000113 reloc_hold load_size 000114 n load_size 000115 reg load_size 000124 reg load_reg THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. aq_man$load_any_var_and_lock aq_man$load_var aq_man$lock eval_exp expmac generate_constant$real_fix_bin_1 m_a prepare_operand state_man$flush_ref state_man$update_ref xr_man$load_any_var_and_lock NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 000010 53 000020 54 000021 55 000023 57 000024 59 000035 60 000036 61 000041 63 000042 65 000053 67 000055 68 000061 69 000063 71 000065 74 000070 75 000074 80 000076 81 000100 83 000104 84 000106 86 000111 87 000115 91 000116 94 000126 97 000134 99 000155 100 000160 101 000162 103 000163 104 000165 105 000170 106 000172 107 000205 108 000207 111 000211 113 000213 114 000214 119 000215 120 000222 121 000226 122 000235 124 000246 125 000254 126 000255 128 000271 131 000303 132 000305 135 000310 137 000312 140 000313 142 000317 143 000330 146 000331 148 000335 149 000337 151 000344 152 000365 157 000374 160 000405 162 000430 164 000444 202 000445 167 000446 171 000447 173 000453 174 000456 175 000460 178 000461 180 000464 181 000467 182 000471 183 000504 185 000515 188 000516 190 000522 191 000536 192 000546 194 000547 195 000563 198 000573 ----------------------------------------------------------- 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