COMPILATION LISTING OF SEGMENT convert_chars Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/24/88 1543.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 /* procedure to generate call to convert a character string 12* 13* Initial Version: 21 September 1971 by BLW 14* Modified: 18 October 1972 by BLW 15* Modified: 15 February 1973 by RAB 16* Modified: 30 July 1973 by RAB for EIS 17* Modified: 26 May 1975 by RAB for assign_round 18* Modified: 23 June 1976 by RAB to centralize use of cg_stat$last_call 19* Modified: 7 Dec 1976 by RAB to fix 1558 20* Modified: 13 Dec 1976 by RAB to fix 1561 21* Modified: 14 Dec 1976 by RAB to change blank_on_zero mechanism in inline_picture 22* Modified: 27 Jan 1977 by RAB to fix 1572 23* Modified: 16 June 1977 by RAB to fix 1631 24* Modified: 10 September 1977 by RAB to fix 1613 by adding 3rd arg to store_bit_address 25* Modified: 4 October 1977 by RAB to fix 1676 26* Modified: 31 July 1978 by PCK for unsigned binary 27* Modified: 8 August 1978 by PCK to fix bug 1767 28* Modified: 6 September 1978 by PCK to fix bug 1763 29* Modified: 24 April 1978 by PCK to implement 4-bit decimal 30* Modified: 30 March 1980 by RAB for reference.(padded aligned)_for_store_ref. 31* See prepare_operand for details. Also fixes bug 1843 in which 32* padded unaligned strings are not padded if they are targets 33* of any_to_any_ calls. */ 34 35 convert_chars: proc(left,right,check_size,always_round); 36 37 dcl left ptr, /* ptr to target */ 38 right ptr, /* ptr to source */ 39 check_size bit(1) aligned, /* "1"b if size checking */ 40 always_round bit(1) aligned; /* "1"b if we should always round */ 41 42 dcl cg_stat$save_exp_called bit(1) ext, 43 (cg_stat$double_temp,cg_stat$ext_proc_list,cg_stat$cur_block) ptr ext, 44 cg_stat$text_pos fixed bin ext; 45 46 dcl (lp,arg(65),arg_pt,p,p1,p2,ap,q,buff(3),s,sym(2)) ptr; 47 dcl atomic bit (1) aligned; 48 dcl (comparison,c,check,scaled,varying_target) bit(1), 49 adjust bit(36), 50 increment bit(1) aligned init("0"b), 51 macro fixed bin(15), 52 last_freed fixed bin(18), 53 (iop,i,j,k,k1,k2,arg_pos,n_args,n,type(2),dtype(2),prec(2),scale(2),length_hold,iscan,tprec,word,nchars) fixed bin; 54 55 dcl c_a entry(fixed bin,fixed bin) returns(ptr), 56 (aq_man$lock, aq_man$load_var, load_size$a_or_q) entry(ptr,fixed bin), 57 base_man$load_var_and_lock entry(fixed bin,ptr,fixed bin), 58 get_reference entry() returns(ptr), 59 expmac$two_eis entry(fixed bin(15),ptr,ptr), 60 expmac$one_eis entry(fixed bin(15),ptr), 61 generate_constant$char_string entry(char(*) aligned, fixed bin) returns (ptr), 62 expmac$many_eis entry(fixed bin(15),ptr,fixed bin), 63 create_label entry(ptr,ptr,bit(3) aligned) returns(ptr), 64 expmac$fill_usage entry(fixed bin,fixed bin), 65 need_temp entry(ptr,bit(2) aligned), 66 assign_op$length_of_varying entry(ptr,ptr), 67 stack_temp$assign_block entry(ptr,fixed bin), 68 state_man$unlock entry, 69 xr_man$load_const entry(fixed bin,fixed bin), 70 xr_man$super_lock entry(fixed bin); 71 dcl prepare_operand entry(ptr,fixed bin,bit(1) aligned) returns(ptr); 72 dcl base_man$load_var entry(fixed bin,ptr,fixed bin), 73 adjust_ref_count entry(ptr,fixed bin), 74 long_op$extend_stack entry(ptr,fixed bin(15)), 75 store$save_string_temp entry(ptr), 76 copy_temp entry(ptr) returns(ptr), 77 compile_exp entry(ptr), 78 compile_exp$save entry(ptr) returns(ptr), 79 compile_exp$save_exp entry(ptr) returns(ptr), 80 create_list entry(fixed bin) returns(ptr), 81 generate_constant$real_fix_bin_1 entry(fixed bin) returns(ptr), 82 generate_constant entry(bit(*) aligned,fixed bin) returns(ptr); 83 dcl compile_link entry(char(*) aligned,bit(18) aligned,fixed bin) returns(fixed bin); 84 dcl store_bit_address entry(ptr,ptr,fixed bin(18)), 85 expmac entry(fixed bin(15),ptr), 86 expmac$many entry(fixed bin(15),ptr,fixed bin), 87 expmac$zero entry(fixed bin(15)), 88 reserve$declare_lib entry(fixed bin) returns(ptr), 89 state_man$flush entry, 90 state_man$flush_ref entry(ptr), 91 stack_temp$free_temp entry(ptr), 92 load entry(ptr,fixed bin); 93 94 dcl (abs,addr,bit,ceil,divide,fixed,float,index,length,max,mod,null,search,string,substr,unspec) builtin; 95 96 dcl ( make_desc_mac init(275), 97 ldfx1 init(7), 98 prepare_call init(362), 99 alloc_char_temp init(89), 100 move_chars init(98), 101 move_numeric init(438), 102 move_numeric_edit init(221), 103 dtb(2) init(222,223), 104 btd(2) init(224,225), 105 pic_mac(2) init(417,416), 106 conv_mac init(412), 107 zero_cs init(419), 108 zero_4bcs init(739), 109 blank_cs init(472), 110 pic_test init(278), 111 zero_mac(0:1) init(308,307), 112 call_ext_out init(234)) fixed bin(15) int static; 113 114 dcl ( short_work_space init(28), 115 medium_work_space init(44), 116 long_work_space init(158)) fixed bin int static options(constant); 117 118 dcl ( decimal_op init(175), 119 multi_decimal_op init(176), 120 complex_decimal_op init(182), 121 complex_binary_op init(193)) fixed bin int static; 122 123 dcl ( lte init("10000"b), /* load table entry */ 124 insm init("00001"b), /* insert table entry 1 multiple */ 125 mfls init("00110"b), /* move with floating sign insertion */ 126 enf init("00010"b), /* end floating suppression */ 127 mvc init("01101"b), /* move source character */ 128 insb init("01000"b), /* insert blank on suppress */ 129 mvzb init("00100"b), /* move with zero suppression and blank replacement */ 130 mvza init("00101"b), /* move with zero suppression and asterisk replacement */ 131 mflc init("00111"b) /* move with floating currency symbol insertion */ 132 ) bit(5) aligned int static; 133 134 dcl ( integer_header init("100000011000100000000010010"b), /* (lte 3),(blank),(insm 2) */ 135 scaled_header init("100000011000100000000010001"b) /* (lte 3),(blank),(insm 1) */ 136 ) bit(27) int static; 137 138 dcl ( mvc_1 init("011010001"b), 139 blank_on_zero init("000110100"b), 140 ses_off init("000110000"b), 141 ses_on init("000111000"b), 142 ses_on_bz init("000111100"b), 143 insb_5 init("011000101"b), 144 enf_sign init("000100000"b), 145 enf_curr init("000101000"b), 146 enf_sign_bz init("000100100"b), 147 enf_curr_bz init("000101100"b), 148 insp_3 init("010110011"b), 149 insn_4 init("010100100"b), 150 insa_0 init("010010000"b), 151 insb_0 init("010000000"b), 152 insb_7 init("010000111"b), 153 insb_8 init("010001000"b)) bit(9) int static aligned options(constant); 154 155 dcl blk_on_zero char(1) aligned based(addr(blank_on_zero)); 156 157 dcl ( lte_3_blank init("100000011000100000"b), 158 lte_4_blank init("100000100000100000"b)) bit(18) aligned int static; 159 160 dcl ( insn_cr init("010100000001100011010100000001110010"b), 161 insn_db init("010100000001100100010100000001100010"b) 162 ) bit(36) aligned int static; 163 164 dcl 1 edit_sequence aligned, 165 2 micro_op(68) structure unal, 166 3 op_code bit(5) unal, 167 3 data bit(4) unal; 168 169 dcl 1 edit_seq based(addr(edit_sequence)) aligned, 170 2 header bit(27) unal, 171 2 pad bit(9) unal; 172 173 dcl char_image char(nchars) based(addr(edit_sequence)) aligned; 174 1 1 /* BEGIN INCLUDE FILE ... pl1_descriptor_type_fcn.incl.pl1 */ 1 2 1 3 /* Program to convert symbol_node information into a descriptor type code. 1 4* Written 780614 by PG 1 5* Modified: 25 Apr 1979 by PCK to implement 4-bit decimal 1 6**/ 1 7 1 8 pl1_descriptor_type: 1 9 procedure (bv_type, bv_prec) returns (fixed bin); 1 10 1 11 /* parameters */ 1 12 1 13 dcl ( bv_type bit (36), 1 14 bv_prec fixed bin (24)) parameter; 1 15 1 16 /* automatic */ 1 17 1 18 dcl prec fixed bin (24), 1 19 dtype fixed bin; 1 20 1 21 /* builtins */ 1 22 1 23 dcl string builtin; 1 24 1 25 /* include files */ 1 26 2 1 /* BEGIN INCLUDE FILE ... pl1_symbol_type.incl.pl1 */ 2 2 2 3 dcl 1 type, 2 4 2 structure bit, 2 5 2 fixed bit, 2 6 2 float bit, 2 7 2 bit bit, 2 8 2 char bit, 2 9 2 ptr bit, 2 10 2 offset bit, 2 11 2 area bit, 2 12 2 label bit, 2 13 2 entry bit, 2 14 2 file bit, 2 15 2 arg_descriptor bit, 2 16 2 storage_block bit, 2 17 2 explicit_packed bit, 2 18 2 condition bit, 2 19 2 format bit, 2 20 2 builtin bit, 2 21 2 generic bit, 2 22 2 picture bit, 2 23 2 dimensioned bit, 2 24 2 initialed bit, 2 25 2 aligned bit, 2 26 2 unaligned bit, 2 27 2 signed bit, 2 28 2 unsigned bit, 2 29 2 precision bit, 2 30 2 varying bit, 2 31 2 local bit, 2 32 2 decimal bit, 2 33 2 binary bit, 2 34 2 real bit, 2 35 2 complex bit, 2 36 2 variable bit, 2 37 2 reducible bit, 2 38 2 irreducible bit, 2 39 2 returns bit; 2 40 2 41 /* END INCLUDE FILE ... pl1_symbol_type.incl.pl1 */ 1 27 3 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 3 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 3 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 3 8* Objects of this type are PASCAL string types. 3 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 3 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 3 11* Added the new C types. 3 12* END HISTORY COMMENTS */ 3 13 3 14 /* This include file defines mnemonic names for the Multics 3 15* standard descriptor types, using both pl1 and cobol terminology. 3 16* PG 780613 3 17* JRD 790530 3 18* JRD 791016 3 19* MBW 810731 3 20* TGO 830614 Add hex types. 3 21* Modified June 83 JMAthane to add PASCAL data types 3 22* TGO 840120 Add float dec extended and generic, float binary generic 3 23**/ 3 24 3 25 dcl (real_fix_bin_1_dtype init (1), 3 26 real_fix_bin_2_dtype init (2), 3 27 real_flt_bin_1_dtype init (3), 3 28 real_flt_bin_2_dtype init (4), 3 29 cplx_fix_bin_1_dtype init (5), 3 30 cplx_fix_bin_2_dtype init (6), 3 31 cplx_flt_bin_1_dtype init (7), 3 32 cplx_flt_bin_2_dtype init (8), 3 33 real_fix_dec_9bit_ls_dtype init (9), 3 34 real_flt_dec_9bit_dtype init (10), 3 35 cplx_fix_dec_9bit_ls_dtype init (11), 3 36 cplx_flt_dec_9bit_dtype init (12), 3 37 pointer_dtype init (13), 3 38 offset_dtype init (14), 3 39 label_dtype init (15), 3 40 entry_dtype init (16), 3 41 structure_dtype init (17), 3 42 area_dtype init (18), 3 43 bit_dtype init (19), 3 44 varying_bit_dtype init (20), 3 45 char_dtype init (21), 3 46 varying_char_dtype init (22), 3 47 file_dtype init (23), 3 48 real_fix_dec_9bit_ls_overp_dtype init (29), 3 49 real_fix_dec_9bit_ts_overp_dtype init (30), 3 50 real_fix_bin_1_uns_dtype init (33), 3 51 real_fix_bin_2_uns_dtype init (34), 3 52 real_fix_dec_9bit_uns_dtype init (35), 3 53 real_fix_dec_9bit_ts_dtype init (36), 3 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 3 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 3 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 3 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 3 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 3 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 3 60 real_flt_dec_4bit_bytealigned_dtype init (44), 3 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 3 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 3 63 real_flt_hex_1_dtype init (47), 3 64 real_flt_hex_2_dtype init (48), 3 65 cplx_flt_hex_1_dtype init (49), 3 66 cplx_flt_hex_2_dtype init (50), 3 67 c_typeref_dtype init (54), 3 68 c_enum_dtype init (55), 3 69 c_enum_const_dtype init (56), 3 70 c_union_dtype init (57), 3 71 algol68_straight_dtype init (59), 3 72 algol68_format_dtype init (60), 3 73 algol68_array_descriptor_dtype init (61), 3 74 algol68_union_dtype init (62), 3 75 3 76 cobol_comp_6_dtype init (1), 3 77 cobol_comp_7_dtype init (1), 3 78 cobol_display_ls_dtype init (9), 3 79 cobol_structure_dtype init (17), 3 80 cobol_char_string_dtype init (21), 3 81 cobol_display_ls_overp_dtype init (29), 3 82 cobol_display_ts_overp_dtype init (30), 3 83 cobol_display_uns_dtype init (35), 3 84 cobol_display_ts_dtype init (36), 3 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 3 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 3 87 cobol_comp_5_uns_dtype init (40), 3 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 3 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 3 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 3 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 3 92 cplx_flt_dec_generic_dtype init (84), 3 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 3 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 3 95 3 96 dcl (ft_integer_dtype init (1), 3 97 ft_real_dtype init (3), 3 98 ft_double_dtype init (4), 3 99 ft_complex_dtype init (7), 3 100 ft_complex_double_dtype init (8), 3 101 ft_external_dtype init (16), 3 102 ft_logical_dtype init (19), 3 103 ft_char_dtype init (21), 3 104 ft_hex_real_dtype init (47), 3 105 ft_hex_double_dtype init (48), 3 106 ft_hex_complex_dtype init (49), 3 107 ft_hex_complex_double_dtype init (50) 3 108 ) fixed bin internal static options (constant); 3 109 3 110 dcl (algol68_short_int_dtype init (1), 3 111 algol68_int_dtype init (1), 3 112 algol68_long_int_dtype init (2), 3 113 algol68_real_dtype init (3), 3 114 algol68_long_real_dtype init (4), 3 115 algol68_compl_dtype init (7), 3 116 algol68_long_compl_dtype init (8), 3 117 algol68_bits_dtype init (19), 3 118 algol68_bool_dtype init (19), 3 119 algol68_char_dtype init (21), 3 120 algol68_byte_dtype init (21), 3 121 algol68_struct_struct_char_dtype init (22), 3 122 algol68_struct_struct_bool_dtype init (20) 3 123 ) fixed bin internal static options (constant); 3 124 3 125 dcl (label_constant_runtime_dtype init (24), 3 126 int_entry_runtime_dtype init (25), 3 127 ext_entry_runtime_dtype init (26), 3 128 ext_procedure_runtime_dtype init (27), 3 129 picture_runtime_dtype init (63) 3 130 ) fixed bin internal static options (constant); 3 131 3 132 dcl (pascal_integer_dtype init (1), 3 133 pascal_real_dtype init (4), 3 134 pascal_label_dtype init (24), 3 135 pascal_internal_procedure_dtype init (25), 3 136 pascal_exportable_procedure_dtype init (26), 3 137 pascal_imported_procedure_dtype init (27), 3 138 pascal_typed_pointer_type_dtype init (64), 3 139 pascal_char_dtype init (65), 3 140 pascal_boolean_dtype init (66), 3 141 pascal_record_file_type_dtype init (67), 3 142 pascal_record_type_dtype init (68), 3 143 pascal_set_dtype init (69), 3 144 pascal_enumerated_type_dtype init (70), 3 145 pascal_enumerated_type_element_dtype init (71), 3 146 pascal_enumerated_type_instance_dtype init (72), 3 147 pascal_user_defined_type_dtype init (73), 3 148 pascal_user_defined_type_instance_dtype init (74), 3 149 pascal_text_file_dtype init (75), 3 150 pascal_procedure_type_dtype init (76), 3 151 pascal_variable_formal_parameter_dtype init (77), 3 152 pascal_value_formal_parameter_dtype init (78), 3 153 pascal_entry_formal_parameter_dtype init (79), 3 154 pascal_parameter_procedure_dtype init (80), 3 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 3 156 3 157 3 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 1 28 4 1 /* BEGIN INCLUDE FILE ... system.incl.pl1 */ 4 2 4 3 /* Modified: 25 Apr 1979 by PCK to implemnt 4-bit decimal */ 4 4 4 5 dcl ( max_p_flt_bin_1 initial(27), 4 6 max_p_flt_bin_2 initial(63), 4 7 max_p_fix_bin_1 initial(35), 4 8 max_p_fix_bin_2 initial(71), 4 9 4 10 max_p_dec initial(59), 4 11 max_p_bin_or_dec initial (71), /* max (max_p_fix_bin_2, max_p_dec) */ 4 12 4 13 min_scale initial(-128), 4 14 max_scale initial(+127), 4 15 max_bit_string initial(9437184), 4 16 max_char_string initial(1048576), 4 17 max_area_size initial(262144), 4 18 min_area_size initial(28), 4 19 4 20 max_bit_string_constant initial (253), /* max length of bit literals */ 4 21 max_char_string_constant initial (254), /* max length of character literals */ 4 22 max_identifier_length initial (256), 4 23 max_number_of_dimensions initial (127), 4 24 4 25 max_length_precision initial(24), 4 26 max_offset_precision initial(24), /* 18 bits for word offset + 6 bits for bit offset */ 4 27 4 28 max_words_per_variable initial (262144), 4 29 4 30 bits_per_word initial(36), 4 31 bits_per_double initial(72), 4 32 packed_digits_per_character initial(2), 4 33 characters_per_half initial(2), 4 34 characters_per_word initial(4), 4 35 characters_per_double initial(8), 4 36 4 37 bits_per_character initial(9), 4 38 bits_per_half initial(18), 4 39 bits_per_decimal_digit initial(9), 4 40 bits_per_binary_exponent initial(8), 4 41 bits_per_packed_ptr initial(36), 4 42 words_per_packed_pointer initial(1), 4 43 4 44 words_per_fix_bin_1 initial(1), 4 45 words_per_fix_bin_2 initial(2), 4 46 words_per_flt_bin_1 initial(1), 4 47 words_per_flt_bin_2 initial(2), 4 48 words_per_varying_string_header initial(1), 4 49 words_per_offset initial(1), 4 50 words_per_pointer initial(2), 4 51 words_per_label_var initial(4), 4 52 words_per_entry_var initial(4), 4 53 words_per_file_var initial(4), 4 54 words_per_format initial(4), 4 55 words_per_condition_var initial(6), 4 56 4 57 max_index_register_value initial(262143), 4 58 max_signed_index_register_value initial(131071), 4 59 4 60 max_signed_xreg_precision initial(17), 4 61 max_uns_xreg_precision initial(18), 4 62 4 63 default_area_size initial(1024), 4 64 default_flt_bin_p initial(27), 4 65 default_fix_bin_p initial(17), 4 66 default_flt_dec_p initial(10), 4 67 default_fix_dec_p initial(7)) fixed bin(31) internal static options(constant); 4 68 4 69 dcl bits_per_digit initial(4.5) fixed bin(31,1) internal static options(constant); 4 70 4 71 dcl ( integer_type initial("010000000000000000000100000001100000"b), 4 72 dec_integer_type initial("010000000000000000000100000010100000"b), 4 73 pointer_type initial("000001000000000000000100000000000000"b), 4 74 real_type initial("001000000000000000000100000001100000"b), 4 75 complex_type initial("001000000000000000000100000001010000"b), 4 76 builtin_type initial("000000000000000010000000000000000000"b), 4 77 storage_block_type initial("000000000000100000000000000000000000"b), 4 78 arg_desc_type initial("000000000001000000000000000000000000"b), 4 79 local_label_var_type initial("000000001000000000000100000100001000"b), 4 80 entry_var_type initial("000000000100000000000000000000001000"b), 4 81 bit_type initial("000100000000000000000000000000000000"b), 4 82 char_type initial("000010000000000000000000000000000000"b)) bit(36) aligned int static 4 83 options(constant); 4 84 4 85 /* END INCLUDE FILE ... system.incl.pl1 */ 1 29 1 30 1 31 /* program */ 1 32 1 33 string (type) = bv_type; 1 34 prec = bv_prec; 1 35 1 36 if type.structure 1 37 then dtype = structure_dtype; 1 38 else 1 39 1 40 if type.real 1 41 then if type.fixed 1 42 then if type.binary 1 43 then if type.unsigned 1 44 then if prec <= max_p_fix_bin_1 1 45 then dtype = real_fix_bin_1_uns_dtype; 1 46 else dtype = real_fix_bin_2_uns_dtype; 1 47 else if prec <= max_p_fix_bin_1 1 48 then dtype = real_fix_bin_1_dtype; 1 49 else dtype = real_fix_bin_2_dtype; 1 50 else if type.unaligned 1 51 then dtype = real_fix_dec_4bit_bytealigned_ls_dtype; 1 52 else dtype = real_fix_dec_9bit_ls_dtype; 1 53 else if type.binary 1 54 then if prec <= max_p_flt_bin_1 1 55 then dtype = real_flt_bin_1_dtype; 1 56 else dtype = real_flt_bin_2_dtype; 1 57 else if type.unaligned 1 58 then dtype = real_flt_dec_4bit_bytealigned_dtype; 1 59 else dtype = real_flt_dec_9bit_dtype; 1 60 else 1 61 1 62 if type.complex 1 63 then if type.fixed 1 64 then if type.binary 1 65 then if prec <= max_p_fix_bin_1 1 66 then dtype = cplx_fix_bin_1_dtype; 1 67 else dtype = cplx_fix_bin_2_dtype; 1 68 else if type.unaligned 1 69 then dtype = cplx_fix_dec_4bit_bytealigned_ls_dtype; 1 70 else dtype = cplx_fix_dec_9bit_ls_dtype; 1 71 else if type.binary 1 72 then if prec <= max_p_flt_bin_1 1 73 then dtype = cplx_flt_bin_1_dtype; 1 74 else dtype = cplx_flt_bin_2_dtype; 1 75 else if type.unaligned 1 76 then dtype = cplx_flt_dec_4bit_bytealigned_dtype; 1 77 else dtype = cplx_flt_dec_9bit_dtype; 1 78 else 1 79 1 80 if type.bit 1 81 then if type.varying 1 82 then dtype = varying_bit_dtype; 1 83 else dtype = bit_dtype; 1 84 else 1 85 1 86 if type.char 1 87 then if type.varying 1 88 then dtype = varying_char_dtype; 1 89 else dtype = char_dtype; 1 90 else 1 91 1 92 if type.ptr 1 93 then dtype = pointer_dtype; 1 94 else 1 95 1 96 if type.offset 1 97 then dtype = offset_dtype; 1 98 else 1 99 1 100 if type.area 1 101 then dtype = area_dtype; 1 102 else 1 103 1 104 if type.label 1 105 then dtype = label_dtype; 1 106 else 1 107 1 108 if type.entry 1 109 then dtype = entry_dtype; 1 110 else 1 111 1 112 if type.file 1 113 then dtype = file_dtype; 1 114 else 1 115 1 116 if type.picture 1 117 then dtype = char_dtype; 1 118 else dtype = 0; 1 119 1 120 return (dtype); 1 121 1 122 end /* pl1_descriptor_type */; 1 123 1 124 /* END INCLUDE FILE ... pl1_descriptor_type_fcn.incl.pl1 */ 175 5 1 /* BEGIN INCLUDE FILE ... cg_reference.incl.pl1 */ 5 2 5 3 dcl 1 reference based aligned, 5 4 2 node_type bit(9) unaligned, 5 5 2 array_ref bit(1) unaligned, 5 6 2 varying_ref bit(1) unaligned, 5 7 2 shared bit(1) unaligned, 5 8 2 put_data_sw bit(1) unaligned, 5 9 2 processed bit(1) unaligned, 5 10 2 units fixed(3) unaligned, 5 11 2 ref_count fixed(17) unaligned, 5 12 2 c_offset fixed(24), 5 13 2 c_length fixed(24), 5 14 2 symbol ptr unaligned, 5 15 2 qualifier ptr unaligned, 5 16 2 offset ptr unaligned, 5 17 2 length ptr unaligned, 5 18 /* these fields are used by the 645 code generator */ 5 19 2 c_f_offset fixed bin(6), 5 20 2 address structure unaligned, 5 21 3 base bit(3), 5 22 3 offset bit(15), 5 23 3 op bit(9), 5 24 3 no_address bit(1), 5 25 3 inhibit bit(1), 5 26 3 ext_base bit(1), 5 27 3 tag bit(6), 5 28 2 info structure unaligned, 5 29 3 address_in structure, 5 30 4 b dimension(0:7) bit(1), 5 31 4 storage bit(1), 5 32 3 value_in structure, 5 33 4 a bit(1), 5 34 4 q bit(1), 5 35 4 aq bit(1), 5 36 4 string_aq bit(1), 5 37 4 complex_aq bit(1), 5 38 4 decimal_aq bit(1), 5 39 4 b dimension(0:7) bit(1), 5 40 4 storage bit(1), 5 41 4 indicators bit(1), 5 42 4 x dimension(0:7) bit(1), 5 43 3 other structure, 5 44 4 big_offset bit(1), 5 45 4 big_length bit(1), 5 46 4 modword_in_offset bit(1), 5 47 2 data_type fixed(5) unaligned, 5 48 2 bits structure unaligned, 5 49 3 padded_ref bit(1), 5 50 3 aligned_ref bit(1), 5 51 3 long_ref bit(1), 5 52 3 forward_ref bit(1), 5 53 3 ic_ref bit(1), 5 54 3 temp_ref bit(1), 5 55 3 defined_ref bit(1), 5 56 3 evaluated bit(1), 5 57 3 allocate bit(1), 5 58 3 allocated bit(1), 5 59 3 aliasable bit(1), 5 60 3 even bit(1), 5 61 3 perm_address bit(1), 5 62 3 aggregate bit(1), 5 63 3 hit_zero bit(1), 5 64 3 dont_save bit(1), 5 65 3 fo_in_qual bit(1), 5 66 3 hard_to_load bit(1), 5 67 2 relocation bit(12) unaligned, 5 68 2 more_bits structure unaligned, 5 69 3 substr bit(1), 5 70 3 padded_for_store_ref bit(1), 5 71 3 aligned_for_store_ref bit(1), 5 72 3 mbz bit(15), 5 73 2 store_ins bit(18) unaligned; 5 74 5 75 /* END INCLUDE FILE ... cg_reference.incl.pl1 */ 176 6 1 /* BEGIN INCLUDE FILE ... symbol.incl.pl1 */ 6 2 6 3 dcl 1 symbol based aligned, 6 4 2 node_type bit(9) unal, 6 5 2 source_id structure unal, 6 6 3 file_number bit(8), 6 7 3 line_number bit(14), 6 8 3 statement_number bit(5), 6 9 2 location fixed(18) unal unsigned, 6 10 2 allocated bit(1) unal, 6 11 2 dcl_type bit(3) unal, 6 12 2 reserved bit(6) unal, 6 13 2 pix unal, 6 14 3 pic_fixed bit(1) unal, 6 15 3 pic_float bit(1) unal, 6 16 3 pic_char bit(1) unal, 6 17 3 pic_scale fixed(7) unal, 6 18 3 pic_size fixed(7) unal, 6 19 2 level fixed(8) unal, 6 20 2 boundary fixed(3) unal, 6 21 2 size_units fixed(3) unal, 6 22 2 scale fixed(7) unal, 6 23 2 runtime bit(18) unal, 6 24 2 runtime_offset bit(18) unal, 6 25 2 block_node ptr unal, 6 26 2 token ptr unal, 6 27 2 next ptr unal, 6 28 2 multi_use ptr unal, 6 29 2 cross_references ptr unal, 6 30 2 initial ptr unal, 6 31 2 array ptr unal, 6 32 2 descriptor ptr unal, 6 33 2 equivalence ptr unal, 6 34 2 reference ptr unal, 6 35 2 general ptr unal, 6 36 2 father ptr unal, 6 37 2 brother ptr unal, 6 38 2 son ptr unal, 6 39 2 word_size ptr unal, 6 40 2 bit_size ptr unal, 6 41 2 dcl_size ptr unal, 6 42 2 symtab_size ptr unal, 6 43 2 c_word_size fixed(24), 6 44 2 c_bit_size fixed(24), 6 45 2 c_dcl_size fixed(24), 6 46 6 47 2 attributes structure aligned, 6 48 3 data_type structure unal, 6 49 4 structure bit(1) , 6 50 4 fixed bit(1), 6 51 4 float bit(1), 6 52 4 bit bit(1), 6 53 4 char bit(1), 6 54 4 ptr bit(1), 6 55 4 offset bit(1), 6 56 4 area bit(1), 6 57 4 label bit(1), 6 58 4 entry bit(1), 6 59 4 file bit(1), 6 60 4 arg_descriptor bit(1), 6 61 4 storage_block bit(1), 6 62 4 explicit_packed bit(1), /* options(packed) */ 6 63 4 condition bit(1), 6 64 4 format bit(1), 6 65 4 builtin bit(1), 6 66 4 generic bit(1), 6 67 4 picture bit(1), 6 68 6 69 3 misc_attributes structure unal, 6 70 4 dimensioned bit(1), 6 71 4 initialed bit(1), 6 72 4 aligned bit(1), 6 73 4 unaligned bit(1), 6 74 4 signed bit(1), 6 75 4 unsigned bit(1), 6 76 4 precision bit(1), 6 77 4 varying bit(1), 6 78 4 local bit(1), 6 79 4 decimal bit(1), 6 80 4 binary bit(1), 6 81 4 real bit(1), 6 82 4 complex bit(1), 6 83 4 variable bit(1), 6 84 4 reducible bit(1), 6 85 4 irreducible bit(1), 6 86 4 returns bit(1), 6 87 4 position bit(1), 6 88 4 internal bit(1), 6 89 4 external bit(1), 6 90 4 like bit(1), 6 91 4 member bit(1), 6 92 4 non_varying bit(1), 6 93 4 options bit(1), 6 94 4 variable_arg_list bit(1), /* options(variable) */ 6 95 4 alloc_in_text bit(1), /* options(constant) */ 6 96 6 97 3 storage_class structure unal, 6 98 4 auto bit(1), 6 99 4 based bit(1), 6 100 4 static bit(1), 6 101 4 controlled bit(1), 6 102 4 defined bit(1), 6 103 4 parameter bit(1), 6 104 4 param_desc bit(1), 6 105 4 constant bit(1), 6 106 4 temporary bit(1), 6 107 4 return_value bit(1), 6 108 6 109 3 file_attributes structure unal, 6 110 4 print bit(1), 6 111 4 input bit(1), 6 112 4 output bit(1), 6 113 4 update bit(1), 6 114 4 stream bit(1), 6 115 4 reserved_1 bit(1), 6 116 4 record bit(1), 6 117 4 sequential bit(1), 6 118 4 direct bit(1), 6 119 4 interactive bit(1), /* env(interactive) */ 6 120 4 reserved_2 bit(1), 6 121 4 reserved_3 bit(1), 6 122 4 stringvalue bit(1), /* env(stringvalue) */ 6 123 4 keyed bit(1), 6 124 4 reserved_4 bit(1), 6 125 4 environment bit(1), 6 126 6 127 3 compiler_developed structure unal, 6 128 4 aliasable bit(1), 6 129 4 packed bit(1), 6 130 4 passed_as_arg bit(1), 6 131 4 allocate bit(1), 6 132 4 set bit(1), 6 133 4 exp_extents bit(1), 6 134 4 refer_extents bit(1), 6 135 4 star_extents bit(1), 6 136 4 isub bit(1), 6 137 4 put_in_symtab bit(1), 6 138 4 contiguous bit(1), 6 139 4 put_data bit(1), 6 140 4 overlayed bit(1), 6 141 4 error bit(1), 6 142 4 symtab_processed bit(1), 6 143 4 overlayed_by_builtin bit(1), 6 144 4 defaulted bit(1), 6 145 4 connected bit(1); 6 146 6 147 /* END INCLUDE FILE ... symbol.incl.pl1 */ 177 7 1 /* BEGIN INCLUDE FILE ... token.incl.pl1 */ 7 2 7 3 dcl 1 token based aligned, 7 4 2 node_type bit(9) unaligned, 7 5 2 type bit(9) unaligned, 7 6 2 loc bit(18) unaligned, /* symtab offset for identifiers, "p" flag for constants */ 7 7 2 declaration ptr unaligned, 7 8 2 next ptr unaligned, 7 9 2 size fixed(9), 7 10 2 string char(n refer(token.size)); 7 11 7 12 /* END INCLUDE FILE ... token.incl.pl1 */ 178 8 1 /* BEGIN INCLUDE FILE ... operator.incl.pl1 */ 8 2 8 3 /* Modified: 2 Apr 1980 by PCK to add max_number_of_operands */ 8 4 8 5 /* format: style3 */ 8 6 dcl 1 operator based aligned, 8 7 2 node_type bit (9) unaligned, 8 8 2 op_code bit (9) unaligned, 8 9 2 shared bit (1) unaligned, 8 10 2 processed bit (1) unaligned, 8 11 2 optimized bit (1) unaligned, 8 12 2 number fixed (14) unaligned, 8 13 2 operand dimension (n refer (operator.number)) ptr unaligned; 8 14 8 15 dcl max_number_of_operands 8 16 fixed bin (15) int static options (constant) initial (32767); 8 17 8 18 /* END INCLUDE FILE ... operator.incl.pl1 */ 179 9 1 /* BEGIN INCLUDE FILE ... list.incl.pl1 */ 9 2 9 3 /* Modified 26 June 81 by EBush to add max_list_elements */ 9 4 9 5 9 6 dcl 1 list based aligned, 9 7 2 node_type bit(9) unaligned, 9 8 2 reserved bit(12) unaligned, 9 9 2 number fixed(14) unaligned, 9 10 2 element dimension(n refer(list.number)) ptr unaligned; 9 11 9 12 dcl max_list_elements fixed bin(17) internal static options (constant) 9 13 init(16383); 9 14 9 15 /* END INCLUDE FILE ... list.incl.pl1 */ 180 10 1 /* BEGIN INCLUDE FILE ... temporary.incl.pl1 */ 10 2 10 3 dcl 1 temporary based, 10 4 2 node_type bit(9), /* type is "000001010"b */ 10 5 2 size fixed bin(18), 10 6 2 next ptr, 10 7 2 location fixed bin(18), 10 8 2 ref_count fixed bin, 10 9 2 symbol ptr unal, 10 10 2 last_freed fixed bin(18); 10 11 10 12 /* END INCLUDE FILE ... temporary.incl.pl1 */ 181 11 1 dcl ( real_fix_bin_1 init(1), 11 2 real_fix_bin_2 init(2), 11 3 real_flt_bin_1 init(3), 11 4 real_flt_bin_2 init(4), 11 5 complex_fix_bin_1 init(5), 11 6 complex_fix_bin_2 init(6), 11 7 complex_flt_bin_1 init(7), 11 8 complex_flt_bin_2 init(8), 11 9 real_fix_dec init(9), 11 10 real_flt_dec init(10), 11ÔÔŸôÔÔŸ ÔÔžL32 less_than initial("001000100"b), /* opnd(1) <- opnd(2) < opnd(3) */ 13 33 greater_than initial("001000101"b), /* opnd(1) <- opnd(2) > opnd(3) */ 13 34 equal initial("001000110"b), /* opnd(1) <- opnd(2) = opnd(3) */ 13 35 not_equal initial("001000111"b), /* opnd(1) <- opnd(2) ^= opnd(3) */ 13 36 less_or_equal initial("001001000"b), /* opnd(1) <- opnd(2) <= opnd(3) */ 13 37 greater_or_equal initial("001001001"b), /* opnd(1) <- opnd(2) >= opnd(3) */ 13 38 13 39 jump initial("001010001"b), /* go to opnd(1) unconditionally */ 13 40 jump_true initial("001010010"b), /* go to opnd(1) if opnd(2) is not 0 */ 13 41 jump_false initial("001010011"b), /* go to opnd(1) if opnd(2) is all 0 */ 13 42 jump_if_lt initial("001010100"b), /* go to opnd(1) if opnd(2) < opnd(3) */ 13 43 jump_if_gt initial("001010101"b), /* go to opnd(1) if opnd(2) > opnd(3) */ 13 44 jump_if_eq initial("001010110"b), /* go to opnd(1) if opnd(2) = opnd(3) */ 13 45 jump_if_ne initial("001010111"b), /* go to opnd(1) if opnd(2) ^= opnd(3) */ 13 46 jump_if_le initial("001011000"b), /* go to opnd(1) if opnd(2) <= opnd(3) */ 13 47 jump_if_ge initial("001011001"b), /* go to opnd(1) if opnd(2) >= opnd(3) */ 13 48 13 49 std_arg_list initial("001100001"b), /* opnd(1) <- arglist(opnd(2) desclist(opnd(3))) */ 13 50 return_words initial("001100010"b), /* return aggregate opnd(1), opnd(2) is length in words */ 13 51 std_call initial("001100011"b), /* opnd(1) <- call opnd(2) with opnd(3) */ 13 52 return_bits initial("001100100"b), /* return aggregate opnd(1), opnd(2) is length in bits */ 13 53 std_entry initial("001100101"b), /* entry(opnd(1)... opnd(n)) */ 13 54 return_string initial("001100110"b), /* return string opnd(1) */ 13 55 ex_prologue initial("001100111"b), /* execute the prologue -no operands- */ 13 56 allot_auto initial("001101000"b), /* opnd(1) <- addrel(stack,opnd(2)) */ 13 57 param_ptr initial("001101001"b), /* opnd(1) <- ptr to opnd(2) in block opnd(3) */ 13 58 param_desc_ptr initial("001101010"b), /* opnd(1) <- ptr to opnd(2) in block opnd(3) */ 13 59 std_return initial("001101011"b), /* return -no arguments- */ 13 60 allot_ctl initial("001101100"b), /* allocate opnd(1) , length in words is opnd(2) */ 13 61 free_ctl initial("001101101"b), /* free opnd(1) */ 13 62 stop initial("001101110"b), /* stop - terminate run unit */ 13 63 13 64 mod_bit initial("001110000"b), /* opnd(1) <- mod(opnd(3),36), 13 65* opnd(2) <- opnd(3) / 36 */ 13 66 mod_byte initial("001110001"b), /* opnd(1) <- mod(opnd(3),4), 13 67* opnd(2) <- opnd(3) / 4 */ 13 68 mod_half initial("001110010"b), /* opnd(1) <- mod(opnd(3),2), 13 69* opnd(2) <- opnd(3) / 2 */ 13 70 mod_word initial("001110011"b), /* TO BE DEFINED BY BLW */ 13 71 13 72 bit_to_char initial("010000000"b), /* opnd(1) <- (opnd(2)+8)/9 */ 13 73 bit_to_word initial("010000001"b), /* opnd(1) <- (opnd(2)+35)/36 */ 13 74 char_to_word initial("010000010"b), /* opnd(1) <- (opnd(2)+3)/4 */ 13 75 half_to_word initial("010000011"b), /* opnd(1) <- (opnd(2)+1)/2 */ 13 76 word_to_mod2 initial("010000100"b), /* opnd(1) <- (opnd(2)+1)/2*2 */ 13 77 word_to_mod4 initial("010000101"b), /* opnd(1) <- (opnd(2)+3)/4*4 */ 13 78 word_to_mod8 initial("010000110"b), /* opnd(1) <- (opnd(2)+7)/8*8 */ 13 79 rel_fun initial("010000111"b), /* opnd(1) <- rel(opnd(2)) */ 13 80 baseno_fun initial("010001000"b), /* opnd(1) <- baseno(opnd(2)) */ 13 81 desc_size initial("010001001"b), /* opnd(1) <- substr(opnd(2),13,24) */ 13 82 bit_pointer initial("010001010"b), /* opnd(1) <- bit offset of opnd(2) */ 13 83 index_before_fun initial("010001011"b), /* opnd(1) <- length of before(opnd(2),opnd(3)) */ 13 84 index_after_fun initial("010001100"b), /* opnd(1) <- offset of after(opnd(2),opnd(3)) in opnd(2) */ 13 85 verify_ltrim_fun initial("010001101"b), /* opnd(1) <- offset of ltrim(opnd(2),opnd(3)) in opnd(2) */ 13 86 verify_rtrim_fun initial("010001110"b), /* opnd(1) <- length(opnd(2))-length(rtrim(opnd(2),opnd(3))) */ 13 87 digit_to_bit initial("010001111"b), /* opnd(1) <- 9*opnd(2)/2 */ 13 88 13 89 ceil_fun initial("010010000"b), /* opnd(1) <- ceil(opnd(2)) */ 13 90 floor_fun initial("010010001"b), /* opnd(1) <- floor(opnd(2)) */ 13 91 round_fun initial("010010010"b), /* opnd(1) <- round(opnd(2)) */ 13 92 sign_fun initial("010010011"b), /* opnd(1) <- sign(opnd(2)) */ 13 93 abs_fun initial("010010100"b), /* opnd(1) <- abs(opnd(2)) */ 13 94 trunc_fun initial("010010101"b), /* opnd(1) <- trunc(opnd(2)) */ 13 95 byte_fun initial("010010110"b), /* opnd(1) <- byte(opnd(2)) */ 13 96 rank_fun initial("010010111"b), /* opnd(1) <- rank(opnd(2)) */ 13 97 index_rev_fun initial("010011000"b), /* opnd(1) <- index(reverse(opnd(2)),reverse(opnd(3))) */ 13 98 search_rev_fun initial("010011001"b), /* opnd(1) <- search(reverse(opnd(2)),opnd(3)) */ 13 99 verify_rev_fun initial("010011010"b), /* opnd(1) <- verify(reverse(opnd(2)),opnd(3)) */ 13 100 wordno_fun initial("010011011"b), /* opnd(1) <- wordno (opnd(2)) */ 13 101 segno_fun initial("010011100"b), /* opnd(1) <- segno (opnd(2)) */ 13 102 bitno_fun initial("010011101"b), /* opnd(1) <- bitno (opnd(2)) */ 13 103 charno_fun initial("010011110"b), /* opnd(1) <- charno (opnd(2)) */ 13 104 13 105 index_fun initial("010100000"b), /* opnd(1) <- index(opnd(2),opnd(3)) */ 13 106 off_fun initial("010100001"b), /* opnd(1) <- offset(opnd(2),opnd(3)) */ 13 107 complex_fun initial("010100010"b), /* opnd(1) <- complex(opnd(2),opnd(3)) */ 13 108 conjg_fun initial("010100011"b), /* opnd(1) <- conjg(opnd(2),opnd(3)) */ 13 109 mod_fun initial("010100100"b), /* opnd(1) <- mod(opnd(2),opnd(3)) */ 13 110 repeat_fun initial("010100101"b), /* opnd(1) <- repeat(opnd(2),opnd(3)) */ 13 111 verify_fun initial("010100110"b), /* opnd(1) <- verify(opnd(2),opnd(3)) */ 13 112 translate_fun initial("010100111"b), /* opnd(1) <- translate(opnd(2),opnd(3))*/ 13 113 real_fun initial("010101001"b), /* opnd(1) <- real(opnd(2)) */ 13 114 imag_fun initial("010101010"b), /* opnd(1) <- imag(opnd(2)) */ 13 115 length_fun initial("010101011"b), /* opnd(1) <- length(opnd(2)) */ 13 116 pl1_mod_fun initial("010101100"b), /* opnd(1) <- mod(opnd(2)) */ 13 117 search_fun initial("010101101"b), /* opnd(1) <- search(opnd(2),opnd(3)) */ 13 118 allocation_fun initial("010101110"b), /* opnd(1) <- allocation(opnd(2)) */ 13 119 reverse_fun initial("010101111"b), /* opnd(1) <- reverse(opnd(2)) */ 13 120 13 121 addr_fun initial("010110000"b), /* opnd(1) <- addr(opnd(2)) */ 13 122 addr_fun_bits initial("010110001"b), /* opnd(1) <- addr(opnd(2)) */ 13 123 ptr_fun initial("010110010"b), /* opnd(1) <- ptr(opnd(2),opnd(3)) */ 13 124 baseptr_fun initial("010110011"b), /* opnd(1) <- baseptr(opnd(2)) */ 13 125 addrel_fun initial("010110100"b), /* opnd(1) <- addrel(opnd(2),opnd(3)) */ 13 126 codeptr_fun initial("010110101"b), /* opnd(1) <- codeptr(opnd(2)) */ 13 127 environmentptr_fun initial("010110110"b), /* opnd(1) <- environmentptr(opnd(2)) */ 13 128 stackbaseptr_fun initial("010110111"b), /* opnd(1) is ptr to base of current stack */ 13 129 stackframeptr_fun initial("010111000"b), /* opnd(1) is ptr to current block's stack frame */ 13 130 setcharno_fun initial("010111001"b), /* opnd(1) <- opnd(2) with charno opnd(3) */ 13 131 addcharno_fun initial("010111010"b), /* opnd(1) <- opnd(2) with charno = charno + opnd(3) */ 13 132 setbitno_fun initial("010111011"b), /* setcharno for bitsno */ 13 133 addbitno_fun initial("010111100"b), /* addcharno for bitno */ 13 134 13 135 min_fun initial("011000000"b), /* opnd(1) <- min(opnd(1),opnd(2),...) */ 13 136 max_fun initial("011000001"b), /* opnd(1) <- max(opnd(1),opnd(2),...) */ 13 137 13 138 stack_ptr initial("011010001"b), /* opnd(1) <- stack frame ptr */ 13 139 empty_area initial("011010010"b), /* empty opnd(1), length in words is opnd(2) */ 13 140 enable_on initial("011010100"b), /* opnd(1) is the cond name 13 141* opnd(2) is the file name 13 142* opnd(3) is the block */ 13 143 revert_on initial("011010101"b), /* opnd(1) is the cond name, 13 144* opnd(2) is the file name */ 13 145 signal_on initial("011010110"b), /* opnd(1) is the cond name 13 146* opnd(2) is the file name */ 13 147 13 148 lock_fun initial("011010111"b), /* opnd(1) <- stac(opnd(2),opnd(3)) */ 13 149 stacq_fun initial("011011000"b), /* opnd(1) is result, opnd(2) is ptr to lock word, 13 150* opnd(3) is old value, (4) is new value. */ 13 151 clock_fun initial("011011001"b), /* opnd(1) is the clock time */ 13 152 vclock_fun initial("011011010"b), /* opnd(1) is the virtual clock time */ 13 153 13 154 bound_ck initial("011100000"b), /* opnd(1) <- opnd(2) if opnd(3) <= opnd(2) <= opnd(4) */ 13 155 range_ck initial("011100001"b), /* opnd(1) <- opnd(2) if opnd(3) <= opnd(2) <= opnd(4) */ 13 156 loop initial("011100010"b), /* do opnd(1) for opnd(2) from opnd(3) to opnd(4) by 1, 13 157* opnd(5) is the list */ 13 158 join initial("011100011"b), /* do opnd(1), opnd(2) ... opnd(n) */ 13 159 allot_based initial("011100100"b), /* allocate opnd(2) words in opnd(3), set opnd(1) */ 13 160 free_based initial("011100101"b), /* free opnd(1) in opnd(3), length is opnd(2) words */ 13 161 13 162 r_parn initial("011110001"b), /* format op code */ 13 163 l_parn initial("011110010"b), 13 164 r_format initial("011110011"b), 13 165 c_format initial("011110100"b), 13 166 f_format initial("011110101"b), 13 167 e_format initial("011110110"b), 13 168 b_format initial("011110111"b), 13 169 a_format initial("011111000"b), 13 170 x_format initial("011111001"b), 13 171 skip_format initial("011111010"b), 13 172 column_format initial("011111011"b), 13 173 page_format initial("011111100"b), 13 174 line_format initial("011111101"b), 13 175 picture_format initial("011111110"b), 13 176 bn_format initial("011111111"b), /* bit format, length(opnd(2)), radix factor(opnd(3)) */ 13 177 13 178 get_list_trans initial("100000000"b), /* getlist(opnd(2) with desc(opnd(1))) */ 13 179 get_edit_trans initial("100000001"b), /* getedit(opnd(2) with desc(opnd(1))) */ 13 180 get_data_trans initial("100000010"b), /* getdata(opnd(1) to opnd(n)) */ 13 181 put_list_trans initial("100000011"b), /* putlist(opnd(2) with desc(opnd(1))) */ 13 182 put_edit_trans initial("100000100"b), /* putedit(opnd(2) with desc(opnd(1))) */ 13 183 put_data_trans initial("100000101"b), /* putdata(opnd(2)) with subscript-list opnd(1) */ 13 184 terminate_trans initial("100000110"b), /* terminate stream transmission */ 13 185 stream_prep initial("100000111"b), /* initiate stream transmission */ 13 186 record_io initial("100001000"b), /* perform record io operation */ 13 187 fortran_read initial("100001001"b), /* A complete read statement */ 13 188 fortran_write initial("100001010"b), /* A complete write statement */ 13 189 ftn_file_manip initial("100001011"b), /* endfile,backspace,rewind,etc. */ 13 190 ftn_trans_loop initial("100001100"b), /* An implied do in i/o list */ 13 191 put_control initial("100001101"b), /* put control opnd(1) opnd(2) times */ 13 192 put_field initial("100001110"b), /* putlist(opnd(2)) of length(opnd(1)) */ 13 193 put_field_chk initial("100001111"b), /* putlist(op(2)) of len(op(1)) check char index(op(3)) */ 13 194 13 195 /* These operators are produced by the parse but are not used as input to the code generator. */ 13 196 /* They are processed by the semantic translator. */ 13 197 13 198 return_value initial("100010010"b), /* return(opnd(1)) */ 13 199 allot_var initial("100010011"b), /* allot opnd(1) in opnd(2) */ 13 200 free_var initial("100010100"b), /* free opnd(1) out of opnd(2) */ 13 201 get_file initial("100010101"b), /* opnd(1) is filename,opnd(2) is copy */ 13 202 /* opnd(3) is skip, opnd(4) is list */ 13 203 get_string initial("100010110"b), /* opnd(1) is string,opnd(2) is list */ 13 204 put_file initial("100010111"b), /* opnd(1) is filename,opnd(2) is page */ 13 205 /* opnd(3) is skip,opnd(4) is line */ 13 206 put_string initial("100011000"b), /* opnd(1) is string,opnd(2) is list */ 13 207 open_file initial("100011001"b), 13 208 close_file initial("100011010"b), 13 209 read_file initial("100011011"b), 13 210 write_file initial("100011100"b), 13 211 locate_file initial("100011101"b), 13 212 do_fun initial("100011110"b), /* opnd(1) is join of a list */ 13 213 /* opnd(2) is control variable ref */ 13 214 /* opnd(3) is specification operator */ 13 215 do_spec initial("100011111"b), /* opnd(1) to opnd(2) by opnd(3) */ 13 216 /* repeat opnd(4) while opnd(5) */ 13 217 /* opnd(6) is next specification */ 13 218 13 219 rewrite_file initial("100100000"b), 13 220 delete_file initial("100100001"b), 13 221 unlock_file initial("100100010"b), 13 222 lock_file initial("100100011"b), 13 223 refer initial("100100101"b), /* opnd(1) refer(opnd(2)) */ 13 224 prefix_plus initial("100100110"b), /* opnd(1) <- +opnd(2) */ 13 225 nop initial("100100111"b), /* no-op */ 13 226 assign_by_name initial("100101000"b), /* opnd(1) <- opnd(2),by name */ 13 227 13 228 /* These operators are produced by the semantic translator in processing the math 13 229* builtin functions and are used as input to the code generator */ 13 230 13 231 sqrt_fun initial("100110000"b), /* opnd(1) <- sqrt(opnd(2)) */ 13 232 sin_fun initial("100110001"b), /* opnd(1) <- sin(opnd(2)) */ 13 233 sind_fun initial("100110010"b), /* opnd(1) <- sind(opnd(2)) */ 13 234 cos_fun initial("100110011"b), /* opnd(1) <- cos(opnd(2)) */ 13 235 cosd_fun initial("100110100"b), /* opnd(1) <- cosd(opnd(2)) */ 13 236 tan_fun initial("100110101"b), /* opnd(1) <- tan(opnd(2)) */ 13 237 tand_fun initial("100110110"b), /* opnd(1) <- tand(opnd(2)) */ 13 238 asin_fun initial("100110111"b), /* opnd(1) <- asin(opnd(2)) */ 13 239 asind_fun initial("100111000"b), /* opnd(1) <- asind(opnd(2)) */ 13 240 acos_fun initial("100111001"b), /* opnd(1) <- acos(opnd(2)) */ 13 241 acosd_fun initial("100111010"b), /* opnd(1) <- acosd(opnd(2)) */ 13 242 atan_fun initial("100111011"b), /* opnd(1) <- atan(opnd(2)[,opnd(3)]) */ 13 243 atand_fun initial("100111100"b), /* opnd(1) <- atand(opnd(2)[,opnd(3)]) */ 13 244 log2_fun initial("100111101"b), /* opnd(1) <- log2(opnd(2)) */ 13 245 log_fun initial("100111110"b), /* opnd(1) <- log(opnd(2)) */ 13 246 log10_fun initial("100111111"b), /* opnd(1) <- log10(opnd(2)) */ 13 247 13 248 exp_fun initial("101000000"b)) /* opnd(1) <- exp(opnd(2)) */ 13 249 13 250 bit(9) aligned internal static options(constant); 13 251 13 252 /* END INCLUDE FILE ... op_codes.incl.pl1 */ 184 14 1 /* BEGIN INCLUDE FILE ... cgsystem.incl.pl1 */ 14 2 14 3 /* Modified: 25 Apr 1979 by PCK to implement 4-bit decimal */ 14 4 14 5 dcl ( bits_per_char init(9), 14 6 bits_per_half init(18), 14 7 bits_per_word init(36), 14 8 bits_per_two_words init(72), 14 9 bits_per_four_words init(144), 14 10 bits_per_words(2) init(36,72), 14 11 packed_digits_per_char init(2), 14 12 chars_per_word init(4), 14 13 packed_digits_per_word init(8), 14 14 14 15 break_even_bits init(216), 14 16 break_even_words init(6), 14 17 14 18 label_size init(4), 14 19 14 20 convert_size(13:14) init(9,1), 14 21 max_offset(13:14) init(27,35), 14 22 max_short_size(13:14) init(8,72), 14 23 14 24 units_per_word(0:5) init(1,36,8,4,2,1), 14 25 14 26 max_dec_scale init(32), 14 27 min_dec_scale init(-31), 14 28 max_p_xreg init(18), 14 29 max_p_fix_bin_1 init(35), 14 30 max_p_flt_bin_1 init(27), 14 31 max_p_fix_dec init(59), 14 32 max_length_p init(24), 14 33 default_fix_bin_p init(17)) fixed bin(8) int static options(constant); 14 34 14 35 dcl (convert_offset(0:5) init(36,1,4.5,9,18,36), 14 36 bits_per_packed_digit init(4.5)) fixed bin(8,1) int static options(constant); 14 37 14 38 dcl max_index_register_value init(262143) fixed bin(31) int static options(constant); 14 39 14 40 /* END INCLUDE FILE ... cgsystem.incl.pl1 */ 14 41 185 15 1 /* BEGIN INCLUDE FILE ... boundary.incl.pl1 */ 15 2 15 3 /* Modified: 26 Apr 1979 by PCK to implement 4-bit decimal */ 15 4 15 5 dcl ( bit_ init(1), 15 6 digit_ init(2), 15 7 character_ init(3), 15 8 half_ init(4), 15 9 word_ init(5), 15 10 mod2_ init(6), 15 11 mod4_ init(7)) fixed bin(3) int static options(constant); 15 12 15 13 /* END INCLUDE FILE ... boundary.incl.pl1 */ 186 16 1 /* BEGIN INCLUDE FILE ... declare_type.incl.pl1 */ 16 2 16 3 /* Modified: 25 Apr 1979 by PCK to implement 4-bit decimal */ 16 4 16 5 dcl ( by_declare initial("001"b), 16 6 by_explicit_context initial("010"b), 16 7 by_context initial("011"b), 16 8 by_implication initial("100"b), 16 9 by_compiler initial("101"b)) int static bit(3) aligned options(constant); 16 10 16 11 /* END INCLUDE FILE ... declare_type.incl.pl1 */ 187 17 1 dcl 1 label based aligned, 17 2 2 node_type bit(9) unaligned, 17 3 2 source_id structure unaligned, 17 4 3 file_number bit(8), 17 5 3 line_number bit(14), 17 6 3 statement_number bit(5), 17 7 2 location fixed(17) unaligned, 17 8 2 allocated bit(1) unaligned, 17 9 2 dcl_type bit(3) unaligned, 17 10 2 reserved bit(29) unaligned, 17 11 2 array bit(1) unaligned, 17 12 2 used_as_format bit(1) unaligned, 17 13 2 used_in_goto bit(1) unaligned, 17 14 2 symbol_table bit(18) unaligned, 17 15 2 low_bound fixed(17) unaligned, 17 16 2 high_bound fixed(17) unaligned, 17 17 2 block_node ptr unaligned, 17 18 2 token ptr unaligned, 17 19 2 next ptr unaligned, 17 20 2 multi_use ptr unaligned, 17 21 2 cross_reference ptr unaligned, 17 22 2 statement ptr unaligned; 188 18 1 /* BEGIN INCLUDE FILE ... mask.incl.pl1 */ 18 2 18 3 dcl ( structure_mask init("100000000000000000000000000000000000"b), 18 4 fixed_mask init("010000000000000000000000000000000000"b), 18 5 float_mask init("001000000000000000000000000000000000"b), 18 6 bit_mask init("000100000000000000000000000000000000"b), 18 7 char_mask init("000010000000000000000000000000000000"b), 18 8 ptr_mask init("000001000000000000000000000000000000"b), 18 9 offset_mask init("000000100000000000000000000000000000"b), 18 10 area_mask init("000000010000000000000000000000000000"b), 18 11 label_mask init("000000001000000000000000000000000000"b), 18 12 entry_mask init("000000000100000000000000000000000000"b), 18 13 file_mask init("000000000010000000000000000000000000"b), 18 14 arg_descriptor_mask init("000000000001000000000000000000000000"b), 18 15 storage_block_mask init("000000000000100000000000000000000000"b), 18 16 lock_mask init("000000000000010000000000000000000000"b), 18 17 condition_mask init("000000000000001000000000000000000000"b), 18 18 format_mask init("000000000000000100000000000000000000"b), 18 19 builtin_mask init("000000000000000010000000000000000000"b), 18 20 generic_mask init("000000000000000001000000000000000000"b), 18 21 picture_mask init("000000000000000000100000000000000000"b), 18 22 dimensioned_mask init("000000000000000000010000000000000000"b), 18 23 initialed_mask init("000000000000000000001000000000000000"b), 18 24 aligned_mask init("000000000000000000000100000000000000"b), 18 25 unaligned_mask init("000000000000000000000010000000000000"b), 18 26 signed_mask init("000000000000000000000001000000000000"b), 18 27 unsigned_mask init("000000000000000000000000100000000000"b), 18 28 precision_mask init("000000000000000000000000010000000000"b), 18 29 varying_mask init("000000000000000000000000001000000000"b), 18 30 local_mask init("000000000000000000000000000100000000"b), 18 31 decimal_mask init("000000000000000000000000000010000000"b), 18 32 binary_mask init("000000000000000000000000000001000000"b), 18 33 real_mask init("000000000000000000000000000000100000"b), 18 34 complex_mask init("000000000000000000000000000000010000"b), 18 35 variable_mask init("000000000000000000000000000000001000"b), 18 36 reducible_mask init("000000000000000000000000000000000100"b), 18 37 irreducible_mask init("000000000000000000000000000000000010"b), 18 38 returns_mask init("000000000000000000000000000000000001"b)) bit(36) aligned int static 18 39 options(constant); 18 40 18 41 dcl ( arithmetic_mask init("011000000000000000000000000011110000"b), 18 42 computational_mask init("011110000000000000100000000011110000"b), 18 43 fixed_binary_real_mask init("010000000000000000000000000001100000"b), 18 44 fixed_decimal_real_mask init("010000000000000000000000000010100000"b), 18 45 float_decimal_real_mask init("001000000000000000000000000010100000"b), 18 46 fixed_decimal_complex_mask init("010000000000000000000000000010010000"b), 18 47 float_decimal_complex_mask init("001000000000000000000000000010010000"b), 18 48 string_mask init("000110000000000000000000000000000000"b), 18 49 undesirable_mask init("111111111111111111100111110111110111"b), 18 50 convert_mask init("011111111111111111100111110111111110"b), 18 51 declare_constant_mask init("111111111111111111100000000011110000"b) 18 52 ) bit(36) aligned int static 18 53 options(constant); 18 54 18 55 /* END INCLUDE FILE ... mask.incl.pl1 */ 189 190 191 convert_arithmetic: entry(left,right,check_size,always_round); 192 193 p1, arg(1) = left; 194 p2, arg(2) = right; 195 right = null; 196 197 call state_man$flush_ref(p1); 198 199 /* Initialize by filling in arrays */ 200 201 do i = 1 to 2; 202 sym(i) = arg(i) -> reference.symbol; 203 type(i) = arg(i) -> reference.data_type; 204 prec(i) = sym(i) -> symbol.c_dcl_size; 205 scale(i) = sym(i) -> symbol.scale; 206 end; 207 208 if p1 -> reference.temp_ref then p1 -> reference.value_in.storage = "1"b; 209 210 /* See if we can generate inline sequence */ 211 212 if ^ check_size 213 then do; 214 if type(1) <= real_fix_bin_2 215 then if scale(1) = 0 216 then if p1 -> reference.aligned_for_store_ref 217 then if abs(scale(2)) <= 31 218 then if type(2) = real_fix_dec | type(2) = real_flt_dec 219 then do; 220 if type(2) = real_flt_dec | scale(2) ^= 0 221 then do; 222 q = get_temp(11*type(1)); 223 call expmac$two_eis((move_numeric),q,p2); 224 end; 225 else q = p2; 226 call expmac$two_eis((dtb(type(1))),p1,q); 227 return; 228 end; 229 230 if type(2) <= real_fix_bin_2 231 then if scale(2) = 0 232 then if abs(scale(1)) <= 31 233 then do; 234 235 if type(1) = real_fix_dec 236 then if scale(1) = 0 237 then do; 238 q = p1; 239 call issue_btd; 240 return; 241 end; 242 else do; 243 q = get_temp(11*type(2)); 244 call issue_btd; 245 macro = move_numeric; 246 if always_round 247 then macro = macro + 1; 248 call expmac$two_eis(macro,p1,q); 249 return; 250 end; 251 252 if type(1) = real_flt_dec 253 then do; 254 255 /* float decimal -- we pretend that it is fixed decimal, and then 256* we append an exponent */ 257 258 q = p1; 259 length_hold = p1 -> reference.c_length; 260 261 if sym(1) -> symbol.unaligned 262 then p1 -> reference.c_length = length_hold - 2; 263 else p1 -> reference.c_length = length_hold - 1; 264 265 p1 -> reference.data_type = real_fix_dec; 266 if ^ p1 -> reference.shared 267 then p1 -> reference.ref_count = p1 -> reference.ref_count + 1; 268 call issue_btd; 269 p1 -> reference.c_length = length_hold; 270 p1 -> reference.data_type = real_flt_dec; 271 272 q = get_reference(); 273 q -> reference.symbol = sym(1); 274 q -> reference.qualifier = p1; 275 q -> reference.c_offset = prec(1) + 1; 276 q -> reference.data_type = char_string; 277 q -> reference.defined_ref = "1"b; 278 279 if sym(1) -> symbol.unaligned 280 then do; 281 q -> reference.units = digit_; 282 q -> reference.c_length = 2; 283 macro = zero_4bcs; 284 end; 285 else do; 286 q -> reference.units = character_; 287 q -> reference.c_length = 1; 288 macro = zero_cs; 289 end; 290 291 call expmac$one_eis(macro,q); 292 293 return; 294 end; 295 296 if type(1) = char_string 297 then do; 298 299 /* We must first convert to fixed decimal and then to character string */ 300 301 prec(2) = fixed(ceil(float(prec(2),23)/3.32) + 1,17); 302 q = get_temp(prec(2)); 303 call issue_btd; 304 type(2) = real_fix_dec; 305 arg(2), p2 = q; 306 sym(2) = q -> reference.symbol; 307 end; 308 end; 309 310 if type(1) = char_string 311 then if type(2) = real_fix_dec 312 then if prec(2) >= scale(2) 313 then if scale(2) >= 0 314 then do; 315 iscan = 4; 316 317 if scale(2) = 0 318 then do; 319 320 /* decimal integer -- (lte 3),(blank),(insm 2),(mfls p-1),(enf),(mvc 1) */ 321 322 edit_seq.header = integer_header; 323 if prec(2) > 1 324 then call fill_seq((mfls),prec(2) - 1); 325 string(micro_op(iscan)) = enf; 326 string(micro_op(iscan+1)) = mvc_1; 327 nchars = iscan + 1; 328 end; 329 330 else do; 331 332 /* scaled decimal -- (lte 3),(blank),(insm 1),(mfls p-q-1),(enf), 333* (mvc 1),(insb 7),(mvc q) */ 334 335 edit_seq.header = scaled_header; 336 i = prec(2) - scale(2) - 1; 337 if i > 0 338 then call fill_seq((mfls),i); 339 string(micro_op(iscan)) = enf; 340 if i < 0 341 then string(micro_op(iscan+1)) = insb_8; 342 else string(micro_op(iscan+1)) = mvc_1; 343 string(micro_op(iscan+2)) = insb_7; 344 iscan = iscan + 3; 345 call fill_seq((mvc),scale(2)); 346 nchars = iscan - 1; 347 end; 348 349 tprec = prec(2) + 3; 350 351 varying_target = p1 -> reference.varying_ref & prec(1) >= tprec; 352 if varying_target 353 then do; 354 call assign_op$length_of_varying(p1,generate_constant$real_fix_bin_1(tprec)); 355 p1 -> reference.c_length = tprec; 356 end; 357 else if prec(1) ^= tprec 358 then right, arg(1) = get_str_temp(tprec); 359 else call pad_ref(p1); 360 361 call issue_mvne; 362 363 if varying_target then p1 -> reference.c_length = prec(1); 364 365 return; 366 end; 367 end; 368 369 /* We cannot generate an inline sequence, so we generate an operator call */ 370 371 if arg(1) -> reference.temp_ref 372 then arg(1) -> reference.ref_count = arg(1) -> reference.ref_count + 1; 373 374 if sym(1) -> symbol.packed 375 & (sym(1) -> symbol.bit | sym(1) -> symbol.char) 376 then call pad_ref(p1); 377 378 379 do i = 2 to 1 by -1; 380 381 /* Protect length exprs + string temps from being prematurely released */ 382 383 if ^ arg(i) -> reference.shared 384 then do; 385 n = arg(i) -> reference.ref_count; 386 check = n = 1; 387 arg(i) -> reference.ref_count = n + 1; 388 end; 389 else check = "0"b; 390 391 /* load and lock pointer register with address of the operand */ 392 393 call base_man$load_var_and_lock(2,arg(i),i + 2); 394 395 /* free unnecessary temps */ 396 397 if check then call need_temp(arg(i),"11"b); 398 399 /* load a or q with length or scale and precision of operand */ 400 401 if type(i) < char_string 402 then do; 403 word = prec(i); 404 if scale(i) ^= 0 405 then word = word + 262144*scale(i); 406 q = generate_constant$real_fix_bin_1(word); 407 call aq_man$load_var(q,i); 408 end; 409 else call load_size$a_or_q(arg(i),i); 410 411 if i = 2 412 then call aq_man$lock(null,2); 413 414 /* load type into an index register */ 415 416 dtype (i) = pl1_descriptor_type (gen_attr (sym (i), arg (i)), sym (i) -> symbol.c_dcl_size); 417 418 word = 2 * dtype(i) + fixed(sym(i) -> symbol.packed,1); 419 420 call xr_man$load_const(word,i+5); 421 if i = 2 422 then call xr_man$super_lock(7); 423 424 end; 425 426 427 /* get a pointer to a work_space 428* 28 words for 9-bit decimal operands 429* 44 words for 4-bit decimal operands 430* 156 words for strings */ 431 432 if max(type(1),type(2)) < char_string 433 then if sym(1) -> symbol.unaligned & sym(1) -> symbol.decimal 434 | sym(2) -> symbol.unaligned & sym(2) -> symbol.decimal 435 then n = medium_work_space; 436 else n = short_work_space; 437 else n = long_work_space; 438 q = c_a(n,12); 439 q -> reference.ref_count = 2; 440 call base_man$load_var(2,q,5); 441 442 /* Unlock the registers */ 443 444 call state_man$unlock; 445 446 /* Decide which macro to use */ 447 448 i = 2; 449 if n = short_work_space 450 then if sym(1) -> symbol.real 451 then if sym(2) -> symbol.real 452 then i = 0; 453 454 macro = conv_mac + i; 455 456 if always_round 457 then macro = macro + 1; 458 else if sym(1) -> symbol.float 459 then macro = macro + 1; 460 else if sym(1) -> symbol.char 461 then if sym(2) -> symbol.float 462 then macro = macro + 1; 463 464 /* Flush machine state and issue the macro */ 465 466 call state_man$flush; 467 468 call expmac$zero(macro); 469 470 471 /* Lower reference counts originally raised and return */ 472 473 do i = 1 to 2; 474 if ^ arg(i) -> reference.shared then call adjust_ref_count(arg(i),-1); 475 end; 476 477 call adjust_ref_count(q,-1); 478 return; 479 480 481 /* Compiles pack or unpack operator */ 482 483 picture_op: entry(node_pt); 484 485 p = node_pt; 486 487 p1 = p -> operand(1); 488 489 call state_man$flush_ref(p1); 490 491 if p1 -> reference.temp_ref then p1 -> reference.value_in.storage = "1"b; 492 493 p2 = p -> operand(2); 494 495 if p2 -> node.type = operator_node 496 then p2 = p2 -> operand(1); 497 498 /* get picture constant */ 499 500 iop = fixed(p -> operator.op_code = unpack,1) + 1; 501 arg(1) = p1; 502 arg(2) = p2; 503 q = arg(iop) -> reference.symbol -> symbol.general; 504 if q -> reference.data_type = 0 505 then q = prepare_operand(q,1,atomic); 506 507 /* Try to process inline. If we cannot, then generate operator call */ 508 509 if ^ inline_picture() 510 then do; 511 if p1 -> reference.temp_ref 512 then p1 -> reference.ref_count = p1 -> reference.ref_count + 1; 513 arg(2) = q; 514 arg(3) = p2; 515 516 adjust = "0"b; 517 do i = 1 to 3; 518 if arg(i) -> reference.temp_ref & ^ arg(i) -> reference.aggregate 519 then do; 520 arg(i) -> reference.ref_count = arg(i) -> reference.ref_count + 1; 521 substr(adjust,i,1) = "1"b; 522 end; 523 call base_man$load_var_and_lock(2,arg(i),i + 2); 524 end; 525 526 call state_man$unlock; 527 call state_man$flush; 528 529 call expmac$zero((pic_mac(iop))); 530 531 532 if adjust 533 then do i = 1 to 3; 534 if substr(adjust,i,1) 535 then call adjust_ref_count(arg(i),-1); 536 end; 537 end; 538 539 return; 540 541 542 /* ************************************************* 543* 544*gen_procedure_call: entry(node_pt,ref,code); 545* 546* k = code; 547* 548* lp = node_pt; 549* n_args = 2 * lp -> operator.number; 550* 551* if ref(1) -> reference.temp_ref 552* then do; 553* q = ref(1) -> reference.length; 554* if q ^= null 555* then do; 556* call long_op$extend_stack(ref(1),alloc_char_temp - char_string + ref(1) -> reference.data_type); 557* ref(1) -> reference.ref_count = ref(1) -> reference.ref_count + 1; 558* call store$save_string_temp(ref(1)); 559* increment = "1"b; 560* end; 561* else if ref(1) -> reference.shared 562* then ref(1) = copy_temp(ref(1)); 563* 564* end; 565* 566* do i = 1 to lp -> operator.number; 567* j = 2 * i - 1; 568* arg(j) = ref(i); 569* arg(j+1) = get_desc(arg(j)); 570* end; 571* 572* comparison = "0"b; 573* lp = ref(1); 574* goto l2; 575* 576* ************************************************* */ 577 578 gen_arithmetic_call: entry(node_pt,ref,atom); 579 580 dcl node_pt ptr, /* points at operator node */ 581 ref(3) ptr, /* ref nodes for operands */ 582 atom(3) bit(1) aligned; /* "1"b if operand(i) atomic */ 583 584 s = ref(2) -> reference.symbol; 585 if s -> symbol.decimal 586 then do; 587 k1 = complex_decimal_op; 588 k2 = decimal_op; 589 end; 590 else k1, k2 = complex_binary_op; 591 592 c, comparison = "0"b; 593 lp = node_pt; 594 595 call prepare_operands; 596 597 arg(2) = ref(1); 598 if arg(2) ^= null 599 then do; 600 c = ref(1) -> reference.symbol -> symbol.complex; 601 arg(3) = get_desc(arg(2)); 602 end; 603 else do; 604 comparison = "1"b; 605 arg(2), arg(3) = cg_stat$double_temp; 606 end; 607 608 if comparison then j = 0; else j = fixed(substr(lp -> operator.op_code,6,4),4); 609 arg(1) = generate_constant$real_fix_bin_1(j); 610 611 arg(4) = ref(2); 612 arg(5) = get_desc(arg(4)); 613 614 if lp -> operator.op_code = negate then n_args = 5; 615 else do; 616 n_args = 7; 617 arg(6) = ref(3); 618 arg(7) = get_desc(arg(6)); 619 c = c | arg(6) -> reference.symbol -> symbol.complex; 620 end; 621 622 if c | s -> symbol.complex then k = k1; else k = k2; 623 624 lp = ref(1); 625 goto l2; 626 627 gen_arithmetic_builtin: entry(node_pt,ref,atom,code); 628 629 dcl code fixed bin; 630 631 lp = node_pt; 632 s = ref(1) -> reference.symbol; 633 if s -> symbol.decimal | ref(2) -> reference.symbol -> symbol.decimal 634 then do; 635 if lp -> operator.number > 3 then k = multi_decimal_op; 636 else if ref(2) -> reference.symbol -> symbol.complex 637 | ref(1) -> reference.symbol -> symbol.complex 638 then k = complex_decimal_op; 639 else k = decimal_op; 640 end; 641 else k = complex_binary_op; 642 643 call prepare_operands; 644 645 arg(1) = generate_constant$real_fix_bin_1(code); 646 647 n_args = 2 * lp -> operator.number + 1; 648 649 do i = 1 to lp -> operator.number-1; 650 j = 2 * i; 651 arg(j) = ref(i); 652 arg(j+1) = get_desc(arg(j)); 653 end; 654 655 j = 2 * i; 656 if lp -> operator.op_code = round_fun then arg(j), arg(j+1) = ref(i); 657 else do; 658 arg(j) = ref(i); 659 arg(j+1) = get_desc(arg(j)); 660 end; 661 662 lp = ref(1); 663 comparison = "0"b; 664 665 l2: if lp ^= null 666 then if lp -> reference.temp_ref 667 then lp -> reference.value_in.storage = "1"b; 668 669 arg_pt = c_a(2*(n_args+1),12); /* get space for arglist in stack */ 670 671 if increment then arg_pt -> reference.ref_count = arg_pt -> reference.ref_count + 1; 672 673 last_freed = arg_pt -> reference.qualifier -> temporary.last_freed; 674 675 arg_pos = arg_pt -> reference.qualifier -> temporary.location; 676 ap = c_a(0,4); /* address sp|0 */ 677 678 if arg_pos + 2*n_args + 1 >= 16384 679 then do; 680 call xr_man$load_const(arg_pos,1); /* xr1 is safe because it's not in pool */ 681 ap -> reference.address.tag = "001001"b; 682 arg_pos = 0; 683 string(arg_pt -> reference.address) = string(ap -> reference.address); 684 arg_pt -> reference.perm_address = "1"b; 685 end; 686 687 /* put ptrs to arguments into arg list. If arg is a temporary, we will 688* adjust the reference count up by 1 so that the temporary remains allocated 689* until we return from the call. If we did not do this and some of the 690* registers had to be saved in storage, one of the arguments might get altered */ 691 692 adjust = "0"b; 693 do i = 1 to n_args; 694 p = arg(i); 695 if p = null then goto l3; 696 697 if p -> reference.temp_ref 698 then do; 699 p -> reference.ref_count = p -> reference.ref_count + 1; 700 substr(adjust,i,1) = "1"b; 701 end; 702 703 ap -> address.offset = bit(fixed(arg_pos + 2*i,15),15); 704 call store_bit_address(ap,p,last_freed); 705 706 do j = i + 1 to n_args; 707 if p = arg(j) 708 then do; 709 ap -> address.offset = bit(fixed(arg_pos + 2*j,15),15); 710 call store_bit_address(ap,p,last_freed); 711 arg(j) = null; 712 end; 713 end; 714 715 l3: end; 716 717 buff(1) = arg_pt; 718 buff(2) = c_a(n_args*2048,2); 719 buff(3) = reserve$declare_lib(k); 720 721 ap = buff(3) -> reference.symbol; 722 if ^ ap -> symbol.allocated 723 then do; 724 ap -> symbol.location = compile_link(ap -> symbol.token -> token.string,"0"b,0); 725 ap -> symbol.allocated = "1"b; 726 727 q = create_list(2); 728 q -> element(2) = ap; 729 q -> element(1) = cg_stat$ext_proc_list; 730 cg_stat$ext_proc_list = q; 731 end; 732 733 call expmac$many((prepare_call),addr(buff),2); 734 call base_man$load_var(2,buff(3),1); 735 call state_man$flush; 736 call expmac$zero((call_ext_out)); 737 738 739 if comparison then call expmac((ldfx1),cg_stat$double_temp); 740 741 if adjust = "0"b then return; 742 743 do i = 1 to n_args; 744 if substr(adjust,i,1) 745 then do; 746 p = arg(i); 747 call adjust_ref_count(p,-1); 748 end; 749 end; 750 751 return; 752 753 754 755 inline_picture: proc() returns(bit(1) aligned); 756 757 758 /* Attempts to generate inline sequence for picture operations */ 759 760 dcl (lab,pp) ptr; 761 dcl (picture_pos,type,prec,scale,scalefactor,picture_length,nrands,source_length) fixed bin; 762 dcl (pc,sc,drift,zero_sup_char) char(1) aligned; 763 dcl table_entries char(8) init(" *+-$,.0") int static; 764 dcl (current_micro_op,micro_op_code) bit(5) aligned; 765 dcl micro_inst bit(9) aligned; 766 767 dcl zero_suppression bit(1) aligned; /* "1"b -- machine is doing zero suppression (ES is OFF) */ 768 dcl have_drift bit(1) aligned; /* "1"b -- a drifting field has been encountered */ 769 dcl have_suppression bit(1) aligned; /* "1"b -- suppression characters or a drifting field have been encountered */ 770 dcl insertion_on_zero bit(1) aligned; /* "1"b -- characters have been inserted which should be blanked 771* if the number is 0 */ 772 dcl test_zero bit(1) aligned; /* zero_suppression & insertion_on_zero */ 773 19 1 /* BEGIN INCLUDE FILE ... picture_image.incl.pl1 19 2* 19 3* James R. Davis 12 Mar 79 19 4**/ 19 5 19 6 dcl 1 picture_image aligned based, 19 7 2 type fixed bin (8) unal, 19 8 2 prec fixed bin (8) unal, /* precision or length of associated value */ 19 9 2 scale fixed bin (8) unal, /* for both fixed and float pictures, 19 10* =ndigits after "v" - scale_factor */ 19 11 2 piclength fixed bin (8) unal, /* length of picture_constant.chars, <64 19 12* =length of normalized-picture-string */ 19 13 2 varlength fixed bin (8) unal, /* length of pictured variable in chars, <64 19 14* =length of normalized_picture_string - "k" and "v" */ 19 15 2 scalefactor fixed bin (8) unal, /* value of pict-sc-f, -256<=x<256 */ 19 16 2 explength fixed bin (8) unal, /* length of exp field for float */ 19 17 2 drift_character char (1) unal, 19 18 2 chars char (0 refer (picture_image.piclength)) aligned; 19 19 19 20 dcl ( 19 21 picture_char_type init (24), 19 22 picture_realfix_type init (25), 19 23 picture_complexfix_type 19 24 init (26), 19 25 picture_realflo_type init (27), 19 26 picture_complexflo_type 19 27 init (28) 19 28 ) fixed bin (8) unal static internal options (constant); 19 29 19 30 /* END INCLUDE FILE ... picture_image.incl.pl1 */ 774 20 1 dcl ( char_picture init(24), 20 2 real_fixed_picture init(25), 20 3 cplx_fixed_picture init(26), 20 4 real_float_picture init(27), 20 5 cplx_float_picture init(28)) fixed bin int static options(constant); 775 776 777 if iop = 2 778 then return("0"b); /* unpack or encode */ 779 else do; 780 781 /* pack or edit */ 782 783 call open_picture; 784 785 if type = char_picture 786 then if verify(substr(pp -> picture_image.chars,1,picture_length),"x") = 0 787 then do; 788 call pad_ref(p1); 789 call expmac$two_eis((move_chars),p1,p2); 790 return("1"b); 791 end; 792 else return("0"b); 793 794 if type > real_fixed_picture then return("0"b); 795 796 if abs(scale) > 31 then return("0"b); 797 798 /* We have a picture worth trying , so we go through a loop looking at 799* each picture character */ 800 801 have_drift, have_suppression, insertion_on_zero, current_micro_op = "0"b; 802 zero_suppression = "1"b; 803 drift, zero_sup_char = " "; 804 iscan = 1; 805 806 807 do picture_pos = 1 to picture_length; 808 pc = substr(pp -> picture_image.chars,picture_pos,1); 809 go to case(index("9y*z$s+-cd/.,bv",pc)); 810 811 /* 9 */ 812 813 case(1): call force_significance; 814 call put((mvc)); 815 go to step; 816 817 /* y */ 818 819 case(2): if have_drift 820 then if zero_suppression 821 then return("0"b); 822 823 if picture_pos > 1 824 then call issue((ses_off)); 825 call put((mvzb)); 826 if substr(pp -> picture_image.chars,picture_pos + 1,1) ^= "y" 827 then call issue((ses_on)); 828 zero_suppression = "0"b; 829 go to step; 830 831 /* * */ 832 833 case(3): zero_sup_char = "*"; 834 insertion_on_zero = "1"b; 835 call start_suppression; 836 call put((mvza)); 837 go to step; 838 839 /* z */ 840 841 case(4): zero_sup_char = " "; 842 call start_suppression; 843 call put((mvzb)); 844 go to step; 845 846 /* $ */ 847 848 case(5): if pp -> picture_image.drift_character ^= "$" 849 then call non_drifting; 850 851 else do; 852 if ^ have_drift 853 then do; 854 drift = "$"; 855 insertion_on_zero, 856 have_drift = "1"b; 857 call start_suppression; 858 end; 859 else call put((mflc)); 860 end; 861 862 go to step; 863 864 /* s */ 865 866 case(6): if pp -> picture_image.drift_character ^= "s" 867 then call non_drifting; 868 else call drifting_sign; 869 870 /* + */ 871 872 case(7): if pp -> picture_image.drift_character ^= "+" 873 then do; 874 call issue((insp_3)); 875 insertion_on_zero = "1"b; 876 go to step; 877 end; 878 879 call drifting_sign; 880 881 /* - */ 882 883 case(8): if pp -> picture_image.drift_character ^= "-" 884 then do; 885 call issue((insn_4)); 886 go to step; 887 end; 888 889 call drifting_sign; 890 891 /* c */ 892 893 case(9): call issue_4((insn_cr)); 894 picture_pos = picture_pos + 1; 895 go to step; 896 897 /* d */ 898 899 case(10): call issue_4((insn_db)); 900 picture_pos = picture_pos + 1; 901 go to step; 902 903 /* / . , */ 904 905 case(11): 906 case(12): 907 case(13): 908 insertion_on_zero = "1"b; 909 call insert_pun; 910 911 ÔÔxÔÔœ¤ 1055 go to step; 1056 1057 end; 1058 1059 1060 1061 insert_pun: proc; 1062 1063 if zero_suppression 1064 then if ^ have_suppression 1065 then do; 1066 call issue((ses_on)); 1067 zero_suppression = "0"b; 1068 end; 1069 1070 if zero_sup_char = "*" 1071 then micro_inst = insa_0; 1072 else micro_inst = insb_0; 1073 1074 if pc = "/" 1075 then do; 1076 call issue(micro_inst); 1077 call issue(unspec(pc)); 1078 end; 1079 1080 else do; 1081 substr(micro_inst,6,4) = bit(fixed(index(table_entries,pc),4),4); 1082 call issue(micro_inst); 1083 end; 1084 1085 go to step; 1086 1087 end; 1088 1089 1090 1091 put: proc(micro_op_code); 1092 1093 dcl micro_op_code bit(5) aligned; 1094 1095 if micro_op_code ^= current_micro_op 1096 then call force; 1097 1098 current_micro_op = micro_op_code; 1099 nrands = nrands + 1; 1100 1101 end; 1102 1103 1104 1105 force: proc; 1106 1107 if current_micro_op 1108 then call fill_seq((current_micro_op),nrands); 1109 1110 current_micro_op = "0"b; 1111 nrands = 0; 1112 1113 end; 1114 1115 1116 1117 issue: proc(micro_inst); 1118 1119 dcl micro_inst bit(9) aligned; 1120 1121 call force; 1122 1123 string(micro_op(iscan)) = micro_inst; 1124 iscan = iscan + 1; 1125 1126 end; 1127 1128 1129 1130 issue_4: proc(bit36); 1131 1132 dcl bit36 bit(36) aligned; 1133 dcl (i,n) fixed bin; 1134 dcl p ptr; 1135 1136 n = 4; 1137 p = addr(bit36); 1138 go to join; 1139 1140 issue_2: entry(bit18); 1141 1142 dcl bit18 bit(18) aligned; 1143 1144 dcl 1 array_st based aligned, 1145 2 micro_array(4) bit(9) unal; 1146 1147 n = 2; 1148 p = addr(bit18); 1149 1150 join: call force; 1151 1152 do i = 1 to n; 1153 string(micro_op(iscan)) = p -> micro_array(i); 1154 iscan = iscan + 1; 1155 end; 1156 1157 end; 1158 1159 1160 1161 open_picture: proc; 1162 1163 pp = q -> reference.symbol -> symbol.initial; 1164 1165 type = pp -> picture_image.type; 1166 prec = pp -> picture_image.prec; 1167 scale = pp -> picture_image.scale; 1168 picture_length = pp -> picture_image.piclength; 1169 source_length = pp -> picture_image.varlength; 1170 scalefactor = pp -> picture_image.scalefactor; 1171 1172 end; 1173 1174 1175 end; 1176 1177 1178 1179 prepare_operands: proc; 1180 1181 dcl i fixed bin; 1182 1183 do i = 2 to lp -> operator.number; 1184 if ^ atom(i) then ref(i) = compile_exp$save_exp((lp -> operand(i))); 1185 end; 1186 1187 if ref(1) = null then return; 1188 1189 if ^ ref(1) -> reference.allocate 1190 then do; 1191 lp -> operand(1), ref(1) = copy_temp(ref(1)); 1192 ref(1) -> reference.ref_count = 2; 1193 end; 1194 else if ^ cg_stat$save_exp_called 1195 then if ref(1) -> reference.temp_ref 1196 then ref(1) -> reference.ref_count = ref(1) -> reference.ref_count + 1; 1197 1198 end; 1199 1200 get_temp: proc(prec) returns(ptr); 1201 1202 dcl (length,type,prec) fixed bin; 1203 dcl p ptr; 1204 dcl long bit(1) aligned; 1205 1206 /* Entry point to get a fixed decimal temporary */ 1207 1208 length = prec + 1; 1209 type = real_fix_dec; 1210 long = "0"b; 1211 go to join; 1212 1213 /* Entry point to get a character string temporary */ 1214 1215 get_str_temp: entry(prec) returns(ptr); 1216 1217 length = prec; 1218 long = length > max_short_size(char_string); 1219 type = char_string; 1220 1221 join: p = get_reference(); 1222 p -> reference.data_type = type; 1223 p -> reference.c_length = length; 1224 p -> reference.long_ref = long; 1225 p -> reference.temp_ref, p -> reference.allocate, p -> reference.value_in.storage = "1"b; 1226 call stack_temp$assign_block(p,divide(length + chars_per_word - 1,chars_per_word,17,0)); 1227 1228 return(p); 1229 end; 1230 1231 1232 issue_btd: proc; 1233 1234 if ^ p2 -> reference.aligned_ref 1235 then p2 = compile_exp$save(p2); 1236 1237 call expmac$two_eis((btd(type(2))),q,p2); 1238 1239 end; 1240 1241 1242 issue_mvne: proc; 1243 1244 arg(3) = generate_constant$char_string(char_image,nchars); 1245 1246 call expmac$many_eis((move_numeric_edit),addr(arg),3); 1247 1248 end; 1249 1250 1251 pad_ref: proc(pt); 1252 1253 /* pad_ref is called with a bit string, character string, or a 1254* picture. If the string is a short aligned string but does not 1255* fill an integral number of words, the last word is zeroed. */ 1256 1257 dcl (p1,pt) ptr; 1258 1259 dcl size fixed bin(24); 1260 1261 p1 = pt; 1262 1263 if p1 -> reference.data_type = bit_string 1264 then size = p1 -> reference.c_length; 1265 else size = p1 -> reference.c_length * bits_per_char; 1266 1267 if ^ p1 -> reference.long_ref 1268 then if ^ p1 -> reference.varying_ref 1269 then if p1 -> reference.aligned_for_store_ref 1270 then if mod(size,bits_per_word) ^= 0 1271 then do; 1272 if ^ p1 -> reference.shared 1273 then p1 -> reference.ref_count = p1 -> reference.ref_count + 1; 1274 call expmac((zero_mac(fixed(size > bits_per_word,1))),p1); 1275 end; 1276 end /* pad_ref */; 1277 1278 1279 1280 fill_seq: proc(pop,pn); 1281 1282 dcl (mop,pop) bit(5) aligned; /* micro-op */ 1283 dcl (n,pn) fixed bin; /* number of chars being moved */ 1284 1285 dcl (i,ninst) fixed bin; 1286 dcl j fixed bin(4); 1287 1288 n = pn; 1289 mop = pop; 1290 1291 ninst = divide(n + 15,16,17,0); 1292 1293 do i = 1 to ninst; 1294 string(micro_op(iscan)) = mop; 1295 if i = ninst 1296 then do; 1297 j = mod(n,16); 1298 if j ^= 0 1299 then micro_op(iscan).data = bit(j,4); 1300 end; 1301 iscan = iscan + 1; 1302 end; 1303 1304 end; 1305 1306 1307 get_desc: proc(ref) returns(ptr); 1308 1309 dcl ref ptr; 1310 1311 dcl (p,q,r,s,arg(2)) ptr, 1312 (type,scale,desc_type) fixed bin, 1313 desc bit(36) int static aligned init("1"b); 1314 1315 p = ref; 1316 s = p -> reference.symbol; 1317 1318 substr(desc,8,1) = s -> symbol.packed; 1319 1320 type = p -> reference.data_type; 1321 1322 desc_type = pl1_descriptor_type (gen_attr (s, p), s -> symbol.c_dcl_size); 1323 1324 substr(desc,2,6) = bit(fixed(desc_type,6),6); 1325 1326 if type < char_string 1327 then do; 1328 substr(desc,25,12) = bit(fixed(s -> symbol.c_dcl_size,12),12); 1329 1330 scale = s -> symbol.scale; 1331 1332 if scale < 0 1333 then scale = scale + 1000000000000b; /* 2's comp */ 1334 1335 substr(desc,13,12) = bit(fixed(scale,12),12); 1336 1337 l1: return(generate_constant(desc,1)); 1338 end; 1339 1340 q = p -> reference.length; 1341 if q = null 1342 then do; 1343 substr(desc,13,24) = bit(fixed(p -> reference.c_length,24),24); 1344 goto l1; 1345 end; 1346 1347 substr(desc,13,24) = "0"b; 1348 1349 if q -> node.type = operator_node 1350 then r = q -> operand(1); 1351 else r = q; 1352 if ^ r -> reference.shared 1353 then r -> reference.ref_count = r -> reference.ref_count + 1; 1354 1355 call compile_exp(q); 1356 1357 arg(1) = c_a(1,12); 1358 arg(1) -> reference.ref_count = 2; 1359 1360 arg(2) = generate_constant(desc,1); 1361 call expmac$many((make_desc_mac),addr(arg),2); 1362 1363 return(arg(1)); 1364 end; 1365 1366 /* Generate the correct attribute string from both the symbol node and reference node */ 1367 1368 gen_attr: 1369 procedure (symptr, refptr) returns (bit (36) aligned); 1370 1371 /* parameters */ 1372 1373 dcl symptr ptr; 1374 dcl refptr ptr; 1375 1376 /* program */ 1377 1378 if ^ refptr -> reference.varying_ref & symptr -> symbol.varying 1379 then return (substr (string (symptr -> symbol.attributes), 1, 36) & ^(varying_mask)); 1380 1381 return (substr (string (symptr -> symbol.attributes), 1, 36)); 1382 1383 end /* gen_attr */; 1384 1385 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/24/88 1358.7 convert_chars.pl1 >special_ldd>install>MR12.2-1184>convert_chars.pl1 175 1 10/25/79 1645.8 pl1_descriptor_type_fcn.incl.pl1 >ldd>include>pl1_descriptor_type_fcn.incl.pl1 1-27 2 12/07/83 1700.1 pl1_symbol_type.incl.pl1 >ldd>include>pl1_symbol_type.incl.pl1 1-28 3 10/24/88 1336.9 std_descriptor_types.incl.pl1 >special_ldd>install>MR12.2-1184>std_descriptor_types.incl.pl1 1-29 4 12/07/83 1701.7 system.incl.pl1 >ldd>include>system.incl.pl1 176 5 07/21/80 1546.3 cg_reference.incl.pl1 >ldd>include>cg_reference.incl.pl1 177 6 12/07/83 1701.7 symbol.incl.pl1 >ldd>include>symbol.incl.pl1 178 7 09/14/77 1705.7 token.incl.pl1 >ldd>include>token.incl.pl1 179 8 07/21/80 1546.3 operator.incl.pl1 >ldd>include>operator.incl.pl1 180 9 08/13/81 2211.5 list.incl.pl1 >ldd>include>list.incl.pl1 181 10 11/30/78 1227.4 temporary.incl.pl1 >ldd>include>temporary.incl.pl1 182 11 05/03/76 1320.4 data_types.incl.pl1 >ldd>include>data_types.incl.pl1 183 12 07/21/80 1546.3 nodes.incl.pl1 >ldd>include>nodes.incl.pl1 184 13 04/07/83 1635.0 op_codes.incl.pl1 >ldd>include>op_codes.incl.pl1 185 14 10/25/79 1645.8 cgsystem.incl.pl1 >ldd>include>cgsystem.incl.pl1 186 15 10/25/79 1645.8 boundary.incl.pl1 >ldd>include>boundary.incl.pl1 187 16 10/25/79 1645.8 declare_type.incl.pl1 >ldd>include>declare_type.incl.pl1 188 17 05/06/74 1742.1 label.incl.pl1 >ldd>include>label.incl.pl1 189 18 11/30/78 1227.5 mask.incl.pl1 >ldd>include>mask.incl.pl1 774 19 06/28/79 1204.8 picture_image.incl.pl1 >ldd>include>picture_image.incl.pl1 775 20 05/03/76 1320.4 picture_types.incl.pl1 >ldd>include>picture_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 94 ref 214 230 796 addr builtin function ÔÔ›ÐÔÔšü 000334 automatic bit(1) dcl 47 set ref 504* attributes 31 based structure level 2 dcl 6-3 ref 1378 1381 base_man$load_var 000062 constant entry external dcl 72 ref 440 734 base_man$load_var_and_lock 000030 constant entry external dcl 55 ref 393 523 binary 0(29) 000430 automatic bit(1) level 2 packed packed unaligned dcl 2-3 set ref 1-38 1-53 1-60 1-71 bit 0(03) 000430 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 2-3 in procedure "pl1_descriptor_type" set ref 1-78 bit builtin function dcl 94 in procedure "convert_chars" ref 703 709 1081 1298 1324 1328 1335 1343 bit 31(03) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 6-3 in procedure "convert_chars" ref 374 bit18 parameter bit(18) dcl 1142 set ref 1140 1148 bit36 parameter bit(36) dcl 1132 set ref 1130 1137 bit_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-83 bit_string constant fixed bin(15,0) initial dcl 11-1 ref 1263 bits 12(06) based structure level 2 packed packed unaligned dcl 5-3 bits_per_char constant fixed bin(8,0) initial dcl 14-5 ref 1265 bits_per_word 005630 constant fixed bin(8,0) initial dcl 14-5 ref 1267 1274 blank_on_zero 000030 constant bit(9) initial dcl 138 set ref 939 blk_on_zero based char(1) dcl 155 ref 939 btd 000040 constant fixed bin(15,0) initial array dcl 96 ref 1237 buff 000320 automatic pointer array dcl 46 set ref 717* 718* 719* 721 733 733 734* bv_prec parameter fixed bin(24,0) dcl 1-13 ref 1-8 1-34 bv_type parameter bit(36) packed unaligned dcl 1-13 ref 1-8 1-33 c 000336 automatic bit(1) packed unaligned dcl 48 set ref 592* 600* 619* 619 622 c_a 000020 constant entry external dcl 55 ref 438 669 676 718 1357 c_dcl_size 30 based fixed bin(24,0) level 2 dcl 6-3 set ref 204 416* 1322* 1328 c_length 2 based fixed bin(24,0) level 2 dcl 5-3 set ref 259 261* 263* 269* 282* 287* 355* 363* 1223* 1263 1265 1343 c_offset 1 based fixed bin(24,0) level 2 dcl 5-3 set ref 275* call_ext_out constant fixed bin(15,0) initial dcl 96 ref 736 ceil builtin function dcl 94 ref 301 cg_stat$double_temp 000014 external static pointer dcl 42 set ref 605 739* cg_stat$ext_proc_list 000016 external static pointer dcl 42 set ref 729 730* cg_stat$save_exp_called 000012 external static bit(1) packed unaligned dcl 42 ref 1194 char 0(04) 000430 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 2-3 in procedure "pl1_descriptor_type" set ref 1-84 char 31(04) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 6-3 in procedure "convert_chars" ref 374 460 char_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-89 1-114 char_image based char dcl 173 set ref 939* 939 1244* char_picture constant fixed bin(17,0) initial dcl 20-1 ref 785 char_string constant fixed bin(15,0) initial dcl 11-1 ref 276 296 310 401 432 1218 1219 1326 character_ constant fixed bin(3,0) initial dcl 15-5 ref 286 chars 2 based char level 2 dcl 19-6 ref 785 808 826 918 920 chars_per_word constant fixed bin(8,0) initial dcl 14-5 ref 1226 1226 1226 1226 check 000337 automatic bit(1) packed unaligned dcl 48 set ref 386* 389* 397 check_size parameter bit(1) dcl 37 ref 35 191 212 code parameter fixed bin(17,0) dcl 629 set ref 627 645* comparison 000335 automatic bit(1) packed unaligned dcl 48 set ref 592* 604* 608 663* 739 compile_exp 000070 constant entry external dcl 72 ref 1355 compile_exp$save 000072 constant entry external dcl 72 ref 1234 compile_exp$save_exp 000074 constant entry external dcl 72 ref 1184 compile_link 000104 constant entry external dcl 83 ref 724 compiler_developed 32(35) based structure level 3 packed packed unaligned dcl 6-3 complex 0(31) 000430 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 2-3 in procedure "pl1_descriptor_type" set ref 1-60 complex 31(31) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 6-3 in procedure "convert_chars" ref 600 619 622 636 636 complex_binary_op constant fixed bin(17,0) initial dcl 118 ref 590 641 complex_decimal_op constant fixed bin(17,0) initial dcl 118 ref 587 636 conv_mac constant fixed bin(15,0) initial dcl 96 ref 454 copy_temp 000066 constant entry external dcl 72 ref 1191 cplx_fix_bin_1_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-60 cplx_fix_bin_2_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-67 cplx_fix_dec_4bit_bytealigned_ls_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-68 cplx_fix_dec_9bit_ls_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-70 cplx_flt_bin_1_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-71 cplx_flt_bin_2_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-74 cplx_flt_dec_4bit_bytealigned_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-75 cplx_flt_dec_9bit_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-77 create_list 000076 constant entry external dcl 72 ref 727 current_micro_op 000455 automatic bit(5) dcl 764 set ref 801* 1095 1098* 1107 1107 1110* data 0(05) 000373 automatic bit(4) array level 3 packed packed unaligned dcl 164 set ref 1298* data_type 12 based fixed bin(5,0) level 2 in structure "reference" packed packed unaligned dcl 5-3 in procedure "convert_chars" set ref 203 265* 270* 276* 504 1222* 1263 1320 data_type 31 based structure level 3 in structure "symbol" packed packed unaligned dcl 6-3 in procedure "convert_chars" decimal 31(28) based bit(1) level 4 packed packed unaligned dcl 6-3 ref 432 432 585 633 633 decimal_op constant fixed bin(17,0) initial dcl 118 ref 588 639 defined_ref 12(12) based bit(1) level 3 packed packed unaligned dcl 5-3 set ref 277* desc 000010 internal static bit(36) initial dcl 1311 set ref 1318* 1324* 1328* 1335* 1337* 1343* 1347* 1360* desc_type 000730 automatic fixed bin(17,0) dcl 1311 set ref 1322* 1324 digit_ constant fixed bin(3,0) initial dcl 15-5 ref 281 divide builtin function dcl 94 ref 1226 1226 1291 drift 000453 automatic char(1) dcl 762 set ref 803* 854* 971 993 1044* 1045 1047 drift_character 1(27) based char(1) level 2 packed packed unaligned dcl 19-6 ref 848 866 872 883 dtb 000042 constant fixed bin(15,0) initial array dcl 96 ref 226 dtype 000360 automatic fixed bin(17,0) array dcl 48 in procedure "convert_chars" set ref 416* 418 dtype 000427 automatic fixed bin(17,0) dcl 1-18 in procedure "pl1_descriptor_type" set ref 1-36* 1-38* 1-46* 1-47* 1-49* 1-50* 1-52* 1-53* 1-56* 1-57* 1-59* 1-60* 1-67* 1-68* 1-70* 1-71* 1-74* 1-75* 1-77* 1-78* 1-83* 1-84* 1-89* 1-90* 1-94* 1-98* 1-102* 1-106* 1-110* 1-114* 1-118* 1-120 edit_seq based structure level 1 dcl 169 edit_sequence 000373 automatic structure level 1 dcl 164 set ref 322 335 939 939 1244 element 1 based pointer array level 2 packed packed unaligned dcl 9-6 set ref 728* 729* enf 005634 constant bit(5) initial dcl 123 ref 325 339 enf_curr constant bit(9) initial dcl 138 ref 971 1021 enf_curr_bz constant bit(9) initial dcl 138 ref 993 1017 enf_sign constant bit(9) initial dcl 138 ref 973 1023 enf_sign_bz constant bit(9) initial dcl 138 ref 995 1020 entry 0(09) 000430 automatic bit(1) level 2 packed packed unaligned dcl 2-3 set ref 1-106 entry_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-106 expmac 000110 constant entry external dcl 84 ref 739 1274 expmac$many 000112 constant entry external dcl 84 ref 733 1361 expmac$many_eis 000042 constant entry external dcl 55 ref 1246 expmac$one_eis 000036 constant entry external dcl 55 ref 291 expmac$two_eis 000034 constant entry external dcl 55 ref 223 226 248 789 1237 expmac$zero 000114 constant entry external dcl 84 ref 468 529 736 file 0(10) 000430 automatic bit(1) level 2 packed packed unaligned dcl 2-3 set ref 1-110 file_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-110 fixed builtin function dcl 94 in procedure "convert_chars" ref 301 418 500 608 703 709 1081 1274 1324 1328 1335 1343 fixed 0(01) 000430 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 2-3 in procedure "pl1_descriptor_type" set ref 1-38 1-60 float builtin function dcl 94 in procedure "convert_chars" ref 301 float 31(02) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 6-3 in procedure "convert_chars" ref 458 460 general 16 based pointer level 2 packed packed unaligned dcl 6-3 ref 503 generate_constant 000102 constant entry external dcl 72 ref 1337 1360 generate_constant$char_string 000040 constant entry external dcl 55 ref 1244 generate_constant$real_fix_bin_1 000100 constant entry external dcl 72 ref 354 354 406 609 645 get_reference 000032 constant entry external dcl 55 ref 272 1221 have_drift 000460 automatic bit(1) dcl 768 set ref 801* 819 852 855* 920 928 936 969 975* 991 1008 1039 1042* have_suppression 000461 automatic bit(1) dcl 769 set ref 801* 951 959* 1017 1063 header based bit(27) level 2 packed packed unaligned dcl 169 set ref 322* 335* i 000564 automatic fixed bin(17,0) dcl 1133 in procedure "issue_4" set ref 1152* 1153* i 000606 automatic fixed bin(17,0) dcl 1181 in procedure "prepare_operands" set ref 1183* 1184 1184 1184* i 000700 automatic fixed bin(17,0) dcl 1285 in procedure "fill_seq" set ref 1293* 1295* i 000346 automatic fixed bin(17,0) dcl 48 in procedure "convert_chars" set ref 201* 202 202 203 203 204 204 205 205* 336* 337 337* 340 379* 383 385 387 393 393 397 401 403 404 404 407* 409 409* 411 416 416 416 416 416 416 418 418 420 421* 448* 449* 454 473* 474 474* 517* 518 518 520 520 521 523 523* 532* 534 534* 649* 650 651* 655 656 658 693* 694 700 703 706* 743* 744 746* increment 000342 automatic bit(1) initial dcl 48 set ref 48* 671 index builtin function dcl 94 ref 809 918 920 1081 info 11 based structure level 2 packed packed unaligned dcl 5-3 initial 11 based pointer level 2 packed packed unaligned dcl 6-3 ref 1163 insa_0 constant bit(9) initial dcl 138 ref 1070 insb_0 constant bit(9) initial dcl 138 ref 1072 insb_7 005632 constant bit(9) initial dcl 138 ref 343 insb_8 005631 constant bit(9) initial dcl 138 ref 340 insertion_on_zero 000462 automatic bit(1) dcl 770 set ref 801* 834* 855* 875* 905* 927 1029* 1042* insn_4 constant bit(9) initial dcl 138 ref 885 insn_cr 000025 constant bit(36) initial dcl 160 ref 893 insn_db 000024 constant bit(36) initial dcl 160 ref 899 insp_3 constant bit(9) initial dcl 138 ref 874 integer_header 000032 constant bit(27) initial packed unaligned dcl 134 ref 322 iop 000345 automatic fixed bin(17,0) dcl 48 set ref 500* 503 529 777 iscan 000367 automatic fixed bin(17,0) dcl 48 set ref 315* 325 326 327 339 340 342 343 344* 344 346 804* 924 934 1123 1124* 1124 1153 1154* 1154 1294 1298 1301* 1301 j 000702 automatic fixed bin(4,0) dcl 1286 in procedure "fill_seq" set ref 1297* 1298 1298 j 000347 automatic fixed bin(17,0) dcl 48 in procedure "convert_chars" set ref 608* 608* 609* 650* 651 652 652 655* 656 656 658 659 659 706* 707 709 711* k 000350 automatic fixed bin(17,0) dcl 48 set ref 622* 622* 635* 636* 639* 641* 719* k1 000351 automatic fixed bin(17,0) dcl 48 set ref 587* 590* 622 k2 000352 automatic fixed bin(17,0) dcl 48 set ref 588* 590* 622 label 0(08) 000430 automatic bit(1) level 2 packed packed unaligned dcl 2-3 set ref 1-102 label_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-102 last_freed 7 based fixed bin(18,0) level 2 in structure "temporary" dcl 10-3 in procedure "convert_chars" ref 673 last_freed 000344 automatic fixed bin(18,0) dcl 48 in procedure "convert_chars" set ref 673* 704* 710* ldfx1 constant fixed bin(15,0) initial dcl 96 ref 739 left parameter pointer dcl 37 ref 35 191 193 length 000634 automatic fixed bin(17,0) dcl 1202 in procedure "get_temp" set ref 1208* 1217* 1218 1223 1226 1226 length 6 based pointer level 2 in structure "reference" packed packed unaligned dcl 5-3 in procedure "convert_chars" ref 1340 length_hold 000366 automatic fixed bin(17,0) dcl 48 set ref 259* 261 263 269 list based structure level 1 dcl 9-6 load_size$a_or_q 000026 constant entry external dcl 55 ref 409 location 4 based fixed bin(18,0) level 2 in structure "temporary" dcl 10-3 in procedure "convert_chars" ref 675 location 1 based fixed bin(18,0) level 2 in structure "symbol" packed packed unsigned unaligned dcl 6-3 in procedure "convert_chars" set ref 724* long 000640 automatic bit(1) dcl 1204 set ref 1210* 1218* 1224 long_ref 12(08) based bit(1) level 3 packed packed unaligned dcl 5-3 set ref 1224* 1267 long_work_space constant fixed bin(17,0) initial dcl 114 ref 437 lp 000100 automatic pointer dcl 46 set ref 593* 608 614 624* 631* 635 647 649 656 662* 665 665 665 1183 1184 1191 lte_3_blank constant bit(18) initial dcl 157 ref 1047 lte_4_blank constant bit(18) initial dcl 157 ref 1049 macro 000343 automatic fixed bin(15,0) dcl 48 set ref 245* 246* 246 248* 283* 288* 291* 454* 456* 456 458* 458 460* 460 468* make_desc_mac constant fixed bin(15,0) initial dcl 96 ref 1361 max builtin function dcl 94 ref 432 max_p_fix_bin_1 constant fixed bin(31,0) initial dcl 4-5 ref 1-38 1-47 1-60 max_p_flt_bin_1 constant fixed bin(31,0) initial dcl 4-5 ref 1-53 1-71 max_short_size 000022 constant fixed bin(8,0) initial array dcl 14-5 ref 1218 medium_work_space constant fixed bin(17,0) initial dcl 114 ref 432 mflc constant bit(5) initial dcl 123 ref 859 mfls constant bit(5) initial dcl 123 ref 323 337 1054 micro_array based bit(9) array level 2 packed packed unaligned dcl 1144 ref 1153 micro_inst 000456 automatic bit(9) dcl 765 in procedure "inline_picture" set ref 971* 973* 974* 993* 995* 996* 1017* 1020* 1021* 1023* 1025* 1070* 1072* 1076* 1081* 1082* micro_inst parameter bit(9) dcl 1119 in procedure "issue" ref 1117 1123 micro_op 000373 automatic structure array level 2 packed packed unaligned dcl 164 set ref 325* 326* 339* 340* 342* 343* 1123* 1153* 1294* micro_op_code parameter bit(5) dcl 1093 ref 1091 1095 1098 misc_attributes 31(19) based structure level 3 packed packed unaligned dcl 6-3 mod builtin function dcl 94 ref 1267 1297 mop 000676 automatic bit(5) dcl 1282 set ref 1289* 1294 more_bits 13 based structure level 2 packed packed unaligned dcl 5-3 move_chars constant fixed bin(15,0) initial dcl 96 ref 789 move_numeric constant fixed bin(15,0) initial dcl 96 ref 223 245 move_numeric_edit constant fixed bin(15,0) initial dcl 96 ref 1246 multi_decimal_op constant fixed bin(17,0) initial dcl 118 ref 635 mvc constant bit(5) initial dcl 123 ref 345 814 mvc_1 005633 constant bit(9) initial dcl 138 ref 326 342 mvza constant bit(5) initial dcl 123 ref 836 mvzb constant bit(5) initial dcl 123 ref 825 843 n 000677 automatic fixed bin(17,0) dcl 1283 in procedure "fill_seq" set ref 1288* 1291 1297 n 000355 automatic fixed bin(17,0) dcl 48 in procedure "convert_chars" set ref 385* 386 387 432* 436* 437* 438* 449 n 000565 automatic fixed bin(17,0) dcl 1133 in procedure "issue_4" set ref 1136* 1147* 1152 n_args 000354 automatic fixed bin(17,0) dcl 48 set ref 614* 616* 647* 669 678 693 706 718 743 nchars 000372 automatic fixed bin(17,0) dcl 48 set ref 327* 346* 934* 938* 938 939 939 939 1244 1244 1244* need_temp 000044 constant entry external dcl 55 ref 397 negate constant bit(9) initial dcl 13-8 ref 614 ninst 000701 automatic fixed bin(17,0) dcl 1285 set ref 1291* 1293 1295 node based structure level 1 dcl 12-27 node_pt parameter pointer dcl 580 ref 483 485 578 593 627 631 nrands 000450 automatic fixed bin(17,0) dcl 761 set ref 1099* 1099 1107* 1111* null builtin function dcl 94 ref 195 411 411 598 665 695 711 1187 1341 number 0(21) based fixed bin(14,0) level 2 packed packed unaligned dcl 8-6 ref 635 647 649 1183 offset 0(06) 000430 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 2-3 in procedure "pl1_descriptor_type" set ref 1-94 offset 10(03) based bit(15) level 3 in structure "reference" packed packed unaligned dcl 5-3 in procedure "convert_chars" set ref 703* 709* offset_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-94 op_code 0(09) based bit(9) level 2 packed packed unaligned dcl 8-6 ref 500 608 614 656 operand 1 based pointer array level 2 packed packed unaligned dcl 8-6 set ref 487 493 495 1184 1191* 1349 operator based structure level 1 dcl 8-6 operator_node constant bit(9) initial dcl 12-5 ref 495 1349 p 000566 automatic pointer dcl 1134 in procedure "issue_4" set ref 1137* 1148* 1153 p 000712 automatic pointer dcl 1311 in procedure "get_desc" set ref 1315* 1316 1320 1322* 1322* 1340 1343 p 000306 automatic pointer dcl 46 in procedure "convert_chars" set ref 485* 487 493 500 694* 695 697 699 699 704* 707 710* 746* 747* p 000636 automatic pointer dcl 1203 in procedure "get_temp" set ref 1221* 1222 1223 1224 1225 1225 1225 1226* 1228 p1 000310 automatic pointer dcl 46 in procedure "convert_chars" set ref 193* 197* 208 208 214 226* 238 248* 258 259 261 263 265 266 266 266 269 270 274 351 354* 355 359* 363 374* 487* 489* 491 491 501 511 511 511 788* 789* 931* p1 000664 automatic pointer dcl 1257 in procedure "pad_ref" set ref 1261* 1263 1263 1265 1267 1267 1267 1272 1272 1272 1274* p2 000312 automatic pointer dcl 46 set ref 194* 223* 225 305* 493* 495 495* 495 502 514 789* 1234 1234* 1234* 1237* packed 33 based bit(1) level 4 packed packed unaligned dcl 6-3 ref 374 418 1318 pc 000452 automatic char(1) dcl 762 set ref 808* 809 913* 1017 1021 1044 1074 1077 1077 1081 perm_address 12(18) based bit(1) level 3 packed packed unaligned dcl 5-3 set ref 684* pic_mac 000036 constant fixed bin(15,0) initial array dcl 96 ref 529 piclength 0(27) based fixed bin(8,0) level 2 packed packed unaligned dcl 19-6 ref 785 808 826 918 920 1168 picture 0(18) 000430 automatic bit(1) level 2 packed packed unaligned dcl 2-3 set ref 1-114 picture_image based structure level 1 dcl 19-6 picture_length 000447 automatic fixed bin(17,0) dcl 761 set ref 785 807 1168* picture_pos 000442 automatic fixed bin(17,0) dcl 761 set ref 807* 808 823 826 894* 894 900* 900 918 920* 1014 pn parameter fixed bin(17,0) dcl 1283 ref 1280 1288 pointer_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-90 pop parameter bit(5) dcl 1282 ref 1280 1289 pp 000440 automatic pointer dcl 760 set ref 785 808 826 848 866 872 883 918 920 1163* 1165 1166 1167 1168 1169 1170 prec 000362 automatic fixed bin(17,0) array dcl 48 in procedure "convert_chars" set ref 204* 275 301* 301 302* 310 323 323 336 349 351 357 363 403 prec 000426 automatic fixed bin(24,0) dcl 1-18 in procedure "pl1_descriptor_type" set ref 1-34* 1-38 1-47 1-53 1-60 1-71 prec 0(09) based fixed bin(8,0) level 2 in structure "picture_image" packed packed unaligned dcl 19-6 in procedure "inline_picture" ref 1166 prec parameter fixed bin(17,0) dcl 1202 in procedure "get_temp" ref 1200 1208 1215 1217 prec 000444 automatic fixed bin(17,0) dcl 761 in procedure "inline_picture" set ref 1166* prepare_call constant fixed bin(15,0) initial dcl 96 ref 733 prepare_operand 000060 constant entry external dcl 71 ref 504 pt parameter pointer dcl 1257 ref 1251 1261 ptr 0(05) 000430 automatic bit(1) level 2 packed packed unaligned dcl 2-3 set ref 1-90 q 000714 automatic pointer dcl 1311 in procedure "get_desc" set ref 1340* 1341 1349 1349 1351 1355* q 000316 automatic pointer dcl 46 in procedure "convert_chars" set ref 222* 223* 225* 226* 238* 243* 248* 258* 272* 273 274 275 276 277 281 282 286 287 291* 302* 305 306 406* 407* 438* 439 440* 477* 503* 504 504* 504* 513 727* 728 729 730 1163 1237* qualifier 4 based pointer level 2 packed packed unaligned dcl 5-3 set ref 274* 673 675 r 000716 automatic pointer dcl 1311 set ref 1349* 1351* 1352 1352 1352 real 31(30) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 6-3 in procedure "convert_chars" ref 449 449 real 0(30) 000430 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 2-3 in procedure "pl1_descriptor_type" set ref 1-38 real_fix_bin_1_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-47 real_fix_bin_1_uns_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-38 real_fix_bin_2 constant fixed bin(15,0) initial dcl 11-1 ref 214 230 real_fix_bin_2_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-49 real_fix_bin_2_uns_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-46 real_fix_dec constant fixed bin(15,0) initial dcl 11-1 ref 214 235 265 304 310 1209 real_fix_dec_4bit_bytealigned_ls_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-50 real_fix_dec_9bit_ls_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-52 real_fixed_picture constant fixed bin(17,0) initial dcl 20-1 ref 794 real_flt_bin_1_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-53 real_flt_bin_2_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-56 real_flt_dec constant fixed bin(15,0) initial dcl 11-1 ref 214 220 252 270 real_flt_dec_4bit_bytealigned_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-57 real_flt_dec_9bit_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-59 ref parameter pointer dcl 1309 in procedure "get_desc" ref 1307 1315 ref parameter pointer array dcl 580 in procedure "convert_chars" set ref 578 584 597 600 611 617 624 627 632 633 636 636 651 656 658 662 1184* 1187 1189 1191* 1191* 1192 1194 1194 1194 ref_count 0(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 5-3 set ref 266* 266 371* 371 385 387* 439* 511* 511 520* 520 671* 671 699* 699 1192* 1194* 1194 1272* 1272 1352* 1352 1358* reference based structure level 1 dcl 5-3 refptr parameter pointer dcl 1374 ref 1368 1378 reserve$declare_lib 000116 constant entry external dcl 84 ref 719 right parameter pointer dcl 37 set ref 35 191 194 195* 357* round_fun constant bit(9) initial dcl 13-8 ref 656 s 000326 automatic pointer dcl 46 in procedure "convert_chars" set ref 584* 585 622 632* 633 s 000720 automatic pointer dcl 1311 in procedure "get_desc" set ref 1316* 1318 1322* 1322* 1322 1328 1330 scale 0(18) based fixed bin(8,0) level 2 in structure "picture_image" packed packed unaligned dcl 19-6 in procedure "inline_picture" ref 1167 scale 000727 automatic fixed bin(17,0) dcl 1311 in procedure "get_desc" set ref 1330* 1332 1332* 1332 1335 scale 000364 automatic fixed bin(17,0) array dcl 48 in procedure "convert_chars" set ref 205* 214 214 220 230 230 235 310 310 317 336 345* 404 404 scale 2(28) based fixed bin(7,0) level 2 in structure "symbol" packed packed unaligned dcl 6-3 in procedure "convert_chars" ref 205 1330 scale 000445 automatic fixed bin(17,0) dcl 761 in procedure "inline_picture" set ref 796 1167* scaled_header 000031 constant bit(27) initial packed unaligned dcl 134 ref 335 scalefactor 1(09) based fixed bin(8,0) level 2 in structure "picture_image" packed packed unaligned dcl 19-6 in procedure "inline_picture" ref 1170 scalefactor 000446 automatic fixed bin(17,0) dcl 761 in procedure "inline_picture" set ref 1170* ses_off constant bit(9) initial dcl 138 ref 823 955 1014 ses_on 000027 constant bit(9) initial dcl 138 set ref 826 977* 1066 ses_on_bz 000026 constant bit(9) initial dcl 138 set ref 998* shared 0(11) based bit(1) level 2 packed packed unaligned dcl 5-3 ref 266 383 474 1272 1352 short_work_space constant fixed bin(17,0) initial dcl 114 ref 436 449 size 000666 automatic fixed bin(24,0) dcl 1259 in procedure "pad_ref" set ref 1263* 1265* 1267 1274 size 3 based fixed bin(9,0) level 2 in structure "token" dcl 7-3 in procedure "convert_chars" ref 724 724 source_length 000451 automatic fixed bin(17,0) dcl 761 set ref 1169* stack_temp$assign_block 000050 constant entry external dcl 55 ref 1226 state_man$flush 000120 constant entry external dcl 84 ref 466 527 735 state_man$flush_ref 000122 constant entry external dcl 84 ref 197 489 state_man$unlock 000052 constant entry external dcl 55 ref 444 526 storage 11(23) based bit(1) level 4 packed packed unaligned dcl 5-3 set ref 208* 491* 665* 1225* store_bit_address 000106 constant entry external dcl 84 ref 704 710 string 4 based char level 2 in structure "token" dcl 7-3 in procedure "convert_chars" set ref 724* string builtin function dcl 1-23 in procedure "pl1_descriptor_type" set ref 1-33* string builtin function dcl 94 in procedure "convert_chars" set ref 325* 326* 339* 340* 342* 343* 683* 683 1123* 1153* 1294* 1378 1381 structure 000430 automatic bit(1) level 2 packed packed unaligned dcl 2-3 set ref 1-36 structure_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-36 substr builtin function dcl 94 set ref 521* 534 608 700* 744 785 808 826 918 920 939 1081* 1318* 1324* 1328* 1335* 1343* 1347* 1378 1381 sym 000330 automatic pointer array dcl 46 set ref 202* 204 205 261 273 279 306* 374 374 374 416* 416* 416 418 432 432 432 432 449 449 458 460 460 symbol based structure level 1 dcl 6-3 in procedure "convert_chars" symbol 3 based pointer level 2 in structure "reference" packed packed unaligned dcl 5-3 in procedure "convert_chars" set ref 202 273* 306 503 584 600 619 632 633 636 636 721 1163 1316 symptr parameter pointer dcl 1373 ref 1368 1378 1378 1381 table_change 000524 automatic bit(18) dcl 1037 set ref 1047* 1049* 1050* table_entries 000020 constant char(8) initial packed unaligned dcl 763 ref 1081 tag 10(30) based bit(6) level 3 packed packed unaligned dcl 5-3 set ref 681* temp_ref 12(11) based bit(1) level 3 packed packed unaligned dcl 5-3 set ref 208 371 491 511 518 665 697 1194 1225* temporary based structure level 1 unaligned dcl 10-3 test_zero 000463 automatic bit(1) dcl 772 set ref 927* 928 936 token 5 based pointer level 2 in structure "symbol" packed packed unaligned dcl 6-3 in procedure "convert_chars" ref 724 token based structure level 1 dcl 7-3 in procedure "convert_chars" tprec 000370 automatic fixed bin(17,0) dcl 48 set ref 349* 351 354* 354* 355 357 357* type based fixed bin(8,0) level 2 in structure "picture_image" packed packed unaligned dcl 19-6 in procedure "inline_picture" ref 1165 type 000356 automatic fixed bin(17,0) array dcl 48 in procedure "convert_chars" set ref 203* 214 214 214 220 222 226 230 235 243 252 296 304* 310 310 401 432 432 1237 type 000430 automatic structure level 1 packed packed unaligned dcl 2-3 in procedure "pl1_descriptor_type" set ref 1-33* type 000726 automatic fixed bin(17,0) dcl 1311 in procedure "get_desc" set ref 1320* 1326 type 000443 automatic fixed bin(17,0) dcl 761 in procedure "inline_picture" set ref 785 794 1165* type based bit(9) level 2 in structure "node" packed packed unaligned dcl 12-27 in procedure "convert_chars" ref 495 1349 type 000635 automatic fixed bin(17,0) dcl 1202 in procedure "get_temp" set ref 1209* 1219* 1222 unaligned 0(22) 000430 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 2-3 in procedure "pl1_descriptor_type" set ref 1-50 1-57 1-68 1-75 unaligned 31(22) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 6-3 in procedure "convert_chars" ref 261 279 432 432 units 0(14) based fixed bin(3,0) level 2 packed packed unaligned dcl 5-3 set ref 281* 286* unpack constant bit(9) initial dcl 13-8 ref 500 unsigned 0(24) 000430 automatic bit(1) level 2 packed packed unaligned dcl 2-3 set ref 1-38 unspec builtin function dcl 94 ref 1077 1077 value_in 11(09) based structure level 3 packed packed unaligned dcl 5-3 varlength 1 based fixed bin(8,0) level 2 packed packed unaligned dcl 19-6 ref 1169 varying 0(26) 000430 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 2-3 in procedure "pl1_descriptor_type" set ref 1-78 1-84 varying 31(26) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 6-3 in procedure "convert_chars" ref 1378 varying_bit_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-78 varying_char_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-84 varying_mask constant bit(36) initial dcl 18-3 ref 1378 varying_ref 0(10) based bit(1) level 2 packed packed unaligned dcl 5-3 ref 351 1267 1378 varying_target 000340 automatic bit(1) packed unaligned dcl 48 set ref 351* 352 363 word 000371 automatic fixed bin(17,0) dcl 48 set ref 403* 404* 404 406* 418* 420* xr_man$load_const 000054 constant entry external dcl 55 ref 420 680 xr_man$super_lock 000056 constant entry external dcl 55 ref 421 zero_4bcs constant fixed bin(15,0) initial dcl 96 ref 283 zero_cs constant fixed bin(15,0) initial dcl 96 ref 288 zero_mac 000034 constant fixed bin(15,0) initial array dcl 96 ref 1274 zero_sup_char 000454 automatic char(1) dcl 762 set ref 803* 833* 841* 1070 zero_suppression 000457 automatic bit(1) dcl 767 set ref 802* 819 828* 927 953 956* 967 979* 989 1000* 1008 1011* 1017 1027* 1063 1067* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. a_format internal static bit(9) initial dcl 13-8 abs_fun internal static bit(9) initial dcl 13-8 acos_fun internal static bit(9) initial dcl 13-8 acosd_fun internal static bit(9) initial dcl 13-8 add internal static bit(9) initial dcl 13-8 addbitno_fun internal static bit(9) initial dcl 13-8 addcharno_fun internal static bit(9) initial dcl 13-8 addr_fun internal static bit(9) initial dcl 13-8 addr_fun_bits internal static bit(9) initial dcl 13-8 addrel_fun internal static bit(9) initial dcl 13-8 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 3-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 3-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 3-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 3-25 aligned_mask internal static bit(36) initial dcl 18-3 alloc_char_temp internal static fixed bin(15,0) initial dcl 96 allocation_fun internal static bit(9) initial dcl 13-8 allot_auto internal static bit(9) initial dcl 13-8 allot_based internal static bit(9) initial dcl 13-8 allot_ctl internal static bit(9) initial dcl 13-8 allot_var internal static bit(9) initial dcl 13-8 and_bits internal static bit(9) initial dcl 13-8 area_mask internal static bit(36) initial dcl 18-3 arg_desc_type internal static bit(36) initial dcl 4-71 arg_descriptor_mask internal static bit(36) initial dcl 18-3 arithmetic_mask internal static bit(36) initial dcl 18-41 array_node internal static bit(9) initial dcl 12-5 asin_fun internal static bit(9) initial dcl 13-8 asind_fun internal static bit(9) initial dcl 13-8 assign internal static bit(9) initial dcl 13-8 assign_by_name internal static bit(9) initial dcl 13-8 assign_round internal static bit(9) initial dcl 13-8 assign_size_ck internal static bit(9) initial dcl 13-8 assign_zero internal static bit(9) initial dcl 13-8 atan_fun internal static bit(9) initial dcl 13-8 atand_fun internal static bit(9) initial dcl 13-8 b_format internal static bit(9) initial dcl 13-8 baseno_fun internal static bit(9) initial dcl 13-8 baseptr_fun internal static bit(9) initial dcl 13-8 binary_mask internal static bit(36) initial dcl 18-3 bit_ internal static fixed bin(3,0) initial dcl 15-5 bit_mask internal static bit(36) initial dcl 18-3 bit_pointer internal static bit(9) initial dcl 13-8 bit_to_char internal static bit(9) initial dcl 13-8 bit_to_word internal static bit(9) initial dcl 13-8 bit_type internal static bit(36) initial dcl 4-71 bitno_fun internal static bit(9) initial dcl 13-8 bits_per_binary_exponent internal static fixed bin(31,0) initial dcl 4-5 bits_per_character internal static fixed bin(31,0) initial dcl 4-5 bits_per_decimal_digit internal static fixed bin(31,0) initial dcl 4-5 bits_per_digit internal static fixed bin(31,1) initial dcl 4-69 bits_per_double internal static fixed bin(31,0) initial dcl 4-5 bits_per_four_words internal static fixed bin(8,0) initial dcl 14-5 bits_per_half internal static fixed bin(8,0) initial dcl 14-5 in procedure "convert_chars" bits_per_half internal static fixed bin(31,0) initial dcl 4-5 in procedure "pl1_descriptor_type" bits_per_packed_digit internal static fixed bin(8,1) initial dcl 14-35 bits_per_packed_ptr internal static fixed bin(31,0) initial dcl 4-5 bits_per_two_words internal static fixed bin(8,0) initial dcl 14-5 bits_per_word internal static fixed bin(31,0) initial dcl 4-5 bits_per_words internal static fixed bin(8,0) initial array dcl 14-5 blank_cs internal static fixed bin(15,0) initial dcl 96 block_node internal static bit(9) initial dcl 12-5 bn_format internal static bit(9) initial dcl 13-8 bool_fun internal static bit(9) initial dcl 13-8 bound_ck internal static bit(9) initial dcl 13-8 bound_node internal static bit(9) initial dcl 12-5 break_even_bits internal static fixed bin(8,0) initial dcl 14-5 break_even_words internal static fixed bin(8,0) initial dcl 14-5 builtin_mask internal static bit(36) initial dcl 18-3 builtin_type internal static bit(36) initial dcl 4-71 by_compiler internal static bit(3) initial dcl 16-5 by_context internal static bit(3) initial dcl 16-5 by_declare internal static bit(3) initial dcl 16-5 by_explicit_context internal static bit(3) initial dcl 16-5 by_implication internal static bit(3) initial dcl 16-5 by_name_agg_node internal static bit(9) initial dcl 12-5 byte_fun internal static bit(9) initial dcl 13-8 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 3-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 3-25 c_format internal static bit(9) initial dcl 13-8 c_typeref_dtype internal static fixed bin(17,0) initial dcl 3-25 c_union_dtype internal static fixed bin(17,0) initial dcl 3-25 cat_string internal static bit(9) initial dcl 13-8 ceil_fun internal static bit(9) initial dcl 13-8 cg_stat$cur_block external static pointer dcl 42 cg_stat$text_pos external static fixed bin(17,0) dcl 42 char_mask internal static bit(36) initial dcl 18-3 char_to_word internal static bit(9) initial dcl 13-8 char_type internal static bit(36) initial dcl 4-71 characters_per_double internal static fixed bin(31,0) initial dcl 4-5 characters_per_half internal static fixed bin(31,0) initial dcl 4-5 characters_per_word internal static fixed bin(31,0) initial dcl 4-5 charno_fun internal static bit(9) initial dcl 13-8 clock_fun internal static bit(9) initial dcl 13-8 close_file internal static bit(9) initial dcl 13-8 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 3-25 codeptr_fun internal static bit(9) initial dcl 13-8 column_format internal static bit(9) initial dcl 13-8 complex_fix_bin_1 internal static fixed bin(15,0) initial dcl 11-1 complex_fix_bin_2 internal static fixed bin(15,0) initial dcl 11-1 complex_fix_dec internal static fixed bin(15,0) initial dcl 11-1 complex_flt_bin_1 internal static fixed bin(15,0) initial dcl 11-1 complex_flt_bin_2 internal static fixed bin(15,0) initial dcl 11-1 complex_flt_dec internal static fixed bin(15,0) initial dcl 11-1 complex_fun internal static bit(9) initial dcl 13-8 complex_mask internal static bit(36) initial dcl 18-3 complex_type internal static bit(36) initial dcl 4-71 computational_mask internal static bit(36) initial dcl 18-41 condition_mask internal static bit(36) initial dcl 18-3 conjg_fun internal static bit(9) initial dcl 13-8 context_node internal static bit(9) initial dcl 12-5 convert_mask internal static bit(36) initial dcl 18-41 convert_offset internal static fixed bin(8,1) initial array dcl 14-35 convert_size internal static fixed bin(8,0) initial array dcl 14-5 copy_string internal static bit(9) initial dcl 13-8 copy_words internal static bit(9) initial dcl 13-8 cos_fun internal static bit(9) initial dcl 13-8 cosd_fun internal static bit(9) initial dcl 13-8 cplx_fixed_picture internal static fixed bin(17,0) initial dcl 20-1 cplx_float_picture internal static fixed bin(17,0) initial dcl 20-1 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 3-25 create_label 000000 constant entry external dcl 55 cross_reference_node internal static bit(9) initial dcl 12-5 dec_integer_type internal static bit(36) initial dcl 4-71 decimal_mask internal static bit(36) initial dcl 18-3 declare_constant_mask internal static bit(36) initial dcl 18-41 default_area_size internal static fixed bin(31,0) initial dcl 4-5 default_fix_bin_p internal static fixed bin(31,0) initial dcl 4-5 in procedure "pl1_descriptor_type" default_fix_bin_p internal static fixed bin(8,0) initial dcl 14-5 in procedure "convert_chars" default_fix_dec_p internal static fixed bin(31,0) initial dcl 4-5 default_flt_bin_p internal static fixed bin(31,0) initial dcl 4-5 default_flt_dec_p internal static fixed bin(31,0) initial dcl 4-5 default_node internal static bit(9) initial dcl 12-5 delete_file internal static bit(9) initial dcl 13-8 desc_size internal static bit(9) initial dcl 13-8 digit_to_bit internal static bit(9) initial dcl 13-8 dimensioned_mask internal static bit(36) initial dcl 18-3 div internal static bit(9) initial dcl 13-8 do_fun internal static bit(9) initial dcl 13-8 do_spec internal static bit(9) initial dcl 13-8 e_format internal static bit(9) initial dcl 13-8 empty_area internal static bit(9) initial dcl 13-8 enable_on internal static bit(9) initial dcl 13-8 entry_mask internal static bit(36) initial dcl 18-3 entry_var_type internal static bit(36) initial dcl 4-71 entry_variable internal static fixed bin(15,0) initial dcl 11-1 environmentptr_fun internal static bit(9) initial dcl 13-8 equal internal static bit(9) initial dcl 13-8 ex_prologue internal static bit(9) initial dcl 13-8 exp internal static bit(9) initial dcl 13-8 exp_fun internal static bit(9) initial dcl 13-8 expmac$fill_usage 000000 constant entry external dcl 55 ext_entry_in internal static fixed bin(15,0) initial dcl 11-1 ext_entry_out internal static fixed bin(15,0) initial dcl 11-1 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 f_format internal static bit(9) initial dcl 13-8 file_mask internal static bit(36) initial dcl 18-3 fixed_binary_real_mask internal static bit(36) initial dcl 18-41 fixed_decimal_complex_mask internal static bit(36) initial dcl 18-41 fixed_decimal_real_mask internal static bit(36) initial dcl 18-41 fixed_mask internal static bit(36) initial dcl 18-3 float_decimal_complex_mask internal static bit(36) initial dcl 18-41 float_decimal_real_mask internal static bit(36) initial dcl 18-41 float_mask internal static bit(36) initial dcl 18-3 floor_fun internal static bit(9) initial dcl 13-8 format_mask internal static bit(36) initial dcl 18-3 format_value_node internal static bit(9) initial dcl 12-5 fortran_read internal static bit(9) initial dcl 13-8 fortran_write internal static bit(9) initial dcl 13-8 free_based internal static bit(9) initial dcl 13-8 free_ctl internal static bit(9) initial dcl 13-8 free_var internal static bit(9) initial dcl 13-8 ft_char_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 3-96 ftn_file_manip internal static bit(9) initial dcl 13-8 ftn_trans_loop internal static bit(9) initial dcl 13-8 generic_mask internal static bit(36) initial dcl 18-3 get_data_trans internal static bit(9) initial dcl 13-8 get_edit_trans internal static bit(9) initial dcl 13-8 get_file internal static bit(9) initial dcl 13-8 get_list_trans internal static bit(9) initial dcl 13-8 get_string internal static bit(9) initial dcl 13-8 greater_or_equal internal static bit(9) initial dcl 13-8 greater_than internal static bit(9) initial dcl 13-8 half_ internal static fixed bin(3,0) initial dcl 15-5 half_to_word internal static bit(9) initial dcl 13-8 imag_fun internal static bit(9) initial dcl 13-8 index_after_fun internal static bit(9) initial dcl 13-8 index_before_fun internal static bit(9) initial dcl 13-8 index_fun internal static bit(9) initial dcl 13-8 index_rev_fun internal static bit(9) initial dcl 13-8 initialed_mask internal static bit(36) initial dcl 18-3 insb internal static bit(5) initial dcl 123 insb_5 internal static bit(9) initial dcl 138 insm internal static bit(5) initial dcl 123 int_entry internal static fixed bin(15,0) initial dcl 11-1 int_entry_other internal static fixed bin(15,0) initial dcl 11-1 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 integer_type internal static bit(36) initial dcl 4-71 irreducible_mask internal static bit(36) initial dcl 18-3 join internal static bit(9) initial dcl 13-8 jump internal static bit(9) initial dcl 13-8 jump_false internal static bit(9) initial dcl 13-8 jump_if_eq internal static bit(9) initial dcl 13-8 jump_if_ge internal static bit(9) initial dcl 13-8 jump_if_gt internal static bit(9) initial dcl 13-8 jump_if_le internal static bit(9) initial dcl 13-8 jump_if_lt internal static bit(9) initial dcl 13-8 jump_if_ne internal static bit(9) initial dcl 13-8 jump_true internal static bit(9) initial dcl 13-8 l_parn internal static bit(9) initial dcl 13-8 lab automatic pointer dcl 760 label based structure level 1 dcl 17-1 label_array_element_node internal static bit(9) initial dcl 12-5 label_constant internal static fixed bin(15,0) initial dcl 11-1 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 label_mask internal static bit(36) initial dcl 18-3 label_node internal static bit(9) initial dcl 12-5 label_size internal static fixed bin(8,0) initial dcl 14-5 label_variable internal static fixed bin(15,0) initial dcl 11-1 length builtin function dcl 94 length_fun internal static bit(9) initial dcl 13-8 less_or_equal internal static bit(9) initial dcl 13-8 less_than internal static bit(9) initial dcl 13-8 line_format internal static bit(9) initial dcl 13-8 list_node internal static bit(9) initial dcl 12-5 load 000000 constant entry external dcl 84 local_label_var_type internal static bit(36) initial dcl 4-71 local_label_variable internal static fixed bin(15,0) initial dcl 11-1 local_mask internal static bit(36) initial dcl 18-3 locate_file internal static bit(9) initial dcl 13-8 lock_file internal static bit(9) initial dcl 13-8 lock_fun internal static bit(9) initial dcl 13-8 lock_mask internal static bit(36) initial dcl 18-3 log10_fun internal static bit(9) initial dcl 13-8 log2_fun internal static bit(9) initial dcl 13-8 log_fun internal static bit(9) initial dcl 13-8 long_op$extend_stack 000000 constant entry external dcl 72 loop internal static bit(9) initial dcl 13-8 lte internal static bit(5) initial dcl 123 machine_state_node internal static bit(9) initial dcl 12-5 make_desc internal static bit(9) initial dcl 13-8 max_area_size internal static fixed bin(31,0) initial dcl 4-5 max_bit_string internal static fixed bin(31,0) initial dcl 4-5 max_bit_string_constant internal static fixed bin(31,0) initial dcl 4-5 max_char_string internal static fixed bin(31,0) initial dcl 4-5 max_char_string_constant internal static fixed bin(31,0) initial dcl 4-5 max_dec_scale internal static fixed bin(8,0) initial dcl 14-5 max_fun internal static bit(9) initial dcl 13-8 max_identifier_length internal static fixed bin(31,0) initial dcl 4-5 max_index_register_value internal static fixed bin(31,0) initial dcl 14-38 in procedure "convert_chars" max_index_register_value internal static fixed bin(31,0) initial dcl 4-5 in procedure "pl1_descriptor_type" max_length_p internal static fixed bin(8,0) initial dcl 14-5 max_length_precision internal static fixed bin(31,0) initial dcl 4-5 max_list_elements internal static fixed bin(17,0) initial dcl 9-12 max_number_of_dimensions internal static fixed bin(31,0) initial dcl 4-5 max_number_of_operands internal static fixed bin(15,0) initial dcl 8-15 max_offset internal static fixed bin(8,0) initial array dcl 14-5 max_offset_precision internal static fixed bin(31,0) initial dcl 4-5 max_p_bin_or_dec internal static fixed bin(31,0) initial dcl 4-5 max_p_dec internal static fixed bin(31,0) initial dcl 4-5 max_p_fix_bin_1 internal static fixed bin(8,0) initial dcl 14-5 max_p_fix_bin_2 internal static fixed bin(31,0) initial dcl 4-5 max_p_fix_dec internal static fixed bin(8,0) initial dcl 14-5 max_p_flt_bin_1 internal static fixed bin(8,0) initial dcl 14-5 max_p_flt_bin_2 internal static fixed bin(31,0) initial dcl 4-5 max_p_xreg internal static fixed bin(8,0) initial dcl 14-5 max_scale internal static fixed bin(31,0) initial dcl 4-5 max_signed_index_register_value internal static fixed bin(31,0) initial dcl 4-5 max_signed_xreg_precision internal static fixed bin(31,0) initial dcl 4-5 max_uns_xreg_precision internal static fixed bin(31,0) initial dcl 4-5 max_words_per_variable internal static fixed bin(31,0) initial dcl 4-5 micro_op_code automatic bit(5) dcl 764 min_area_size internal static fixed bin(31,0) initial dcl 4-5 min_dec_scale internal static fixed bin(8,0) initial dcl 14-5 min_fun internal static bit(9) initial dcl 13-8 min_scale internal static fixed bin(31,0) initial dcl 4-5 mod2_ internal static fixed bin(3,0) initial dcl 15-5 mod4_ internal static fixed bin(3,0) initial dcl 15-5 mod_bit internal static bit(9) initial dcl 13-8 mod_byte internal static bit(9) initial dcl 13-8 mod_fun internal static bit(9) initial dcl 13-8 mod_half internal static bit(9) initial dcl 13-8 mod_word internal static bit(9) initial dcl 13-8 mult internal static bit(9) initial dcl 13-8 nop internal static bit(9) initial dcl 13-8 not_bits internal static bit(9) initial dcl 13-8 not_equal internal static bit(9) initial dcl 13-8 off_fun internal static bit(9) initial dcl 13-8 offset_mask internal static bit(36) initial dcl 18-3 open_file internal static bit(9) initial dcl 13-8 or_bits internal static bit(9) initial dcl 13-8 pack internal static bit(9) initial dcl 13-8 packed_digits_per_char internal static fixed bin(8,0) initial dcl 14-5 packed_digits_per_character internal static fixed bin(31,0) initial dcl 4-5 packed_digits_per_word internal static fixed bin(8,0) initial dcl 14-5 packed_ptr internal static fixed bin(15,0) initial dcl 11-1 page_format internal static bit(9) initial dcl 13-8 param_desc_ptr internal static bit(9) initial dcl 13-8 param_ptr internal static bit(9) initial dcl 13-8 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 3-132 pic_test internal static fixed bin(15,0) initial dcl 96 picture_char_type internal static fixed bin(8,0) initial packed unaligned dcl 19-20 picture_complexfix_type internal static fixed bin(8,0) initial packed unaligned dcl 19-20 picture_complexflo_type internal static fixed bin(8,0) initial packed unaligned dcl 19-20 picture_format internal static bit(9) initial dcl 13-8 picture_mask internal static bit(36) initial dcl 18-3 picture_realfix_type internal static fixed bin(8,0) initial packed unaligned dcl 19-20 picture_realflo_type internal static fixed bin(8,0) initial packed unaligned dcl 19-20 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 pl1_mod_fun internal static bit(9) initial dcl 13-8 pointer_type internal static bit(36) initial dcl 4-71 precision_mask internal static bit(36) initial dcl 18-3 prefix_plus internal static bit(9) initial dcl 13-8 ptr_fun internal static bit(9) initial dcl 13-8 ptr_mask internal static bit(36) initial dcl 18-3 put_control internal static bit(9) initial dcl 13-8 put_data_trans internal static bit(9) initial dcl 13-8 put_edit_trans internal static bit(9) initial dcl 13-8 put_field internal static bit(9) initial dcl 13-8 put_field_chk internal static bit(9) initial dcl 13-8 put_file internal static bit(9) initial dcl 13-8 put_list_trans internal static bit(9) initial dcl 13-8 put_string internal static bit(9) initial dcl 13-8 r_format internal static bit(9) initial dcl 13-8 r_parn internal static bit(9) initial dcl 13-8 range_ck internal static bit(9) initial dcl 13-8 rank_fun internal static bit(9) initial dcl 13-8 read_file internal static bit(9) initial dcl 13-8 real_fix_bin_1 internal static fixed bin(15,0) initial dcl 11-1 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 real_float_picture internal static fixed bin(17,0) initial dcl 20-1 real_flt_bin_1 internal static fixed bin(15,0) initial dcl 11-1 real_flt_bin_2 internal static fixed bin(15,0) initial dcl 11-1 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fun internal static bit(9) initial dcl 13-8 real_mask internal static bit(36) initial dcl 18-3 real_type internal static bit(36) initial dcl 4-71 record_io internal static bit(9) initial dcl 13-8 reducible_mask internal static bit(36) initial dcl 18-3 refer internal static bit(9) initial dcl 13-8 reference_node internal static bit(9) initial dcl 12-5 rel_fun internal static bit(9) initial dcl 13-8 repeat_fun internal static bit(9) initial dcl 13-8 return_bits internal static bit(9) initial dcl 13-8 return_string internal static bit(9) initial dcl 13-8 return_value internal static bit(9) initial dcl 13-8 return_words internal static bit(9) initial dcl 13-8 returns_mask internal static bit(36) initial dcl 18-3 reverse_fun internal static bit(9) initial dcl 13-8 revert_on internal static bit(9) initial dcl 13-8 rewrite_file internal static bit(9) initial dcl 13-8 sc automatic char(1) dcl 762 scaled automatic bit(1) packed unaligned dcl 48 search builtin function dcl 94 search_fun internal static bit(9) initial dcl 13-8 search_rev_fun internal static bit(9) initial dcl 13-8 segno_fun internal static bit(9) initial dcl 13-8 setbitno_fun internal static bit(9) initial dcl 13-8 setcharno_fun internal static bit(9) initial dcl 13-8 sf_par_node internal static bit(9) initial dcl 12-5 sign_fun internal static bit(9) initial dcl 13-8 signal_on internal static bit(9) initial dcl 13-8 signed_mask internal static bit(36) initial dcl 18-3 sin_fun internal static bit(9) initial dcl 13-8 sind_fun internal static bit(9) initial dcl 13-8 skip_format internal static bit(9) initial dcl 13-8 source_node internal static bit(9) initial dcl 12-5 sqrt_fun internal static bit(9) initial dcl 13-8 stack_ptr internal static bit(9) initial dcl 13-8 stack_temp$free_temp 000000 constant entry external dcl 84 stackbaseptr_fun internal static bit(9) initial dcl 13-8 stackframeptr_fun internal static bit(9) initial dcl 13-8 stacq_fun internal static bit(9) initial dcl 13-8 statement_node internal static bit(9) initial dcl 12-5 std_arg_list internal static bit(9) initial dcl 13-8 std_call internal static bit(9) initial dcl 13-8 std_entry internal static bit(9) initial dcl 13-8 std_return internal static bit(9) initial dcl 13-8 stop internal static bit(9) initial dcl 13-8 storage_block_mask internal static bit(36) initial dcl 18-3 storage_block_type internal static bit(36) initial dcl 4-71 store$save_string_temp 000000 constant entry external dcl 72 stream_prep internal static bit(9) initial dcl 13-8 string_mask internal static bit(36) initial dcl 18-41 structure_mask internal static bit(36) initial dcl 18-3 sub internal static bit(9) initial dcl 13-8 symbol_node internal static bit(9) initial dcl 12-5 tan_fun internal static bit(9) initial dcl 13-8 tand_fun internal static bit(9) initial dcl 13-8 temporary_node internal static bit(9) initial dcl 12-5 terminate_trans internal static bit(9) initial dcl 13-8 token_node internal static bit(9) initial dcl 12-5 translate_fun internal static bit(9) initial dcl 13-8 trunc_fun internal static bit(9) initial dcl 13-8 unaligned_mask internal static bit(36) initial dcl 18-3 undesirable_mask internal static bit(36) initial dcl 18-41 units_per_word internal static fixed bin(8,0) initial array dcl 14-5 unlock_file internal static bit(9) initial dcl 13-8 unpacked_ptr internal static fixed bin(15,0) initial dcl 11-1 unsigned_mask internal static bit(36) initial dcl 18-3 variable_mask internal static bit(36) initial dcl 18-3 vclock_fun internal static bit(9) initial dcl 13-8 verify_fun internal static bit(9) initial dcl 13-8 verify_ltrim_fun internal static bit(9) initial dcl 13-8 verify_rev_fun internal static bit(9) initial dcl 13-8 verify_rtrim_fun internal static bit(9) initial dcl 13-8 word_ internal static fixed bin(3,0) initial dcl 15-5 word_to_mod2 internal static bit(9) initial dcl 13-8 word_to_mod4 internal static bit(9) initial dcl 13-8 word_to_mod8 internal static bit(9) initial dcl 13-8 wordno_fun internal static bit(9) initial dcl 13-8 words_per_condition_var internal static fixed bin(31,0) initial dcl 4-5 words_per_entry_var internal static fixed bin(31,0) initial dcl 4-5 words_per_file_var internal static fixed bin(31,0) initial dcl 4-5 words_per_fix_bin_1 internal static fixed bin(31,0) initial dcl 4-5 words_per_fix_bin_2 internal static fixed bin(31,0) initial dcl 4-5 words_per_flt_bin_1 internal static fixed bin(31,0) initial dcl 4-5 words_per_flt_bin_2 internal static fixed bin(31,0) initial dcl 4-5 words_per_format internal static fixed bin(31,0) initial dcl 4-5 words_per_label_var internal static fixed bin(31,0) initial dcl 4-5 words_per_offset internal static fixed bin(31,0) initial dcl 4-5 words_per_packed_pointer internal static fixed bin(31,0) initial dcl 4-5 words_per_pointer internal static fixed bin(31,0) initial dcl 4-5 words_per_varying_string_header internal static fixed bin(31,0) initial dcl 4-5 write_file internal static bit(9) initial dcl 13-8 x_format internal static bit(9) initial dcl 13-8 xor_bits internal static bit(9) initial dcl 13-8 NAMES DECLARED BY EXPLICIT CONTEXT. case 000000 constant label array(15) dcl 813 ref 809 convert_arithmetic 000120 constant entry external dcl 191 convert_chars 000107 constant entry external dcl 35 drifting_sign 004205 constant entry internal dcl 1035 ref 868 879 889 fill_seq 005053 constant entry internal dcl 1280 ref 323 337 345 1107 force 004334 constant entry internal dcl 1105 ref 933 1095 1121 1150 force_significance 004062 constant entry internal dcl 965 ref 813 922 1010 force_significance_bz 004107 constant entry internal dcl 985 ref 918 928 gen_arithmetic_builtin 002134 constant entry external dcl 627 gen_arithmetic_call 001745 constant entry external dcl 578 gen_attr 005416 constant entry internal dcl 1368 ref 416 416 1322 1322 get_desc 005130 constant entry internal dcl 1307 ref 601 612 618 652 659 get_str_temp 004602 constant entry internal dcl 1215 ref 357 get_temp 004571 constant entry internal dcl 1200 ref 222 243 302 inline_picture 003373 constant entry internal dcl 755 ref 509 insert_pun 004237 constant entry internal dcl 1061 ref 909 914 issue 004345 constant entry internal dcl 1117 ref 823 826 874 885 955 974 977 996 998 1014 1025 1066 1076 1077 1082 issue_2 004370 constant entry internal dcl 1140 ref 1050 issue_4 004361 constant entry internal dcl 1130 ref 893 899 issue_btd 004665 constant entry internal dcl 1232 ref 239 244 268 303 issue_mvne 004721 constant entry internal dcl 1242 ref 361 942 join 004377 constant label dcl 1150 in procedure "issue_4" ref 1138 join 004615 constant label dcl 1221 in procedure "get_temp" ref 1211 l1 005226 constant label dcl 1337 ref 1344 l2 002342 constant label dcl 665 ref 625 l3 002620 constant label dcl 715 ref 695 non_drifting 004133 constant entry internal dcl 1006 ref 848 866 open_picture 004424 constant entry internal dcl 1161 ref 783 pad_ref 004770 constant entry internal dcl 1251 ref 359 374 788 931 picture_op 001461 constant entry external dcl 483 pl1_descriptor_type 003100 constant entry internal dcl 1-8 ref 416 1322 prepare_operands 004460 constant entry internal dcl 1179 ref 595 643 put 004317 constant entry internal dcl 1091 ref 814 825 836 843 859 1054 start_suppression 004044 constant entry internal dcl 949 ref 835 842 857 1041 step 003764 constant label dcl 924 ref 815 829 837 844 862 876 886 895 901 1030 1055 1085 NAME DECLARED BY CONTEXT OR IMPLICATION. verify builtin function ref 785 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 6312 6436 5637 6322 Length 7330 5637 124 655 453 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME convert_chars 640 external procedure is an external procedure. pl1_descriptor_type internal procedure shares stack frame of external procedure convert_chars. inline_picture internal procedure shares stack frame of external procedure convert_chars. start_suppression internal procedure shares stack frame of external procedure convert_chars. force_significance internal procedure shares stack frame of external procedure convert_chars. force_significance_bz internal procedure shares stack frame of external procedure convert_chars. non_drifting internal procedure shares stack frame of external procedure convert_chars. drifting_sign internal procedure shares stack frame of external procedure convert_chars. insert_pun internal procedure shares stack frame of external procedure convert_chars. put internal procedure shares stack frame of external procedure convert_chars. force internal procedure shares stack frame of external procedure convert_chars. issue internal procedure shares stack frame of external procedure convert_chars. issue_4 internal procedure shares stack frame of external procedure convert_chars. open_picture internal procedure shares stack frame of external procedure convert_chars. prepare_operands internal procedure shares stack frame of external procedure convert_chars. get_temp internal procedure shares stack frame of external procedure convert_chars. issue_btd internal procedure shares stack frame of external procedure convert_chars. issue_mvne internal procedure shares stack frame of external procedure convert_chars. pad_ref internal procedure shares stack frame of external procedure convert_chars. fill_seq internal procedure shares stack frame of external procedure convert_chars. get_desc internal procedure shares stack frame of external procedure convert_chars. gen_attr internal procedure shares stack frame of external procedure convert_chars. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 desc get_desc STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME convert_chars 000100 lp convert_chars 000102 arg convert_chars 000304 arg_pt convert_chars 000306 p convert_chars 000310 p1 convert_chars 000312 p2 convert_chars 000314 ap convert_chars 000316 q convert_chars 000320 buff convert_chars 000326 s convert_chars 000330 sym convert_chars 000334 atomic convert_chars 000335 comparison convert_chars 000336 c convert_chars 000337 check convert_chars 000340 varying_target convert_chars 000341 adjust convert_chars 000342 increment convert_chars 000343 macro convert_chars 000344 last_freed convert_chars 000345 iop convert_chars 000346 i convert_chars 000347 j convert_chars 000350 k convert_chars 000351 k1 convert_chars 000352 k2 convert_chars 000353 arg_pos convert_chars 000354 n_args convert_chars 000355 n convert_chars 000356 type convert_chars 000360 dtype convert_chars 000362 prec convert_chars 000364 scale convert_chars 000366 length_hold convert_chars 000367 iscan convert_chars 000370 tprec convert_chars 000371 word convert_chars 000372 nchars convert_chars 000373 edit_sequence convert_chars 000426 prec pl1_descriptor_type 000427 dtype pl1_descriptor_type 000430 type pl1_descriptor_type 000440 pp inline_picture 000442 picture_pos inline_picture 000443 type inline_picture 000444 prec inline_picture 000445 scale inline_picture 000446 scalefactor inline_picture 000447 picture_length inline_picture 000450 nrands inline_picture 000451 source_length inline_picture 000452 pc inline_picture 000453 drift inline_picture 000454 zero_sup_char inline_picture 000455 current_micro_op inline_picture 000456 micro_inst inline_picture 000457 zero_suppression inline_picture 000460 have_drift inline_picture 000461 have_suppression inline_picture 000462 insertion_on_zero inline_picture 000463 test_zero inline_picture 000524 table_change drifting_sign 000564 i issue_4 000565 n issue_4 000566 p issue_4 000606 i prepare_operands 000634 length get_temp 000635 type get_temp 000636 p get_temp 000640 long get_temp 000664 p1 pad_ref 000666 size pad_ref 000676 mop fill_seq 000677 n fill_seq 000700 i fill_seq 000701 ninst fill_seq 000702 j fill_seq 000712 p get_desc 000714 q get_desc 000716 r get_desc 000720 s get_desc 000722 arg get_desc 000726 type get_desc 000727 scale get_desc 000730 desc_type get_desc THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 r_g_a r_e_as r_le_a alloc_char_temp call_ext_out_desc call_ext_out return_mac fl2_to_fx1 mdfx1 shorten_stack ext_entry ceil_fl THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. adjust_ref_count aq_man$load_var aq_man$lock assign_op$length_of_varying base_man$load_var base_man$load_var_and_lock c_a compile_exp compile_exp$save compile_exp$save_exp compile_link copy_temp create_list expmac expmac$many expmac$many_eis expmac$one_eis expmac$two_eis expmac$zero generate_constant generate_constant$char_string generate_constant$real_fix_bin_1 get_reference load_size$a_or_q need_temp prepare_operand reserve$declare_lib stack_temp$assign_block state_man$flush state_man$flush_ref state_man$unlock store_bit_address xr_man$load_const xr_man$super_lock THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cg_stat$double_temp cg_stat$ext_proc_list cg_stat$save_exp_called LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 48 000077 35 000102 191 000115 193 000126 194 000133 195 000137 197 000141 201 000150 202 000155 203 000161 204 000166 205 000170 206 000174 208 000176 212 000204 214 000210 220 000235 222 000241 223 000246 224 000263 225 000264 226 000266 227 000304 230 000305 235 000320 238 000325 239 000326 240 000327 243 000330 244 000335 245 000336 246 000340 248 000345 249 000360 252 000361 258 000363 259 000364 261 000366 263 000375 265 000377 266 000401 268 000411 269 000412 270 000415 272 000417 273 000426 274 000431 275 000433 276 000436 277 000440 279 000442 281 000445 282 000451 283 000453 284 000455 286 000456 287 000462 288 000464 291 000466 293 000477 296 000500 301 000502 302 000511 303 000513 304 000514 305 000516 306 000521 310 000524 315 000537 317 000541 322 000543 323 000545 325 000556 326 000563 327 000566 328 000571 335 000572 336 000574 337 000600 339 000605 340 000612 342 000622 343 000626 344 000633 345 000635 346 000641 349 000644 351 000647 352 000657 354 000660 355 000702 356 000705 357 000706 359 000720 361 000722 363 000723 365 000730 371 000731 374 000742 379 000753 383 000761 385 000766 386 000772 387 000775 388 001001 389 001002 393 001003 397 001024 401 001042 403 001046 404 001050 406 001055 407 001066 408 001077 409 001100 411 001112 416 001132 418 001166 420 001201 421 001215 424 001231 432 001234 436 001257 437 001262 438 001264 439 001301 440 001304 444 001323 448 001330 449 001332 454 001346 456 001351 458 001357 460 001365 466 001375 468 001402 473 001411 474 001417 475 001440 477 001442 478 001455 483 001456 485 001467 487 001473 489 001475 491 001504 493 001512 495 001515 500 001523 501 001533 502 001534 503 001536 504 001543 509 001565 511 001572 513 001603 514 001605 516 001607 517 001610 518 001615 520 001626 521 001633 523 001637 524 001660 526 001662 527 001667 529 001674 532 001706 534 001715 536 001736 539 001740 578 001741 584 001753 585 001760 587 001763 588 001765 589 001767 590 001770 592 001773 593 001775 595 002000 597 002001 598 002005 600 002011 601 002020 602 002022 604 002023 605 002025 608 002032 608 002036 609 002042 611 002053 612 002057 614 002061 616 002071 617 002073 618 002077 619 002101 622 002107 622 002120 624 002122 625 002126 627 002127 631 002142 632 002146 633 002152 635 002165 636 002175 639 002207 640 002211 641 002212 643 002214 645 002215 647 002227 649 002236 650 002247 651 002251 652 002261 653 002271 655 002273 656 002275 658 002314 659 002325 662 002335 663 002341 665 002342 669 002353 671 002374 673 002404 675 002410 676 002412 678 002430 680 002436 681 002451 682 002454 683 002455 684 002460 692 002462 693 002463 694 002473 695 002476 697 002502 699 002505 700 002512 703 002516 704 002532 706 002545 707 002555 709 002564 710 002600 711 002613 713 002616 715 002620 717 002622 718 002624 719 002644 721 002655 722 002660 724 002663 725 002722 727 002724 728 002737 729 002742 730 002746 733 002747 734 002770 735 003007 736 003014 739 003025 741 003042 743 003044 744 003053 746 003057 747 003062 749 003075 751 003077 1 8 003100 1 33 003102 1 34 003106 1 36 003110 1 38 003116 1 46 003137 1 47 003142 1 49 003147 1 50 003152 1 52 003160 1 53 003163 1 56 003173 1 57 003176 1 59 003204 1 60 003207 1 67 003225 1 68 003230 1 70 003236 1 71 003241 1 74 003251 1 75 003254 1 77 003262 1 78 003265 1 83 003276 1 84 003301 1 89 003312 1 90 003315 1 94 003323 1 98 003331 1 102 003337 1 106 003345 1 110 003353 1 114 003361 1 118 003367 1 120 003370 755 003373 777 003375 783 003402 785 003403 788 003422 789 003424 790 003441 792 003445 794 003450 796 003455 801 003466 802 003472 803 003474 804 003477 807 003501 808 003511 809 003516 813 003527 814 003530 815 003534 819 003535 823 003544 825 003553 826 003557 828 003571 829 003572 833 003573 834 003575 835 003577 836 003600 837 003604 841 003605 842 003607 843 003610 844 003614 848 003615 852 003623 854 003625 855 003627 857 003632 858 003633 859 003634 862 003640 866 003641 868 003647 872 003650 874 003655 875 003661 876 003663 879 003664 883 003665 885 003672 886 003676 889 003677 893 003700 894 003704 895 003705 899 003706 900 003712 901 003713 905 003714 909 003716 913 003717 914 003721 918 003722 920 003744 922 003763 924 003764 925 003772 927 003774 928 003777 931 004003 933 004005 934 004006 936 004011 938 004015 939 004016 940 004036 942 004037 946 004040 949 004044 951 004045 953 004047 955 004051 956 004055 959 004057 962 004061 965 004062 967 004063 969 004065 971 004067 973 004075 974 004077 975 004101 976 004102 977 004103 979 004105 982 004106 985 004107 989 004110 991 004112 993 004114 995 004122 996 004124 997 004126 998 004127 1000 004131 1003 004132 1006 004133 1008 004134 1010 004140 1011 004141 1014 004143 1017 004152 1020 004164 1021 004167 1023 004175 1025 004177 1027 004201 1029 004202 1030 004204 1035 004205 1039 004206 1041 004210 1042 004211 1044 004214 1045 004216 1047 004220 1049 004225 1050 004227 1052 004231 1054 004232 1055 004236 1061 004237 1063 004240 1066 004244 1067 004250 1070 004251 1072 004257 1074 004261 1076 004264 1077 004266 1078 004273 1081 004274 1082 004314 1085 004316 1091 004317 1095 004321 1098 004326 1099 004332 1101 004333 1105 004334 1107 004335 1110 004342 1111 004343 1113 004344 1117 004345 1121 004347 1123 004350 1124 004357 1126 004360 1130 004361 1136 004363 1137 004365 1138 004367 1140 004370 1147 004372 1148 004374 1150 004377 1152 004400 1153 004407 1154 004420 1155 004421 1157 004423 1161 004424 1163 004425 1165 004431 1166 004434 1167 004440 1168 004444 1169 004450 1170 004453 1172 004457 1179 004460 1183 004461 1184 004473 1185 004515 1187 004517 1189 004525 1191 004532 1192 004550 1193 004554 1194 004555 1198 004570 1200 004571 1208 004573 1209 004576 1210 004600 1211 004601 1215 004602 1217 004604 1218 004607 1219 004613 1221 004615 1222 004624 1223 004630 1224 004632 1225 004637 1226 004645 1228 004661 1232 004665 1234 004666 1237 004702 1239 004720 1242 004721 1244 004722 1246 004746 1248 004767 1251 004770 1261 004772 1263 004775 1265 005004 1267 005007 1272 005023 1274 005033 1276 005052 1280 005053 1288 005055 1289 005057 1291 005062 1293 005066 1294 005075 1295 005102 1297 005106 1298 005112 1301 005124 1302 005125 1304 005127 1307 005130 1315 005132 1316 005135 1318 005137 1320 005145 1322 005150 1324 005167 1326 005200 1328 005203 1330 005211 1332 005215 1335 005220 1337 005226 1340 005255 1341 005260 1343 005264 1344 005272 1347 005273 1349 005275 1351 005304 1352 005305 1355 005316 1357 005324 1358 005343 1360 005346 1361 005371 1363 005412 1368 005416 1378 005420 1381 005436 ----------------------------------------------------------- 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