COMPILATION LISTING OF SEGMENT generate_constant Compiled by: Multics PL/I Compiler, Release 28d, of September 14, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 10/03/83 1641.4 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 /* procedure to generate a symbol node for a code generator constant 12* 13* Initial Version: 13 September 1971 by BLW 14* Modified: 27 April 1972 by BLW 15* Modified: 27 July 1973 by RAB */ 16 17 generate_constant: proc(const,n_words) returns(ptr) ; 18 19 dcl const bit(*) aligned, /* constant to generate */ 20 n_words fixed bin; /* number of words to gen, or zero */ 21 22 dcl cg_stat$constant_list ptr ext; 23 24 dcl (p,q,pc) ptr, 25 (n,n_bits,n_chars,dt) fixed bin, 26 (dummy,bs,cs,reloc) bit(1) aligned, 27 const_string bit(n_bits) aligned based; 28 29 dcl create_symbol entry(ptr,ptr,bit(3) aligned) returns(ptr); 30 31 dcl (addr,divide,length,null,string) builtin; 32 1 1 /* BEGIN INCLUDE FILE ... pl1_tree_areas.incl.pl1 */ 1 2 1 3 /* format: style3 */ 1 4 dcl tree_area area based (pl1_stat_$tree_area_ptr); 1 5 dcl xeq_tree_area area based (pl1_stat_$xeq_tree_area_ptr); 1 6 1 7 dcl pl1_stat_$tree_area_ptr 1 8 ptr ext static, 1 9 pl1_stat_$xeq_tree_area_ptr 1 10 ptr ext static; 1 11 1 12 /* END INCLUDE FILE ... op_codes.incl.pl1 */ 33 2 1 /* BEGIN INCLUDE FILE ... cgsystem.incl.pl1 */ 2 2 2 3 /* Modified: 25 Apr 1979 by PCK to implement 4-bit decimal */ 2 4 2 5 dcl ( bits_per_char init(9), 2 6 bits_per_half init(18), 2 7 bits_per_word init(36), 2 8 bits_per_two_words init(72), 2 9 bits_per_four_words init(144), 2 10 bits_per_words(2) init(36,72), 2 11 packed_digits_per_char init(2), 2 12 chars_per_word init(4), 2 13 packed_digits_per_word init(8), 2 14 2 15 break_even_bits init(216), 2 16 break_even_words init(6), 2 17 2 18 label_size init(4), 2 19 2 20 convert_size(13:14) init(9,1), 2 21 max_offset(13:14) init(27,35), 2 22 max_short_size(13:14) init(8,72), 2 23 2 24 units_per_word(0:5) init(1,36,8,4,2,1), 2 25 2 26 max_dec_scale init(32), 2 27 min_dec_scale init(-31), 2 28 max_p_xreg init(18), 2 29 max_p_fix_bin_1 init(35), 2 30 max_p_flt_bin_1 init(27), 2 31 max_p_fix_dec init(59), 2 32 max_length_p init(24), 2 33 default_fix_bin_p init(17)) fixed bin(8) int static options(constant); 2 34 2 35 dcl (convert_offset(0:5) init(36,1,4.5,9,18,36), 2 36 bits_per_packed_digit init(4.5)) fixed bin(8,1) int static options(constant); 2 37 2 38 dcl max_index_register_value init(262143) fixed bin(31) int static options(constant); 2 39 2 40 /* END INCLUDE FILE ... cgsystem.incl.pl1 */ 2 41 34 3 1 /* BEGIN INCLUDE FILE ... reference.incl.pl1 */ 3 2 3 3 dcl 1 reference based aligned, 3 4 2 node_type bit(9) unaligned, 3 5 2 array_ref bit(1) unaligned, 3 6 2 varying_ref bit(1) unaligned, 3 7 2 shared bit(1) unaligned, 3 8 2 put_data_sw bit(1) unaligned, 3 9 2 processed bit(1) unaligned, 3 10 2 units fixed(3) unaligned, 3 11 2 ref_count fixed(17) unaligned, 3 12 2 c_offset fixed(24), 3 13 2 c_length fixed(24), 3 14 2 symbol ptr unaligned, 3 15 2 qualifier ptr unaligned, 3 16 2 offset ptr unaligned, 3 17 2 length ptr unaligned, 3 18 2 subscript_list ptr unaligned, 3 19 /* these fields are used by the 645 code generator */ 3 20 2 address structure unaligned, 3 21 3 base bit(3), 3 22 3 offset bit(15), 3 23 3 op bit(9), 3 24 3 no_address bit(1), 3 25 3 inhibit bit(1), 3 26 3 ext_base bit(1), 3 27 3 tag bit(6), 3 28 2 info structure unaligned, 3 29 3 address_in structure, 3 30 4 b dimension(0:7) bit(1), 3 31 4 storage bit(1), 3 32 3 value_in structure, 3 33 4 a bit(1), 3 34 4 q bit(1), 3 35 4 aq bit(1), 3 36 4 string_aq bit(1), 3 37 4 complex_aq bit(1), 3 38 4 decimal_aq bit(1), 3 39 4 b dimension(0:7) bit(1), 3 40 4 storage bit(1), 3 41 4 indicators bit(1), 3 42 4 x dimension(0:7) bit(1), 3 43 3 other structure, 3 44 4 big_offset bit(1), 3 45 4 big_length bit(1), 3 46 4 modword_in_offset bit(1), 3 47 2 data_type fixed(5) unaligned, 3 48 2 bits structure unaligned, 3 49 3 padded_ref bit(1), 3 50 3 aligned_ref bit(1), 3 51 3 long_ref bit(1), 3 52 3 forward_ref bit(1), 3 53 3 ic_ref bit(1), 3 54 3 temp_ref bit(1), 3 55 3 defined_ref bit(1), 3 56 3 evaluated bit(1), 3 57 3 allocate bit(1), 3 58 3 allocated bit(1), 3 59 3 aliasable bit(1), 3 60 3 even bit(1), 3 61 3 perm_address bit(1), 3 62 3 aggregate bit(1), 3 63 3 hit_zero bit(1), 3 64 3 dont_save bit(1), 3 65 3 fo_in_qual bit(1), 3 66 3 hard_to_load bit(1), 3 67 2 relocation bit(12) unaligned, 3 68 2 more_bits structure unaligned, 3 69 3 substr bit(1), 3 70 3 padded_for_store_ref bit(1), 3 71 3 aligned_for_store_ref bit(1), 3 72 3 mbz bit(15), 3 73 2 store_ins bit(18) unaligned; 3 74 3 75 /* END INCLUDE FILE ... reference.incl.pl1 */ 35 4 1 /* BEGIN INCLUDE FILE ... symbol.incl.pl1 */ 4 2 4 3 dcl 1 symbol based aligned, 4 4 2 node_type bit(9) unal, 4 5 2 source_id structure unal, 4 6 3 file_number bit(8), 4 7 3 line_number bit(14), 4 8 3 statement_number bit(5), 4 9 2 location fixed(18) unal unsigned, 4 10 2 allocated bit(1) unal, 4 11 2 dcl_type bit(3) unal, 4 12 2 reserved bit(6) unal, 4 13 2 pix unal, 4 14 3 pic_fixed bit(1) unal, 4 15 3 pic_float bit(1) unal, 4 16 3 pic_char bit(1) unal, 4 17 3 pic_scale fixed(7) unal, 4 18 3 pic_size fixed(7) unal, 4 19 2 level fixed(8) unal, 4 20 2 boundary fixed(3) unal, 4 21 2 size_units fixed(3) unal, 4 22 2 scale fixed(7) unal, 4 23 2 runtime bit(18) unal, 4 24 2 runtime_offset bit(18) unal, 4 25 2 block_node ptr unal, 4 26 2 token ptr unal, 4 27 2 next ptr unal, 4 28 2 multi_use ptr unal, 4 29 2 cross_references ptr unal, 4 30 2 initial ptr unal, 4 31 2 array ptr unal, 4 32 2 descriptor ptr unal, 4 33 2 equivalence ptr unal, 4 34 2 reference ptr unal, 4 35 2 general ptr unal, 4 36 2 father ptr unal, 4 37 2 brother ptr unal, 4 38 2 son ptr unal, 4 39 2 word_size ptr unal, 4 40 2 bit_size ptr unal, 4 41 2 dcl_size ptr unal, 4 42 2 symtab_size ptr unal, 4 43 2 c_word_size fixed(24), 4 44 2 c_bit_size fixed(24), 4 45 2 c_dcl_size fixed(24), 4 46 4 47 2 attributes structure aligned, 4 48 3 data_type structure unal, 4 49 4 structure bit(1) , 4 50 4 fixed bit(1), 4 51 4 float bit(1), 4 52 4 bit bit(1), 4 53 4 char bit(1), 4 54 4 ptr bit(1), 4 55 4 offset bit(1), 4 56 4 area bit(1), 4 57 4 label bit(1), 4 58 4 entry bit(1), 4 59 4 file bit(1), 4 60 4 arg_descriptor bit(1), 4 61 4 storage_block bit(1), 4 62 4 explicit_packed bit(1), /* options(packed) */ 4 63 4 condition bit(1), 4 64 4 format bit(1), 4 65 4 builtin bit(1), 4 66 4 generic bit(1), 4 67 4 picture bit(1), 4 68 4 69 3 misc_attributes structure unal, 4 70 4 dimensioned bit(1), 4 71 4 initialed bit(1), 4 72 4 aligned bit(1), 4 73 4 unaligned bit(1), 4 74 4 signed bit(1), 4 75 4 unsigned bit(1), 4 76 4 precision bit(1), 4 77 4 varying bit(1), 4 78 4 local bit(1), 4 79 4 decimal bit(1), 4 80 4 binary bit(1), 4 81 4 real bit(1), 4 82 4 complex bit(1), 4 83 4 variable bit(1), 4 84 4 reducible bit(1), 4 85 4 irreducible bit(1), 4 86 4 returns bit(1), 4 87 4 position bit(1), 4 88 4 internal bit(1), 4 89 4 external bit(1), 4 90 4 like bit(1), 4 91 4 member bit(1), 4 92 4 non_varying bit(1), 4 93 4 options bit(1), 4 94 4 variable_arg_list bit(1), /* options(variable) */ 4 95 4 alloc_in_text bit(1), /* options(constant) */ 4 96 4 97 3 storage_class structure unal, 4 98 4 auto bit(1), 4 99 4 based bit(1), 4 100 4 static bit(1), 4 101 4 controlled bit(1), 4 102 4 defined bit(1), 4 103 4 parameter bit(1), 4 104 4 param_desc bit(1), 4 105 4 constant bit(1), 4 106 4 temporary bit(1), 4 107 4 return_value bit(1), 4 108 4 109 3 file_attributes structure unal, 4 110 4 print bit(1), 4 111 4 input bit(1), 4 112 4 output bit(1), 4 113 4 update bit(1), 4 114 4 stream bit(1), 4 115 4 reserved_1 bit(1), 4 116 4 record bit(1), 4 117 4 sequential bit(1), 4 118 4 direct bit(1), 4 119 4 interactive bit(1), /* env(interactive) */ 4 120 4 reserved_2 bit(1), 4 121 4 reserved_3 bit(1), 4 122 4 stringvalue bit(1), /* env(stringvalue) */ 4 123 4 keyed bit(1), 4 124 4 reserved_4 bit(1), 4 125 4 environment bit(1), 4 126 4 127 3 compiler_developed structure unal, 4 128 4 aliasable bit(1), 4 129 4 packed bit(1), 4 130 4 passed_as_arg bit(1), 4 131 4 allocate bit(1), 4 132 4 set bit(1), 4 133 4 exp_extents bit(1), 4 134 4 refer_extents bit(1), 4 135 4 star_extents bit(1), 4 136 4 isub bit(1), 4 137 4 put_in_symtab bit(1), 4 138 4 contiguous bit(1), 4 139 4 put_data bit(1), 4 140 4 overlayed bit(1), 4 141 4 error bit(1), 4 142 4 symtab_processed bit(1), 4 143 4 overlayed_by_builtin bit(1), 4 144 4 defaulted bit(1), 4 145 4 connected bit(1); 4 146 4 147 /* END INCLUDE FILE ... symbol.incl.pl1 */ 36 5 1 /* BEGIN INCLUDE FILE ... declare_type.incl.pl1 */ 5 2 5 3 /* Modified: 25 Apr 1979 by PCK to implement 4-bit decimal */ 5 4 5 5 dcl ( by_declare initial("001"b), 5 6 by_explicit_context initial("010"b), 5 7 by_context initial("011"b), 5 8 by_implication initial("100"b), 5 9 by_compiler initial("101"b)) int static bit(3) aligned options(constant); 5 10 5 11 /* END INCLUDE FILE ... declare_type.incl.pl1 */ 37 6 1 dcl ( real_fix_bin_1 init(1), 6 2 real_fix_bin_2 init(2), 6 3 real_flt_bin_1 init(3), 6 4 real_flt_bin_2 init(4), 6 5 complex_fix_bin_1 init(5), 6 6 complex_fix_bin_2 init(6), 6 7 complex_flt_bin_1 init(7), 6 8 complex_flt_bin_2 init(8), 6 9 real_fix_dec init(9), 6 10 real_flt_dec init(10), 6 11 complex_fix_dec init(11), 6 12 complex_flt_dec init(12), 6 13 char_string init(13), 6 14 bit_string init(14), 6 15 label_constant init(15), 6 16 local_label_variable init(16), 6 17 label_variable init(17), 6 18 entry_variable init(18), 6 19 ext_entry_in init(19), 6 20 ext_entry_out init(20), 6 21 int_entry init(21), 6 22 int_entry_other init(22), 6 23 unpacked_ptr init(23), 6 24 packed_ptr init(24)) fixed bin(15) int static options(constant); 38 7 1 /* BEGIN INCLUDE FILE ... boundary.incl.pl1 */ 7 2 7 3 /* Modified: 26 Apr 1979 by PCK to implement 4-bit decimal */ 7 4 7 5 dcl ( bit_ init(1), 7 6 digit_ init(2), 7 7 character_ init(3), 7 8 half_ init(4), 7 9 word_ init(5), 7 10 mod2_ init(6), 7 11 mod4_ init(7)) fixed bin(3) int static options(constant); 7 12 7 13 /* END INCLUDE FILE ... boundary.incl.pl1 */ 39 40 41 pc = addr(const); 42 dt = bit_string; 43 bs = "1"b; 44 cs, reloc = "0"b; 45 46 if n_words ^= 0 then n = n_words; 47 else n = divide(length(const) + bits_per_word - 1,bits_per_word,17,0); 48 49 join: n_bits = n * bits_per_word; 50 51 join1: p = cg_stat$constant_list; 52 do while(p ^= null); 53 if p -> symbol.varying then goto loop; 54 55 if bs 56 then do; 57 if ^ p -> symbol.bit then goto loop; 58 if p -> symbol.c_dcl_size ^= n_bits then goto loop; 59 end; 60 61 if cs 62 then do; 63 if ^ p -> symbol.char then go to loop; 64 if p -> symbol.c_dcl_size ^= n_chars then go to loop; 65 end; 66 67 if reloc 68 then if ^ p -> symbol.storage_block 69 then go to loop; 70 71 if p -> symbol.c_word_size >= n 72 then if p -> symbol.initial -> const_string = pc -> const_string 73 then goto done; 74 75 loop: p = p -> symbol.multi_use; 76 end; 77 78 allocate const_string in(tree_area) set(q); 79 q -> const_string = pc -> const_string; 80 81 p = create_symbol(null,null,by_compiler); 82 p -> symbol.multi_use = cg_stat$constant_list; 83 cg_stat$constant_list = p; 84 85 p -> symbol.c_word_size = n; 86 87 if ^ reloc 88 then if n = 2 89 then p -> symbol.boundary = mod2_; 90 else p -> symbol.boundary = word_; 91 else if double 92 then p -> symbol.boundary = mod2_; 93 else p -> symbol.boundary = word_; 94 95 p -> symbol.c_bit_size = n_bits; 96 97 if cs 98 then do; 99 p -> symbol.char = "1"b; 100 p -> symbol.c_dcl_size = n_chars; 101 end; 102 else do; 103 p -> symbol.c_dcl_size = n_bits; 104 if bs then p -> symbol.bit = "1"b; 105 if reloc then p -> symbol.storage_block = "1"b; 106 end; 107 108 p -> symbol.initial = q; 109 p -> symbol.constant = "1"b; 110 111 q = p -> symbol.reference; 112 q -> reference.c_length = p -> symbol.c_dcl_size; 113 if n_bits > bits_per_two_words then q -> reference.long_ref = "1"b; 114 115 done: q = p -> symbol.reference; 116 string(q -> reference.bits) = "11"b; 117 q -> reference.data_type = dt; 118 q -> reference.units = word_; 119 q -> reference.no_address = "1"b; 120 q -> reference.perm_address = "0"b; 121 return(q); 122 123 generate_constant$real_fix_bin_1: entry(integer) returns(ptr); 124 125 dcl integer fixed bin; 126 127 pc = addr(integer); 128 n = 1; 129 dt = real_fix_bin_1; 130 bs, cs, reloc = "0"b; 131 goto join; 132 133 generate_constant$bit_string: entry(const,nb) returns(ptr); 134 135 dcl nb fixed bin; /* number of bits */ 136 137 n_bits = nb; 138 n = divide(n_bits + bits_per_word - 1,bits_per_word,17,0); 139 bs = "1"b; 140 cs, reloc = "0"b; 141 142 pc = addr(const); 143 dt = bit_string; 144 goto join1; 145 146 generate_constant$char_string: entry(char_const,nc) returns(ptr); 147 148 dcl char_const char(*) aligned, 149 nc fixed bin; /* number of characters in char_const */ 150 151 n_chars = nc; 152 n_bits = bits_per_char*n_chars; 153 n = divide(n_bits + bits_per_word - 1,bits_per_word,17,0); 154 bs = "0"b; 155 cs = "1"b; 156 reloc = "0"b; 157 158 dt = char_string; 159 pc = addr(char_const); 160 go to join1; 161 162 generate_constant$relocatable: entry(pt,n_words,double) returns(ptr); 163 164 dcl pt ptr, /* pointer to relocatable constant */ 165 double bit(1) aligned; /* "1"b if constant should be on mod2_ boundary */ 166 167 /* entry point to generate relocatable constants for EIS descriptors 168* and constant argument lists containing ITP pairs for quick calls */ 169 170 n = n_words; 171 pc = pt; 172 bs, cs = "0"b; 173 reloc = "1"b; 174 dt = real_fix_bin_1; 175 go to join; 176 177 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/03/83 1008.4 generate_constant.pl1 >spec>on>pl128d>generate_constant.pl1 33 1 07/21/80 1546.3 pl1_tree_areas.incl.pl1 >ldd>include>pl1_tree_areas.incl.pl1 34 2 10/25/79 1645.8 cgsystem.incl.pl1 >ldd>include>cgsystem.incl.pl1 35 3 07/21/80 1546.3 reference.incl.pl1 >ldd>include>reference.incl.pl1 36 4 10/02/83 0828.4 symbol.incl.pl1 >spec>on>pl128d>symbol.incl.pl1 37 5 10/25/79 1645.8 declare_type.incl.pl1 >ldd>include>declare_type.incl.pl1 38 6 05/03/76 1320.4 data_types.incl.pl1 >ldd>include>data_types.incl.pl1 39 7 10/25/79 1645.8 boundary.incl.pl1 >ldd>include>boundary.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 31 ref 41 127 142 159 address 10 based structure level 2 packed unaligned dcl 3-3 attributes 31 based structure level 2 dcl 4-3 bit 31(03) based bit(1) level 4 packed unaligned dcl 4-3 set ref 57 104* bit_string constant fixed bin(15,0) initial dcl 6-1 ref 42 143 bits 12(06) based structure level 2 packed unaligned dcl 3-3 set ref 116* bits_per_char constant fixed bin(8,0) initial dcl 2-5 ref 152 bits_per_two_words constant fixed bin(8,0) initial dcl 2-5 ref 113 bits_per_word constant fixed bin(8,0) initial dcl 2-5 ref 47 47 49 138 138 153 153 boundary 2(20) based fixed bin(3,0) level 2 packed unaligned dcl 4-3 set ref 87* 90* 91* 93* bs 000112 automatic bit(1) dcl 24 set ref 43* 55 104 130* 139* 154* 172* by_compiler 000000 constant bit(3) initial dcl 5-5 set ref 81* c_bit_size 27 based fixed bin(24,0) level 2 dcl 4-3 set ref 95* c_dcl_size 30 based fixed bin(24,0) level 2 dcl 4-3 set ref 58 64 100* 103* 112 c_length 2 based fixed bin(24,0) level 2 dcl 3-3 set ref 112* c_word_size 26 based fixed bin(24,0) level 2 dcl 4-3 set ref 71 85* cg_stat$constant_list 000010 external static pointer dcl 22 set ref 51 82 83* char 31(04) based bit(1) level 4 packed unaligned dcl 4-3 set ref 63 99* char_const parameter char dcl 148 set ref 146 159 char_string constant fixed bin(15,0) initial dcl 6-1 ref 158 const parameter bit dcl 19 set ref 17 41 47 133 142 const_string based bit dcl 24 set ref 71 71 78 79* 79 constant 32(16) based bit(1) level 4 packed unaligned dcl 4-3 set ref 109* create_symbol 000012 constant entry external dcl 29 ref 81 cs 000113 automatic bit(1) dcl 24 set ref 44* 61 97 130* 140* 155* 172* data_type 12 based fixed bin(5,0) level 2 in structure "reference" packed unaligned dcl 3-3 in procedure "generate_constant" set ref 117* data_type 31 based structure level 3 in structure "symbol" packed unaligned dcl 4-3 in procedure "generate_constant" divide builtin function dcl 31 ref 47 138 153 double parameter bit(1) dcl 164 ref 91 162 dt 000111 automatic fixed bin(17,0) dcl 24 set ref 42* 117 129* 143* 158* 174* initial 11 based pointer level 2 packed unaligned dcl 4-3 set ref 71 108* integer parameter fixed bin(17,0) dcl 125 set ref 123 127 length builtin function dcl 31 ref 47 long_ref 12(08) based bit(1) level 3 packed unaligned dcl 3-3 set ref 113* misc_attributes 31(19) based structure level 3 packed unaligned dcl 4-3 mod2_ constant fixed bin(3,0) initial dcl 7-5 ref 87 91 multi_use 7 based pointer level 2 packed unaligned dcl 4-3 set ref 75 82* n 000106 automatic fixed bin(17,0) dcl 24 set ref 46* 47* 49 71 85 87 128* 138* 153* 170* n_bits 000107 automatic fixed bin(17,0) dcl 24 set ref 49* 58 71 71 78 78 79 79 95 103 113 137* 138 152* 153 n_chars 000110 automatic fixed bin(17,0) dcl 24 set ref 64 100 151* 152 n_words parameter fixed bin(17,0) dcl 19 ref 17 46 46 162 170 nb parameter fixed bin(17,0) dcl 135 ref 133 137 nc parameter fixed bin(17,0) dcl 148 ref 146 151 no_address 10(27) based bit(1) level 3 packed unaligned dcl 3-3 set ref 119* null builtin function dcl 31 ref 52 81 81 81 81 p 000100 automatic pointer dcl 24 set ref 51* 52 53 57 58 63 64 67 71 71 75* 75 81* 82 83 85 87 90 91 93 95 99 100 103 104 105 108 109 111 112 115 pc 000104 automatic pointer dcl 24 set ref 41* 71 79 127* 142* 159* 171* perm_address 12(18) based bit(1) level 3 packed unaligned dcl 3-3 set ref 120* pl1_stat_$tree_area_ptr 000014 external static pointer dcl 1-7 ref 78 pt parameter pointer dcl 164 ref 162 171 q 000102 automatic pointer dcl 24 set ref 78* 79 108 111* 112 113 115* 116 117 118 119 120 121 real_fix_bin_1 constant fixed bin(15,0) initial dcl 6-1 ref 129 174 reference 15 based pointer level 2 in structure "symbol" packed unaligned dcl 4-3 in procedure "generate_constant" ref 111 115 reference based structure level 1 dcl 3-3 in procedure "generate_constant" reloc 000114 automatic bit(1) dcl 24 set ref 44* 67 87 105 130* 140* 156* 173* storage_block 31(12) based bit(1) level 4 packed unaligned dcl 4-3 set ref 67 105* storage_class 32(09) based structure level 3 packed unaligned dcl 4-3 string builtin function dcl 31 set ref 116* symbol based structure level 1 dcl 4-3 tree_area based area(1024) dcl 1-4 ref 78 units 0(14) based fixed bin(3,0) level 2 packed unaligned dcl 3-3 set ref 118* varying 31(26) based bit(1) level 4 packed unaligned dcl 4-3 ref 53 word_ constant fixed bin(3,0) initial dcl 7-5 ref 90 93 118 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. bit_ internal static fixed bin(3,0) initial dcl 7-5 bits_per_four_words internal static fixed bin(8,0) initial dcl 2-5 bits_per_half internal static fixed bin(8,0) initial dcl 2-5 bits_per_packed_digit internal static fixed bin(8,1) initial dcl 2-35 bits_per_words internal static fixed bin(8,0) initial array dcl 2-5 break_even_bits internal static fixed bin(8,0) initial dcl 2-5 break_even_words internal static fixed bin(8,0) initial dcl 2-5 by_context internal static bit(3) initial dcl 5-5 by_declare internal static bit(3) initial dcl 5-5 by_explicit_context internal static bit(3) initial dcl 5-5 by_implication internal static bit(3) initial dcl 5-5 character_ internal static fixed bin(3,0) initial dcl 7-5 chars_per_word internal static fixed bin(8,0) initial dcl 2-5 complex_fix_bin_1 internal static fixed bin(15,0) initial dcl 6-1 complex_fix_bin_2 internal static fixed bin(15,0) initial dcl 6-1 complex_fix_dec internal static fixed bin(15,0) initial dcl 6-1 complex_flt_bin_1 internal static fixed bin(15,0) initial dcl 6-1 complex_flt_bin_2 internal static fixed bin(15,0) initial dcl 6-1 complex_flt_dec internal static fixed bin(15,0) initial dcl 6-1 convert_offset internal static fixed bin(8,1) initial array dcl 2-35 convert_size internal static fixed bin(8,0) initial array dcl 2-5 default_fix_bin_p internal static fixed bin(8,0) initial dcl 2-5 digit_ internal static fixed bin(3,0) initial dcl 7-5 dummy automatic bit(1) dcl 24 entry_variable internal static fixed bin(15,0) initial dcl 6-1 ext_entry_in internal static fixed bin(15,0) initial dcl 6-1 ext_entry_out internal static fixed bin(15,0) initial dcl 6-1 half_ internal static fixed bin(3,0) initial dcl 7-5 int_entry internal static fixed bin(15,0) initial dcl 6-1 int_entry_other internal static fixed bin(15,0) initial dcl 6-1 label_constant internal static fixed bin(15,0) initial dcl 6-1 label_size internal static fixed bin(8,0) initial dcl 2-5 label_variable internal static fixed bin(15,0) initial dcl 6-1 local_label_variable internal static fixed bin(15,0) initial dcl 6-1 max_dec_scale internal static fixed bin(8,0) initial dcl 2-5 max_index_register_value internal static fixed bin(31,0) initial dcl 2-38 max_length_p internal static fixed bin(8,0) initial dcl 2-5 max_offset internal static fixed bin(8,0) initial array dcl 2-5 max_p_fix_bin_1 internal static fixed bin(8,0) initial dcl 2-5 max_p_fix_dec internal static fixed bin(8,0) initial dcl 2-5 max_p_flt_bin_1 internal static fixed bin(8,0) initial dcl 2-5 max_p_xreg internal static fixed bin(8,0) initial dcl 2-5 max_short_size internal static fixed bin(8,0) initial array dcl 2-5 min_dec_scale internal static fixed bin(8,0) initial dcl 2-5 mod4_ internal static fixed bin(3,0) initial dcl 7-5 packed_digits_per_char internal static fixed bin(8,0) initial dcl 2-5 packed_digits_per_word internal static fixed bin(8,0) initial dcl 2-5 packed_ptr internal static fixed bin(15,0) initial dcl 6-1 pl1_stat_$xeq_tree_area_ptr external static pointer dcl 1-7 real_fix_bin_2 internal static fixed bin(15,0) initial dcl 6-1 real_fix_dec internal static fixed bin(15,0) initial dcl 6-1 real_flt_bin_1 internal static fixed bin(15,0) initial dcl 6-1 real_flt_bin_2 internal static fixed bin(15,0) initial dcl 6-1 real_flt_dec internal static fixed bin(15,0) initial dcl 6-1 units_per_word internal static fixed bin(8,0) initial array dcl 2-5 unpacked_ptr internal static fixed bin(15,0) initial dcl 6-1 xeq_tree_area based area(1024) dcl 1-5 NAMES DECLARED BY EXPLICIT CONTEXT. done 000274 constant label dcl 115 set ref 71 generate_constant 000014 constant entry external dcl 17 generate_constant$bit_string 000347 constant entry external dcl 133 generate_constant$char_string 000410 constant entry external dcl 146 generate_constant$real_fix_bin_1 000322 constant entry external dcl 123 generate_constant$relocatable 000454 constant entry external dcl 162 join 000052 constant label dcl 49 ref 131 175 join1 000055 constant label dcl 51 ref 144 160 loop 000131 constant label dcl 75 ref 53 57 58 63 64 67 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 670 706 502 700 Length 1224 502 16 301 166 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME generate_constant 96 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME generate_constant 000100 p generate_constant 000102 q generate_constant 000104 pc generate_constant 000106 n generate_constant 000107 n_bits generate_constant 000110 n_chars generate_constant 000111 dt generate_constant 000112 bs generate_constant 000113 cs generate_constant 000114 reloc generate_constant THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return ext_entry ext_entry_desc alloc_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. create_symbol THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cg_stat$constant_list pl1_stat_$tree_area_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 17 000010 41 000032 42 000034 43 000036 44 000040 46 000042 47 000046 49 000052 51 000055 52 000061 53 000066 55 000072 57 000074 58 000077 61 000102 63 000104 64 000107 67 000112 71 000117 75 000131 76 000133 78 000134 79 000145 81 000152 82 000172 83 000177 85 000200 87 000202 90 000213 91 000220 93 000231 95 000235 97 000237 99 000241 100 000243 101 000245 103 000246 104 000247 105 000253 108 000257 109 000261 111 000263 112 000265 113 000267 115 000274 116 000277 117 000301 118 000304 119 000310 120 000312 121 000314 123 000316 127 000332 128 000335 129 000337 130 000341 131 000344 133 000345 137 000365 138 000370 139 000373 140 000375 142 000377 143 000401 144 000403 146 000404 151 000426 152 000431 153 000433 154 000436 155 000437 156 000441 158 000442 159 000444 160 000446 162 000447 170 000464 171 000467 172 000472 173 000474 174 000476 175 000500 ----------------------------------------------------------- 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