æL¾ì<âÀ¸ Maucieri Multics IR,ô*õÉTY–¥TTÛþynoneSTY_TELNET R!RÒY€qžSchroth €ÞBVrÚ Schroth ds Multics !ª_L9R«H|M3 MJp\WnoneVIP7400 ¸ÓSchroth ªèÈ è 8 Schroth ds SysMaint ŽGR~fZT„’¦óT¡Ž>ÐÅnoneSTY P0jú˜t€ ‚TALee €¸<Vúì TALee microbe 9* END HISTORY COMMENTS */ 2 10 2 11 2 12 dcl 1 definition aligned based, 2 13 2 forward unal bit(18), /* offset of next def */ 2 14 2 backward unal bit(18), /* offset of previous def */ 2 15 2 value unal bit(18), 2 16 2 flags unal, 2 17 3 new bit(1), 2 18 3 ignore bit(1), 2 19 3 entry bit(1), 2 20 3 retain bit(1), 2 21 3 argcount bit(1), 2 22 3 descriptors bit(1), 2 23 3 indirect bit(1), 2 24 3 unused bit(8), 2 25 2 class unal bit(3), 2 26 2 symbol unal bit(18), /* offset of ACC for symbol */ 2 27 2 segname unal bit(18); /* offset of segname def */ 2 28 2 29 /* END INCLUDE FILE definition.incl.pl1 */ 43 44 45 b18 = name_assign(name); 46 47 def_pos = bit(cg_static_$def_pos,18); 48 def_ptr = addrel(cg_static_$def_base,def_pos); 49 def_reloc_ptr = addrel(cg_static_$def_reloc_base,def_pos); 50 51 if cg_static_$last_def then def_ptr -> definition.backward = cg_static_$last_def; 52 else def_ptr -> definition.backward = cg_static_$zero_def; 53 54 addrel(cg_static_$def_base,cg_static_$last_def) -> definition.forward = def_pos; 55 56 def_ptr -> definition.forward = cg_static_$zero_def; 57 58 def_ptr -> definition.new = "1"b; 59 def_ptr -> definition.symbol = b18; 60 def_ptr -> definition.value = value; 61 62 def_ptr -> definition.class = bit(class,3); 63 64 if class = 3 then cg_static_$seg_def = def_pos; 65 else do; 66 def_ptr -> definition.segname = cg_static_$seg_def; 67 def_ptr -> definition.entry = bit(fixed(class = 0,1),1); 68 end; 69 70 string(def_reloc_ptr -> reloc(0)) = rc_dp || rc_dp; 71 def_reloc_ptr -> reloc(1).left = rel_code(class); 72 string(def_reloc_ptr -> reloc(2)) = rc_dp || rc_dp; 73 74 cg_static_$def_pos = cg_static_$def_pos + 3; 75 cg_static_$last_def = def_pos; 76 77 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/20/86 1145.0 generate_definition.pl1 >special_ldd>install>MR12.0-1222>generate_definition.pl1 42 1 10/30/80 1648.7 relbts.incl.pl1 >ldd>include>relbts.incl.pl1 43 2 11/20/86 1035.2 definition.incl.pl1 >special_ldd>install>MR12.0-1222>definition.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. addrel builtin function dcl 28 ref 48 49 54 b18 000100 automatic bit(18) dcl 25 set ref 45* 59 backward 0(18) based bit(18) level 2 packed unaligned dcl 2-12 set ref 51* 52* bit builtin function dcl 28 ref 47 62 67 cg_static_$def_base 000010 external static pointer dcl 21 ref 48 54 cg_static_$def_pos 000014 external static fixed bin(18,0) dcl 21 set ref 47 74* 74 cg_static_$def_reloc_base 000012 external static pointer dcl 21 ref 49 cg_static_$last_def 000016 external static bit(18) dcl 21 set ref 51 51 54 75* cg_static_$seg_def 000022 external static bit(18) dcl 21 set ref 64* 66 cg_static_$zero_def 000020 external static bit(18) dcl 21 ref 52 56 class parameter fixed bin(3,0) dcl 17 in procedure "generate_definition" ref 15 62 64 67 71 class 1(33) based bit(3) level 2 in structure "definition" packed unaligned dcl 2-12 in procedure "generate_definition" set ref 62* def_pos 000101 automatic bit(18) dcl 25 set ref 47* 48 49 54 64 75 def_ptr 000102 automatic pointer dcl 25 set ref 48* 51 52 56 58 59 60 62 66 67 def_reloc_ptr 000104 automatic pointer dcl 25 set ref 49* 70 71 72 definition based structure level 1 dcl 2-12 entry 1(20) based bit(1) level 3 packed unaligned dcl 2-12 set ref 67* fixed builtin function dcl 28 ref 67 flags 1(18) based structure level 2 packed unaligned dcl 2-12 forward based bit(18) level 2 packed unaligned dcl 2-12 set ref 54* 56* left based bit(18) array level 2 packed unaligned dcl 32 set ref 71* name parameter char dcl 17 set ref 15 45* name_assign 000024 constant entry external dcl 30 ref 45 new 1(18) based bit(1) level 3 packed unaligned dcl 2-12 set ref 58* rc_dp constant bit(18) initial unaligned dcl 1-6 ref 70 70 72 72 rel_code 000000 constant bit(18) initial array dcl 36 ref 71 reloc based structure array level 1 dcl 32 set ref 70* 72* segname 2(18) based bit(18) level 2 packed unaligned dcl 2-12 set ref 66* string builtin function dcl 28 set ref 70* 72* symbol 2 based bit(18) level 2 packed unaligned dcl 2-12 set ref 59* value 1 based bit(18) level 2 in structure "definition" packed unaligned dcl 2-12 in procedure "generate_definition" set ref 60* value parameter bit(18) dcl 17 in procedure "generate_definition" ref 15 60 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. rc_a internal static bit(18) initial unaligned dcl 1-6 rc_a_dp internal static bit(36) initial unaligned dcl 1-23 rc_dp_dp internal static bit(36) initial unaligned dcl 1-23 rc_e internal static bit(18) initial unaligned dcl 1-6 rc_is15 internal static bit(18) initial unaligned dcl 1-6 rc_is18 internal static bit(18) initial unaligned dcl 1-6 rc_lb internal static bit(18) initial unaligned dcl 1-6 rc_lp15 internal static bit(18) initial unaligned dcl 1-6 rc_lp18 internal static bit(18) initial unaligned dcl 1-6 rc_nlb internal static bit(18) initial unaligned dcl 1-6 rc_nlp18 internal static bit(18) initial unaligned dcl 1-6 rc_ns internal static bit(18) initial unaligned dcl 1-6 rc_nt internal static bit(18) initial unaligned dcl 1-6 rc_s internal static bit(18) initial unaligned dcl 1-6 rc_sr internal static bit(18) initial unaligned dcl 1-6 rc_t internal static bit(18) initial unaligned dcl 1-6 size builtin function dcl 28 NAME DECLARED BY EXPLICIT CONTEXT. generate_definition 000013 constant entry external dcl 15 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 264 312 162 274 Length 530 162 26 202 102 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME generate_definition 82 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME generate_definition 000100 b18 generate_definition 000101 def_pos generate_definition 000102 def_ptr generate_definition 000104 def_reloc_ptr generate_definition THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out_desc return_mac ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. name_assign THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cg_static_$def_base cg_static_$def_pos cg_static_$def_reloc_base cg_static_$last_def cg_static_$seg_def cg_static_$zero_def CONSTANTS 000000 aa 000020000000 000001 aa 000022000000 000002 aa 000026000000 000003 aa 000025000000 000004 aa 514000000022 000005 aa 404000000003 000006 aa 524077777777 BEGIN PROCEDURE generate_definition ENTRY TO generate_definition STATEMENT 1 ON LINE 15 generate_definition: proc(name,class,value); 000007 at 000003000006 000010 tt 000005000004 000011 ta 000007000000 000012 da 000076300000 000013 aa 000140 6270 00 eax7 96 000014 aa 7 00034 3521 20 epp2 pr7|28,* 000015 aa 2 01046 2721 00 tsp2 pr2|550 ext_entry_desc 000016 aa 000006000000 000017 aa 000000000000 000020 aa 6 00042 3735 20 epp7 pr6|34,* 000021 aa 7 00000 2361 20 ldq pr7|0,* 000022 aa 000002 6040 04 tmi 2,ic 000024 000023 aa 777777 3760 07 anq 262143,dl 000024 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000025 aa 6 00106 7561 00 stq pr6|70 STATEMENT 1 ON LINE 45 b18 = name_assign(name); 000026 aa 6 00032 3715 20 epp5 pr6|26,* 000027 aa 5 00002 3521 20 epp2 pr5|2,* name 000030 aa 6 00112 2521 00 spri2 pr6|74 000031 aa 6 00100 3521 00 epp2 pr6|64 b18 000032 aa 6 00114 2521 00 spri2 pr6|76 000033 aa 7 00000 3521 20 epp2 pr7|0,* 000034 aa 6 00116 2521 00 spri2 pr6|78 000035 aa 777747 3520 04 epp2 -25,ic 000004 = 514000000022 000036 aa 6 00120 2521 00 spri2 pr6|80 000037 aa 6 00110 6211 00 eax1 pr6|72 000040 aa 010000 4310 07 fld 4096,dl 000041 la 4 00024 3521 20 epp2 pr4|20,* name_assign 000042 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 47 def_pos = bit(cg_static_$def_pos,18); 000043 aa 6 00044 3701 20 epp4 pr6|36,* 000044 la 4 00014 2351 20 lda pr4|12,* cg_static_$def_pos 000045 aa 000002 6050 04 tpl 2,ic 000047 000046 aa 000000 5310 00 neg 0 000047 aa 000022 7350 00 als 18 000050 aa 6 00101 7551 00 sta pr6|65 def_pos STATEMENT 1 ON LINE 48 def_ptr = addrel(cg_static_$def_base,def_pos); 000051 la 4 00010 3521 20 epp2 pr4|8,* cg_static_$def_base 000052 aa 2 00000 3521 61 epp2 pr2|0,*au cg_static_$def_base 000053 aa 000000 0520 03 adwp2 0,du 000054 aa 6 00102 2521 00 spri2 pr6|66 def_ptr STATEMENT 1 ON LINE 49 def_reloc_ptr = addrel(cg_static_$def_reloc_base,def_pos); 000055 la 4 00012 3515 20 epp1 pr4|10,* cg_static_$def_reloc_base 000056 aa 1 00000 3515 61 epp1 pr1|0,*au cg_static_$def_reloc_base 000057 aa 000000 0510 03 adwp1 0,du 000060 aa 6 00104 2515 00 spri1 pr6|68 def_reloc_ptr STATEMENT 1 ON LINE 51 if cg_static_$last_def then def_ptr -> definition.backward = cg_static_$last_def; 000061 la 4 00016 2351 20 lda pr4|14,* cg_static_$last_def 000062 aa 000004 6000 04 tze 4,ic 000066 000063 aa 000022 7710 00 arl 18 000064 aa 2 00000 5511 14 stba pr2|0,14 definition.backward 000065 aa 000004 7100 04 tra 4,ic 000071 STATEMENT 1 ON LINE 52 else def_ptr -> definition.backward = cg_static_$zero_def; 000066 la 4 00020 2351 20 lda pr4|16,* cg_static_$zero_def 000067 aa 000022 7710 00 arl 18 000070 aa 2 00000 5511 14 stba pr2|0,14 definition.backward STATEMENT 1 ON LINE 54 addrel(cg_static_$def_base,cg_static_$last_def) -> definition.forward = def_pos; 000071 la 4 00016 2351 20 lda pr4|14,* cg_static_$last_def 000072 la 4 00010 3535 20 epp3 pr4|8,* cg_static_$def_base 000073 aa 3 00000 3535 61 epp3 pr3|0,*au cg_static_$def_base 000074 aa 000000 0530 03 adwp3 0,du 000075 aa 6 00101 2351 00 lda pr6|65 def_pos 000076 aa 3 00000 5511 60 stba pr3|0,60 definition.forward STATEMENT 1 ON LINE 56 def_ptr -> definition.forward = cg_static_$zero_def; 000077 la 4 00020 2351 20 lda pr4|16,* cg_static_$zero_def 000100 aa 2 00000 5511 60 stba pr2|0,60 definition.forward STATEMENT 1 ON LINE 58 def_ptr -> definition.new = "1"b; 000101 aa 400000 2350 07 lda 131072,dl 000102 aa 2 00001 2551 00 orsa pr2|1 definition.new STATEMENT 1 ON LINE 59 def_ptr -> definition.symbol = b18; 000103 aa 6 00100 2351 00 lda pr6|64 b18 000104 aa 2 00002 5511 60 stba pr2|2,60 definition.symbol STATEMENT 1 ON LINE 60 def_ptr -> definition.value = value; 000105 aa 6 00032 3735 20 epp7 pr6|26,* 000106 aa 7 00006 2351 20 lda pr7|6,* value 000107 aa 2 00001 5511 60 stba pr2|1,60 definition.value STATEMENT 1 ON LINE 62 def_ptr -> definition.class = bit(class,3); 000110 aa 7 00004 2351 20 lda pr7|4,* class 000111 aa 000002 6050 04 tpl 2,ic 000113 000112 aa 000000 5310 00 neg 0 000113 aa 0 00322 3771 00 anaq pr0|210 = 000000000007 777777777777 000114 aa 2 00001 6751 00 era pr2|1 definition.class 000115 aa 000007 3750 07 ana 7,dl 000116 aa 2 00001 6551 00 ersa pr2|1 definition.class STATEMENT 1 ON LINE 64 if class = 3 then cg_static_$seg_def = def_pos; 000117 aa 7 00004 2361 20 ldq pr7|4,* class 000120 aa 000003 1160 07 cmpq 3,dl 000121 aa 000004 6010 04 tnz 4,ic 000125 000122 aa 6 00101 2351 00 lda pr6|65 def_pos 000123 la 4 00022 7551 20 sta pr4|18,* cg_static_$seg_def 000124 aa 000020 7100 04 tra 16,ic 000144 STATEMENT 1 ON LINE 65 else do; STATEMENT 1 ON LINE 66 def_ptr -> definition.segname = cg_static_$seg_def; 000125 la 4 00022 2351 20 lda pr4|18,* cg_static_$seg_def 000126 aa 000022 7710 00 arl 18 000127 aa 2 00002 5511 14 stba pr2|2,14 definition.segname STATEMENT 1 ON LINE 67 def_ptr -> definition.entry = bit(fixed(class = 0,1),1); 000130 aa 7 00004 2361 20 ldq pr7|4,* class 000131 aa 0 00512 7001 00 tsx0 pr0|330 r_e_as 000132 aa 000107 7730 00 lrl 71 000133 aa 0 00000 1161 00 cmpq pr0|0 = 000000000000 000134 aa 000003 6050 04 tpl 3,ic 000137 000135 aa 0 00110 6761 00 erq pr0|72 = 777777777777 000136 aa 000001 0760 07 adq 1,dl 000137 aa 000107 7370 00 lls 71 000140 aa 000024 7730 00 lrl 20 000141 aa 2 00001 6751 00 era pr2|1 definition.entry 000142 aa 100000 3750 07 ana 32768,dl 000143 aa 2 00001 6551 00 ersa pr2|1 definition.entry STATEMENT 1 ON LINE 68 end; STATEMENT 1 ON LINE 70 string(def_reloc_ptr -> reloc(0)) = rc_dp || rc_dp; 000144 aa 000025 2350 07 lda 21,dl 000145 aa 000025 2750 03 ora 21,du 000146 aa 1 00000 7551 00 sta pr1|0 STATEMENT 1 ON LINE 71 def_reloc_ptr -> reloc(1).left = rel_code(class); 000147 aa 7 00004 7271 20 lxl7 pr7|4,* class 000150 ta 000000 2350 17 lda 0,7 000151 aa 1 00001 5511 60 stba pr1|1,60 reloc.left STATEMENT 1 ON LINE 72 string(def_reloc_ptr -> reloc(2)) = rc_dp || rc_dp; 000152 aa 000025 2350 07 lda 21,dl 000153 aa 000025 2750 03 ora 21,du 000154 aa 1 00002 7551 00 sta pr1|2 STATEMENT 1 ON LINE 74 cg_static_$def_pos = cg_static_$def_pos + 3; 000155 aa 000003 2360 07 ldq 3,dl 000156 la 4 00014 0561 20 asq pr4|12,* cg_static_$def_pos STATEMENT 1 ON LINE 75 cg_static_$last_def = def_pos; 000157 aa 6 00101 2351 00 lda pr6|65 def_pos 000160 la 4 00016 7551 20 sta pr4|14,* cg_static_$last_def STATEMENT 1 ON LINE 77 end; 000161 aa 0 00631 7101 00 tra pr0|409 return_mac END PROCEDURE generate_definition