COMPILATION LISTING OF SEGMENT long_op 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.6 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 /* This procedure generates a jump to an out-of-line string operator, 12* it loads bp with a pointer to the string 13* q with size of string 14* before generating the jump 15* 16* Initial Version: 2 September 1971 by BLW for Version II 17* Modified: 15 July 1972 by BLW 18* Modified: 15 February 1973 by RAB 19* Modified: 11 June 1973 by RAB for EIS 20* Modified: 26 November 1974 by RAB for long_op$one_eis 21* Modified: 5 July 1976 by RAB to fix 1504 */ 22 23 long_op: proc(pt,size,macro); 24 25 dcl pt ptr, /* ptr to reference node */ 26 size fixed bin, /* = 0 means use size from reference node */ 27 macro fixed bin(15); /* operator to be generated */ 28 29 dcl cg_stat$extended_stack bit(1) ext; 30 dcl cg_stat$text_pos fixed bin(18) ext; 31 32 dcl (p,q) ptr, 33 mac fixed bin(15), 34 (no_size,have_arg,flush,adjust) bit(1), 35 (i,n,cfo) fixed bin; 36 37 dcl odd_bases bit(19) aligned int static init("0000000000000001111"b); 38 39 dcl xr_man$load_var entry(ptr,fixed bin), 40 xr_man$load_const entry(fixed bin,fixed bin), 41 base_man$load_var entry(fixed bin,ptr,fixed bin), 42 load_size entry(ptr), 43 generate_constant$real_fix_bin_1 entry(fixed bin) returns(ptr), 44 load entry(ptr,fixed bin), 45 aq_man$lock entry(ptr,fixed bin), 46 state_man$erase_reg entry(bit(19) aligned), 47 state_man$unlock entry, 48 need_temp entry(ptr,bit(2) aligned), 49 expmac$zero entry(fixed bin(15)), 50 (expmac,expmac$eis,expmac$one_eis) entry(fixed bin(15),ptr), 51 adjust_ref_count entry(ptr,fixed bin), 52 state_man$update_ref entry(ptr), 53 base_man$update_base entry(fixed bin,ptr,fixed bin), 54 c_a entry(fixed bin,fixed bin) returns(ptr); 55 56 dcl mac_prog entry(fixed bin(15),ptr) variable; 57 58 dcl (abs,mod,null) builtin; 59 60 dcl ldfx1 fixed bin(15) int static init(7); 61 1 1 /* BEGIN INCLUDE FILE ... cgsystem.incl.pl1 */ 1 2 1 3 /* Modified: 25 Apr 1979 by PCK to implement 4-bit decimal */ 1 4 1 5 dcl ( bits_per_char init(9), 1 6 bits_per_half init(18), 1 7 bits_per_word init(36), 1 8 bits_per_two_words init(72), 1 9 bits_per_four_words init(144), 1 10 bits_per_words(2) init(36,72), 1 11 packed_digits_per_char init(2), 1 12 chars_per_word init(4), 1 13 packed_digits_per_word init(8), 1 14 1 15 break_even_bits init(216), 1 16 break_even_words init(6), 1 17 1 18 label_size init(4), 1 19 1 20 convert_size(13:14) init(9,1), 1 21 max_offset(13:14) init(27,35), 1 22 max_short_size(13:14) init(8,72), 1 23 1 24 units_per_word(0:5) init(1,36,8,4,2,1), 1 25 1 26 max_dec_scale init(32), 1 27 min_dec_scale init(-31), 1 28 max_p_xreg init(18), 1 29 max_p_fix_bin_1 init(35), 1 30 max_p_flt_bin_1 init(27), 1 31 max_p_fix_dec init(59), 1 32 max_length_p init(24), 1 33 default_fix_bin_p init(17)) fixed bin(8) int static options(constant); 1 34 1 35 dcl (convert_offset(0:5) init(36,1,4.5,9,18,36), 1 36 bits_per_packed_digit init(4.5)) fixed bin(8,1) int static options(constant); 1 37 1 38 dcl max_index_register_value init(262143) fixed bin(31) int static options(constant); 1 39 1 40 /* END INCLUDE FILE ... cgsystem.incl.pl1 */ 1 41 62 2 1 /* BEGIN INCLUDE FILE ... reference.incl.pl1 */ 2 2 2 3 dcl 1 reference based aligned, 2 4 2 node_type bit(9) unaligned, 2 5 2 array_ref bit(1) unaligned, 2 6 2 varying_ref bit(1) unaligned, 2 7 2 shared bit(1) unaligned, 2 8 2 put_data_sw bit(1) unaligned, 2 9 2 processed bit(1) unaligned, 2 10 2 units fixed(3) unaligned, 2 11 2 ref_count fixed(17) unaligned, 2 12 2 c_offset fixed(24), 2 13 2 c_length fixed(24), 2 14 2 symbol ptr unaligned, 2 15 2 qualifier ptr unaligned, 2 16 2 offset ptr unaligned, 2 17 2 length ptr unaligned, 2 18 2 subscript_list ptr unaligned, 2 19 /* these fields are used by the 645 code generator */ 2 20 2 address structure unaligned, 2 21 3 base bit(3), 2 22 3 offset bit(15), 2 23 3 op bit(9), 2 24 3 no_address bit(1), 2 25 3 inhibit bit(1), 2 26 3 ext_base bit(1), 2 27 3 tag bit(6), 2 28 2 info structure unaligned, 2 29 3 address_in structure, 2 30 4 b dimension(0:7) bit(1), 2 31 4 storage bit(1), 2 32 3 value_in structure, 2 33 4 a bit(1), 2 34 4 q bit(1), 2 35 4 aq bit(1), 2 36 4 string_aq bit(1), 2 37 4 complex_aq bit(1), 2 38 4 decimal_aq bit(1), 2 39 4 b dimension(0:7) bit(1), 2 40 4 storage bit(1), 2 41 4 indicators bit(1), 2 42 4 x dimension(0:7) bit(1), 2 43 3 other structure, 2 44 4 big_offset bit(1), 2 45 4 big_length bit(1), 2 46 4 modword_in_offset bit(1), 2 47 2 data_type fixed(5) unaligned, 2 48 2 bits structure unaligned, 2 49 3 padded_ref bit(1), 2 50 3 aligned_ref bit(1), 2 51 3 long_ref bit(1), 2 52 3 forward_ref bit(1), 2 53 3 ic_ref bit(1), 2 54 3 temp_ref bit(1), 2 55 3 defined_ref bit(1), 2 56 3 evaluated bit(1), 2 57 3 allocate bit(1), 2 58 3 allocated bit(1), 2 59 3 aliasable bit(1), 2 60 3 even bit(1), 2 61 3 perm_address bit(1), 2 62 3 aggregate bit(1), 2 63 3 hit_zero bit(1), 2 64 3 dont_save bit(1), 2 65 3 fo_in_qual bit(1), 2 66 3 hard_to_load bit(1), 2 67 2 relocation bit(12) unaligned, 2 68 2 more_bits structure unaligned, 2 69 3 substr bit(1), 2 70 3 padded_for_store_ref bit(1), 2 71 3 aligned_for_store_ref bit(1), 2 72 3 mbz bit(15), 2 73 2 store_ins bit(18) unaligned; 2 74 2 75 /* END INCLUDE FILE ... reference.incl.pl1 */ 63 3 1 dcl ( real_fix_bin_1 init(1), 3 2 real_fix_bin_2 init(2), 3 3 real_flt_bin_1 init(3), 3 4 real_flt_bin_2 init(4), 3 5 complex_fix_bin_1 init(5), 3 6 complex_fix_bin_2 init(6), 3 7 complex_flt_bin_1 init(7), 3 8 complex_flt_bin_2 init(8), 3 9 real_fix_dec init(9), 3 10 real_flt_dec init(10), 3 11 complex_fix_dec init(11), 3 12 complex_flt_dec init(12), 3 13 char_string init(13), 3 14 bit_string init(14), 3 15 label_constant init(15), 3 16 local_label_variable init(16), 3 17 label_variable init(17), 3 18 entry_variable init(18), 3 19 ext_entry_in init(19), 3 20 ext_entry_out init(20), 3 21 int_entry init(21), 3 22 int_entry_other init(22), 3 23 unpacked_ptr init(23), 3 24 packed_ptr init(24)) fixed bin(15) int static options(constant); 64 65 66 p = pt; 67 mac = macro; 68 flush, no_size, have_arg = "0"b; 69 70 common: 71 l1: 72 73 /* load the string size if requested */ 74 75 76 if ^no_size 77 then if size = 0 78 then call load_size(p); 79 else call load(generate_constant$real_fix_bin_1(abs(size)),0); 80 81 /* lock the q register so that base_man doesn't accidentally flush it */ 82 83 call aq_man$lock(null,2); 84 85 adjust = "0"b; 86 87 /* If this is a string temporary, protect it from premature release */ 88 89 if p -> reference.temp_ref 90 then if p -> reference.ref_count = 1 91 then do; 92 adjust = "1"b; 93 p -> reference.ref_count = 2; 94 call need_temp(p,"11"b); 95 end; 96 97 /* Load the bp with the address of the string */ 98 99 call base_man$load_var(2,p,1); 100 101 if flush then call state_man$erase_reg((odd_bases)); 102 103 if have_arg then call expmac(mac,arg); 104 else call expmac$zero(mac); 105 106 call state_man$unlock; 107 108 if adjust 109 then call adjust_ref_count(p,-1); 110 111 return; 112 113 long_op$c_or_b: entry(pt,size,macro); 114 115 p = pt; 116 mac = macro; 117 flush, no_size, have_arg = "0"b; 118 119 if p -> reference.data_type = bit_string then mac = mac + 1; 120 121 goto common; 122 123 long_op$extend_stack: entry(pt,op); 124 125 dcl op fixed bin(15); 126 127 p = pt; 128 call load_size(p); 129 call expmac$zero(op); 130 cg_stat$extended_stack = "1"b; 131 call state_man$update_ref(p); 132 call base_man$update_base(2,p,1); 133 return; 134 135 long_op$no_size: entry(pt,op); 136 137 flush = "0"b; 138 n_size: 139 p = pt; 140 mac = op; 141 no_size = "1"b; 142 have_arg = "0"b; 143 goto common; 144 145 long_op$with_arg: entry(pt,size,macro,arg); 146 147 dcl arg ptr; 148 149 p = pt; 150 mac = macro; 151 flush, no_size = "0"b; 152 have_arg = "1"b; 153 goto common; 154 155 long_op$io: entry(pt,op); 156 157 flush = "1"b; 158 go to n_size; 159 160 long_op$eis_operator: entry(pt,p2,macro); 161 162 dcl (p2,ref(2)) ptr; 163 dcl check bit(1) aligned; 164 dcl base_man$load_var_and_lock entry(fixed bin,ptr,fixed bin); 165 dcl load_size$a_or_q entry(ptr,fixed bin); 166 167 /* Used to make 2 operand calls to pl1_operators_. Pointers to operands 1 and 2 168* are loaded into the bp and ab, respectively, and the lengths of the 2 operands 169* are loaded into the q and a registers, respectively. */ 170 171 ref(1) = pt; 172 ref(2) = p2; 173 mac = macro; 174 175 /* Protect length exprs & string temps from being prematurely released, then 176* load the pointer registers with the addresses of the operands, free the 177* unneeded temps, and load the lengths */ 178 179 do i = 1 to 2; 180 if ^ ref(i) -> reference.shared 181 then do; 182 n, ref(i) -> reference.ref_count = ref(i) -> reference.ref_count + 1; 183 check = n = 2; 184 end; 185 else check = "0"b; 186 call base_man$load_var_and_lock(2,ref(i),2*i-1); 187 if check then call need_temp(ref(i),"11"b); 188 call load_size$a_or_q(ref(i),3-i); 189 if i = 1 190 then call aq_man$lock(null,2); 191 end; 192 193 /* Unlock the registers and issue the macro */ 194 195 call state_man$unlock; 196 197 call expmac$zero(macro); 198 199 /* Lower reference counts originally raised */ 200 201 do i = 1 to 2; 202 if ^ ref(i) -> reference.shared then call adjust_ref_count(ref(i),-1); 203 end; 204 205 return; 206 207 long_op$eis: entry(pt,size,macro); 208 209 dcl size_hold fixed bin(24); 210 dcl length_hold ptr unal; 211 dcl big_length_hold bit(1) aligned; 212 213 mac_prog = expmac$eis; 214 go to eis_join; 215 216 long_op$one_eis: entry(pt,size,macro); 217 218 mac_prog = expmac$one_eis; 219 220 eis_join: 221 p = pt; 222 mac = macro; 223 224 if size = 0 225 then call mac_prog(mac,p); 226 else do; 227 call save_length; 228 call mac_prog(mac,p); 229 call restore_length; 230 end; 231 232 return; 233 234 long_op$two_eis: entry(pt,size,macro,pt2); 235 236 dcl pt2 ptr; 237 dcl expmac$two_eis entry(fixed bin(15),ptr,ptr); 238 239 p = pt2; 240 241 if size = 0 242 then call expmac$two_eis(macro,pt,p); 243 else do; 244 call save_length; 245 246 call expmac$two_eis(macro,pt,p); 247 248 call restore_length; 249 end; 250 251 return; 252 253 save_length: proc; 254 255 size_hold = p -> reference.c_length; 256 length_hold = p -> reference.length; 257 big_length_hold = p -> reference.big_length; 258 p -> reference.c_length = size; 259 p -> reference.big_length = size > max_index_register_value; 260 p -> reference.length = null; 261 262 end; 263 264 restore_length: proc; 265 266 p -> reference.big_length = big_length_hold; 267 p -> reference.c_length = size_hold; 268 p -> reference.length = length_hold; 269 if length_hold ^= null 270 then if p -> reference.ref_count = 0 271 then call adjust_ref_count((length_hold),-1); 272 273 end; 274 275 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/03/83 1008.9 long_op.pl1 >spec>on>pl128d>long_op.pl1 62 1 10/25/79 1645.8 cgsystem.incl.pl1 >ldd>include>cgsystem.incl.pl1 63 2 07/21/80 1546.3 reference.incl.pl1 >ldd>include>reference.incl.pl1 64 3 05/03/76 1320.4 data_types.incl.pl1 >ldd>include>data_types.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. abs builtin function dcl 58 ref 79 79 79 79 adjust 000106 automatic bit(1) unaligned dcl 32 set ref 85* 92* 108 adjust_ref_count 000042 constant entry external dcl 39 ref 108 202 269 aq_man$lock 000022 constant entry external dcl 39 ref 83 189 arg parameter pointer dcl 147 set ref 103* 145 base_man$load_var 000012 constant entry external dcl 39 ref 99 base_man$load_var_and_lock 000050 constant entry external dcl 164 ref 186 base_man$update_base 000046 constant entry external dcl 39 ref 132 big_length 11(34) based bit(1) level 4 packed unaligned dcl 2-3 set ref 257 259* 266* big_length_hold 000125 automatic bit(1) dcl 211 set ref 257* 266 bit_string constant fixed bin(15,0) initial dcl 3-1 ref 119 bits 12(06) based structure level 2 packed unaligned dcl 2-3 c_length 2 based fixed bin(24,0) level 2 dcl 2-3 set ref 255 258* 267* cg_stat$extended_stack 000010 external static bit(1) unaligned dcl 29 set ref 130* check 000122 automatic bit(1) dcl 163 set ref 183* 185* 187 data_type 12 based fixed bin(5,0) level 2 packed unaligned dcl 2-3 ref 119 expmac 000034 constant entry external dcl 39 ref 103 expmac$eis 000036 constant entry external dcl 39 ref 213 expmac$one_eis 000040 constant entry external dcl 39 ref 218 expmac$two_eis 000054 constant entry external dcl 237 ref 241 246 expmac$zero 000032 constant entry external dcl 39 ref 104 129 197 flush 000105 automatic bit(1) unaligned dcl 32 set ref 68* 101 117* 137* 151* 157* generate_constant$real_fix_bin_1 000016 constant entry external dcl 39 ref 79 79 have_arg 000104 automatic bit(1) unaligned dcl 32 set ref 68* 103 117* 142* 152* i 000107 automatic fixed bin(17,0) dcl 32 set ref 179* 180 182 182 186 186 187 188 188 189* 201* 202 202* info 11 based structure level 2 packed unaligned dcl 2-3 length 6 based pointer level 2 packed unaligned dcl 2-3 set ref 256 260* 268* length_hold 000124 automatic pointer unaligned dcl 210 set ref 256* 268 269 269 load 000020 constant entry external dcl 39 ref 79 load_size 000014 constant entry external dcl 39 ref 70 128 load_size$a_or_q 000052 constant entry external dcl 165 ref 188 mac 000102 automatic fixed bin(15,0) dcl 32 set ref 67* 103* 104* 116* 119* 119 140* 150* 173* 222* 224* 228* mac_prog 000112 automatic entry variable dcl 56 set ref 213* 218* 224 228 macro parameter fixed bin(15,0) dcl 25 set ref 23 67 113 116 145 150 160 173 197* 207 216 222 234 241* 246* max_index_register_value constant fixed bin(31,0) initial dcl 1-38 ref 259 n 000110 automatic fixed bin(17,0) dcl 32 set ref 182* 183 need_temp 000030 constant entry external dcl 39 ref 94 187 no_size 000103 automatic bit(1) unaligned dcl 32 set ref 68* 70 117* 141* 151* null builtin function dcl 58 ref 83 83 189 189 260 269 odd_bases 000000 constant bit(19) initial dcl 37 ref 101 op parameter fixed bin(15,0) dcl 125 set ref 123 129* 135 140 155 other 11(33) based structure level 3 packed unaligned dcl 2-3 p 000100 automatic pointer dcl 32 set ref 66* 70* 89 89 93 94* 99* 108* 115* 119 127* 128* 131* 132* 138* 149* 220* 224* 228* 239* 241* 246* 255 256 257 258 259 260 266 267 268 269 p2 parameter pointer dcl 162 ref 160 172 pt parameter pointer dcl 25 set ref 23 66 113 115 123 127 135 138 145 149 155 160 171 207 216 220 234 241* 246* pt2 parameter pointer dcl 236 ref 234 239 ref 000116 automatic pointer array dcl 162 set ref 171* 172* 180 182 182 186* 187* 188* 202 202* ref_count 0(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-3 set ref 89 93* 182 182* 269 reference based structure level 1 dcl 2-3 shared 0(11) based bit(1) level 2 packed unaligned dcl 2-3 ref 180 202 size parameter fixed bin(17,0) dcl 25 ref 23 70 79 79 79 79 113 145 207 216 224 234 241 258 259 size_hold 000123 automatic fixed bin(24,0) dcl 209 set ref 255* 267 state_man$erase_reg 000024 constant entry external dcl 39 ref 101 state_man$unlock 000026 constant entry external dcl 39 ref 106 195 state_man$update_ref 000044 constant entry external dcl 39 ref 131 temp_ref 12(11) based bit(1) level 3 packed unaligned dcl 2-3 ref 89 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. bits_per_char internal static fixed bin(8,0) initial dcl 1-5 bits_per_four_words internal static fixed bin(8,0) initial dcl 1-5 bits_per_half internal static fixed bin(8,0) initial dcl 1-5 bits_per_packed_digit internal static fixed bin(8,1) initial dcl 1-35 bits_per_two_words internal static fixed bin(8,0) initial dcl 1-5 bits_per_word internal static fixed bin(8,0) initial dcl 1-5 bits_per_words internal static fixed bin(8,0) initial array dcl 1-5 break_even_bits internal static fixed bin(8,0) initial dcl 1-5 break_even_words internal static fixed bin(8,0) initial dcl 1-5 c_a 000000 constant entry external dcl 39 cfo automatic fixed bin(17,0) dcl 32 cg_stat$text_pos external static fixed bin(18,0) dcl 30 char_string internal static fixed bin(15,0) initial dcl 3-1 chars_per_word internal static fixed bin(8,0) initial dcl 1-5 complex_fix_bin_1 internal static fixed bin(15,0) initial dcl 3-1 complex_fix_bin_2 internal static fixed bin(15,0) initial dcl 3-1 complex_fix_dec internal static fixed bin(15,0) initial dcl 3-1 complex_flt_bin_1 internal static fixed bin(15,0) initial dcl 3-1 complex_flt_bin_2 internal static fixed bin(15,0) initial dcl 3-1 complex_flt_dec internal static fixed bin(15,0) initial dcl 3-1 convert_offset internal static fixed bin(8,1) initial array dcl 1-35 convert_size internal static fixed bin(8,0) initial array dcl 1-5 default_fix_bin_p internal static fixed bin(8,0) initial dcl 1-5 entry_variable internal static fixed bin(15,0) initial dcl 3-1 ext_entry_in internal static fixed bin(15,0) initial dcl 3-1 ext_entry_out internal static fixed bin(15,0) initial dcl 3-1 int_entry internal static fixed bin(15,0) initial dcl 3-1 int_entry_other internal static fixed bin(15,0) initial dcl 3-1 label_constant internal static fixed bin(15,0) initial dcl 3-1 label_size internal static fixed bin(8,0) initial dcl 1-5 label_variable internal static fixed bin(15,0) initial dcl 3-1 ldfx1 internal static fixed bin(15,0) initial dcl 60 local_label_variable internal static fixed bin(15,0) initial dcl 3-1 max_dec_scale internal static fixed bin(8,0) initial dcl 1-5 max_length_p internal static fixed bin(8,0) initial dcl 1-5 max_offset internal static fixed bin(8,0) initial array dcl 1-5 max_p_fix_bin_1 internal static fixed bin(8,0) initial dcl 1-5 max_p_fix_dec internal static fixed bin(8,0) initial dcl 1-5 max_p_flt_bin_1 internal static fixed bin(8,0) initial dcl 1-5 max_p_xreg internal static fixed bin(8,0) initial dcl 1-5 max_short_size internal static fixed bin(8,0) initial array dcl 1-5 min_dec_scale internal static fixed bin(8,0) initial dcl 1-5 mod builtin function dcl 58 packed_digits_per_char internal static fixed bin(8,0) initial dcl 1-5 packed_digits_per_word internal static fixed bin(8,0) initial dcl 1-5 packed_ptr internal static fixed bin(15,0) initial dcl 3-1 q automatic pointer dcl 32 real_fix_bin_1 internal static fixed bin(15,0) initial dcl 3-1 real_fix_bin_2 internal static fixed bin(15,0) initial dcl 3-1 real_fix_dec internal static fixed bin(15,0) initial dcl 3-1 real_flt_bin_1 internal static fixed bin(15,0) initial dcl 3-1 real_flt_bin_2 internal static fixed bin(15,0) initial dcl 3-1 real_flt_dec internal static fixed bin(15,0) initial dcl 3-1 units_per_word internal static fixed bin(8,0) initial array dcl 1-5 unpacked_ptr internal static fixed bin(15,0) initial dcl 3-1 xr_man$load_const 000000 constant entry external dcl 39 xr_man$load_var 000000 constant entry external dcl 39 NAMES DECLARED BY EXPLICIT CONTEXT. common 000030 constant label dcl 70 ref 121 143 153 eis_join 000710 constant label dcl 220 ref 214 l1 000030 constant label dcl 70 long_op 000012 constant entry external dcl 23 long_op$c_or_b 000245 constant entry external dcl 113 long_op$eis 000661 constant entry external dcl 207 long_op$eis_operator 000443 constant entry external dcl 160 long_op$extend_stack 000275 constant entry external dcl 123 long_op$io 000427 constant entry external dcl 155 long_op$no_size 000360 constant entry external dcl 135 long_op$one_eis 000676 constant entry external dcl 216 long_op$two_eis 000746 constant entry external dcl 234 long_op$with_arg 000405 constant entry external dcl 145 n_size 000366 constant label dcl 138 ref 158 restore_length 001042 constant entry internal dcl 264 ref 229 248 save_length 001014 constant entry internal dcl 253 ref 227 244 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1502 1560 1104 1512 Length 2054 1104 56 257 375 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME long_op 130 external procedure is an external procedure. save_length internal procedure shares stack frame of external procedure long_op. restore_length internal procedure shares stack frame of external procedure long_op. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME long_op 000100 p long_op 000102 mac long_op 000103 no_size long_op 000104 have_arg long_op 000105 flush long_op 000106 adjust long_op 000107 i long_op 000110 n long_op 000112 mac_prog long_op 000116 ref long_op 000122 check long_op 000123 size_hold long_op 000124 length_hold long_op 000125 big_length_hold long_op THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as call_var call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. adjust_ref_count aq_man$lock base_man$load_var base_man$load_var_and_lock base_man$update_base expmac expmac$eis expmac$one_eis expmac$two_eis expmac$zero generate_constant$real_fix_bin_1 load load_size load_size$a_or_q need_temp state_man$erase_reg state_man$unlock state_man$update_ref THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cg_stat$extended_stack LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 23 000006 66 000017 67 000023 68 000025 70 000030 79 000045 83 000074 85 000111 89 000112 92 000123 93 000125 94 000127 99 000142 101 000161 103 000174 104 000211 106 000220 108 000225 111 000242 113 000243 115 000252 116 000256 117 000260 119 000263 121 000270 123 000271 127 000302 128 000306 129 000315 130 000325 131 000330 132 000336 133 000355 135 000356 137 000365 138 000366 140 000372 141 000374 142 000376 143 000377 145 000400 149 000412 150 000416 151 000420 152 000422 153 000424 155 000425 157 000434 158 000436 160 000437 171 000450 172 000454 173 000457 179 000461 180 000467 182 000474 183 000504 184 000507 185 000510 186 000511 187 000533 188 000551 189 000566 191 000606 195 000610 197 000615 201 000625 202 000633 203 000654 205 000656 207 000657 213 000666 214 000673 216 000674 218 000703 220 000710 222 000714 224 000716 227 000731 228 000732 229 000742 232 000743 234 000744 239 000753 241 000757 244 000775 246 000776 248 001012 251 001013 253 001014 255 001015 256 001020 257 001022 258 001026 259 001031 260 001037 262 001041 264 001042 266 001043 267 001051 268 001053 269 001055 273 001100 ----------------------------------------------------------- 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