COMPILATION LISTING OF SEGMENT ext_listing_generator Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 11/10/88 1355.4 mst Thu Options: optimize map 1 /****^ ****************************************************** 2* * * 3* * Copyright, (C) Honeywell Limited, 1983 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* ****************************************************** */ 9 10 11 12 /****^ HISTORY COMMENTS: 13* 1) change(86-07-14,BWong), approve(86-07-14,MCR7382), audit(86-07-17,Ginter), 14* install(86-07-28,MR12.0-1105): 15* Fix fortran bugs 477 and 494. 16* 2) change(86-10-17,Ginter), approve(86-10-17,MCR7556), audit(86-10-22,Huen), 17* install(86-11-13,MR12.0-1216): 18* Fixed fortran bugs 496 and 502. 19* END HISTORY COMMENTS */ 20 21 22 /* format: style3,^delnl,linecom */ 23 ext_listing_generator: 24 procedure (shared_vp, parse_vp, cg_vp); 25 26 /* Created: 7 September 1976, David Levin 27* 28* Modified: 29* 04 Sep 86, AG - 496: Changed display_text$display_create to display 30* more information about pointers in create_entry 31* structures. Display_create now displays the number of 32* pointers, the linkage/stack section offset of each pointer, 33* the absolute offset from the base of the storage section 34* of the pointer target and the name of the symbol the 35* pointer is for. 36* 27 Feb 86, BW - 494: Fix display_text so it doesn't misinterpret 37* data text for instruction text. 38* 29 July 85, HH - 477: Fix code for naming references into 39* 'pl1_operators_' so that unnamed offsets in the range 40* of special offsets won't produce garbage comments. 41* 20 July 83, TO - MSCR: Create internal binoct using ioa_$rsnnl, to 42* comply with MSCR acceptance. 43* 17 Jun 83, HH - 383: Use '#' to represent expression extent array 44* bounds. 45* 10 May 83, RG - 174: To use csi.dirname as pathname when csi.segname is "" 46* 18 Mar 83, HH - Use new include file 'op_mnemonic_dcl_' to declare 47* 'op_mnemonic_$op_mnemonic_'. 48* 3 December 1982, TO - Make length print out take into account 49* the type of units. i.e. words, bits, chars, half_words. 50* 16 November 1982, TO - Make display_text$display_init to output 51* formatted create_init_entry. 52* 8 November 1982, TO - Move operator name processing to cover all. 53* 5 October 1982, TO - Add bit offset print to symbol location. 54* 28 September 1982, TO - extend symbol location field for VLA. 55* 23 September 1982, TO - Add first parts of LA/VLA output additions. 56* 2 September 1982, TO - Add "epp" check to "t" check in printing 57* special pl1_operator_'s names in display_text. 58* 19 May 1982, TO - Add "symbol_name" routine to create names for 59* code_generator generated symbols. Add length_symbol_name to 60* return length of a symbol name. 61* 19 May 1982, TO - to fix potential oob in printing external refs, if 62* a bug in code generator puts unreferenced compiler generated 63* symbols there. 64* 5 August 1981, CRD - Fix bug 333. 65* 6 May 1981, CRD - Include names in headers for main programs and 66* block data subprograms. 67* 13 March 1981, CRD - Print * for upper bound of assumed size array. 68* 18 February 1981, CRD - Change print_symbols to print lower bounds 69* of arrays. 70* 31 July 1979, CRD - Fix bug 228, in which the listing generator blew 71* up trying to print the name of a non-existant pl1 operator. 72* 15 February 1978, dsl - Fix previous bug fix. Print all user symbols. 73* 31 January 1978, David Levin - Change to support new optimizer; fix 74* minor bugs, i.e, fault because there are no cref nodes for a 75* compiler variable. 76* 30 August 1977, David Levin - remove source seg limit of 64K; prevent 77* fault if -table used; print size of stack frame used by program. 78* NOTE -- value of bias changed from 65536 to 131072. 79* 25 March 1977, David Levin - line up cont lines; fix headers; new 80* incl files; move unreferenced common block members to unused 81* part of listing. 82* 9 Dec 1976, David Levin - bugs fixes; line up continuation lines; fix 83* headers; ref fort_version_info$version_name. 84* 85* END Modifications */ 86 87 dcl (shared_vp, parse_vp, cg_vp) 88 pointer; 89 90 dcl (shared_ptr, parse_ptr, cg_ptr) 91 pointer; 92 dcl polish_base ptr; 93 dcl operand_base ptr; 94 dcl object_base ptr; 95 dcl cref_base ptr; 96 dcl source_line_base ptr; 97 dcl listing_base ptr; 98 dcl quad_base ptr; 99 100 dcl 1 shared_structure aligned based (shared_ptr), 1 1 1 2 /* BEGIN fort_shared_vars.incl.pl1 */ 1 3 1 4 1 5 1 6 /****^ HISTORY COMMENTS: 1 7* 1) change(86-07-14,BWong), approve(86-07-14,MCR7286), audit(86-07-17,Ginter), 1 8* install(86-07-28,MR12.0-1105): 1 9* Fix fortran bug 463. 1 10* END HISTORY COMMENTS */ 1 11 1 12 1 13 /* Created: June 1976, David Levin 1 14* 1 15* Modified: 30 Aug 76, David Levin - to add global variables for listing segment. 1 16* Modified: 22 Nov 76, Richard Barnes - to add profile_size 1 17* Modified: 24 Feb 77, Gabriel Chang - for the optimizer 1 18* Modified: 06 Oct 77, Richard Barnes - for the loop optimizer 1 19* Modified: 16 Nov 77, David Levin - add next_free_(temp array_ref). 1 20* Modified: 09 Oct 78, Paul Smee - for larger common and arrays. 1 21* Modified: 03 Apr 79, Paul Smee - add list of include file data. 1 22* Modified: 17 May 79, Paul Smee - add cur_statement_list. 1 23* Modified: 28 Jun 79, Paul Smee - add compile-time math entry arrays. 1 24* Modified: 13 Sep 79, Paul Smee - add default_char_size. 1 25* Modified: 18 Dec 79, Richard Barnes - add free and freei 1 26* Modified: 03 Mar 80, C R Davis - add must_save_stack_extent. 1 27* Modified: 15 Mar 82, T G Oke - add source (line_number, file_number). 1 28* Modified: 20 Sept 82, T G Oke - add VLA_is_256K flag 1 29* Modified: 22 Sept 82, T G Oke - add area creation info to pass to 1 30* listing generator. 1 31* Modified: 17 May 83, M Mabey - add declared_options. 1 32* Modified: 02 Aug 85, B Wong - 463: changed 'must_save_stack_extent' 1 33* to 'pad' since the variable is no longer used. 1 34**/ 1 35 1 36 2 polish_base ptr, 1 37 2 operand_base ptr, 1 38 2 object_base ptr, 1 39 2 quadruple_base ptr, 1 40 2 opt_base ptr, 1 41 2 relocation_base ptr, 1 42 1 43 2 cref_base ptr, /* base of cross reference segment */ 1 44 2 source_line_base ptr, /* base of source line offset segment */ 1 45 2 listing_base ptr, /* base of listing info segment */ 1 46 2 cur_listing ptr, /* points to listing info for the active subprogram */ 1 47 1 48 2 free(2:4) ptr, /* free chains for optimizer */ 1 49 2 freei ptr, /* .. */ 1 50 1 51 2 polish_max_len fixed bin (19), 1 52 2 operand_max_len fixed bin (19), 1 53 2 object_max_len fixed bin (19), 1 54 2 quad_max_len fixed bin (19), 1 55 2 opt_max_len fixed bin (19), 1 56 1 57 2 next_free_polish fixed bin (18), 1 58 2 next_free_operand fixed bin (18), 1 59 2 next_free_object fixed bin (18), 1 60 2 next_free_listing fixed bin (18), 1 61 2 next_free_quad fixed bin (18), 1 62 2 next_free_array_ref fixed bin (18), /* Chain for freed array_ref nodes. */ 1 63 2 next_free_temp fixed bin (18), /* Chain for freed temporary nodes. */ 1 64 2 next_free_opt fixed bin (18), 1 65 1 66 2 first_segment fixed bin, 1 67 2 number_of_source_segments fixed bin (8), 1 68 2 number_of_lines fixed bin, 1 69 2 number_of_crefs fixed bin, 1 70 2 profile_size fixed bin, 1 71 1 72 2 main_entry_point_name char (32) varying, 1 73 1 74 2 cur_statement fixed bin (18), 1 75 2 cur_statement_list fixed bin (17), 1 76 2 cur_subprogram fixed bin (18), 1 77 2 first_subprogram fixed bin (18), 1 78 2 last_subprogram fixed bin (18), 1 79 2 unnamed_block_data_subprogram 1 80 fixed bin (18), 1 81 2 first_entry_name fixed bin (18), 1 82 2 last_entry_name fixed bin (18), 1 83 1 84 2 constant_info (4) aligned structure, 1 85 3 constant_count fixed bin (17), 1 86 3 first_constant fixed bin (18), 1 87 3 last_constant fixed bin (18), 1 88 1 89 2 options aligned, 1 90 3 user_options aligned like fortran_options, 1 91 3 system_options aligned, 1 92 4 is_fast bit (1) unaligned, 1 93 4 namelist_used bit (1) unaligned, 1 94 4 compile_only bit (1) unaligned, 1 95 4 VLA_is_256K bit (1) unaligned, /* FLAG 255/256K code */ 1 96 4 pad bit (32) unaligned, 1 97 1 98 2 incl_data aligned, 1 99 3 incl_count fixed bin, 1 100 3 file_list (0:255), 1 101 4 source_node_offset fixed bin (18), 1 102 4 incl_len fixed bin (21), 1 103 4 incl_ptr unaligned ptr, 1 104 1 105 2 create_constant entry (fixed bin (4), bit (72) aligned) returns (fixed bin (18)) 1 106 variable, 1 107 2 create_char_constant entry (char (*)) returns (fixed bin (18)) 1 108 variable, 1 109 2 print_message entry options (variable) 1 110 variable, 1 111 2 get_next_temp_segment entry (ptr, fixed bin (18)) returns (ptr) 1 112 variable, 1 113 2 negate_round (6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 1 114 returns (bit (72)) variable, 1 115 2 negate_trunc (6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 1 116 returns (bit (72)) variable, 1 117 2 binop_round (6,6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 1 118 returns (bit (72)) variable, 1 119 2 binop_trunc (6,6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 1 120 returns (bit (72)) variable, 1 121 2 comp_parm (6,6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 1 122 returns (bit (72)) variable, 1 123 2 conv_round (6,6) entry (bit (72), fixed bin (35)) 1 124 returns (bit (72)) variable, 1 125 2 conv_trunc (6,6) entry (bit (72), fixed bin (35)) 1 126 returns (bit (72)) variable, 1 127 2 pad bit (1) aligned, 1 128 1 129 /* The following are used by "print_message - decode_source_id" if use_source_info set. */ 1 130 1 131 2 use_source_info bit (1) aligned, 1 132 2 source_file_number fixed bin (35), 1 133 2 source_line_number fixed bin (35), 1 134 2 Area_create_first fixed bin (18), /* start of text to do creation */ 1 135 2 Area_create_last fixed bin (18), /* Last item */ 1 136 2 Area_init_first fixed bin (18), /* start of text to init areas */ 1 137 2 Area_init_last fixed bin (18), /* Last item */ 1 138 2 declared_options aligned like fortran_declared; 1 139 1 140 dcl num_of_word_constants fixed bin (17) defined (constant_info (1).constant_count); 1 141 dcl first_word_constant fixed bin (18) defined (constant_info (1).first_constant); 1 142 dcl last_word_constant fixed bin (18) defined (constant_info (1).last_constant); 1 143 1 144 dcl num_of_dw_constants fixed bin (17) defined (constant_info (2).constant_count); 1 145 dcl first_dw_constant fixed bin (18) defined (constant_info (2).first_constant); 1 146 dcl last_dw_constant fixed bin (18) defined (constant_info (2).last_constant); 1 147 1 148 dcl num_of_char_constants fixed bin (17) defined (constant_info (3).constant_count); 1 149 dcl first_char_constant fixed bin (18) defined (constant_info (3).first_constant); 1 150 dcl last_char_constant fixed bin (18) defined (constant_info (3).last_constant); 1 151 1 152 dcl num_of_block_constants fixed bin (17) defined (constant_info (4).constant_count); 1 153 dcl first_block_constant fixed bin (18) defined (constant_info (4).first_constant); 1 154 dcl last_block_constant fixed bin (18) defined (constant_info (4).last_constant); 1 155 1 156 /* END fort_shared_vars.incl.pl1 */ 101 102 103 dcl 1 parse_structure aligned based (parse_ptr), 2 1 2 2 2 source_info_ptr ptr, 2 3 2 4 2 add_to_lib_list entry(char(*),fixed bin(35)) 2 5 variable, 2 6 2 get_next_source_seg entry(ptr) 2 7 variable, 2 8 2 add_to_lib_list_run entry(char(*),fixed bin(35)) 2 9 entry; 2 10 104 105 106 dcl 1 cg_structure aligned based (cg_ptr), 3 1 3 2 /* BEGIN fort_cg_vars.incl.pl1 */ 3 3 3 4 /* Created: June 1976 3 5* 3 6* Modified: 3 7* 9 December 1976, David Levin - change version_name to ext static 3 8* 10 September 1976, David Levin - to add date time compiled, user id, options,version, and compiler name 3 9* 6 June 1978, Richard Barnes - for loop optimizer 3 10* 9 Oct 1978, Paul E. Smee - changes for larger common and arrays. 3 11* 30 Nov 1978, Paul E. Smee - add fort_version_info$version_number*/ 3 12 3 13 2 num_of_lib_names fixed bin(17), 3 14 2 first_lib_name fixed bin (18) unsigned, 3 15 2 last_lib_name fixed bin (18) unsigned, 3 16 3 17 2 error_level fixed bin(17), 3 18 3 19 2 message_structure structure aligned, 3 20 3 message_number fixed bin (18), 3 21 3 number_of_operands fixed bin, 3 22 3 operands(3), 3 23 4 is_string bit(1) aligned, 3 24 4 operand_index fixed bin (18), 3 25 4 string_length fixed bin, 3 26 4 string_ptr ptr, 3 27 3 28 2 print_message_op entry variable, 3 29 2 create_constant_block entry(ptr,fixed bin) returns(fixed bin (18) unsigned) 3 30 variable, 3 31 2 date_time_compiled fixed bin(71), 3 32 2 objectname char(32) varying, 3 33 2 vuser_id char(32) varying, 3 34 2 options_string char(256) varying; 3 35 3 36 dcl fort_version_info$version_name char(132) varying ext static; 3 37 dcl fort_version_info$version_number char(16) ext static; 3 38 3 39 dcl compiler_name char(8) int static options(constant) init("fortran2"); 3 40 3 41 /* END fort_cg_vars.incl.pl1 */ 107 108 4 1 /* BEGIN INCLUDE FILE fort_options.incl.pl1 */ 4 2 4 3 /****^ *********************************************************** 4 4* * * 4 5* * Copyright, (C) Honeywell Information Systems Inc., 1987 * 4 6* * * 4 7* *********************************************************** */ 4 8 4 9 /****^ HISTORY COMMENTS: 4 10* 1) change(86-07-14,BWong), approve(86-07-14,MCR7382), audit(86-07-17,Ginter), 4 11* install(86-07-28,MR12.0-1105): 4 12* Fix fortran bug 473. 4 13* 2) change(87-06-23,RWaters), approve(87-06-23,MCR7703), audit(87-07-10,Huen), 4 14* install(87-08-06,MR12.1-1069): 4 15* Implemented SCP 6315: fortran error-handling argument. 4 16* END HISTORY COMMENTS */ 4 17 4 18 4 19 /* 4 20* Modified: 12 May 87 by RWaters added debug_io 4 21* Modified: 19 February 1986 by B. Wong & A. Ginter - 473.a: Correct 4 22* comments and size of pad field in fort_declared 4 23* and pad out dfast and fast bit masks to two words. 4 24* Modified: 09 October 1985 by B. Wong - 473: add VLA_auto, VLA_static, 4 25* VLA_parm, VLC, LA_auto, and LA_static. Remove VLA and LA. 4 26* Modified: 28 March 1984 by M. Mabey - Install HFP support. 4 27* Modified: 21 September 1983 by M. Mabey - correct size of pad field in fortran_declared. 4 28* Modified: 16 May 1983 by M. Mabey - add fortran_declared 4 29* Modified: 18 December 1982 by T. Oke - Add 'long_profile'. 4 30* Modified: 22 September 1982 by T. Oke - add VLA and LA 4 31* Modified: 3 May 1982 by T. Oke - add check_multiply 4 32* Modified: 06/24/81 by S. Herbst - add do_rounding & auto_zero to fast_mask and dfast_mask 4 33* Modified: 26 February 1980 by C R Davis - add fast_mask, fix dfast_mask. 4 34* Modified: 31 January 1980 by C R Davis - add stringrange. 4 35* Modified: 13 September 1979 by Paul E. Smee--add ansi_77. 4 36* Modified: 05 December 1978 by Paul E. Smee--add do_rounding, auto_zero. 4 37* Modified: 25 January 1978 by Richard A. Barnes for the loop optimizer 4 38**/ 4 39 4 40 declare 4 41 4 42 1 fortran_options aligned based, 4 43 2 use_library bit (1) unaligned, /* (1) ON if library statements will be parsed */ 4 44 2 optimize bit (1) unaligned, /* (2) ON if optimized code is to be produced */ 4 45 2 time bit (1) unaligned, /* (3) ON for compile timing */ 4 46 2 source_format unaligned, 4 47 3 has_line_numbers bit (1) unaligned, /* (4) ON if each line begins with a line number */ 4 48 3 fold bit (1) unaligned, /* (5) ON if variable names are to be folded to lowercase */ 4 49 3 card bit (1) unaligned, /* (6) ON for card format */ 4 50 3 convert bit (1) unaligned, /* (7) ON for card format to be converted */ 4 51 2 listing unaligned, 4 52 3 source bit (1) unaligned, /* (8) ON for listing of numbered source */ 4 53 3 symbol bit (1) unaligned, /* (9) ON for listing with symbol map */ 4 54 3 map bit (1) unaligned, /* (10) ON for listing with statement map */ 4 55 3 list bit (1) unaligned, /* (11) ON for listing with assembler instructions */ 4 56 2 error_messages unaligned, 4 57 3 brief bit (1) unaligned, /* (12) ON for brief error messages */ 4 58 3 severity fixed bin (3), /* (13-16) suppresses messages below this severity */ 4 59 2 debugging unaligned, 4 60 3 subscriptrange bit (1) unaligned, /* (17) ON for subscript range checking */ 4 61 3 stringrange bit (1) unaligned, /* (18) ON for string range checking */ 4 62 3 brief_table bit (1) unaligned, /* (19) ON for statement table */ 4 63 3 table bit (1) unaligned, /* (20) ON for statement and symbol table */ 4 64 3 profile bit (1) unaligned, /* (21) ON to generate code to meter statements */ 4 65 3 check bit (1) unaligned, /* (22) ON for syntactic and semantic checking only */ 4 66 2 system_debugging unaligned, 4 67 3 stop_after_cg bit (1) unaligned, /* (23) ON if debug stop after code generator */ 4 68 3 stop_after_parse bit (1) unaligned, /* (24) ON if debug stop after parse */ 4 69 2 relocatable bit (1) unaligned, /* (25) ON if relocatable object segment generated */ 4 70 2 optimizing unaligned, 4 71 3 time_optimizer bit (1) unaligned, /* (26) ON if timings for optimizer requested */ 4 72 /* (27) ON if optimizer can loosen safety constraints */ 4 73 3 ignore_articulation_blocks bit (1) unaligned, 4 74 3 consolidate bit(1) unaligned, /* (28) ON if optimizer should run consolidation phase */ 4 75 2 do_rounding bit(1) unaligned, /* (29) ON if floating point round should be used */ 4 76 2 auto_zero bit(1) unaligned, /* (30) ON if auto storage should be zeroed when allocated */ 4 77 2 ansi_77 bit (1) unaligned, /* (31) ON if ansi77 rules are to be followed */ 4 78 2 check_multiply bit (1) unaligned, /* (32) ON if check integer multiply extent */ 4 79 2 VLA_auto bit (1) unaligned, /* (33) ON if auto VLA's being done */ 4 80 2 VLA_parm bit (1) unaligned, /* (34) ON if parm VLA's being done */ 4 81 2 VLA_static bit (1) unaligned, /* (35) ON if static VLA's being done */ 4 82 2 VLC bit (1) unaligned, /* (36) ON if VLC's being done */ 4 83 2 LA_auto bit (1) unaligned, /* (1) ON if auto LA's being done */ 4 84 2 LA_static bit (1) unaligned, /* (2) ON if static LA's being done */ 4 85 2 long_profile bit (1) unaligned, /* (3) ON to generate long_profile */ 4 86 2 static_storage bit (1) unaligned, /* (4) ON if static storage */ 4 87 2 hfp bit (1) unaligned, /* (5) ON if using hex floating point math */ 4 88 2 debug_io bit (1) unaligned, /* (6) */ 4 89 2 pad bit(30) unaligned; /* (7-36) Pad bits */ 4 90 4 91 declare 4 92 4 93 1 fortran_declared aligned based, 4 94 2 ansi66 bit(1) unaligned, /* (1) First word */ 4 95 2 ansi77 bit(1) unaligned, /* (2) */ 4 96 2 auto bit(1) unaligned, /* (3) */ 4 97 2 auto_zero bit(1) unaligned, /* (4) */ 4 98 2 brief bit(1) unaligned, /* (5) */ 4 99 2 binary_floating_point bit(1) unaligned, /* (6) */ 4 100 2 brief_table bit(1) unaligned, /* (7) */ 4 101 2 card bit(1) unaligned, /* (8) */ 4 102 2 check bit(1) unaligned, /* (9) */ 4 103 2 check_multiply bit(1) unaligned, /* (10) */ 4 104 2 consolidate bit(1) unaligned, /* (11) */ 4 105 2 debug bit(1) unaligned, /* (12) */ 4 106 2 debug_cg bit(1) unaligned, /* (13) */ 4 107 2 debug_io bit(1) unaligned, /* (14) */ 4 108 2 default_full bit(1) unaligned, /* (15) */ 4 109 2 default_safe bit(1) unaligned, /* (16) */ 4 110 2 fold bit(1) unaligned, /* (17) */ 4 111 2 free bit(1) unaligned, /* (18) */ 4 112 2 full_optimize bit(1) unaligned, /* (19) */ 4 113 2 hexadecimal_floating_point bit(1) unaligned, 4 114 /* (20) */ 4 115 2 la_auto bit(1) unaligned, /* (21) */ 4 116 2 la_static bit(1) unaligned, /* (22) */ 4 117 2 large_array bit(1) unaligned, /* (23) */ 4 118 2 line_numbers bit(1) unaligned, /* (24) */ 4 119 2 list bit(1) unaligned, /* (25) */ 4 120 2 long bit(1) unaligned, /* (26) */ 4 121 2 long_profile bit(1) unaligned, /* (27) */ 4 122 2 map bit(1) unaligned, /* (28) */ 4 123 2 no_auto_zero bit(1) unaligned, /* (29) */ 4 124 2 no_check bit(1) unaligned, /* (30) */ 4 125 2 no_fold bit(1) unaligned, /* (31) */ 4 126 2 no_large_array bit(1) unaligned, /* (32) */ 4 127 2 no_line_numbers bit(1) unaligned, /* (33) */ 4 128 2 no_map bit(1) unaligned, /* (34) */ 4 129 2 no_optimize bit(1) unaligned, /* (35) */ 4 130 2 no_check_multiply bit(1) unaligned, /* (36) */ 4 131 2 no_debug_io bit(1) unal, /* (1) Second Word */ 4 132 2 no_stringrange bit(1) unaligned, /* (2) */ 4 133 2 no_subscriptrange bit(1) unaligned, /* (3) */ 4 134 2 no_table bit(1) unaligned, /* (4) */ 4 135 2 no_very_large_array bit(1) unaligned, /* (5) */ 4 136 2 no_vla_parm bit(1) unaligned, /* (6) */ 4 137 2 no_version bit(1) unaligned, /* (7) */ 4 138 2 non_relocatable bit(1) unaligned, /* (8) */ 4 139 2 optimize bit(1) unaligned, /* (9) */ 4 140 2 profile bit(1) unaligned, /* (10) */ 4 141 2 relocatable bit(1) unaligned, /* (11) */ 4 142 2 round bit(1) unaligned, /* (12) */ 4 143 2 safe_optimize bit(1) unaligned, /* (13) */ 4 144 2 severity fixed bin(3) unaligned, /* (14-16) */ 4 145 2 static bit(1) unaligned, /* (17) */ 4 146 2 stringrange bit(1) unaligned, /* (18) */ 4 147 2 subscriptrange bit(1) unaligned, /* (19) */ 4 148 2 table bit(1) unaligned, /* (20) */ 4 149 2 time bit(1) unaligned, /* (21) */ 4 150 2 time_ot bit(1) unaligned, /* (22) */ 4 151 2 top_down bit(1) unaligned, /* (23) */ 4 152 2 truncate bit(1) unaligned, /* (24) */ 4 153 2 version bit(1) unaligned, /* (25) */ 4 154 2 very_large_array bit(1) unaligned, /* (26) */ 4 155 2 very_large_common bit(1) unaligned, /* (27) */ 4 156 2 vla_auto bit(1) unaligned, /* (28) */ 4 157 2 vla_parm bit(1) unaligned, /* (29) */ 4 158 2 vla_static bit(1) unaligned, /* (30) */ 4 159 2 pad bit(6) unaligned; /* (31-36) */ 4 160 4 161 4 162 declare /* Options used by DFAST */ 4 163 4 164 dfast_mask bit (72) internal static options (constant) initial ("100110000000000010100000000011"b); 4 165 /* use_library, has_line_numbers, fold, subscriptrange, brief_table */ 4 166 4 167 4 168 declare /* Options used by FAST */ 4 169 4 170 fast_mask bit (72) internal static options (constant) initial ("000100000000000010100000000011"b); 4 171 /* has_line_numbers, subscriptrange, brief_table */ 4 172 4 173 /* END INCLUDE FILE fort_options.incl.pl1 */ 109 5 1 /* BEGIN fort_system_constants.incl.pl1 */ 5 2 5 3 5 4 5 5 /****^ HISTORY COMMENTS: 5 6* 1) change(86-07-14,BWong), approve(86-07-14,MCR7382), audit(86-07-17,Ginter), 5 7* install(86-07-28,MR12.0-1105): 5 8* Fix fortran bug 428. 5 9* END HISTORY COMMENTS */ 5 10 5 11 5 12 /* Created: June 1976, David Levin */ 5 13 5 14 /* Modified: 5 15* 15 Dec 85, RW - 428: Changed max_char_length from 256 to 512. 5 16* 22 Jun 84, MM - Install typeless functions support. 5 17* 17 Jun 83, HH - 383: Added 'process_param_list_op'. 5 18* 12 Jan 83, HH - Added 'form_VLA_packed_ptr_op'. 5 19* 05 Oct 82, HH - Added 'units_per_word'. 5 20* 27 Sep 82, HH - Added 'max_fixed_bin_18', 'max_fixed_bin_24' and 'sys_info$max_seg_size'. 5 21* Removed 'max_stored_value' and 'min_stored_value'. 5 22* 24 October 1981, ME Presser - added inquire_op. 5 23* 20 October 1981, C R Davis - add (read write)_internal_file_op. 5 24* 11 May 1981, Marshall Presser - added op-codes for .EQV. and .NEQV. 5 25* 28 April 1981, Marshall Presser - added default_main_entry_point_name 5 26* 11 March 1981, Marshall Presser - add min_stored_value 5 27* 8 December 1980, C R Davis - add block_if_op, else_if_op, else_op. 5 28* 15 January 1980, C R Davis - add bits_per_char. 5 29* 21 December 1979, Richard A. Barnes - add unrecoverable_errror and 5 30* max_error_level. 5 31* 3 November 1979, Richard Barnes - add pointer_node. 5 32* 17 September 1979, Richard Barnes - add load_preg_op & load_xreg_op 5 33* 13 September 1979, Paul Smee - add colon and concat token types, 5 34* change value of EOS_token, remove default_char_size. 5 35* 31 August 1979, Charlie Davis - change offset units to 5 36* be consistent with those in runtime symbols. 5 37* 13 August 1979, Richard Barnes - add cat_op & substr_op 5 38* 19 July 1979, Richard Barnes - char mode 5 39* 10 October 1978, Paul Smee - double max_stored_value and bias. 5 40* 15 June 1978, Paul Smee - add max_num_of_rands 5 41* 16 November 1977, David Levin - add machine_state_node 5 42* 12 September 1977, Richard Barnes - new ops for loop optimizer 5 43* 30 August 1977, David Levin - change bias from 65536 to 131072. 5 44* 5 July 1977, David Levin - add open_op, close_op, and iostat_op. 5 45* 28 April 1977, David Levin - add xmit_vector_op in operator list 5 46* 22 April 1977, David Levin - add max_prec_single, last_assigned_mode 5 47* 24 February 1977, Gabriel Chang for the optimizer. 5 48* 23 February 1977, David Levin to change name of count operand. 5 49* 28 October 1976, David Levin and Gabriel Chang to add 2 new ops and 5 50* 1 new node type. 5 51* 2 September 1976, David Levin - add 8 new ops and change name of 5 52* data_op. 5 53**/ 5 54 /* SYSTEM CONSTANTS */ 5 55 5 56 dcl bias init(262144) fixed bin(19) int static options(constant); 5 57 dcl gap_value init(0) fixed bin int static options(constant); 5 58 dcl max_fixed_bin_18 init(111111111111111111b) fixed bin (18) static options (constant); 5 59 dcl max_fixed_bin_24 init(111111111111111111111111b) fixed bin (24) static options (constant); 5 60 dcl max_num_of_rands init(127) fixed bin int static options(constant); 5 61 dcl sys_info$max_seg_size 5 62 fixed bin (18) ext; 5 63 5 64 dcl ( unrecoverable_error init(3), 5 65 max_error_level init(4)) 5 66 fixed bin int static options(constant); 5 67 5 68 dcl (main_program init(0), 5 69 block_data init(1), 5 70 subroutine init(2), 5 71 function init(3), 5 72 chars_per_word init(4), 5 73 chars_per_dw init(8), 5 74 bits_per_char init(9), 5 75 first_auto_loc init(64), 5 76 max_prec_single init(8)) fixed bin(9) int static options(constant); 5 77 dcl max_char_length init(512) fixed bin(10) int static options(constant); 5 78 5 79 dcl blank_common_name init("blnk*com") char(8) aligned int static options(constant); 5 80 declare default_main_entry_point_name 5 81 char (5) int static options (constant) initial ("main_"); 5 82 declare unnamed_block_data_subprg_name 5 83 char (29) int static options (constant) initial ("unnamed block data subprogram"); 5 84 5 85 /* NODE TYPES */ 5 86 5 87 dcl (fill_node init(0), 5 88 source_node init(1), 5 89 symbol_node init(2), 5 90 dimension_node init(3), 5 91 temporary_node init(4), 5 92 constant_node init(5), 5 93 label_node init(6), 5 94 header_node init(7), 5 95 char_constant_node init(8), 5 96 array_ref_node init(9), 5 97 proc_frame_node init(10), 5 98 library_node init(11), 5 99 subprogram_node init(12), 5 100 arg_desc_node init(13), 5 101 pointer_node init(14), 5 102 machine_state_node init(15)) fixed bin(4) aligned internal static options(constant); 5 103 5 104 /* DATA TYPES */ 5 105 5 106 dcl (int_mode init(1), 5 107 real_mode init(2), 5 108 dp_mode init(3), 5 109 cmpx_mode init(4), 5 110 logical_mode init(5), 5 111 char_mode init(6), 5 112 typeless_mode init(7), 5 113 last_assigned_mode init(7)) fixed bin(4) aligned internal static options(constant); 5 114 5 115 dcl data_type_size(7) init(1,1,2,2,1,0,1) fixed bin int static options(constant); 5 116 5 117 5 118 /* OPERAND TYPES */ 5 119 5 120 dcl (variable_type init(1), 5 121 constant_type init(2), 5 122 array_ref_type init(3), 5 123 temp_type init(4), 5 124 count_type init(5), 5 125 rel_constant init(6), 5 126 bif init(7), 5 127 statement_function init(8), 5 128 external init(9), 5 129 entry_type init(10), 5 130 dummy init(11), 5 131 error init(12)) fixed bin(4) aligned internal static options(constant); 5 132 5 133 5 134 /* OFFSET UNITS */ 5 135 5 136 dcl 5 137 (word_units init (0), 5 138 bit_units init (1), 5 139 char_units init (2), 5 140 halfword_units init (3)) fixed bin (3) aligned internal static options(constant); 5 141 5 142 dcl units_per_word (0:3) init (1, 36, 4, 2) fixed bin (6) static options (constant); 5 143 5 144 5 145 /* TOKEN MASKS */ 5 146 5 147 dcl 5 148 (is_operand initial("101000000"b), 5 149 is_operator initial("010000000"b), 5 150 is_constant initial("001000000"b), 5 151 is_arith_constant initial("000100000"b)) bit(9) aligned internal static options(constant); 5 152 5 153 5 154 /* TOKEN TYPES */ 5 155 5 156 dcl (no_token initial("000000000"b), 5 157 ident initial("100000000"b), 5 158 plus initial("010000001"b), 5 159 minus initial("010000010"b), 5 160 asterisk initial("010000011"b), 5 161 slash initial("010000100"b), 5 162 expon initial("010000101"b), 5 163 not initial("010000110"b), 5 164 and initial("010000111"b), 5 165 or initial("010001000"b), 5 166 eq initial("010001001"b), 5 167 ne initial("010001010"b), 5 168 lt initial("010001011"b), 5 169 gt initial("010001100"b), 5 170 le initial("010001101"b), 5 171 ge initial("010001110"b), 5 172 assign initial("010001111"b), 5 173 comma initial("010010000"b), 5 174 left_parn initial("010010001"b), 5 175 right_parn initial("010010010"b), 5 176 apostrophe initial("010010011"b), 5 177 colon initial("010010100"b), 5 178 concat initial("010010101"b), 5 179 substr_left_parn initial("010010110"b), 5 180 eqv initial("010010111"b), 5 181 neqv initial("010011000"b), 5 182 EOS_token initial("010011111"b), 5 183 char_string initial("001000001"b), 5 184 logical_const initial("001000010"b), 5 185 false initial("001000010"b), /* Must be identical to true except low order bit off. */ 5 186 true initial("001000011"b), /* Must be identical to false except low order bit on. */ 5 187 label_const initial("001000100"b), 5 188 octal_const initial("001000101"b), 5 189 dec_int initial("001100110"b), 5 190 real_const initial("001100111"b), 5 191 double_const initial("001101000"b), 5 192 complex_const initial("001101001"b)) bit(9) aligned internal static options(constant); 5 193 5 194 5 195 /* OPERATOR NAMES */ 5 196 5 197 declare 5 198 (assign_op initial(1), 5 199 add_op initial(2), 5 200 sub_op initial(3), 5 201 mult_op initial(4), 5 202 div_op initial(5), 5 203 exponentiation_op initial(6), 5 204 negate_op initial(7), 5 205 less_op initial(8), 5 206 less_or_equal_op initial(9), 5 207 equal_op initial(10), 5 208 not_equal_op initial(11), 5 209 greater_or_equal_op initial(12), 5 210 greater_op initial(13), 5 211 or_op initial(14), 5 212 and_op initial(15), 5 213 not_op initial(16), 5 214 jump_op initial(17), 5 215 jump_logical_op initial(18), 5 216 jump_arithmetic_op initial(19), 5 217 jump_computed_op initial(20), 5 218 jump_assigned_op initial(21), 5 219 assign_label_op initial(22), 5 220 read_op initial(23), 5 221 write_op initial(24), 5 222 format_op initial(25), 5 223 end_label_op initial(26), 5 224 error_label_op initial(27), 5 225 xmit_scalar_op initial(28), 5 226 xmit_array_op initial(29), 5 227 xmit_vector_op initial(30), 5 228 endfile_op initial(31), 5 229 rewind_op initial(32), 5 230 backspace_op initial(33), 5 231 margin_op initial(34), 5 232 openfile_op initial(35), 5 233 closefile_op initial(36), 5 234 record_number_op initial(37), 5 235 string_op initial(38), 5 236 string_length_op initial(39), 5 237 terminate_op initial(40), 5 238 return_op initial(41), 5 239 pause_op initial(42), 5 240 stop_op initial(43), 5 241 item_op initial(44), 5 242 exit_op initial(45), 5 243 eol_op initial(46), 5 244 do_op initial(47), 5 245 builtin_op initial(48), 5 246 sf_op initial(49), 5 247 sf_def_op initial(50), 5 248 subscript_op initial(51), 5 249 func_ref_op initial(52), 5 250 block_data_op initial(53), 5 251 increment_polish_op initial(54), 5 252 main_op initial(55), 5 253 func_op initial(56), 5 254 subr_op initial(57), 5 255 stat_op initial(58), 5 256 label_op initial(59), 5 257 call_op initial(60), 5 258 chain_op initial(61), 5 259 endunit_op initial(62), 5 260 non_executable initial(63), 5 261 no_op initial(64), 5 262 form_VLA_packed_ptr_op initial(65), 5 263 opt_subscript_op initial(66), 5 264 left_shift_op initial(67), 5 265 right_shift_op initial(68), 5 266 store_zero_op initial(69), 5 267 storage_add_op initial(70), 5 268 storage_sub_op initial(71), 5 269 neg_storage_add_op initial(72), 5 270 storage_add_one_op initial(73), 5 271 namelist_op initial(74), 5 272 open_op initial(75), 5 273 close_op initial(76), 5 274 iostat_op initial(77), 5 275 convert_to_int_op initial(78), 5 276 convert_to_real_op initial(79), 5 277 convert_to_dp_op initial(80), 5 278 convert_to_cmpx_op initial(81), 5 279 read_scalar_op initial(82), 5 280 read_array_op initial(83), 5 281 read_vector_op initial(84), 5 282 write_scalar_op initial(85), 5 283 write_array_op initial(86), 5 284 write_vector_op initial(87), 5 285 jump_true_op initial(88), 5 286 jump_false_op initial(89), 5 287 sub_index_op initial(90), 5 288 loop_end_op initial(91), 5 289 read_namelist_op initial(92), 5 290 write_namelist_op initial(93), 5 291 decode_string_op initial(94), 5 292 encode_string_op initial(95), 5 293 cat_op initial(96), 5 294 substr_op initial(97), 5 295 load_xreg_op initial(98), 5 296 load_preg_op initial(99), 5 297 block_if_op initial(100), 5 298 else_if_op initial(101), 5 299 else_op initial(102), 5 300 equiv_op initial (103), 5 301 not_equiv_op initial (104), 5 302 read_internal_file_op initial (105), 5 303 write_internal_file_op initial (106), 5 304 inquire_op initial (107), 5 305 process_param_list_op initial (108), 5 306 lhs_fld_op initial (109), 5 307 last_assigned_op initial (109)) fixed bin(18) internal static options(constant); 5 308 5 309 /* END fort_system_constants.incl.pl1 */ 110 6 1 /* BEGIN fort_nodes.incl.pl1 */ 6 2 6 3 6 4 6 5 /****^ HISTORY COMMENTS: 6 6* 1) change(86-07-14,BWong), approve(86-07-14,MCR7382), audit(86-07-17,Ginter), 6 7* install(86-07-28,MR12.0-1105): 6 8* Fix fortran bug 473. 6 9* 2) change(88-04-28,RWaters), approve(88-04-28,MCR7875), audit(88-07-13,Huen), 6 10* install(88-11-10,MR12.2-1209): 6 11* Implement SCP 6339: Allow character variable to be up to 128K-1 (131071) 6 12* character long. 6 13* END HISTORY COMMENTS */ 6 14 6 15 6 16 /* Written: June 1976 by David Levin and Richard Barnes 6 17* 6 18*Modified: 6 19* Feb 24 1977 by G. Chang for the optimizer 6 20* Sept 12, 1977 by R. Barnes for the loop optimizer 6 21* Nov 16, 1977 by D. Levin to add machine state node for loop optimizer 6 22* Oct 09 1978 by P Smee for larger common and arrays. 6 23* Dec 05 1978 by P Smee for %options statement. 6 24* Jan 17 1979 by R Barnes for machine_state.value_in_xr 6 25* May 23 1979 by P Smee to add source.line_number 6 26* July 19 1979 by R Barnes for char mode changes 6 27* Sept 17 1979 by R Barnes for register optimizer changes 6 28* Oct 3 1979 by C R Davis for new EAQ management scheme. 6 29* 29 Oct 1979 by C R Davis for machine_state.eaq.reserved. 6 30* 3 Nov 1979 by R. Barnes for pointer node and to change 6 31* machine_state.next from a fixed bin to a pointer. 6 32* 18 Dec 1979 by R. Barnes for loop_ref_count to finalize 6 33* changes for the register optimizer. 6 34* 17 Dec 1979 by C R Davis for symbol.descriptor 6 35* 22 Dec 1979 by R. Barnes to remove in_list. 6 36* 22 Jan 1980 by P E Smee to try for long char arrays. 6 37* 23 Jan 1980 by C R Davis to fix bugs with yesterday's changes. 6 38* 4 Mar 1980 by C R Davis to rename node.multi_position to 6 39* node.stack_indirect, and to add machine_state.stack_extended 6 40* and machine_state.last_dynamic_temp. 6 41* 5 Jun 1980 by M E Presser to alter arg_desc node for use 6 42* in stack-extensions and arg-descriptor generation. 6 43* 16 July 1980 by C R Davis for symbol.variable_arglist. 6 44* 8 Jan 81 by M E Presser for label.not_referencable 6 45* 17 Feb 1981 by C R Davis for new dimension node layout. 6 46* 11 March 1981 by MEP for dimension.assumed_size 6 47* 3 May 1982 by TO to add star_extent_function to subprogram node. 6 48* Mod 1 25 August 1982 by TO to add VLA_chain and LA_chain to subprogram node. 6 49* Mod 1 2 September 1982 by TO to add 5 more entries to storage_info in 6 50* the subprogram node (13-17), and to add VLA and LA bits to the 6 51* symbol node. 6 52* Mod 1 2 September 1982 by TO move fields around in nodes to get correct 6 53* 24 (really 35) bit fields and still maintain mapping between 6 54* node, temporary, and array_ref (others limit to word 6 like node.) 6 55* 19 Jun 83, HH - 145: Add 'branched_to', 'ends_do_loop' & 'loop_end' 6 56* to 'label' node. 6 57* 19 Feb 86, BW & AG - 473.a: Add 'VLA' to 'arg_desc' node. 6 58*END Modifications */ 6 59 6 60 6 61 /* GENERAL NODE TEMPLATE */ 6 62 6 63 dcl 1 node aligned based structure, 6 64 6 65 /* WORD 1 */ 6 66 6 67 2 node_type fixed bin (4) unaligned, 6 68 2 data_type fixed bin (4) unaligned unsigned, 6 69 2 operand_type fixed bin (4) unaligned, 6 70 6 71 2 addressing_bits unaligned structure, 6 72 3 is_addressable bit (1), 6 73 3 value_in, 6 74 4 eaq bit (1), 6 75 4 x bit (1), 6 76 3 allocated bit (1), 6 77 3 needs_pointer bit (1), 6 78 3 stack_indirect bit (1), 6 79 3 large_address bit (1), 6 80 3 address_in_base bit (1), 6 81 3 dont_update bit (1), /* for optimizer */ 6 82 3 not_in_storage bit (1), /* for optimizer */ 6 83 3 globally_assigned bit (1), /* for optimizer */ 6 84 6 85 2 bits unaligned structure, 6 86 3 standard_bits, 6 87 4 allocate bit (1), 6 88 4 set bit (1), 6 89 4 referenced bit (1), 6 90 4 passed_as_arg bit (1), 6 91 6 92 3 fill bit (7), /* These bits may be used by individual nodes. */ 6 93 6 94 /* WORD 2 */ 6 95 6 96 2 address aligned structure, 6 97 3 base bit (3) unaligned, /* For labels and constants, base and offset are */ 6 98 3 offset fixed bin (14) unaligned, /* combined to: fixed bin (18) unsigned unaligned. */ 6 99 3 char_num fixed bin (2) unaligned unsigned, 6 100 3 bit_num fixed bin (4) unaligned unsigned, 6 101 3 fill bit (4) unaligned, 6 102 3 inhibit bit (1) unaligned, 6 103 3 ext_base bit (1) unaligned, 6 104 3 tag bit (6) unaligned, 6 105 6 106 /* WORD 3 */ 6 107 6 108 2 units fixed bin (3) unaligned unsigned, 6 109 2 fill bit (3) unaligned, /* already used in symbol node */ 6 110 2 reloc_hold bit (6) unaligned, 6 111 2 reloc bit (6) unaligned, 6 112 2 addr_hold bit (18) unaligned, 6 113 6 114 /* WORD 4. Must not change for constant, char_constant, header, label, or symbol nodes. */ 6 115 6 116 2 next fixed bin (18) unsigned unaligned, 6 117 2 hash_chain fixed bin (18) unsigned unaligned, /* No hash chain for header nodes. */ 6 118 6 119 /* WORD 5 */ 6 120 6 121 2 pad fixed bin (18) unsigned unaligned, 6 122 2 loop_ref_count fixed bin (17) unaligned, /* Only for symbols and temporaries. */ 6 123 6 124 /* WORD 6 */ 6 125 6 126 2 location fixed bin (24) aligned; /* Only for array refs, symbols, temporaries, and headers. */ 6 127 6 128 /* ARG DESCRIPTOR NODE */ 6 129 6 130 dcl 1 arg_desc based aligned, 6 131 6 132 /* WORD 1 */ 6 133 6 134 2 node_type fixed bin (4) unaligned, 6 135 2 n_args fixed bin (12) unaligned, 6 136 2 pad bit (18) unaligned, 6 137 6 138 /* WORDS 2 - N_ARGS + 1 */ 6 139 6 140 2 arg(num_args refer(n_args)) aligned, 6 141 3 data_type fixed bin (4) unaligned unsigned, 6 142 3 must_be unaligned, 6 143 4 array bit (1) unaligned, 6 144 4 scalar bit (1) unaligned, 6 145 4 VLA bit (1) unaligned, 6 146 3 star_extents bit (1) unaligned, 6 147 3 pad bit (9) unaligned, 6 148 3 symbol fixed bin (18) unaligned; 6 149 6 150 dcl num_args fixed bin; 6 151 6 152 6 153 /* ARRAY REF NODE -- Must be same size as TEMPORARY NODE. */ 6 154 6 155 dcl 1 array_ref aligned based structure, 6 156 6 157 /* WORD 1 */ 6 158 6 159 2 node_type fixed bin (4) unaligned, 6 160 2 data_type fixed bin (4) unaligned unsigned, 6 161 2 operand_type fixed bin (4) unaligned, 6 162 6 163 2 addressing_bits unaligned structure, 6 164 3 is_addressable bit (1), 6 165 3 value_in, 6 166 4 eaq bit (1), 6 167 4 x bit (1), 6 168 3 allocated bit (1), 6 169 3 needs_pointer bit (1), 6 170 3 stack_indirect bit (1), 6 171 3 large_address bit (1), 6 172 3 address_in_base bit (1), 6 173 3 dont_update bit (1), /* for optimizer */ 6 174 3 not_in_storage bit (1), /* for optimizer */ 6 175 3 globally_assigned bit (1), /* for optimizer */ 6 176 6 177 2 bits unaligned structure, 6 178 3 standard_bits, 6 179 4 allocate bit (1), 6 180 4 set bit (1), 6 181 4 referenced bit (1), 6 182 4 passed_as_arg bit (1), 6 183 6 184 3 variable_length bit (1), 6 185 6 186 3 variable_offset bit (1), 6 187 6 188 3 invariant bit (1), /* must line up with temporary node */ 6 189 3 irreducible bit (1), /* .. */ 6 190 3 used_across_loops bit (1), /* .. */ 6 191 6 192 3 large_offset bit (1), 6 193 6 194 3 has_address bit (1), 6 195 6 196 /* WORD 2 */ 6 197 6 198 2 address aligned structure, 6 199 3 base bit (3) unaligned, 6 200 3 offset fixed bin (14) unaligned, 6 201 3 char_num fixed bin (2) unaligned unsigned, 6 202 3 bit_num fixed bin (4) unaligned unsigned, 6 203 3 fill bit (4) unaligned, 6 204 3 inhibit bit (1) unaligned, 6 205 3 ext_base bit (1) unaligned, 6 206 3 tag bit (6) unaligned, 6 207 6 208 /* WORD 3 */ 6 209 6 210 2 units fixed bin (3) unaligned unsigned, 6 211 2 fill bit (3) unaligned, 6 212 2 reloc_hold bit (6) unaligned, 6 213 2 reloc bit (6) unaligned, 6 214 2 addr_hold bit (18) unaligned, 6 215 6 216 /* WORD 4 */ 6 217 6 218 2 next fixed bin (18) unsigned unaligned, 6 219 2 loop_end_fu_pos fixed bin (17) unaligned, /* must overlay temporary.loop_end_fu_pos */ 6 220 6 221 /* WORD 5 */ 6 222 6 223 2 pad fixed bin (18) unsigned unaligned, 6 224 2 v_offset fixed bin (18) unsigned unaligned, 6 225 6 226 /* WORD 6 */ 6 227 6 228 2 location fixed bin (24) aligned, 6 229 6 230 /* WORD 7 */ 6 231 6 232 2 ref_count fixed bin (17) unaligned, /* must overlay temporary.ref_count */ 6 233 2 output_by fixed bin (18) unsigned unal, /* must overlay temporary.output_by */ 6 234 6 235 /* WORD 8 */ 6 236 6 237 2 length fixed bin (24) aligned, 6 238 6 239 /* WORD 9 */ 6 240 6 241 2 start_input_to fixed bin (18) unsigned unal, /* must overlay temporary.start_input_to */ 6 242 2 end_input_to fixed bin (18) unsigned unal, /* must overlay temporary.end_input_to */ 6 243 6 244 /* WORD 10 */ 6 245 6 246 2 ref_count_copy fixed bin (17) unaligned, /* must overlay temporary.ref_count_copy */ 6 247 2 parent fixed bin (18) unsigned unaligned, 6 248 6 249 /* WORD 11 */ 6 250 6 251 2 unused fixed bin (24) aligned; /* Pad to size of 'temporary'. */ 6 252 6 253 6 254 /* CONSTANT NODE */ 6 255 6 256 dcl 1 constant aligned based structure, 6 257 6 258 /* WORD 1 */ 6 259 6 260 2 node_type fixed bin (4) unaligned, 6 261 2 data_type fixed bin (4) unaligned unsigned, 6 262 2 operand_type fixed bin (4) unaligned, 6 263 6 264 2 addressing_bits unaligned structure, 6 265 3 is_addressable bit (1), 6 266 3 value_in, 6 267 4 eaq bit (1), 6 268 4 x bit (1), 6 269 3 allocated bit (1), 6 270 3 needs_pointer bit (1), 6 271 3 stack_indirect bit (1), 6 272 3 large_address bit (1), 6 273 3 address_in_base bit (1), 6 274 3 dont_update bit (1), /* for optimizer */ 6 275 3 not_in_storage bit (1), /* for optimizer */ 6 276 3 globally_assigned bit (1), /* for optimizer */ 6 277 6 278 2 bits unaligned structure, 6 279 3 standard_bits, 6 280 4 allocate bit (1), 6 281 4 set bit (1), 6 282 4 referenced bit (1), 6 283 4 passed_as_arg bit (1), 6 284 6 285 3 fill bit (7), 6 286 6 287 /* WORD 2 */ 6 288 6 289 2 address aligned structure, 6 290 3 location fixed bin (18) unsigned unaligned, 6 291 3 op bit (10) unaligned, 6 292 3 inhibit bit (1) unaligned, 6 293 3 ext_base bit (1) unaligned, 6 294 3 tag bit (6) unaligned, 6 295 6 296 /* WORD 3 */ 6 297 6 298 2 units fixed bin (3) unaligned unsigned, 6 299 2 fill bit (3) unaligned, 6 300 2 reloc_hold bit (6) unaligned, 6 301 2 reloc bit (6) unaligned, 6 302 2 addr_hold bit (18) unaligned, 6 303 6 304 /* WORD 4 */ 6 305 6 306 2 next_constant fixed bin (18) unsigned unaligned, 6 307 2 hash_chain fixed bin (18) unsigned unaligned, 6 308 6 309 /* WORDS 5 & 6 */ 6 310 6 311 2 value bit (72) aligned; 6 312 6 313 6 314 /* CHARACTER CONSTANT NODE */ 6 315 6 316 dcl 1 char_constant aligned based structure, 6 317 6 318 /* WORD 1 */ 6 319 6 320 2 node_type fixed bin (4) unaligned, 6 321 2 data_type fixed bin (4) unaligned unsigned, 6 322 2 operand_type fixed bin (4) unaligned, 6 323 6 324 2 addressing_bits unaligned structure, 6 325 3 is_addressable bit (1), 6 326 3 value_in, 6 327 4 eaq bit (1), 6 328 4 x bit (1), 6 329 3 allocated bit (1), 6 330 3 needs_pointer bit (1), 6 331 3 stack_indirect bit (1), 6 332 3 large_address bit (1), 6 333 3 address_in_base bit (1), 6 334 3 dont_update bit (1), /* for optimizer */ 6 335 3 not_in_storage bit (1), /* for optimizer */ 6 336 3 globally_assigned bit (1), /* for optimizer */ 6 337 6 338 2 bits unaligned structure, 6 339 3 standard_bits, 6 340 4 allocate bit (1), 6 341 4 set bit (1), 6 342 4 referenced bit (1), 6 343 4 passed_as_arg bit (1), 6 344 6 345 3 no_value_stored bit (1), 6 346 6 347 3 fill bit (6), 6 348 6 349 /* WORD 2 */ 6 350 6 351 2 address aligned structure, 6 352 3 location fixed bin (18) unsigned unaligned, 6 353 3 char_num fixed bin (2) unaligned unsigned, 6 354 3 bit_num fixed bin (4) unaligned unsigned, 6 355 3 fill bit (4) unaligned, 6 356 3 inhibit bit (1) unaligned, 6 357 3 ext_base bit (1) unaligned, 6 358 3 tag bit (6) unaligned, 6 359 6 360 /* WORD 3 */ 6 361 6 362 2 units fixed bin (3) unaligned unsigned, 6 363 2 fill bit (3) unaligned, 6 364 2 reloc_hold bit (6) unaligned, 6 365 2 reloc bit (6) unaligned, 6 366 2 addr_hold bit (18) unaligned, 6 367 6 368 /* WORD 4 */ 6 369 6 370 2 next_constant fixed bin (18) unsigned unaligned, 6 371 2 hash_chain fixed bin (18) unsigned unaligned, 6 372 6 373 /* WORDS 5 thru n */ 6 374 6 375 2 length fixed bin (18) unsigned unaligned, 6 376 2 value char(char_constant_length refer(char_constant.length)) unaligned; 6 377 6 378 dcl char_constant_length fixed bin (18) unsigned; 6 379 6 380 6 381 /* DIMENSION NODE */ 6 382 6 383 dcl 1 dimension aligned based structure, 6 384 6 385 /* WORD 1 */ 6 386 6 387 2 node_type fixed bin (4) unaligned, /* The only field in common with other nodes */ 6 388 6 389 2 number_of_dims fixed bin (3) unaligned, /* Number of dimensions */ 6 390 6 391 2 v_bound (7) unaligned, /* Variable bound info - up to 7 dims. */ 6 392 3 lower bit (1) unaligned, /* On if lower bound is variable */ 6 393 3 upper bit (1) unaligned, /* On if upper bound is variable */ 6 394 6 395 2 has_virtual_origin bit (1) unaligned, /* On if virtual_origin is valid */ 6 396 2 has_array_size bit (1) unaligned, /* On if array_size is valid */ 6 397 2 has_dim_sizes bit (1) unaligned, /* On if dim.size (*) is valid */ 6 398 6 399 2 variable_virtual_origin bit (1) unaligned, /* On if virtual_origin is variable */ 6 400 2 variable_array_size bit (1) unaligned, /* On if array_size is variable */ 6 401 2 assumed_size bit (1) unaligned, /* On if array has assumed size */ 6 402 6 403 2 fill bit (7) unaligned, 6 404 6 405 /* WORD 2 */ 6 406 6 407 2 virtual_origin fixed bin (24) aligned, 6 408 6 409 /* WORD 3 */ 6 410 6 411 2 element_count fixed bin (24) aligned, 6 412 6 413 /* WORD 4 */ 6 414 6 415 2 array_size fixed bin (24) aligned, /* Expressed in symbol.units */ 6 416 6 417 /* WORD 5 */ 6 418 6 419 2 VLA_base_addressor fixed bin (18) aligned, 6 420 6 421 /* WORDS 6 - n (max = 26) */ 6 422 6 423 2 dim (num_dims refer (dimension.number_of_dims)) aligned, 6 424 6 425 3 lower_bound fixed bin (24) aligned, /* Lower bound of this dimension */ 6 426 6 427 3 upper_bound fixed bin (24) aligned, /* Upper bound of this dimension */ 6 428 6 429 3 size fixed bin (24) aligned; /* No. of elements in this dimension */ 6 430 6 431 dcl num_dims fixed bin (3); 6 432 6 433 6 434 /* HEADER NODE */ 6 435 6 436 dcl 1 header aligned based structure, 6 437 6 438 /* WORD 1 */ 6 439 6 440 2 node_type fixed bin (4) unaligned, 6 441 2 data_type fixed bin (4) unaligned unsigned, 6 442 2 operand_type fixed bin (4) unaligned, 6 443 6 444 2 addressing_bits unaligned structure, 6 445 3 is_addressable bit (1), 6 446 3 value_in, 6 447 4 eaq bit (1), 6 448 4 x bit (1), 6 449 3 allocated bit (1), 6 450 3 needs_pointer bit (1), 6 451 3 stack_indirect bit (1), 6 452 3 large_address bit (1), 6 453 3 address_in_base bit (1), 6 454 3 dont_update bit (1), /* for optimizer */ 6 455 3 not_in_storage bit (1), /* for optimizer */ 6 456 3 globally_assigned bit (1), /* for optimizer */ 6 457 6 458 2 bits unaligned structure, 6 459 3 storage_info, 6 460 4 standard_bits, 6 461 5 allocate bit (1), 6 462 5 set bit (1), 6 463 5 referenced bit (1), 6 464 5 passed_as_arg bit (1), 6 465 4 initialed bit (1), /* On if any member has initial attribute. */ 6 466 6 467 3 alignment structure unaligned, 6 468 4 even bit (1), 6 469 4 odd bit (1), 6 470 4 character bit (1), 6 471 6 472 3 storage_class structure unaligned, 6 473 4 automatic bit (1), 6 474 4 static bit (1), 6 475 4 in_common bit (1), 6 476 6 477 /* WORD 2 */ 6 478 6 479 2 address aligned structure, 6 480 3 base bit (3) unaligned, 6 481 3 offset fixed bin (14) unaligned, 6 482 3 char_num fixed bin (2) unaligned unsigned, 6 483 3 bit_num fixed bin (4) unaligned unsigned, 6 484 3 fill bit (4) unaligned, 6 485 3 inhibit bit (1) unaligned, 6 486 3 ext_base bit (1) unaligned, 6 487 3 tag bit (6) unaligned, 6 488 6 489 /* WORD 3 */ 6 490 6 491 2 units fixed bin (3) unaligned unsigned, 6 492 2 VLA bit (1) unaligned, /* chain for VLA's */ 6 493 2 LA bit (1) unaligned, /* chain for LA's */ 6 494 2 fill bit (1) unaligned, 6 495 2 reloc_hold bit (6) unaligned, 6 496 2 reloc bit (6) unaligned, 6 497 2 addr_hold bit (18) unaligned, 6 498 6 499 /* WORD 4 */ 6 500 6 501 2 next_header fixed bin (18) unsigned unaligned, 6 502 2 first_element fixed bin (18) unsigned unaligned, 6 503 6 504 /* WORD 5 */ 6 505 6 506 2 last_element fixed bin (18) unsigned unaligned, 6 507 2 name_length fixed bin (17) unaligned, 6 508 6 509 /* WORD 6 */ 6 510 6 511 2 location fixed bin (24) aligned, 6 512 6 513 /* WORD 7 */ 6 514 6 515 2 length fixed bin (24) aligned, 6 516 6 517 /* WORD 8 */ 6 518 6 519 2 VLA_base_addressor fixed bin (18) aligned, 6 520 6 521 /* WORDS 9 - n. This field is variable in length. Its length is zero for equivalence groups. */ 6 522 6 523 2 block_name char(allocate_symbol_name refer (header.name_length)) aligned; 6 524 6 525 dcl allocate_symbol_name fixed bin; 6 526 6 527 6 528 /* LABEL NODE */ 6 529 6 530 dcl 1 label aligned based structure, 6 531 6 532 /* WORD 1 */ 6 533 6 534 2 node_type fixed bin (4) unaligned, 6 535 2 data_type fixed bin (4) unaligned unsigned, 6 536 2 operand_type fixed bin (4) unaligned, 6 537 6 538 2 addressing_bits unaligned structure, 6 539 3 is_addressable bit (1), 6 540 3 value_in, 6 541 4 eaq bit (1), 6 542 4 x bit (1), 6 543 3 allocated bit (1), 6 544 3 needs_pointer bit (1), 6 545 3 stack_indirect bit (1), 6 546 3 large_address bit (1), 6 547 3 address_in_base bit (1), 6 548 3 dont_update bit (1), /* for optimizer */ 6 549 3 not_in_storage bit (1), /* for optimizer */ 6 550 3 globally_assigned bit (1), /* for optimizer */ 6 551 6 552 2 bits unaligned structure, 6 553 3 storage_info, 6 554 4 standard_bits, 6 555 5 allocate bit (1), 6 556 5 set bit (1), 6 557 5 referenced bit (1), 6 558 5 passed_as_arg bit (1), 6 559 4 referenced_executable bit (1), 6 560 6 561 3 usage, /* Label is on a non-executable stmnt if both bits are ON. */ 6 562 4 format bit (1), 6 563 4 executable bit (1), 6 564 6 565 3 restore_prs bit (1), 6 566 3 not_referencable bit (1), 6 567 3 branched_to bit (1), 6 568 3 ends_do_loop bit (1), 6 569 6 570 /* WORD 2 */ 6 571 6 572 2 address aligned structure, 6 573 3 location fixed bin (18) unsigned unaligned, 6 574 3 op bit (10) unaligned, 6 575 3 inhibit bit (1) unaligned, 6 576 3 ext_base bit (1) unaligned, 6 577 3 tag bit (6) unaligned, 6 578 6 579 /* WORD 3 */ 6 580 6 581 2 units fixed bin (3) unaligned unsigned, 6 582 2 fill bit (3) unaligned, 6 583 2 reloc_hold bit (6) unaligned, 6 584 2 reloc bit (6) unaligned, 6 585 2 addr_hold bit (18) unaligned, 6 586 6 587 /* WORD 4 */ 6 588 6 589 2 next_label fixed bin (18) unsigned unaligned, 6 590 2 hash_chain fixed bin (18) unsigned unaligned, 6 591 6 592 /* WORD 5 */ 6 593 6 594 2 format_var fixed bin (18) unsigned unaligned, 6 595 2 name fixed bin (17) unaligned, 6 596 6 597 /* WORD 6 */ 6 598 6 599 2 statement fixed bin (18) unsigned unaligned, 6 600 2 loop_end fixed bin (18) unsigned unaligned; 6 601 6 602 6 603 /* LIBRARY NODE */ 6 604 6 605 dcl 1 library aligned based structure, 6 606 6 607 /* WORD 1 */ 6 608 6 609 2 node_type fixed bin (4) unaligned, /* The only field in common with the other nodes. */ 6 610 2 fill bit (13) unaligned, 6 611 2 next_library_node fixed bin (18) unsigned unaligned, 6 612 6 613 /* WORD 2 */ 6 614 6 615 2 character_operand fixed bin (18) unsigned aligned; 6 616 6 617 6 618 /* MACHINE_STATE NODE */ 6 619 6 620 dcl 1 machine_state aligned based structure, 6 621 6 622 /* WORD 1 */ 6 623 6 624 2 node_type fixed bin (4) unal, 6 625 2 pad bit (31) unal, 6 626 6 627 /* WORD 2 */ 6 628 6 629 2 next pointer unaligned, 6 630 6 631 /* WORDS 3-104 */ 6 632 6 633 2 ms aligned, 6 634 6 635 3 eaq (4), /* One for each of the A, Q, EAQ, and IND */ 6 636 4 name fixed bin, 6 637 4 number fixed bin, 6 638 4 variable(4) fixed bin (18), 6 639 4 reserved bit (1) aligned, 6 640 3 rounded bit (1) aligned, 6 641 3 indicators_valid fixed bin (18), 6 642 6 643 3 value_in_xr bit (1) aligned, 6 644 6 645 3 index_regs(0:7), 6 646 4 bits structure unaligned, 6 647 5 global bit (1), 6 648 5 reserved bit (1), 6 649 5 mbz bit (34), 6 650 4 type fixed bin (18), 6 651 4 variable fixed bin (18), 6 652 4 used fixed bin (18), 6 653 4 mbz fixed bin (18), 6 654 6 655 3 address_in_base bit (1) aligned, 6 656 6 657 3 base_regs(0:7), 6 658 4 bits structure unaligned, 6 659 5 global bit (1), 6 660 5 reserved bit (1), 6 661 5 mbz bit (34), 6 662 4 type fixed bin (18), 6 663 4 variable fixed bin (18), 6 664 4 used fixed bin (18), 6 665 4 offset fixed bin (18), 6 666 6 667 3 stack_extended bit (1) aligned, 6 668 3 last_dynamic_temp fixed bin (18); 6 669 6 670 /* POINTER NODE */ 6 671 6 672 dcl 1 pointer aligned based structure, 6 673 6 674 /* WORD 1 */ 6 675 6 676 2 node_type fixed bin (4) unaligned, 6 677 2 pad bit (4) unaligned, 6 678 2 code fixed bin (9) unaligned unsigned, 6 679 2 variable fixed bin (18) unaligned unsigned, 6 680 6 681 /* WORD 2 */ 6 682 6 683 2 offset fixed bin (18) unaligned unsigned, 6 684 2 count fixed bin (18) unaligned unsigned, 6 685 6 686 /* WORD 3 */ 6 687 6 688 2 hash_chain fixed bin (18) aligned; 6 689 6 690 6 691 /* SOURCE NODE */ 6 692 6 693 dcl 1 source aligned based structure, 6 694 6 695 /* WORD 1 */ 6 696 6 697 2 node_type fixed bin (4) unal, 6 698 2 pad bit (13) unal, 6 699 2 line_number fixed bin (17) unaligned, 6 700 6 701 /* WORD 2 */ 6 702 6 703 2 uid bit (36) aligned, 6 704 6 705 /* WORDS 3 & 4 */ 6 706 6 707 2 dtm fixed bin (71) unaligned, 6 708 6 709 /* WORD 5 */ 6 710 6 711 2 next fixed bin (18) unsigned unaligned, 6 712 2 initial_subprogram fixed bin (18) unsigned unaligned, 6 713 6 714 /* WORDS 6 - ? (depends on length of pathname) */ 6 715 6 716 2 pathname char(256) varying; 6 717 6 718 6 719 /* STATEMENT NODE - This node only appears in the polish. */ 6 720 6 721 dcl 1 statement aligned based structure, 6 722 6 723 /* WORD 1 */ 6 724 6 725 2 op_code fixed bin aligned, /* Always equal to "stat_op". */ 6 726 6 727 /* WORD 2 */ 6 728 6 729 2 next bit (18) unaligned, /* "0"b = no next stmnt */ 6 730 2 location bit (18) unaligned, /* (18)"1"b = no text */ 6 731 6 732 /* WORD 3 */ 6 733 6 734 2 source_id structure unaligned, 6 735 3 file fixed bin (8) unsigned, /* 0 = first file */ 6 736 3 line bit (14), 6 737 3 statement bit (5), /* 1 = first statement */ 6 738 6 739 2 length bit (9) unaligned, 6 740 6 741 /* WORD 4 */ 6 742 6 743 2 bits structure unaligned, 6 744 3 put_in_map bit (1) unaligned, 6 745 3 put_in_profile bit (1) unaligned, 6 746 3 pad bit (7) unaligned, 6 747 6 748 2 start fixed bin (26) unaligned; 6 749 6 750 6 751 /* SUBPROGRAM NODE */ 6 752 6 753 dcl 1 subprogram aligned based structure, 6 754 6 755 /* WORD 1 */ 6 756 6 757 2 node_type fixed bin (4) unaligned, /* The only field in common with the other nodes. */ 6 758 2 subprogram_type fixed bin (3) unaligned, 6 759 2 default_is unaligned, 6 760 3 auto bit (1), 6 761 3 static bit (1), 6 762 2 need_PS bit (1) unaligned, 6 763 2 need_prologue bit (1) unaligned, 6 764 2 multiple_entry bit (1) unaligned, 6 765 2 namelist_used bit (1) unaligned, 6 766 2 has_parameters bit (1) unaligned, 6 767 2 star_extent_function bit (1) unaligned, 6 768 2 fill bit (1) unaligned, 6 769 6 770 2 symbol fixed bin (18) unsigned unaligned, /* symbol node for subprogram name */ 6 771 6 772 /* WORD 2 */ 6 773 6 774 2 previous_subprogram fixed bin (18) unsigned unaligned, 6 775 2 next_subprogram fixed bin (18) unsigned unaligned, 6 776 6 777 /* WORD 3 */ 6 778 6 779 2 common_chain fixed bin (18) unsigned unaligned, 6 780 2 equiv_chain fixed bin (18) unsigned unaligned, 6 781 6 782 /* WORD 4 */ 6 783 6 784 2 first_symbol fixed bin (18) unsigned unaligned, 6 785 2 last_symbol fixed bin (18) unsigned unaligned, 6 786 6 787 /* WORD 5 */ 6 788 6 789 2 first_label fixed bin (18) unsigned unaligned, 6 790 2 last_label fixed bin (18) unsigned unaligned, 6 791 6 792 /* WORD 6 */ 6 793 6 794 2 first_polish fixed bin (18) unsigned unaligned, 6 795 2 last_polish fixed bin (18) unsigned unaligned, 6 796 6 797 /* WORD 7 */ 6 798 6 799 2 map unaligned, 6 800 3 first fixed bin (18) unsigned unaligned, 6 801 3 last fixed bin (18) unsigned unaligned, 6 802 6 803 /* WORD 8 */ 6 804 6 805 2 entry_info fixed bin (18) unsigned unaligned, 6 806 2 runtime fixed bin (18) unsigned unaligned, 6 807 6 808 /* WORD 9 */ 6 809 6 810 2 first_quad fixed bin (18) unsigned unaligned, 6 811 2 last_quad fixed bin (18) unsigned unaligned, 6 812 6 813 /* WORD 10 */ 6 814 6 815 2 options aligned like fortran_options, 6 816 6 817 /* WORDS 11 - 44 */ 6 818 6 819 2 storage_info(17) aligned, 6 820 3 first fixed bin (18) unsigned unaligned, 6 821 3 last fixed bin (18) unsigned unaligned, 6 822 3 next_loc fixed bin (18) aligned, 6 823 6 824 /* WORD 45 */ 6 825 6 826 2 loop_vector_p pointer unaligned, 6 827 6 828 /* WORD 46 */ 6 829 6 830 2 n_loops fixed bin (18) unsigned unaligned, 6 831 2 max_operators fixed bin (18) unsigned unaligned, 6 832 6 833 /* WORD 47 */ 6 834 6 835 2 VLA_chain fixed bin (18) unsigned unaligned, /* Mod 1 */ 6 836 2 LA_chain fixed bin (18) unsigned unaligned, /* Mod 1 */ 6 837 /* WORD 48 */ 6 838 6 839 2 max_sym fixed bin (18) aligned; 6 840 6 841 6 842 /* SYMBOL NODE */ 6 843 6 844 dcl 1 symbol aligned based structure, 6 845 6 846 /* WORD 1 */ 6 847 6 848 2 node_type fixed bin (4) unaligned, 6 849 2 data_type fixed bin (4) unaligned unsigned, 6 850 2 operand_type fixed bin (4) unaligned, 6 851 6 852 2 addressing_bits unaligned structure, 6 853 3 is_addressable bit (1), 6 854 3 value_in, 6 855 4 eaq bit (1), 6 856 4 x bit (1), 6 857 3 allocated bit (1), 6 858 3 needs_pointer bit (1), 6 859 3 stack_indirect bit (1), 6 860 3 large_address bit (1), 6 861 3 address_in_base bit (1), 6 862 3 dont_update bit (1), /* for optimizer */ 6 863 3 not_in_storage bit (1), /* for optimizer */ 6 864 3 globally_assigned bit (1), /* for optimizer */ 6 865 6 866 2 bits unaligned structure, 6 867 3 storage_info, 6 868 4 standard_bits, 6 869 5 allocate bit (1), 6 870 5 set bit (1), 6 871 5 referenced bit (1), 6 872 5 passed_as_arg bit (1), 6 873 4 initialed bit (1), /* Allows variable to become a constant. */ 6 874 6 875 3 variable_arglist bit (1), 6 876 3 dummy_arg bit (1), 6 877 3 variable_extents bit (1), 6 878 3 needs_descriptors bit (1), 6 879 3 put_in_symtab bit (1), 6 880 3 by_compiler bit (1), 6 881 6 882 /* WORD 2 */ 6 883 6 884 2 address aligned structure, 6 885 3 base bit (3) unaligned, 6 886 3 offset fixed bin (14) unaligned, 6 887 3 char_num fixed bin (2) unaligned unsigned, 6 888 3 bit_num fixed bin (4) unaligned unsigned, 6 889 3 fill bit (4) unaligned, 6 890 3 inhibit bit (1) unaligned, 6 891 3 ext_base bit (1) unaligned, 6 892 3 tag bit (6) unaligned, 6 893 6 894 /* WORD 3 */ 6 895 6 896 2 units fixed bin (3) unaligned unsigned, 6 897 2 aliasable bit (1) unaligned, 6 898 2 has_constant_value bit (1) unaligned, 6 899 2 new_induction_var bit (1) unaligned, 6 900 2 reloc_hold bit (6) unaligned, 6 901 2 reloc bit (6) unaligned, 6 902 2 addr_hold bit (18) unaligned, 6 903 6 904 /* WORD 4 */ 6 905 6 906 2 next_symbol fixed bin (18) unsigned unaligned, 6 907 2 hash_chain fixed bin (18) unsigned unaligned, 6 908 6 909 /* WORD 5 */ 6 910 6 911 2 ext_attributes unaligned structure, 6 912 3 VLA bit (1), /* symbol is Very large Element */ 6 913 3 LA bit (1), /* symbol is Large Element */ 6 914 3 pad bit (18-2), 6 915 6 916 2 loop_ref_count fixed bin (17) unaligned, 6 917 6 918 /* WORD 6 */ 6 919 6 920 2 location fixed bin (24) aligned, 6 921 6 922 /* WORD 7 */ 6 923 6 924 2 v_length fixed bin (18) unsigned unaligned, 6 925 2 general fixed bin (18) unsigned unaligned, 6 926 6 927 /* WORD 8 */ 6 928 6 929 2 parent fixed bin (18) unsigned unaligned, 6 930 2 next_member fixed bin (18) unsigned unaligned, 6 931 6 932 /* WORD 9 */ 6 933 6 934 2 attributes aligned structure, 6 935 3 mode_bits unaligned structure, 6 936 4 char_size fixed bin (20) unsigned, 6 937 4 mode, 6 938 5 integer bit (1), 6 939 5 real bit (1), 6 940 5 double_precision bit (1), 6 941 5 complex bit (1), 6 942 5 logical bit (1), 6 943 5 character bit (1), 6 944 5 label_value bit (1), 6 945 5 entry_value bit (1), 6 946 6 947 3 misc_attributes unaligned structure, 6 948 4 function bit (1), 6 949 4 subroutine bit (1), 6 950 4 entry_point bit (1), 6 951 4 external bit (1), 6 952 4 builtin bit (1), 6 953 4 stmnt_func bit (1), 6 954 4 namelist bit (1), 6 955 4 dimensioned bit (1), 6 956 6 957 /* WORD 10 */ 6 958 6 959 3 storage_class unaligned structure, 6 960 4 automatic bit (1), 6 961 4 static bit (1), 6 962 4 in_common bit (1), 6 963 4 equivalenced bit (1), 6 964 4 parameter bit (1), 6 965 4 constant bit (1), /* If external or entry_point. */ 6 966 4 named_constant bit (1), 6 967 6 968 3 variable bit (1) unaligned, 6 969 3 in_equiv_stmnt bit (1) unaligned, 6 970 3 star_extents bit (1) unaligned, 6 971 3 descriptor bit (1) unaligned, 6 972 2 pad bit (25) unaligned, 6 973 6 974 /* WORD 11 */ 6 975 6 976 2 dimension fixed bin (18) unsigned unaligned, /* Bounds may be added after symbol is declared. */ 6 977 2 initial fixed bin (18) unsigned unaligned, 6 978 6 979 /* WORD 12 */ 6 980 6 981 2 runtime bit (18) unaligned, 6 982 2 name_length fixed bin (17) unaligned, 6 983 6 984 /* WORD 13 */ 6 985 6 986 2 coordinate fixed bin (17) unaligned, /* used by loop optimizer */ 6 987 2 element_size fixed bin (17) unaligned, 6 988 6 989 /* WORD 14 */ 6 990 6 991 2 secondary pointer unaligned, /* used by loop optimizer */ 6 992 6 993 /* WORD 15 */ 6 994 6 995 2 offset fixed bin (24) aligned, 6 996 6 997 /* WORDS 16 - n. This field is variable in length. */ 6 998 6 999 2 name char(allocate_symbol_name refer (symbol.name_length)) aligned; 6 1000 6 1001 6 1002 6 1003 /* TEMPORARY NODE -- Must be same size as ARRAY REF NODE. */ 6 1004 6 1005 dcl 1 temporary aligned based structure, 6 1006 6 1007 /* WORD 1 */ 6 1008 6 1009 2 node_type fixed bin (4) unaligned, 6 1010 2 data_type fixed bin (4) unaligned unsigned, 6 1011 2 operand_type fixed bin (4) unaligned, 6 1012 6 1013 2 addressing_bits unaligned structure, 6 1014 3 is_addressable bit (1), 6 1015 3 value_in, 6 1016 4 eaq bit (1), 6 1017 4 x bit (1), 6 1018 3 allocated bit (1), 6 1019 3 needs_pointer bit (1), 6 1020 3 stack_indirect bit (1), 6 1021 3 large_address bit (1), 6 1022 3 address_in_base bit (1), 6 1023 3 dont_update bit (1), /* for optimizer */ 6 1024 3 not_in_storage bit (1), /* for optimizer */ 6 1025 3 globally_assigned bit (1), /* for optimizer */ 6 1026 6 1027 2 bits unaligned structure, 6 1028 3 standard_bits, 6 1029 4 allocate bit (1), 6 1030 4 set bit (1), 6 1031 4 referenced bit (1), 6 1032 4 passed_as_arg bit (1), 6 1033 6 1034 3 variable_length bit (1), 6 1035 6 1036 3 fill bit (1), /* can be used */ 6 1037 6 1038 3 invariant bit (1), /* must line up with array_ref node */ 6 1039 3 irreducible bit (1), /* .. */ 6 1040 3 used_across_loops bit (1), /* .. */ 6 1041 3 frozen_for_do bit (1), 6 1042 3 used_as_subscript bit (1), 6 1043 6 1044 /* WORD 2 */ 6 1045 6 1046 2 address aligned structure, 6 1047 3 base bit (3) unaligned, 6 1048 3 offset fixed bin (14) unaligned, 6 1049 3 char_num fixed bin (2) unaligned unsigned, 6 1050 3 bit_num fixed bin (4) unaligned unsigned, 6 1051 3 fill bit (4) unaligned, 6 1052 3 inhibit bit (1) unaligned, 6 1053 3 ext_base bit (1) unaligned, 6 1054 3 tag bit (6) unaligned, 6 1055 6 1056 /* WORD 3 */ 6 1057 6 1058 2 units fixed bin (3) unaligned unsigned, 6 1059 2 fill bit (3) unaligned, 6 1060 2 reloc_hold bit (6) unaligned, 6 1061 2 reloc bit (6) unaligned, 6 1062 2 addr_hold bit (18) unaligned, 6 1063 6 1064 /* WORD 4 */ 6 1065 6 1066 2 next fixed bin (18) unsigned unaligned, 6 1067 2 loop_end_fu_pos fixed bin (17) unaligned, /* must overlay array_ref.loop_end_fu_pos */ 6 1068 6 1069 /* WORD 5 */ 6 1070 6 1071 2 pad fixed bin (18) unsigned unaligned, 6 1072 2 loop_ref_count fixed bin (17) unaligned, 6 1073 6 1074 /* WORD 6 */ 6 1075 6 1076 2 location fixed bin (24) aligned, 6 1077 6 1078 /* WORD 7*/ 6 1079 6 1080 2 ref_count fixed bin (17) unaligned, /* must overlay array_ref.ref_count */ 6 1081 2 output_by fixed bin (18) unsigned unal, /* must overlay array_ref.output_by */ 6 1082 6 1083 /* WORD 8 */ 6 1084 6 1085 2 size fixed bin (24) aligned, /* size in words */ 6 1086 6 1087 /* WORD 9 */ 6 1088 6 1089 2 start_input_to fixed bin (18) unsigned unal, /* must overlay array_ref.start_input_to */ 6 1090 2 end_input_to fixed bin (18) unsigned unal, /* must overlay array_ref.end_input_to */ 6 1091 6 1092 /* WORD 10 */ 6 1093 6 1094 2 ref_count_copy fixed bin (17) unaligned, /* must overlay array_ref.ref_count_copy */ 6 1095 2 ms_ref_count fixed bin (17) unaligned, /* counts occurances in saved machine states */ 6 1096 6 1097 /* WORD 11 */ 6 1098 6 1099 2 length fixed bin (24) aligned; /* length in characters */ 6 1100 6 1101 /* END fort_nodes.incl.pl1 */ 111 7 1 /* BEGIN fort_listing_nodes.incl.pl1 */ 7 2 7 3 /* Created: 30 August 1976, David Levin 7 4* 7 5*Last Modified: 9 October 1978, Paul Smee 7 6**/ 7 7 7 8 dcl 1 cross_reference(261120) aligned structure based(cref_base), 7 9 2 symbol fixed bin (18) unsigned unaligned, 7 10 2 line_no fixed bin(17) unaligned; 7 11 7 12 dcl 1 listing_info aligned structure based(cur_listing), 7 13 2 subprogram fixed bin (18) unsigned, 7 14 2 next fixed bin (18) unsigned, 7 15 2 first_line fixed bin (18) unsigned, 7 16 2 last_line fixed bin (18) unsigned, 7 17 2 first_cref fixed bin (18) unsigned, 7 18 2 last_cref fixed bin (18) unsigned, 7 19 2 first_error fixed bin (18) unsigned, 7 20 2 last_error fixed bin (18) unsigned; 7 21 7 22 dcl listing_seg(0:261119) fixed bin based(listing_base); 7 23 7 24 dcl 1 error_text aligned structure based, 7 25 2 next fixed bin (18) unsigned, 7 26 2 length fixed bin, 7 27 2 string char(error_text_length refer(error_text.length)) aligned; 7 28 7 29 dcl error_text_length fixed bin; 7 30 7 31 dcl 1 source_list (130560) aligned structure based (source_line_base), 7 32 2 file_number fixed bin (8) unaligned, 7 33 2 line_start fixed bin (21) unsigned unaligned, 7 34 2 unused_bits bit (6) unaligned, 7 35 2 line_length fixed bin (18) unsigned unaligned, 7 36 2 line_number_in_file fixed bin (18) unsigned unaligned; 7 37 7 38 /* END fort_listing_nodes.incl.pl1 */ 112 8 1 /* BEGIN fort_opt_nodes.incl.pl1 */ 8 2 8 3 /* Created: 22 November 1977 by Richard A. Barnes for the optimizing Fortran compiler */ 8 4 8 5 /* Modified: 09 October 1978 by Paul E. Smee for larger common and arrays. 8 6* Modified: 2 June 1979 by RAB to speed up intersection of optimizer 8 7* machine states by adding operator.coordinate and 8 8* flow_unit.is_active_operator 8 9* Modified: 28 June 1979 by RAB to speed up compute_busy_on_exit by 8 10* adding flow_unit.dim_or_alias_or_not_set. 8 11* Modified: 02 July 1979 by RAB to fix 218 by moving loop_end_chain stuff 8 12* to flow_unit node from loop node. 8 13* Modified: 14 August 1979 by RAB to change flow_unit.dim_or_alias_or_not_set 8 14* to flow_unit.always_completely_set. 8 15* Modified: 17 September 1979 by RAB in preparation for register optimizer. 8 16* Modified: 20 September 1979 by RAB for index_value_analysis of register optimizer. 8 17* Modified: 03 November 1979 by RAB for flow_unit.refreshed for register optimizer. 8 18* Modified: 30 November 1979 by RAB to add more info to the loop node 8 19* for the register optimizer. 8 20* Modified: 18 December 1979 by RAB to make remainder of register 8 21* optimizer changes. 8 22* Modified: 17 December 1980 by CRD to add opt_statement.removable. 8 23**/ 8 24 8 25 /* CHAIN (2 words) */ 8 26 8 27 dcl 1 chain based aligned, 8 28 2 next pointer unaligned, 8 29 2 value pointer unaligned; 8 30 8 31 /* EDGE (6 words) */ 8 32 8 33 dcl 1 edge based aligned, 8 34 2 from structure, 8 35 3 value ptr unal, 8 36 3 next ptr unal, 8 37 3 back ptr unal, 8 38 2 to structure, 8 39 3 value ptr unal, 8 40 3 next ptr unal, 8 41 3 back ptr unal; 8 42 8 43 8 44 /* FLOW_UNIT (22 words) */ 8 45 8 46 dcl 1 flow_unit based aligned, 8 47 2 next ptr unal, 8 48 2 back ptr unal, 8 49 2 successors ptr unal, 8 50 2 predecessors ptr unal, 8 51 2 dominator ptr unal, 8 52 2 loop ptr unal, 8 53 2 next_in_loop ptr unal, 8 54 2 loop_end_chain ptr unal, 8 55 2 position fixed bin(17) aligned, 8 56 2 number fixed bin(17) unal, 8 57 2 n_in_loop_end fixed bin(17) unal, 8 58 2 level_number fixed bin(17) aligned, 8 59 2 first_statement fixed bin (18) unsigned unal, 8 60 2 last_statement fixed bin (18) unsigned unal, 8 61 2 insert_statement fixed bin (18) unsigned unal, 8 62 2 insert_operator fixed bin (18) unsigned unal, 8 63 2 info structure unal, 8 64 3 processed bit(1), 8 65 3 loop_entry bit(1), 8 66 3 falls_through bit(1), 8 67 3 has_label bit(1), 8 68 3 entry_pt bit(1), 8 69 3 in_queue bit(1), 8 70 3 is_back_target bit(1), 8 71 3 has_side_effects bit(1), 8 72 3 removed bit(1), 8 73 3 refreshed bit(1), 8 74 3 pad bit(26), 8 75 2 used ptr unal, 8 76 2 set ptr unal, 8 77 2 busy_on_entry ptr unal, 8 78 2 set_multiple ptr unal, 8 79 2 busy_on_exit ptr unal, 8 80 2 dominated_by ptr unal, 8 81 2 is_active_operator ptr unal, 8 82 2 always_completely_set ptr unal; 8 83 8 84 8 85 /* INPUT_TO (3 words) */ 8 86 8 87 dcl 1 input_to based aligned, 8 88 2 next pointer unaligned, 8 89 2 operator pointer unaligned, 8 90 2 which fixed bin aligned; 8 91 8 92 /* LCHAIN (2 words) */ 8 93 8 94 dcl 1 lchain based aligned, 8 95 2 next pointer unaligned, 8 96 2 value fixed bin(18) aligned; 8 97 8 98 /* LOOP (33 words) */ 8 99 8 100 dcl 1 loop based aligned, 8 101 2 number fixed bin(18), 8 102 2 depth fixed bin(18), 8 103 2 father pointer unaligned, 8 104 2 brother pointer unaligned, 8 105 2 prev_brother pointer unaligned, 8 106 2 son pointer unaligned, 8 107 2 last_son pointer unaligned, 8 108 2 entry_unit pointer unaligned, 8 109 2 members pointer unaligned, 8 110 2 back_target pointer unaligned, 8 111 2 exits pointer unaligned, 8 112 2 first_unit pointer unaligned, 8 113 2 last_unit pointer unaligned, 8 114 2 is_member pointer unaligned, 8 115 2 is_exit pointer unaligned, 8 116 2 articulation_blocks pointer unaligned, 8 117 2 used pointer unaligned, 8 118 2 set pointer unaligned, 8 119 2 busy_on_exit pointer unaligned, 8 120 2 set_multiple pointer unaligned, 8 121 2 ancestors_and_me pointer unaligned, 8 122 2 bits structure unaligned, 8 123 3 has_side_effects bit(1), 8 124 3 erases structure unaligned, 8 125 4 xr(0:7) bit(1), 8 126 4 pr(6) bit(1), 8 127 3 avoid_pr(6) bit(1), 8 128 3 all_xrs_globally_assigned bit(1), 8 129 3 pad bit(14), 8 130 2 induction_var pointer unaligned, 8 131 2 may_keep_in_xr pointer unaligned, 8 132 2 computed pointer unaligned, 8 133 2 xregs_used fixed bin(4), 8 134 2 pregs_used fixed bin(4), 8 135 2 global_xr_items pointer unaligned, 8 136 2 global_pr_items pointer unaligned, 8 137 2 range_list pointer unaligned, 8 138 2 msp pointer unaligned, 8 139 2 eligible_ind_var_op_var pointer unaligned, 8 140 2 left_shift_chain pointer unaligned; 8 141 8 142 /* OPERATOR */ 8 143 8 144 dcl 1 operator based aligned, 8 145 8 146 /* WORD 1 */ 8 147 8 148 2 op_code fixed bin(8) unal, 8 149 2 assigns_constant_to_symbol bit(1) unal, 8 150 2 freed bit(1) unal, 8 151 2 number fixed bin(7) unsigned unal, 8 152 2 coordinate fixed bin(18) unsigned unal, 8 153 8 154 /* WORD 2 */ 8 155 8 156 2 next fixed bin(18) unsigned unal, 8 157 2 back fixed bin(18) unsigned unal, 8 158 8 159 /* WORD 3 */ 8 160 8 161 2 primary pointer unal, 8 162 8 163 /* WORD 4 */ 8 164 8 165 2 output fixed bin(18) aligned, 8 166 8 167 /* WORDS 5 - n */ 8 168 8 169 2 operand(n_operands refer (operator.number)) fixed bin (18) aligned; 8 170 8 171 dcl n_operands fixed bin; 8 172 8 173 8 174 /* OPT_STATEMENT */ 8 175 8 176 dcl 1 opt_statement based aligned structure, 8 177 8 178 /* WORD 1 */ 8 179 8 180 2 op_code fixed bin(8) unal, /* must be stat_op */ 8 181 2 number fixed bin(8) unal, /* must be 0 */ 8 182 2 label fixed bin (18) unsigned unal, 8 183 8 184 /* WORD 2 */ 8 185 8 186 2 first_operator fixed bin (18) unsigned unal, 8 187 2 prev_operator fixed bin (18) unsigned unal, 8 188 8 189 /* WORD 3 */ 8 190 8 191 2 next bit(18) unal, /* "0"b = no next statement */ 8 192 2 back bit(18) unal, /* "0"b = no prev statement */ 8 193 8 194 /* WORD 4 */ 8 195 8 196 2 source_id structure unaligned, 8 197 3 file fixed bin (8) unsigned, /* 0 = first file */ 8 198 3 line bit(14), 8 199 3 statement bit(5), /* 1 = first statement */ 8 200 8 201 2 length bit(9) unaligned, 8 202 8 203 /* WORD 5 */ 8 204 8 205 2 bits structure unaligned, 8 206 3 put_in_map bit(1), 8 207 3 put_in_profile bit(1), 8 208 3 processed_by_converter bit(1), 8 209 3 referenced_backwards bit(1), 8 210 3 referenced_by_assign bit(1), 8 211 3 has_operator_list bit(1), 8 212 3 moved bit(1), 8 213 3 removable bit(1), 8 214 3 pad bit(1), 8 215 8 216 2 start fixed bin(26) unaligned, 8 217 8 218 /* WORD 6 */ 8 219 8 220 2 location bit(18) unaligned, /* (18)"1"b = no code */ 8 221 2 machine_state fixed bin (18) unsigned unaligned, 8 222 8 223 /* WORD 7 */ 8 224 8 225 2 flow_unit pointer unaligned, 8 226 8 227 /* WORD 8 */ 8 228 8 229 2 operator_list pointer unaligned; 8 230 8 231 8 232 /* PRIMARY (4 words) */ 8 233 8 234 dcl 1 primary based aligned, 8 235 2 next pointer unaligned, 8 236 2 last pointer unaligned, 8 237 2 data structure aligned, 8 238 3 expression pointer unaligned, 8 239 3 flow_unit pointer unaligned; 8 240 8 241 /* RANGE (3 words) */ 8 242 8 243 dcl 1 range based aligned, 8 244 2 next pointer unaligned, 8 245 2 variable pointer unaligned, 8 246 2 bits structure unaligned, 8 247 3 range_bits structure unaligned, 8 248 4 fb17 bit(1), 8 249 4 fb18_uns bit(1), 8 250 3 mbz bit(34); 8 251 8 252 8 253 /* END fort_opt_nodes.incl.pl1 */ 113 9 1 /* BEGIN INCLUDE FILE ... compiler_source_info.incl.pl1 */ 9 2 /* coded in 1973 by B. Wolman */ 9 3 /* modified 12/75 by M. Weaver to include more source info */ 9 4 /* modified 12/76 by M. Weaver to include still more source info (version 2) */ 9 5 9 6 dcl 1 compiler_source_info aligned based, 9 7 2 version fixed bin, 9 8 2 given_ename char (32) var, 9 9 2 dirname char (168) var, 9 10 2 segname char (32) var, 9 11 2 date_time_modified fixed bin (71), 9 12 2 unique_id bit (36), 9 13 2 input_lng fixed bin (21), 9 14 2 input_pointer ptr; 9 15 9 16 dcl compiler_source_info_version_2 fixed bin static init (2) options (constant); 9 17 9 18 /* END INCLUDE FILE ... compiler_source_info.incl.pl1 */ 114 10 1 /* BEGIN include file fortran_storage.incl.pl1 */ 10 2 10 3 /* Created 82-09-21 by T. Oke (UNCA) */ 10 4 10 5 /* Modification History: 10 6* 10 7*Modified: 1 October 1982, TO - add pointer_count and pointer entries. 10 8*Modified: 9 November 1982, TO - Move pointer_count, add common_link. 10 9**/ 10 10 10 11 /* Definitions of the structures controlling the creation of and initialization 10 12* lists for fortran_storage_driver. */ 10 13 10 14 /* For VLA entries there may be a number of pointers, each of which points to a 10 15* single VLA entity within the VLA. Each such pointer supplies an offset and 10 16* is stored by 'fortran_storage_'. 10 17* 10 18* For VLA COMMON, there is a pointer to the link in the linkage section. The 10 19* unsnapped link (which is in the template linkage section) supplies an offset 10 20* to find the expression_word in the definition section, which offsets to the 10 21* type_pair, which supplies the initialization information. */ 10 22 10 23 dcl 1 create_entry based, /* creation list entry */ 10 24 2 location fixed bin (18) unsigned unaligned, /* location of base */ 10 25 2 flags unaligned structure, 10 26 3 auto bit (1) unaligned, /* automatic storage entry */ 10 27 3 static bit (1) unaligned, /* static storage entry */ 10 28 3 common bit (1) unaligned, /* common storage entry */ 10 29 3 LA bit (1) unaligned, /* Large Array (255K) */ 10 30 3 VLA bit (1) unaligned, /* Very Large Array (>255K) */ 10 31 3 K256 bit (1) unaligned, /* alloc 256K segs */ 10 32 3 init bit (1) unaligned, /* initialized */ 10 33 3 pad bit (2) unaligned, /* FUTURE EXPANSION */ 10 34 3 pointer_count fixed bin (9) unsigned unaligned, /* number of pointers to fill in */ 10 35 2 length fixed bin (24) aligned, /* number of words required */ 10 36 2 next fixed bin (18) unsigned unaligned, /* offset to next create entry */ 10 37 2 name_length fixed bin (17) unaligned, /* size of block name field */ 10 38 2 common_link fixed bin (18) unsigned unaligned, /* location of link if COMMON */ 10 39 10 40 2 block_name char (0 refer (create_entry.name_length)), 10 41 2 pointer_offsets (0 refer (create_entry.pointer_count)) aligned, 10 42 3 pad bit (12) unaligned, 10 43 3 offset fixed bin (24) unsigned unaligned; 10 44 10 45 /* Pointers will be created for each VLA sub-entity, so the pointer_count field 10 46* indicates how many pointers follow the block_name. */ 10 47 10 48 10 49 10 50 10 51 /* Initialization data. The length and datum are bit items, to permit a wide 10 52* range of inputs. 10 53* 10 54* 1. A 'repeat' of '0' signifies skipping of 'length' bits. 10 55* 2. A 'length' of '0' signifies the last item of the list. 10 56* 10 57* COMMON, VLA's, and LA's, are presumed to start at the base pointer of their 10 58* particular storage section. */ 10 59 10 60 10 61 dcl 1 create_init_entry based, 10 62 2 length fixed bin (35) aligned, /* size of datum */ 10 63 2 pad bit (6) unaligned, /* FUTURE EXPANSION */ 10 64 2 repeat fixed bin (30) unsigned unaligned, /* number of times to repeat datum */ 10 65 2 datum bit (0 refer (create_init_entry.length)); 10 66 10 67 10 68 /* END include file fortran_storage.incl.pl1 */ 115 11 1 /* BEGIN INCLUDE FILE ... object_map.incl.pl1 */ 11 2 /* coded February 8, 1972 by Michael J. Spier */ 11 3 /* Last modified on 05/20/72 at 13:29:38 by R F Mabee. */ 11 4 /* Made to agree with Spier's document on 20 May 1972 by R F Mabee. */ 11 5 /* modified on 6 May 1972 by R F Mabee to add map_ptr at end of object map. */ 11 6 /* modified May, 1972 by M. Weaver */ 11 7 /* modified 5/75 by E. Wiatrowski and 6/75 by M. Weaver */ 11 8 /* modified 5/77 by M. Weaver to add perprocess_static bit */ 11 9 11 10 declare 1 object_map aligned based, /* Structure describing standard object map */ 11 11 11 12 2 decl_vers fixed bin, /* Version number of current structure format */ 11 13 2 identifier char (8) aligned, /* Must be the constant "obj_map" */ 11 14 2 text_offset bit (18) unaligned, /* Offset relative to base of object segment of base of text section */ 11 15 2 text_length bit (18) unaligned, /* Length in words of text section */ 11 16 2 definition_offset bit (18) unaligned, /* Offset relative to base of object seg of base of definition section */ 11 17 2 definition_length bit (18) unaligned, /* Length in words of definition section */ 11 18 2 linkage_offset bit (18) unaligned, /* Offset relative to base of object seg of base of linkage section */ 11 19 2 linkage_length bit (18) unaligned, /* Length in words of linkage section */ 11 20 2 static_offset bit (18) unaligned, /* Offset relative to base of obj seg of static section */ 11 21 2 static_length bit (18) unaligned, /* Length in words of static section */ 11 22 2 symbol_offset bit (18) unaligned, /* Offset relative to base of object seg of base of symbol section */ 11 23 2 symbol_length bit (18) unaligned, /* Length in words of symbol section */ 11 24 2 break_map_offset bit (18) unaligned, /* Offset relative to base of object seg of base of break map */ 11 25 2 break_map_length bit (18) unaligned, /* Length in words of break map */ 11 26 2 entry_bound bit (18) unaligned, /* Offset in text of last gate entry */ 11 27 2 text_link_offset bit (18) unaligned, /* Offset of first text-embedded link */ 11 28 2 format aligned, /* Word containing bit flags about object type */ 11 29 3 bound bit (1) unaligned, /* On if segment is bound */ 11 30 3 relocatable bit (1) unaligned, /* On if segment has relocation info in its first symbol block */ 11 31 3 procedure bit (1) unaligned, /* On if segment is an executable object program */ 11 32 3 standard bit (1) unaligned, /* On if segment is in standard format (more than just standard map) */ 11 33 3 separate_static bit(1) unaligned, /* On if static is a separate section from linkage */ 11 34 3 links_in_text bit (1) unaligned, /* On if there are text-embedded links */ 11 35 3 perprocess_static bit (1) unaligned, /* On if static is not to be per run unit */ 11 36 3 unused bit (29) unaligned; /* Reserved */ 11 37 11 38 declare map_ptr bit(18) aligned based; /* Last word of the segment. It points to the base of the object map. */ 11 39 11 40 declare object_map_version_2 fixed bin static init(2); 11 41 11 42 /* END INCLUDE FILE ... object_map.incl.pl1 */ 116 117 118 shared_ptr = shared_vp; 119 parse_ptr = parse_vp; 120 cg_ptr = cg_vp; 121 122 polish_base = shared_structure.polish_base; 123 operand_base = shared_structure.operand_base; 124 object_base = shared_structure.object_base; 125 cref_base = shared_structure.cref_base; 126 source_line_base = shared_structure.source_line_base; 127 listing_base = shared_structure.listing_base; 128 if shared_structure.options.optimize 129 then quad_base = shared_structure.quadruple_base; 130 131 call listing_generator; 132 return; 133 134 listing_generator: 135 procedure; 136 137 dcl FF char (1) int static options (constant) init (" "); 138 dcl TB char (1) int static options (constant) init (" "); 139 dcl NL char (1) int static options (constant) init (" 140 "); 141 dcl abs builtin; 142 dcl addr builtin; 143 dcl addrel builtin; 144 dcl binary builtin; 145 dcl bits_per_char fixed bin (18) int static options (constant) init (9); 146 dcl blk_sym fixed bin (18); 147 dcl cg_called bit (1) aligned; 148 dcl cleanup condition; 149 dcl code fixed bin (35); 150 dcl com_err_$suppress_name 151 entry options (variable); 152 dcl cp ptr; 153 dcl cur_subp ptr; 154 dcl current fixed bin (18); 155 dcl date_line char (24); 156 dcl date_time_ entry (fixed bin (71), char (*)); 157 dcl debuggin_ bit (1) aligned; 158 dcl divide builtin; 159 dcl file_no fixed bin (8); 160 dcl file_no_picture picture "(3)zb"; 161 dcl first fixed bin (18); 162 dcl first_char fixed bin (21); 163 dcl first_file fixed bin (8); 164 dcl first_line fixed bin (18); 165 dcl first_loc fixed bin (18); 166 dcl first_stmnt ptr; 167 dcl in_list bit (1) aligned; 168 dcl ioa_$ioa_switch entry options (variable); 169 dcl iocb ptr; 170 dcl iox_$attach_ioname entry (char (*), ptr, char (*), fixed bin (35)); 171 dcl iox_$close entry (ptr, fixed bin (35)); 172 dcl iox_$detach_iocb entry (ptr, fixed bin (35)); 173 dcl iox_$open entry (ptr, fixed bin, bit (1) aligned, fixed bin (35)); 174 dcl iox_$put_chars entry (ptr, ptr, fixed bin (21), fixed bin (35)); 175 dcl last fixed bin (18); 176 dcl last_char fixed bin (21); 177 dcl last_line fixed bin (18); 178 dcl last_loc fixed bin (18); 179 dcl last_symbol fixed bin (18); 180 dcl length builtin; 181 dcl line_len fixed bin (18); 182 dcl line_no fixed bin (17); 183 dcl line_no_picture picture "(4)z9b"; 184 dcl line_ptr pointer; 185 dcl loc fixed bin (18); 186 dcl looping bit (1); 187 dcl ltrim builtin; 188 dcl m fixed bin; 189 dcl map_file_no_picture picture "(3)z-"; 190 dcl max_line fixed bin (18) int static options (constant) init (131); 191 dcl max_number fixed bin (18); 192 dcl more_than_one bit (1) aligned; 193 dcl moved_text bit (1) aligned; 194 dcl n fixed bin (18); 195 dcl n_com fixed bin (18); 196 dcl n_ep fixed bin (18); 197 dcl n_hdr fixed bin (18); 198 dcl n_ref fixed bin (18); 199 dcl next_entry_name fixed bin (18); 200 dcl null builtin; 201 dcl numb char (12) varying; 202 dcl number_of_operands fixed bin (18); 203 dcl number_referenced fixed bin (18); 204 dcl object (0:261119) bit (36) aligned based (object_base); 205 dcl object_map_ptr ptr; 206 dcl octal_string char (12) aligned; 207 dcl old_id bit (27) aligned; 208 dcl old_moved bit (1) aligned; 209 dcl optimizing bit (1) aligned; 210 dcl output char (4096) varying; 211 dcl output_max fixed bin (18) int static options (constant) init (4096); 212 dcl output_ptr pointer; 213 dcl p pointer; 214 dcl polish (0:261119) fixed bin (18) based (polish_base); 215 dcl ptr builtin; 216 dcl quad (0:261119) fixed bin (18) based (quad_base); 217 dcl rands (0:261119) fixed bin (18) based (operand_base); 218 dcl rel_base ptr; 219 dcl rtrim builtin; 220 dcl source_node_ptr ptr; 221 dcl source_ptr ptr; 222 dcl source_seg char (1044479) aligned based (source_ptr); 223 dcl sp ptr; 224 dcl 1 stmnt like statement aligned; 225 dcl string builtin; 226 dcl subp_type fixed bin (18); 227 dcl subprogram_header char (276) varying; 228 dcl subprogram_name char (256) varying; 229 dcl subprogram_type (0:3) char (18) int static options (constant) 230 /* 5 tabs, some SP, then type */ 231 init (" Main Program ", 232 " Block Data ", 233 " Subroutine ", 234 " Function "); 235 dcl substr builtin; 236 dcl sym_info (0:261119) fixed bin (18) based (sym_info_base); 237 dcl sym_info_base ptr; 238 dcl text_length fixed bin (17); 239 dcl three_digits picture "zz9"; 240 dcl title_lines (3) char (12) int static options (constant) 241 init ("Compiled by:", "Compiled on:", " Options:"); 242 dcl text_pos fixed bin (18); 243 dcl unspec builtin; 244 dcl verify builtin; 245 dcl work_base ptr; 246 dcl work_string char (12) varying; 247 248 dcl 1 symbols (max_number) aligned structure based (work_base), 249 2 str_p ptr unal, 250 2 offset fixed bin (18) unal unsigned, 251 2 length fixed bin (18) unal unsigned; 252 253 dcl 1 swap_temp like symbols aligned; 254 255 dcl 1 text_overlay aligned structure based (source_ptr), 256 2 pad char (first_char) unaligned, 257 2 text char (text_length) unaligned; 258 259 dcl 1 stack_length_overlay 260 aligned based, /* structure to obtain length of program stack frame */ 261 2 stack_len fixed bin (18) unaligned unsigned, 262 2 pad bit (18) unaligned; 263 264 dcl 1 source_info_line aligned, 265 2 line_id char (9) unaligned, 266 2 sp1 char (2) unaligned, 267 2 file_id char (3) unaligned, 268 2 sp2 char (4) unaligned, 269 2 dtm char (16) unaligned, 270 2 sp3 char (2) unaligned, 271 2 pathname char (168) unaligned; 272 273 dcl full_line char (132) unaligned; 274 275 dcl sym_name char (09) unaligned defined full_line position (01); 276 dcl sym_type char (20) unaligned defined full_line position (12); 277 dcl sym_loc char (08) unaligned defined full_line position (32); 278 dcl sym_char char (04) unaligned defined full_line position (40); 279 dcl sym_class char (09) unaligned defined full_line position (45); 280 dcl begin_class fixed bin (18) int static options (constant) init (44); 281 dcl begin_refs fixed bin (18) int static options (constant) init (54); 282 283 dcl lbl_name char (10) unaligned defined full_line position (09); 284 dcl lbl_loc char (06) unaligned defined full_line position (01); 285 dcl lbl_type char (41) unaligned defined full_line position (21); 286 dcl lbl_line char (75) unaligned defined full_line position (36); 287 dcl begin_line fixed bin (18) int static options (constant) init (35); 288 289 dcl ep_name char (14) unaligned defined full_line position (01); 290 dcl ep_loc char (06) unaligned defined full_line position (21); 291 dcl begin_ep_attr fixed bin (18) int static options (constant) init (30); 292 293 /* set global variables */ 294 295 source_ptr = source_info_ptr -> compiler_source_info.input_pointer; 296 /* source seg base */ 297 debuggin_ = string (shared_structure.options.system_debugging) ^= "0"b; 298 /* local copy of debugging switches */ 299 max_number = divide (sys_info$max_seg_size - number_of_crefs, 2, 17, 0); 300 /* maximum number of operands */ 301 work_base = addr (cross_reference (number_of_crefs + 1)); 302 /* base of operand array */ 303 subprogram_header = NL; /* initial value of the header */ 304 line_len = 0; /* line is initially empty */ 305 line_ptr = addr (full_line); /* pointer for value of the line */ 306 next_entry_name = first_entry_name; /* first entry name is first valid name */ 307 n_hdr = 0; /* to count number of header nodes */ 308 more_than_one = first_subprogram ^= last_subprogram; 309 310 /* if code generator called, must pick up some info pointers */ 311 312 if next_free_object ^= 0 313 then do; 314 object_map_ptr = addrel (object_base, addrel (object_base, next_free_object - 1) -> map_ptr); 315 text_pos = binary (object_map_ptr -> object_map.text_length, 18); 316 /* text length */ 317 318 rel_base = relocation_base; /* base of relocation info */ 319 sym_info_base = addr (source_list (number_of_lines + 2)); 320 /* base of symbol ref info */ 321 322 cg_called = "1"b; 323 end; 324 else cg_called = "0"b; 325 326 optimizing = shared_structure.options.optimize; 327 moved_text = "0"b; 328 329 iocb = null; /* acts as a flag for the cleanup handler */ 330 output = ""; /* the buffer is empty */ 331 output_ptr = addrel (addr (output), 1); /* pointer to the actual value of "output" */ 332 333 on condition (cleanup) 334 call close_file; /* ensure the file is closed */ 335 336 /* open the listing segment using iox_ */ 337 338 call iox_$attach_ioname ("fort_listing_", iocb, "vfile_ " || objectname || ".list", code); 339 if code ^= 0 340 then goto print_and_abort; 341 342 call iox_$open (iocb, 2, "0"b, code); /* open for stream_output */ 343 if code ^= 0 344 then goto print_and_abort; 345 346 /* Print compiler header information */ 347 348 call date_time_ (date_time_compiled, date_line); 349 350 /* If segname is null then dirname contains the absolute pathname of the source */ 351 if source_info_ptr -> compiler_source_info.segname = "" 352 then call ioa_$ioa_switch (iocb, "^-COMPILATION^xLISTING^xOF^x^a^x(^a)", 353 source_info_ptr -> compiler_source_info.given_ename, source_info_ptr -> compiler_source_info.dirname); 354 else call ioa_$ioa_switch (iocb, "^-COMPILATION^xLISTING^xOF^x^a^x(^a>^a)", 355 source_info_ptr -> compiler_source_info.given_ename, source_info_ptr -> compiler_source_info.dirname, 356 source_info_ptr -> compiler_source_info.segname); 357 /* source pathname */ 358 359 call ioa_$ioa_switch (iocb, "^3(^/^-^a^x^a^)", title_lines (1), 360 fort_version_info$version_name || fort_version_info$version_number, 361 /* compiler version */ 362 title_lines (2), 363 date_line, /* date time compiled */ 364 title_lines (3), options_string); 365 /* user options */ 366 367 /* if errors occured before the first subprogram node was created, move those errors to first subprogram */ 368 369 cur_listing = listing_base; 370 if listing_info.first_error ^= 0 371 then do; 372 p = addr (listing_seg (listing_info.next)); 373 374 /* chain lists together */ 375 376 addr (listing_seg (listing_info.last_error)) -> error_text.next = p -> listing_info.first_error; 377 p -> listing_info.first_error = listing_info.first_error; 378 379 listing_info.first_error = 0; 380 listing_info.last_error = 0; 381 end; 382 383 /* sort the cross reference nodes */ 384 385 call sort_words; 386 387 388 /* LISTING LOOP starts here */ 389 390 do cur_listing = addr (listing_seg (listing_base -> listing_info.next)) 391 repeat addr (listing_seg (listing_info.next)) while (cur_listing ^= listing_base); 392 393 /* get pointer to current subprogram node */ 394 395 cur_subprogram = listing_info.subprogram; 396 cur_subp = addr (rands (cur_subprogram)); 397 subp_type = cur_subp -> subprogram.subprogram_type; 398 399 /* build a header for this program unit */ 400 401 subprogram_header = substr (subprogram_header, 1, 1); 402 /* throw away previous header info */ 403 subprogram_header = subprogram_header || subprogram_type (subp_type); 404 /* add new info */ 405 406 subprogram_name = addr (rands (cur_subp -> subprogram.symbol)) -> symbol.name; 407 408 if subp_type = subroutine | subp_type = function 409 then subprogram_header = subprogram_header || subprogram_name; 410 else if subp_type = main_program 411 then if subprogram_name ^= default_main_entry_point_name 412 then subprogram_header = subprogram_header || subprogram_name; 413 else ; 414 else if subp_type = block_data 415 then if subprogram_name ^= unnamed_block_data_subprg_name 416 then subprogram_header = subprogram_header || subprogram_name; 417 418 subprogram_header = subprogram_header || NL; 419 subprogram_header = subprogram_header || NL; 420 421 if length (output) + length (subprogram_header) > output_max 422 then call print$buffer; 423 output = output || subprogram_header; 424 425 substr (subprogram_header, 1, 1) = FF; /* in the future, header will begin a page */ 426 427 428 /* SOURCE LISTING */ 429 430 if optimizing 431 then first_stmnt = addr (quad (cur_subp -> subprogram.first_quad)); 432 else first_stmnt = addr (polish (cur_subp -> subprogram.first_polish)); 433 434 if get_stmnt_ptr (first_stmnt) -> statement.file > shared_structure.incl_count 435 then do; 436 call print_message (500); /* cannot get pointer to source */ 437 end; 438 439 else do; 440 first_line = listing_info.first_line; 441 first_char = source_list (first_line).line_start; 442 first_file = source_list (first_line).file_number; 443 444 if listing_info.next = 0 /* the last subprogram in the compilation */ 445 then last_line = number_of_lines; /* end of segment, get everything that remains */ 446 else last_line = addr (listing_seg (listing_info.next)) -> listing_info.first_line - 1; 447 /* use beginning of next program unit */ 448 last = source_list (last_line).line_start + source_list (last_line).line_length; 449 450 if shared_structure.options.has_line_numbers & (shared_structure.incl_data.incl_count = 0) 451 then do; 452 text_length = last - first_char; 453 454 /* write the text directly from the source segment */ 455 456 if length (output) > 0 457 then call print$buffer; 458 call iox_$put_chars (iocb, addr (text), length (text), code); 459 if code ^= 0 460 then goto print_and_abort; 461 output = ""; /* buffer has been printed */ 462 end; 463 464 /* user did not supply line numbers so we will */ 465 466 else do n = first_line to last_line; 467 file_no = source_list (n).file_number; 468 source_ptr = shared_structure.file_list (file_no).incl_ptr; 469 first_char = source_list (n).line_start; 470 text_length = source_list (n).line_length; 471 line_no = source_list (n).line_number_in_file; 472 473 if length (output) + text_length + 11 > output_max 474 then call print$buffer; 475 476 file_no_picture = file_no; 477 output = output || file_no_picture; 478 479 if ^shared_structure.has_line_numbers 480 then do; 481 line_no_picture = line_no; 482 output = output || line_no_picture; 483 end; 484 485 output = output || text; 486 end; 487 488 /* if last char is not a newline, add one */ 489 490 if substr (source_seg, last, 1) ^= NL 491 then do; 492 if length (output) = output_max 493 then call print$buffer; 494 output = output || NL; 495 end; 496 end; /* code to print the source */ 497 498 499 /* REFERENCED SYMBOLS */ 500 501 if length (output) + length (subprogram_header) + 111 > output_max 502 then call print$buffer; 503 504 output = output || subprogram_header; 505 506 /* current length of this string is 111 characters */ 507 508 output = 509 output 510 || 511 " NAMES USED IN THIS PROGRAM UNIT 512 513 NAME TYPE OF NAME LOC STORAGE ATTRIBUTES AND REFERENCES 514 515 " 516 ; 517 518 number_of_operands = 0; 519 number_referenced = 0; 520 last_symbol = 0; 521 522 /* get entry point symbols for this subprogram */ 523 524 do while (next_entry_name ^= 0 & addr (rands (next_entry_name)) -> symbol.parent = cur_subprogram); 525 call store_item (next_entry_name); 526 next_entry_name = addr (rands (next_entry_name)) -> symbol.next_symbol; 527 /* get next name */ 528 end; 529 530 /* get the rest of the names */ 531 532 if cg_called 533 then do; 534 do n = 1 to 11; /* loop thru the symbol buckets */ 535 call walk_bucket (n); 536 end; 537 do n = 13 to 17; /* loop thru LA/VLA buckets */ 538 call walk_bucket (n); 539 end; 540 541 number_referenced = number_of_operands; 542 /* separate the two types */ 543 544 call walk_bucket (12); /* get unreferenced symbols */ 545 end; 546 547 else do; 548 do current = cur_subp -> subprogram.first_symbol 549 repeat addr (rands (current)) -> symbol.next_symbol while (current ^= 0); 550 call store_item (current); 551 end; 552 553 do current = cur_subp -> subprogram.common_chain 554 repeat addr (rands (current)) -> header.next_header while (current ^= 0); 555 call store_item (current); 556 end; 557 558 do current = cur_subp -> subprogram.LA_chain 559 repeat addr (rands (current)) -> header.next_header while (current ^= 0); 560 call store_item (current); 561 end; 562 563 do current = cur_subp -> subprogram.VLA_chain 564 repeat addr (rands (current)) -> header.next_header while (current ^= 0); 565 call store_item (current); 566 end; 567 568 number_referenced = number_of_operands; 569 end; 570 571 last_symbol = number_of_operands; 572 573 /* move all unreferenced but allocated symbols to unused list */ 574 575 do n = number_referenced to 1 by -1; 576 577 sp = addr (rands (symbols (n).offset)); /* get pointer to list item */ 578 579 if sp -> node.node_type = symbol_node & ^sp -> symbol.referenced 580 then do; /* unused symbol */ 581 if n ^= number_referenced 582 then do; /* swap into the other list */ 583 swap_temp = symbols (n); 584 symbols (n) = symbols (number_referenced); 585 symbols (number_referenced) = swap_temp; 586 end; 587 588 number_referenced = number_referenced - 1; 589 end; 590 end; 591 592 /* get all labels */ 593 594 do current = cur_subp -> subprogram.first_label repeat addr (rands (current)) -> label.next_label 595 while (current ^= 0); 596 call store_item (current); 597 end; 598 599 /* link up cref node with appropriate operand nodes */ 600 601 last = 0; /* current node offset */ 602 603 do current = listing_info.first_cref to listing_info.last_cref; 604 /* crefs for the subr */ 605 606 if cross_reference (current).symbol ^= last 607 /* cref for another operand node */ 608 then do; 609 if last ^= 0 610 then cross_reference (first).symbol = current - 1; 611 first = current; /* first cref for this item */ 612 last = cross_reference (current).symbol; 613 sp = addr (rands (last)); 614 615 if sp -> node.node_type = symbol_node | sp -> node.node_type = label_node 616 then sp -> node.hash_chain = current; 617 618 else if sp -> node.node_type = header_node 619 then sp -> header.last_element = current; 620 621 else call print_message (502, last); 622 end; 623 end; 624 625 if last ^= 0 626 then cross_reference (first).symbol = listing_info.last_cref; 627 628 /* output referenced names and attributes */ 629 630 call sort_symbols (1, number_referenced); 631 call print_symbols (1, number_referenced, "ref"); 632 633 634 /* UNUSED SYMBOLS */ 635 636 if last_symbol - number_referenced > 0 637 then do; 638 if length (output) + 30 > output_max 639 then call print$buffer; 640 641 output = output || " 642 NAMES DECLARED BUT NOT USED 643 644 "; 645 646 call sort_symbols (number_referenced + 1, last_symbol); 647 call print_symbols (number_referenced + 1, last_symbol, "declared"); 648 end; 649 650 651 /* LABELS */ 652 653 if number_of_operands - last_symbol > 0 654 then do; 655 if length (output) + 63 > output_max 656 then call print$buffer; 657 658 output = output || " 659 LOC LABEL TYPE LINE REFERENCES 660 661 "; 662 663 call sort_symbols (last_symbol + 1, number_of_operands); 664 call print_symbols (last_symbol + 1, number_of_operands, "ref"); 665 end; 666 667 668 /* STATEMENT MAP */ 669 670 if cg_called 671 then do; 672 if length (output) + 227 > output_max 673 then call print$buffer; /* length (header) + 7*16 + 1 */ 674 675 output = 676 output 677 || 678 " 679 LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 680 681 " 682 ; 683 684 old_id = (27)"1"b; /* print one entry per unique source_id */ 685 line_len = 0; /* line is empty */ 686 in_list = "1"b; 687 do sp = first_stmnt repeat p while (in_list); 688 689 sp = get_stmnt_ptr (sp); 690 691 if sp -> statement.next = "0"b 692 then in_list = "0"b; 693 else p = ptr (first_stmnt, sp -> statement.next); 694 695 if sp -> statement.put_in_map & ^moved_text 696 then if unspec (sp -> statement.source_id) ^= old_id 697 then do; 698 old_id = unspec (sp -> statement.source_id); 699 700 if line_len = 108 701 /* six per line; 6*18 = 108 */ 702 then do; 703 output = output || NL; 704 line_len = 0; 705 if length (output) + 109 > output_max 706 then call print$buffer; 707 end; 708 709 line_no_picture = binary (sp -> statement.line, 14); 710 map_file_no_picture = -sp -> statement.file; 711 work_string = 712 substr (" ", 1, 8 - length (ltrim (line_no_picture))); 713 work_string = work_string || map_file_no_picture; 714 work_string = work_string || ltrim (line_no_picture); 715 716 output = output || work_string; 717 718 call binoct (unspec (sp -> statement.location), octal_string); 719 output = output || substr (octal_string, 1, 6); 720 721 line_len = line_len + 18; 722 end; 723 end; 724 725 if line_len > 0 726 then output = output || NL; 727 end; 728 729 730 /* ERROR MESSAGES */ 731 732 do current = listing_info.first_error repeat p -> error_text.next while (current ^= 0); 733 p = addr (listing_seg (current)); 734 735 if length (output) + length (p -> error_text.string) > output_max 736 then call print$buffer; 737 738 output = output || p -> error_text.string; 739 end; 740 741 742 /* OBJECT LISTING */ 743 744 if shared_structure.options.list & cg_called /* must be requested and available */ 745 then do; 746 if length (output) + 16 > output_max 747 then call print$buffer; 748 749 output = output || " 750 751 752 OBJECT CODE 753 754 "; 755 756 /* print any words left over from the last subprogram */ 757 758 p = get_stmnt_ptr (first_stmnt); 759 first_loc = binary (p -> statement.location, 18); 760 761 old_id = (27)"1"b; /* print one header per unique source_id */ 762 old_moved = "0"b; 763 in_list = "1"b; 764 do sp = first_stmnt repeat p while (in_list); 765 766 sp = get_stmnt_ptr (sp); 767 768 if sp -> statement.next = "0"b 769 then do; 770 in_list = "0"b; 771 last_loc = -1; 772 end; 773 else do; 774 p = ptr (first_stmnt, sp -> statement.next); 775 if optimizing 776 then last_loc = binary (p -> opt_statement.location, 18) - 1; 777 else last_loc = binary (p -> statement.location, 18) - 1; 778 end; 779 780 if sp -> statement.put_in_map & (^moved_text | last_loc >= first_loc) 781 then do; 782 783 /* print statement header if it's unique */ 784 785 if unspec (sp -> statement.source_id) ^= old_id | (old_moved ^= moved_text) 786 then do; 787 old_id = unspec (sp -> statement.source_id); 788 old_moved = moved_text; 789 790 if length (output) + max_line > output_max 791 then call print$buffer; 792 793 output = 794 output 795 || " "; 796 797 if moved_text 798 then output = output || "EXTRACTED FROM STATEMENT "; 799 else output = output || "STATEMENT "; 800 output = output || print_number (binary (sp -> statement.statement, 5)); 801 802 output = output || " ON LINE "; 803 output = output || print_number (binary (sp -> statement.line, 14)); 804 805 if sp -> statement.file ^= 0 806 then do; 807 output = output || " IN FILE "; 808 output = 809 output || print_number (binary (sp -> statement.file)); 810 end; 811 812 output = output || NL; 813 814 /* print source line */ 815 816 if sp -> statement.length ^= "000000000"b 817 then do; 818 first_char = sp -> statement.start; 819 last_char = 820 first_char + binary (sp -> statement.length, 9) - 1; 821 text_length = last_char - first_char; 822 823 if length (output) + text_length + 2 > output_max 824 then call print$buffer; 825 source_ptr = 826 shared_structure.file_list (sp -> statement.file) 827 .incl_ptr; 828 output = output || text; 829 if substr (source_seg, last_char, 1) ^= NL 830 then output = output || NL; 831 output = output || NL; 832 end; 833 end; 834 835 /* print object code */ 836 837 if last_loc >= first_loc 838 then do; 839 call display_text (first_loc, last_loc); 840 first_loc = last_loc + 1; 841 end; 842 end; 843 end; /* loop through statements */ 844 end; /* do block to print object code */ 845 846 end; /* LISTING LOOP */ 847 848 /* print constants */ 849 850 if shared_structure.options.list & cg_called 851 then do; 852 in_list = "0"b; /* header has not been printed */ 853 854 do current = first_dw_constant repeat sp -> constant.next_constant while (current ^= 0); 855 sp = addr (rands (current)); 856 857 if sp -> constant.allocated 858 then do; 859 call print_header; 860 861 if length (output) = output_max 862 then call print$buffer; 863 output = output || NL; 864 call display_text$display_abs ((sp -> constant.location), sp -> constant.location + 1); 865 end; 866 end; 867 868 do current = first_word_constant repeat sp -> constant.next_constant while (current ^= 0); 869 sp = addr (rands (current)); 870 871 if sp -> constant.allocated 872 then do; 873 call print_header; 874 875 if length (output) = output_max 876 then call print$buffer; 877 output = output || NL; 878 call display_text$display_abs ((sp -> constant.location), (sp -> constant.location)); 879 end; 880 end; 881 882 do current = first_char_constant repeat sp -> char_constant.next_constant while (current ^= 0); 883 sp = addr (rands (current)); 884 885 if sp -> constant.allocated 886 then do; 887 call print_header; 888 889 if length (output) = output_max 890 then call print$buffer; 891 output = output || NL; 892 call display_text$display_ascii ((sp -> char_constant.location), 893 length (sp -> char_constant.value)); 894 end; 895 end; 896 897 do current = first_block_constant repeat sp -> char_constant.next_constant while (current ^= 0); 898 sp = addr (rands (current)); 899 900 if sp -> constant.allocated 901 then do; 902 call print_header; 903 904 if length (output) = output_max 905 then call print$buffer; 906 output = output || NL; 907 908 first_loc = sp -> char_constant.location; 909 last_loc = 910 first_loc 911 + divide (length (sp -> char_constant.value) - 1, chars_per_word, 17, 0); 912 call display_text$display_abs (first_loc, last_loc); 913 end; 914 end; 915 916 /* output Creation List */ 917 918 looping = "1"b; 919 if Area_create_first ^= -1 920 then do; 921 if length (output) + 23 > output_max 922 then call print$buffer; 923 output = output || " 924 STORAGE CREATION LIST 925 926 "; 927 928 do current = Area_create_first repeat cp -> create_entry.next while (looping); 929 cp = ptr (object_base, current); 930 first_loc = current; 931 last_loc = current + currentsize (cp -> create_entry) - 1; 932 call display_text$display_create (first_loc, last_loc, cp); 933 934 if cp -> create_entry.init 935 then call display_text$display_init (addrel (cp, currentsize (cp -> create_entry))); 936 937 if length (output) + 1 > output_max 938 then call print$buffer; 939 output = output || " 940 "; 941 if cp -> create_entry.next = 0 942 then looping = "0"b; 943 end; 944 end; 945 946 /* output Initialization List */ 947 948 if Area_init_first ^= -1 949 then do; 950 if length (output) + 30 > output_max 951 then call print$buffer; 952 output = output || " 953 STORAGE INITIALIZATION LIST 954 955 "; 956 957 current = Area_init_first; 958 959 cp = ptr (object_base, current); 960 call display_text$display_init (cp); 961 end; 962 end; 963 964 /* flush the buffer */ 965 966 if length (output) > 0 967 then call print$buffer; 968 969 /* print summary for segment */ 970 971 if cg_called 972 then do; 973 call ioa_$ioa_switch (iocb, 974 /* stream ptr */ 975 "^|^a^2/^a^/ 976 ^-Object^-Text^-Link^-Symbol^-Defs^-Static 977 Start^10x0^7x0^10o^12o^8o^12o 978 Length^10o^8o^10o^12o^8o^12o^/" 979 , "OBJECT SEGMENT SUMMARY", /* first header */ 980 "STORAGE REQUIREMENTS FOR THIS PROGRAM", 981 /* second header */ 982 binary (object_map_ptr -> linkage_offset, 18), 983 /* linkage start */ 984 binary (object_map_ptr -> symbol_offset, 18), 985 /* symbol start */ 986 binary (object_map_ptr -> definition_offset, 18), 987 /* def start */ 988 binary (object_map_ptr -> static_offset, 18), 989 /* static start */ 990 next_free_object, 991 /* object length */ 992 text_pos, /* text length */ 993 binary (object_map_ptr -> linkage_length, 18), 994 /* linkage length */ 995 binary (object_map_ptr -> symbol_length, 18), 996 /* symbol length */ 997 binary (object_map_ptr -> definition_length, 18), 998 /* def length */ 999 binary (object_map_ptr -> static_length, 18)); 1000 /* static length */ 1001 output = ""; /* buffer has been printed */ 1002 1003 1004 /* print length of the program stack frame */ 1005 1006 call ioa_$ioa_switch (iocb, "Stack frame is ^d (decimal) words.^/", 1007 addr (object (addr (rands (first_entry_name)) -> label.location)) -> stack_len); 1008 1009 /* summary of external references, entry point references, and common block references */ 1010 1011 n_ep = 0; /* counts entry points */ 1012 1013 /* entry points */ 1014 1015 do n = first_entry_name repeat sp -> symbol.next_symbol while (n ^= 0); 1016 sp = addr (rands (n)); 1017 1018 n_ep = n_ep + 1; 1019 symbols (n_ep).offset = n; 1020 symbols (n_ep).length = length (sp -> symbol.name); 1021 symbols (n_ep).str_p = addr (sp -> symbol.name); 1022 end; 1023 1024 /* common blocks and outgoing references */ 1025 1026 n_com = n_ep; /* common list immediately follows ep list */ 1027 n_ref = n_ep + n_hdr; /* ext ref list immediately follows common */ 1028 1029 do current = first_subprogram repeat addr (rands (current)) -> subprogram.next_subprogram 1030 while (current ^= 0); 1031 1032 do m = 9, 17; 1033 do n = addr (rands (current)) -> subprogram.storage_info.first (m) 1034 repeat addr (rands (n)) -> node.next while (n ^= 0); 1035 1036 if addr (rands (n)) -> node.node_type = symbol_node 1037 then do; 1038 n_ref = n_ref + 1; 1039 symbols (n_ref).offset = n; 1040 symbols (n_ref).length = length_symbol_name (addr (rands (n))); 1041 symbols (n_ref).str_p = addr (addr (rands (n)) -> symbol.name); 1042 addr (rands (n)) -> symbol.parent = current; 1043 /* save parent block */ 1044 end; 1045 else do; 1046 n_com = n_com + 1; 1047 symbols (n_com).offset = n; 1048 symbols (n_com).length = length (addr (rands (n)) -> header.block_name); 1049 symbols (n_com).str_p = addr (addr (rands (n)) -> header.block_name); 1050 end; 1051 end; 1052 end; 1053 end; 1054 1055 /* sort the three groups */ 1056 1057 call sort_symbols (1, n_ep); 1058 call sort_offset (1, n_ep); 1059 1060 call sort_symbols (n_ep + 1, n_com); 1061 call sort_offset (n_ep + 1, n_com); 1062 1063 n = n_ep + n_hdr + 1; 1064 call sort_symbols (n, n_ref); 1065 call sort_offset (n, n_ref); 1066 1067 /* print entry point symbols and any ext refs resolved by them */ 1068 1069 if length (output) + 43 > output_max 1070 then call print$buffer; 1071 output = output || " 1072 ENTRY POINT LOC ATTRIBUTES 1073 1074 "; 1075 first = n; 1076 1077 do current = 1 to n_ep; 1078 sp = addr (rands (symbols (current).offset)); 1079 1080 full_line = ""; 1081 line_len = begin_ep_attr - 1; 1082 1083 if length_symbol_name (sp) > length (ep_name) 1084 then call print$long_name (begin_ep_attr, 0, (symbol_name (sp))); 1085 else ep_name = symbol_name (sp); 1086 1087 loc = sp -> symbol.address.offset; 1088 call binoct (unspec (loc), octal_string); 1089 ep_loc = substr (octal_string, 7, 6); 1090 1091 blk_sym = addr (rands (sp -> symbol.parent)) -> subprogram.symbol; 1092 1093 if blk_sym ^= symbols (current).offset & more_than_one 1094 then do; 1095 substr (full_line, line_len + 2, 2) = "in"; 1096 line_len = line_len + 4; 1097 1098 if length_symbol_name (addr (rands (blk_sym))) > max_line - line_len 1099 then call print$long_name (begin_ep_attr, line_len, 1100 (symbol_name (addr (rands (blk_sym))))); 1101 else do; 1102 loc = length_symbol_name (addr (rands (blk_sym))); 1103 substr (full_line, line_len + 1, loc) = symbol_name (addr (rands (blk_sym))); 1104 line_len = line_len + loc; 1105 end; 1106 end; 1107 1108 numb = print_line_number ((sp -> symbol.hash_chain)); 1109 if line_len + length (numb) + 9 > max_line 1110 then call print$line (begin_ep_attr); 1111 substr (full_line, line_len + 2, 7) = "on line"; 1112 substr (full_line, line_len + 10, length (numb)) = numb; 1113 line_len = line_len + length (numb) + 9; 1114 1115 do while (first <= n_ref 1116 & symbol_name (sp) > symbol_name (addr (rands (symbols (first).offset)))); 1117 first = first + 1; 1118 end; 1119 1120 do while (first <= n_ref 1121 & symbol_name (sp) = symbol_name (addr (rands (symbols (first).offset)))); 1122 if addr (rands (symbols (first).offset)) -> symbol.initial = symbols (current).offset 1123 then do; 1124 loc = symbols (first).offset; 1125 symbols (first).offset = 0; 1126 1127 blk_sym = addr (rands (addr (rands (loc)) -> symbol.parent)) -> subprogram.symbol; 1128 last = length_symbol_name (addr (rands (blk_sym))); 1129 1130 if line_len + 9 + last > max_line 1131 then call print$line (begin_ep_attr); 1132 substr (full_line, line_len + 2, 6) = "ref in"; 1133 substr (full_line, line_len + 9, last) = addr (rands (blk_sym)) -> symbol.name; 1134 line_len = line_len + 9 + last; 1135 1136 loc = addr (rands (loc)) -> symbol.hash_chain; 1137 if loc > 0 /* protect unreferenced */ 1138 then do; 1139 last = cross_reference (loc).symbol; 1140 call print_crefs (loc, last, begin_ep_attr, ""); 1141 end; 1142 end; 1143 1144 first = first + 1; 1145 end; 1146 1147 call print$line (begin_ep_attr); 1148 end; 1149 1150 /* print external references */ 1151 1152 do first = n_ep + n_hdr + 1 to n_ref while (symbols (first).offset = 0); 1153 end; 1154 1155 if first <= n_ref 1156 then do; 1157 if length (output) + 43 > output_max 1158 then call print$buffer; 1159 output = output || " 1160 EXTERNAL REFERENCE LOC ATTRIBUTES 1161 1162 "; 1163 last_loc = -1; 1164 1165 do current = first to n_ref; 1166 if symbols (current).offset > 0 1167 then do; 1168 sp = addr (rands (symbols (current).offset)); 1169 1170 full_line = ""; 1171 line_len = begin_ep_attr - 1; 1172 1173 loc = sp -> symbol.address.offset; 1174 1175 if loc ^= last_loc 1176 then do; 1177 last_loc = loc; 1178 1179 if length_symbol_name (sp) > length (ep_name) 1180 then call print$long_name (begin_ep_attr, 0, (symbol_name (sp))); 1181 else ep_name = symbol_name (sp); 1182 1183 call binoct (unspec (loc), octal_string); 1184 ep_loc = substr (octal_string, 7, 6); 1185 end; 1186 1187 if more_than_one 1188 then do; 1189 substr (full_line, line_len + 2, 2) = "in"; 1190 line_len = line_len + 4; 1191 1192 blk_sym = addr (rands (sp -> symbol.parent)) -> subprogram.symbol; 1193 if length_symbol_name (addr (rands (blk_sym))) 1194 > max_line - line_len 1195 then call print$long_name (begin_ep_attr, line_len, 1196 (symbol_name (addr (rands (blk_sym))))); 1197 else do; 1198 loc = length_symbol_name (addr (rands (blk_sym))); 1199 substr (full_line, line_len + 1, loc) = 1200 symbol_name (addr (rands (blk_sym))); 1201 line_len = line_len + loc; 1202 end; 1203 end; 1204 1205 loc = sp -> symbol.hash_chain; 1206 1207 if loc > 0 /* protect if unreffed */ 1208 then do; 1209 last = cross_reference (loc).symbol; 1210 call print_crefs (loc, last, begin_ep_attr, "ref"); 1211 end; 1212 1213 call print$line (begin_ep_attr); 1214 end; 1215 end; 1216 end; 1217 else do; 1218 if length (output) + 24 > output_max 1219 then call print$buffer; 1220 output = output || " 1221 NO EXTERNAL REFERENCES 1222 "; 1223 end; 1224 1225 if n_com = n_ep 1226 then do; 1227 if length (output) + 18 > output_max 1228 then call print$buffer; 1229 output = output || " 1230 NO COMMON BLOCKS 1231 "; 1232 end; 1233 else do; 1234 if length (output) + 50 > output_max 1235 then call print$buffer; 1236 output = output || " 1237 COMMON BLOCK LOC LENGTH REFERENCES 1238 1239 "; 1240 n = -1; /* location of last block */ 1241 1242 do current = n_ep + 1 to n_com; 1243 sp = addr (rands (symbols (current).offset)); 1244 1245 full_line = ""; 1246 line_len = begin_ep_attr - 1; 1247 loc = sp -> header.location; 1248 1249 if loc ^= n 1250 then do; 1251 if length (sp -> header.block_name) > length (ep_name) 1252 then call print$long_name (begin_ep_attr, 0, (sp -> header.block_name)); 1253 else ep_name = sp -> header.block_name; 1254 1255 call binoct (unspec (loc), octal_string); 1256 ep_loc = substr (octal_string, 7, 6); 1257 1258 n = loc; 1259 end; 1260 1261 numb = print_number ((sp -> header.length)); 1262 if sp -> header.units = bit_units 1263 then numb = numb || "B"; 1264 else if sp -> header.units = char_units 1265 then numb = numb || "C"; 1266 else if sp -> header.units = halfword_units 1267 then numb = numb || "H"; 1268 1269 substr (full_line, begin_ep_attr + 6 - length (numb), length (numb)) = numb; 1270 line_len = begin_ep_attr + 6; 1271 1272 loc = sp -> header.last_element; 1273 last = cross_reference (loc).symbol; 1274 call print_crefs (loc, last, begin_ep_attr + 6, "declared"); 1275 1276 call print$line (begin_ep_attr); 1277 end; 1278 end; 1279 end; 1280 1281 if length (output) + 87 > output_max 1282 then call print$buffer; 1283 1284 output = output || FF; 1285 output = output || " SOURCE FILES USED IN THIS COMPILATION 1286 1287 LINE NUMBER DATE MODIFIED PATHNAME 1288 1289 "; 1290 1291 do m = 0 to shared_structure.incl_count; 1292 string (source_info_line) = ""; 1293 source_node_ptr = addr (rands (shared_structure.file_list (m).source_node_offset)); 1294 1295 if m > 0 1296 then do; 1297 1298 line_no_picture = source_list (source_node_ptr -> source.line_number).line_number_in_file; 1299 map_file_no_picture = -source_list (source_node_ptr -> source.line_number).file_number; 1300 source_info_line.line_id = ltrim (map_file_no_picture) || ltrim (line_no_picture); 1301 1302 end; 1303 1304 three_digits = m; /* known to take three digits at most */ 1305 source_info_line.file_id = three_digits; 1306 1307 call date_time_ ((source_node_ptr -> source.dtm), source_info_line.dtm); 1308 source_info_line.pathname = source_node_ptr -> source.pathname; 1309 1310 if length (output) + length (rtrim (string (source_info_line))) + 1 > output_max 1311 then call print$buffer; 1312 1313 output = output || rtrim (string (source_info_line)); 1314 output = output || NL; 1315 1316 end; 1317 1318 call close_file; 1319 return; 1320 1321 1322 print_and_abort: 1323 call com_err_$suppress_name (code, "fort_listing_generator"); 1324 call close_file; 1325 return; 1326 1327 close_file: 1328 procedure; 1329 1330 if length (output) > 0 1331 then call iox_$put_chars (iocb, output_ptr, length (output), code); 1332 1333 if iocb ^= null 1334 then call iox_$close (iocb, code); 1335 1336 if iocb ^= null 1337 then call iox_$detach_iocb (iocb, code); 1338 end close_file; 1339 1340 1341 1342 get_stmnt_ptr: 1343 proc (a_ptr) returns (ptr); 1344 1345 dcl a_ptr ptr; 1346 dcl st_ptr ptr; 1347 1348 if optimizing 1349 then do; 1350 st_ptr = a_ptr; 1351 1352 stmnt.next = st_ptr -> opt_statement.next; 1353 stmnt.location = st_ptr -> opt_statement.location; 1354 unspec (stmnt.source_id) = unspec (st_ptr -> opt_statement.source_id); 1355 stmnt.length = st_ptr -> opt_statement.length; 1356 substr (string (stmnt.bits), 1, 2) = substr (string (st_ptr -> opt_statement.bits), 1, 2); 1357 stmnt.start = st_ptr -> opt_statement.start; 1358 1359 moved_text = st_ptr -> opt_statement.moved; 1360 1361 return (addr (stmnt)); 1362 end; 1363 else return (a_ptr); 1364 end get_stmnt_ptr; 1365 1366 1367 1368 sort_offset: 1369 procedure (sr, fi); 1370 1371 dcl (sr, fi) fixed bin (18); 1372 dcl (i, fir) fixed bin (18); 1373 dcl old_str char (symbols (fir).length) aligned based (symbols (fir).str_p); 1374 dcl new_str char (symbols (i).length) aligned based (symbols (i).str_p); 1375 1376 fir = sr; 1377 do i = sr + 1 to fi; 1378 if old_str ^= new_str 1379 then do; 1380 call simple_sort (i - 1); 1381 fir = i; 1382 end; 1383 end; 1384 1385 call simple_sort (fi); 1386 return; 1387 1388 1389 simple_sort: 1390 procedure (last_slot); 1391 1392 dcl last_slot fixed bin (18); 1393 dcl (j, k) fixed bin (18); 1394 1395 do j = fir to last_slot - 1; 1396 do k = j + 1 to last_slot; 1397 if symbols (j).offset > symbols (k).offset 1398 then do; 1399 swap_temp = symbols (j); 1400 symbols (j) = symbols (k); 1401 symbols (k) = swap_temp; 1402 end; 1403 end; 1404 end; 1405 end simple_sort; 1406 end sort_offset; 1407 1408 1409 1410 print_header: 1411 procedure; /* to print header for constants */ 1412 1413 if in_list 1414 then return; /* header already printed */ 1415 in_list = "1"b; 1416 1417 if length (output) + 11 > output_max 1418 then call print$buffer; 1419 1420 if more_than_one 1421 then output = output || FF; 1422 else output = output || NL; 1423 1424 output = output || "CONSTANTS 1425 "; 1426 end print_header; 1427 1428 print$buffer: 1429 procedure; 1430 1431 dcl leading_columns fixed bin (18); 1432 dcl resumption_column fixed bin (18); 1433 dcl long_name char (256) varying; 1434 1435 call printer; 1436 return; 1437 1438 1439 print$line: 1440 entry (resumption_column); 1441 1442 if length (output) + line_len >= output_max 1443 then call printer; 1444 output = output || substr (full_line, 1, line_len); 1445 output = output || NL; 1446 full_line = ""; 1447 line_len = resumption_column - 1; 1448 return; 1449 1450 1451 print$long_name: 1452 entry (resumption_column, leading_columns, long_name); 1453 1454 if length (output) + leading_columns + length (long_name) >= output_max 1455 then call printer; 1456 if leading_columns > 0 1457 then output = output || substr (full_line, 1, leading_columns); 1458 output = output || long_name; 1459 output = output || NL; 1460 full_line = ""; 1461 line_len = resumption_column - 1; 1462 return; 1463 1464 1465 printer: 1466 procedure; 1467 1468 call iox_$put_chars (iocb, output_ptr, length (output), code); 1469 if code ^= 0 1470 then goto print_and_abort; 1471 output = ""; 1472 end printer; 1473 end print$buffer; 1474 1475 print_number: 1476 procedure (value) returns (char (12) varying); 1477 1478 dcl number picture "(11)-9"; 1479 dcl value fixed bin (18); 1480 1481 1482 number = value; 1483 1484 return (substr (number, verify (number, " "))); 1485 end print_number; 1486 1487 print_line_number: 1488 procedure (source_info_index) returns (char (12) varying); 1489 1490 dcl source_info_index fixed bin (18); 1491 dcl cref_file fixed bin (18); 1492 dcl cref_line fixed bin (18); 1493 dcl return_string char (12) varying initial (""); 1494 1495 if cross_reference (source_info_index).line_no = 0 1496 then return (""); 1497 1498 cref_line = source_list (abs (cross_reference (source_info_index).line_no)).line_number_in_file; 1499 1500 if cref_line > 0 1501 then do; 1502 cref_file = source_list (abs (cross_reference (source_info_index).line_no)).file_number; 1503 1504 if cref_file > 0 1505 then return_string = print_number (cref_file) || "-"; 1506 1507 return_string = return_string || print_number (cref_line); 1508 end; 1509 1510 return (return_string); 1511 end print_line_number; 1512 1513 walk_bucket: 1514 procedure (bucket_number); 1515 1516 dcl bucket_number fixed bin (18); 1517 dcl i fixed bin (18); 1518 dcl n fixed bin (18); 1519 1520 n = bucket_number; 1521 1522 do current = cur_subp -> subprogram.storage_info.first (n) repeat sp -> node.next while (current ^= 0); 1523 1524 sp = addr (rands (current)); 1525 1526 if sp -> node.node_type = symbol_node 1527 then call store_item (current); 1528 1529 else if sp -> node.node_type = header_node 1530 then do; 1531 if sp -> header.in_common 1532 then call store_item (current); 1533 1534 do i = sp -> header.first_element repeat addr (rands (i)) -> symbol.next_member while (i ^= 0); 1535 call store_item (i); 1536 end; 1537 end; 1538 1539 else call print_message (502, current); 1540 end; 1541 end walk_bucket; 1542 1543 store_item: 1544 procedure (node_offset); 1545 1546 dcl node_offset fixed bin (18); 1547 dcl x fixed bin (18); 1548 dcl xp ptr; 1549 1550 if number_of_operands >= max_number 1551 then do; 1552 call print_message (501); /* too many symbols */ 1553 1554 if last_symbol = 0 /* still doing symbols */ 1555 then do; 1556 call sort_symbols (1, number_of_operands); 1557 call print_symbols (1, number_of_operands, "ref"); 1558 1559 number_of_operands = 0; 1560 number_referenced = 0; 1561 end; 1562 1563 else do; /* have both symbols and labels */ 1564 call sort_symbols (1, last_symbol); 1565 /* sort and print all symbols */ 1566 call print_symbols (1, number_referenced, "ref"); 1567 1568 do n = 1 to number_of_operands - last_symbol; 1569 /* remove all symbols from the list */ 1570 symbols (n) = symbols (n + last_symbol); 1571 end; 1572 1573 number_of_operands = number_of_operands - last_symbol; 1574 number_referenced = 0; 1575 last_symbol = 0; 1576 end; 1577 end; 1578 1579 x = node_offset; 1580 xp = addr (rands (x)); 1581 1582 if xp -> node.node_type = symbol_node 1583 then do; 1584 if compiler_generated (xp) 1585 then return; 1586 1587 number_of_operands = number_of_operands + 1; 1588 symbols (number_of_operands).offset = x; 1589 symbols (number_of_operands).length = length_symbol_name (xp); 1590 symbols (number_of_operands).str_p = addr (xp -> symbol.name); 1591 1592 xp -> symbol.hash_chain = 0; /* prevents bad cref output */ 1593 end; 1594 1595 else if xp -> node.node_type = label_node 1596 then do; 1597 if xp -> label.name <= 0 & ^debuggin_ 1598 then return; /* eliminate compiler labels */ 1599 1600 number_of_operands = number_of_operands + 1; 1601 symbols (number_of_operands).offset = x; 1602 symbols (number_of_operands).length = 2; 1603 symbols (number_of_operands).str_p = addr (xp -> label.name); 1604 1605 xp -> label.hash_chain = 0; /* prevent bad cref output */ 1606 end; 1607 1608 else if xp -> node.node_type = header_node 1609 then do; 1610 n_hdr = n_hdr + 1; /* count all headers */ 1611 number_of_operands = number_of_operands + 1; 1612 symbols (number_of_operands).offset = x; 1613 symbols (number_of_operands).length = xp -> header.name_length; 1614 symbols (number_of_operands).str_p = addr (xp -> header.block_name); 1615 1616 xp -> header.last_element = 0; /* prevent bad cref output */ 1617 end; 1618 1619 else call print_message (502, x); 1620 end store_item; 1621 1622 1623 1624 compiler_generated: 1625 proc (sp) returns (bit (1) aligned); 1626 1627 dcl sp ptr; 1628 1629 if debuggin_ 1630 then return ("0"b); /* Print all symbols when debugging. */ 1631 if length (sp -> symbol.name) = 0 1632 then return ("1"b); /* A cg symbol. */ 1633 if substr (sp -> symbol.name, 1, 4) = "ftn." 1634 then return ("1"b); /* A parse symbol. */ 1635 if sp -> symbol.by_compiler 1636 then if sp -> symbol.name = unnamed_block_data_subprg_name 1637 then return ("1"b); 1638 return ("0"b); 1639 end compiler_generated; 1640 1641 sort_words: 1642 procedure; 1643 1644 dcl depth fixed bin (18); 1645 dcl divide builtin; 1646 dcl first fixed bin (18); 1647 dcl high fixed bin (18); 1648 dcl last fixed bin (18); 1649 dcl low fixed bin (18); 1650 dcl median fixed bin (18); 1651 dcl swap_temp bit (36) aligned; 1652 dcl t bit (36) aligned; 1653 1654 dcl 1 stack (0:20) aligned, 1655 2 first fixed bin (18), 1656 2 last fixed bin (18); 1657 1658 1659 1660 last = number_of_crefs; 1661 if last <= 1 1662 then return; 1663 1664 depth = 0; 1665 first = 1; 1666 go to L4; 1667 1668 1669 L1: 1670 median = divide (first + last, 2, 17, 0); 1671 t = unspec (cross_reference (median)); 1672 low = first; 1673 high = last; 1674 1675 if unspec (cross_reference (first)) > t 1676 then do; 1677 unspec (cross_reference (median)) = unspec (cross_reference (first)); 1678 unspec (cross_reference (first)) = t; 1679 t = unspec (cross_reference (median)); 1680 end; 1681 1682 if unspec (cross_reference (last)) < t 1683 then do; 1684 unspec (cross_reference (median)) = unspec (cross_reference (last)); 1685 unspec (cross_reference (last)) = t; 1686 t = unspec (cross_reference (median)); 1687 1688 if unspec (cross_reference (first)) > t 1689 then do; 1690 unspec (cross_reference (median)) = unspec (cross_reference (first)); 1691 unspec (cross_reference (first)) = t; 1692 t = unspec (cross_reference (median)); 1693 end; 1694 1695 end; 1696 1697 L2: 1698 do high = high - 1 by -1 while (unspec (cross_reference (high)) > t); 1699 end; 1700 1701 do low = low + 1 by 1 while (unspec (cross_reference (low)) < t); 1702 end; 1703 1704 if low <= high 1705 then do; 1706 swap_temp = unspec (cross_reference (high)); 1707 unspec (cross_reference (high)) = unspec (cross_reference (low)); 1708 unspec (cross_reference (low)) = swap_temp; 1709 go to L2; 1710 end; 1711 1712 if (high - first) > (last - low) 1713 then do; 1714 stack.first (depth) = first; 1715 stack.last (depth) = high; 1716 first = low; 1717 end; 1718 1719 else do; 1720 stack.first (depth) = low; 1721 stack.last (depth) = last; 1722 last = high; 1723 end; 1724 1725 depth = depth + 1; 1726 1727 L4: 1728 if (last - first) > 10 1729 then go to L1; 1730 1731 if first = 1 1732 then if first < last 1733 then go to L1; 1734 1735 do first = first + 1 to last; 1736 t = unspec (cross_reference (first)); 1737 do low = first - 1 by -1 while (unspec (cross_reference (low)) > t); 1738 unspec (cross_reference (low + 1)) = unspec (cross_reference (low)); 1739 end; 1740 unspec (cross_reference (low + 1)) = t; 1741 end; 1742 1743 1744 depth = depth - 1; 1745 1746 if depth >= 0 1747 then do; 1748 first = stack.first (depth); 1749 last = stack.last (depth); 1750 go to L4; 1751 end; 1752 end sort_words; 1753 1754 sort_symbols: 1755 procedure (a_initial, a_final); 1756 1757 dcl a_final fixed bin (18); 1758 dcl a_initial fixed bin (18); 1759 dcl depth fixed bin (18); 1760 dcl first fixed bin (18); 1761 dcl first_string char (symbols (first).length) unaligned based (symbols (first).str_p); 1762 dcl high fixed bin (18); 1763 dcl high_string char (symbols (high).length) unaligned based (symbols (high).str_p); 1764 dcl initial fixed bin (18); 1765 dcl last fixed bin (18); 1766 dcl last_string char (symbols (last).length) unaligned based (symbols (last).str_p); 1767 dcl low fixed bin (18); 1768 dcl low_string char (symbols (low).length) unaligned based (symbols (low).str_p); 1769 dcl median fixed bin (18); 1770 1771 dcl 1 t like symbols aligned; 1772 dcl t_string char (t.length) unaligned based (t.str_p); 1773 1774 dcl 1 stack (0:20) aligned, 1775 2 first fixed bin (18), 1776 2 last fixed bin (18); 1777 1778 1779 1780 first, initial = a_initial; 1781 last = a_final; 1782 if last - first <= 0 1783 then return; 1784 1785 depth = 0; 1786 go to L4; 1787 1788 1789 L1: 1790 median = divide (first + last, 2, 17, 0); 1791 t = symbols (median); 1792 low = first; 1793 high = last; 1794 1795 if first_string > t_string 1796 then do; 1797 symbols (median) = symbols (first); 1798 symbols (first) = t; 1799 t = symbols (median); 1800 end; 1801 1802 if last_string < t_string 1803 then do; 1804 symbols (median) = symbols (last); 1805 symbols (last) = t; 1806 t = symbols (median); 1807 1808 if first_string > t_string 1809 then do; 1810 symbols (median) = symbols (first); 1811 symbols (first) = t; 1812 t = symbols (median); 1813 end; 1814 1815 end; 1816 1817 L2: 1818 do high = high - 1 by -1 while (high_string > t_string); 1819 end; 1820 1821 do low = low + 1 by 1 while (low_string < t_string); 1822 end; 1823 1824 if low <= high 1825 then do; 1826 swap_temp = symbols (high); 1827 symbols (high) = symbols (low); 1828 symbols (low) = swap_temp; 1829 go to L2; 1830 end; 1831 1832 if (high - first) > (last - low) 1833 then do; 1834 stack.first (depth) = first; 1835 stack.last (depth) = high; 1836 first = low; 1837 end; 1838 1839 else do; 1840 stack.first (depth) = low; 1841 stack.last (depth) = last; 1842 last = high; 1843 end; 1844 1845 depth = depth + 1; 1846 1847 L4: 1848 if (last - first) > 10 1849 then go to L1; 1850 1851 if first = initial 1852 then if first < last 1853 then go to L1; 1854 1855 do first = first + 1 to last; 1856 t = symbols (first); 1857 do low = first - 1 by -1 while (low_string > t_string); 1858 symbols (low + 1) = symbols (low); 1859 end; 1860 symbols (low + 1) = t; 1861 end; 1862 1863 1864 depth = depth - 1; 1865 1866 if depth >= 0 1867 then do; 1868 first = stack.first (depth); 1869 last = stack.last (depth); 1870 go to L4; 1871 end; 1872 end sort_symbols; 1873 1874 binoct: 1875 procedure (number, string); 1876 1877 dcl number bit (36) aligned; 1878 dcl string char (12) aligned; 1879 1880 dcl ioa_$rsnnl entry options (variable); 1881 1882 call ioa_$rsnnl ("^w", string, 12, number); 1883 end binoct; 1884 1885 print_symbols: 1886 procedure (initial, final, head); 1887 1888 dcl a fixed bin (18); 1889 dcl dp ptr; 1890 dcl final fixed bin (18); 1891 dcl hdr char (8) varying; 1892 dcl head char (8) varying; 1893 dcl i fixed bin (18); 1894 dcl initial fixed bin (18); 1895 dcl iptr ptr; 1896 dcl item fixed bin (18); 1897 dcl n fixed bin (18); 1898 dcl z fixed bin (18); 1899 1900 do item = initial to final; 1901 iptr = addr (rands (symbols (item).offset)); 1902 1903 hdr = head; /* use header supplied by user (may be changed) */ 1904 1905 full_line = ""; 1906 line_len = begin_refs - 1; 1907 1908 /* print symbol table entry */ 1909 1910 if iptr -> node.node_type = symbol_node /* SYMBOL NODE */ 1911 then do; 1912 a = iptr -> symbol.hash_chain; /* first cross reference entry */ 1913 if a > 0 /* i.e., there are cref nodes */ 1914 then z = cross_reference (a).symbol; 1915 /* last entry */ 1916 else z = -1; /* must be < a */ 1917 1918 if length_symbol_name (iptr) > length (sym_name) 1919 then call print$long_name (begin_refs, 0, symbol_name (iptr)); 1920 else sym_name = symbol_name (iptr); 1921 1922 /* special attributes */ 1923 1924 if iptr -> symbol.entry_point 1925 then do; 1926 sym_type = "entry point"; 1927 hdr = "on line"; 1928 end; 1929 1930 else if iptr -> symbol.builtin 1931 then sym_type = "builtin"; 1932 1933 else if iptr -> symbol.external 1934 then do; 1935 if iptr -> symbol.initial = 0 1936 then sym_type = "external"; 1937 else sym_type = "internal"; 1938 1939 if iptr -> symbol.function 1940 then substr (sym_type, 10, 8) = "function"; 1941 else if iptr -> symbol.subroutine 1942 then substr (sym_type, 10, 10) = "subroutine"; 1943 end; 1944 1945 else if iptr -> symbol.stmnt_func 1946 then sym_type = "statement function"; 1947 1948 else if iptr -> symbol.namelist 1949 then sym_type = "namelist"; 1950 1951 else if iptr -> symbol.named_constant 1952 then sym_type = "named constant"; 1953 1954 else if iptr -> symbol.dummy_arg 1955 then sym_type = "st func parameter"; 1956 1957 /* storage class */ 1958 1959 if iptr -> symbol.LA & iptr -> symbol.parent ^= 0 1960 then do; 1961 call print_offset; 1962 1963 dp = addr (rands (iptr -> symbol.parent)); 1964 1965 loc = dp -> header.location; 1966 call binoct (unspec (loc), octal_string); 1967 if iptr -> symbol.automatic 1968 then call print$long_name (begin_refs, begin_class, 1969 "la$auto$" || ltrim (substr (octal_string, 7, 6), "0")); 1970 else call print$long_name (begin_refs, begin_class, 1971 "la$static$" || ltrim (substr (octal_string, 7, 6), "0")); 1972 end; 1973 else if iptr -> symbol.VLA & iptr -> symbol.parent ^= 0 1974 then do; 1975 call print_offset; 1976 1977 dp = addr (rands (iptr -> symbol.parent)); 1978 1979 if iptr -> symbol.automatic 1980 then call print$long_name (begin_refs, begin_class, 1981 "vla$auto$" || addr (rands (dp -> header.first_element)) -> symbol.name); 1982 else if iptr -> symbol.static 1983 then call print$long_name (begin_refs, begin_class, 1984 "vla$static$" || addr (rands (dp -> header.first_element)) -> symbol.name); 1985 else do; 1986 if dp -> header.block_name = blank_common_name 1987 then call print$long_name (begin_refs, begin_class, "vla$common$_"); 1988 else call print$long_name (begin_refs, begin_class, 1989 "vla$common$" || dp -> header.block_name); 1990 end; 1991 end; 1992 1993 else if iptr -> symbol.in_common 1994 then do; 1995 call print_offset; 1996 1997 dp = addr (rands (iptr -> symbol.parent)); 1998 n = length (dp -> header.block_name); 1999 2000 if dp -> header.block_name = blank_common_name 2001 then sym_class = "//"; 2002 else if n > length (sym_class) - 2 2003 /* symbol overflows the field */ 2004 then call print$long_name (begin_refs, begin_class, 2005 "/" || dp -> header.block_name || "/"); 2006 else do; 2007 substr (sym_class, 1, 1) = "/"; 2008 substr (sym_class, 2, n) = dp -> header.block_name; 2009 substr (sym_class, n + 2, 1) = "/"; 2010 end; 2011 end; 2012 2013 else if iptr -> symbol.parameter 2014 then if iptr -> symbol.VLA 2015 then sym_class = "vla$parm"; 2016 else sym_class = "parameter"; 2017 2018 else if iptr -> symbol.automatic 2019 then do; 2020 call print_offset; 2021 sym_class = "automatic"; 2022 end; 2023 2024 else if iptr -> symbol.static 2025 then do; 2026 call print_offset; 2027 sym_class = "static"; 2028 end; 2029 2030 else if iptr -> symbol.constant 2031 then do; 2032 if iptr -> symbol.address.offset > 0 2033 then call print_offset; 2034 sym_class = "constant"; 2035 end; 2036 2037 /* mode */ 2038 2039 if iptr -> symbol.parameter 2040 then if iptr -> symbol.stack_indirect 2041 then do; 2042 if line_len + 18 > max_line 2043 then call print$line (begin_refs); 2044 substr (full_line, line_len + 2, 17) = "several positions"; 2045 line_len = line_len + 18; 2046 end; 2047 else do; 2048 if iptr -> symbol.referenced 2049 then numb = print_number (divide (iptr -> symbol.location, 2, 17, 0)); 2050 else numb = print_number ((iptr -> symbol.location)); 2051 2052 if line_len + length (numb) + 10 > max_line 2053 then call print$line (begin_refs); 2054 substr (full_line, line_len + 2, 8) = "position"; 2055 substr (full_line, line_len + 11, length (numb)) = numb; 2056 line_len = line_len + length (numb) + 10; 2057 end; 2058 2059 if iptr -> symbol.external 2060 then do; 2061 2062 if iptr -> symbol.initial ^= 0 & iptr -> symbol.initial < symbols (item).offset 2063 then do; 2064 numb = 2065 print_line_number 2066 ((addr (rands (iptr -> symbol.initial)) -> symbol.hash_chain)); 2067 2068 if line_len + 9 + length (numb) > max_line 2069 then call print$line (begin_refs); 2070 substr (full_line, line_len + 2, 7) = "on line"; 2071 substr (full_line, line_len + 10, length (numb)) = numb; 2072 line_len = line_len + 9 + length (numb); 2073 end; 2074 2075 if iptr -> symbol.needs_descriptors 2076 then do; 2077 if line_len + 17 > max_line 2078 then call print$line (begin_refs); 2079 substr (full_line, line_len + 2, 16) = "with descriptors"; 2080 line_len = line_len + 17; 2081 end; 2082 end; 2083 2084 if iptr -> symbol.integer 2085 then do; 2086 if line_len + 8 > max_line 2087 then call print$line (begin_refs); 2088 substr (full_line, line_len + 2, 7) = "integer"; 2089 line_len = line_len + 8; 2090 end; 2091 2092 else if iptr -> symbol.real 2093 then do; 2094 if line_len + 5 > max_line 2095 then call print$line (begin_refs); 2096 substr (full_line, line_len + 2, 4) = "real"; 2097 line_len = line_len + 5; 2098 end; 2099 2100 else if iptr -> symbol.double_precision 2101 then do; 2102 if line_len + 17 > max_line 2103 then call print$line (begin_refs); 2104 substr (full_line, line_len + 2, 16) = "double precision"; 2105 line_len = line_len + 17; 2106 end; 2107 2108 else if iptr -> symbol.complex 2109 then do; 2110 if line_len + 8 > max_line 2111 then call print$line (begin_refs); 2112 substr (full_line, line_len + 2, 7) = "complex"; 2113 line_len = line_len + 8; 2114 end; 2115 2116 else if iptr -> symbol.logical 2117 then do; 2118 if line_len + 8 > max_line 2119 then call print$line (begin_refs); 2120 substr (full_line, line_len + 2, 7) = "logical"; 2121 line_len = line_len + 8; 2122 end; 2123 2124 else if iptr -> symbol.character 2125 then do; 2126 if iptr -> symbol.star_extents 2127 then numb = "*"; 2128 else numb = print_number (iptr -> symbol.char_size + 1); 2129 2130 if line_len + length (numb) + 12 > max_line 2131 then call print$line (begin_refs); 2132 substr (full_line, line_len + 2, 10) = "character("; 2133 substr (full_line, line_len + 12, length (numb) + 1) = numb || ")"; 2134 line_len = line_len + length (numb) + 12; 2135 end; 2136 2137 if iptr -> symbol.dimensioned 2138 then do; 2139 if line_len + 9 > max_line 2140 then call print$line (begin_refs); 2141 substr (full_line, line_len + 2, 6) = "array("; 2142 line_len = line_len + 7; 2143 2144 dp = addr (rands (iptr -> symbol.dimension)); 2145 do n = 1 to dp -> dimension.number_of_dims; 2146 2147 call print_dim_bound (dp -> dimension.lower_bound (n), 2148 (dp -> dimension.v_bound (n).lower)); 2149 2150 substr (full_line, line_len + 1, 1) = ":"; 2151 line_len = line_len + 1; 2152 2153 if (n = dp -> dimension.number_of_dims) 2154 & dp -> dimension.assumed_size 2155 then do; 2156 if line_len + 2 > max_line 2157 then call print$line (begin_refs); 2158 substr (full_line, line_len + 1, 1) = "*"; 2159 line_len = line_len + 1; 2160 end; 2161 else call print_dim_bound (dp -> dimension.upper_bound (n), 2162 (dp -> dimension.v_bound (n).upper)); 2163 2164 if n = dp -> dimension.number_of_dims 2165 then substr (full_line, line_len + 1, 1) = ")"; 2166 else substr (full_line, line_len + 1, 1) = ","; 2167 line_len = line_len + 1; 2168 end; 2169 end; 2170 2171 if iptr -> symbol.equivalenced & ^iptr -> symbol.in_common 2172 then do; 2173 if line_len + 13 > max_line 2174 then call print$line (begin_refs); 2175 substr (full_line, line_len + 2, 12) = "equivalenced"; 2176 line_len = line_len + 13; 2177 end; 2178 2179 if iptr -> symbol.initialed 2180 then do; 2181 if line_len + 12 > max_line 2182 then call print$line (begin_refs); 2183 substr (full_line, line_len + 2, 11) = "initialized"; 2184 line_len = line_len + 12; 2185 end; 2186 2187 if iptr -> symbol.by_compiler & debuggin_ 2188 then do; 2189 if line_len + 12 > max_line 2190 then call print$line (begin_refs); 2191 substr (full_line, line_len + 2, 11) = "by compiler"; 2192 line_len = line_len + 12; 2193 end; 2194 2195 call print_crefs (a, z, begin_refs, hdr); 2196 end; 2197 2198 2199 else if iptr -> node.node_type = label_node /* LABEL NODE */ 2200 then do; 2201 call binoct (unspec (iptr -> label.address), octal_string); 2202 if substr (octal_string, 1, 6) ^= "000000" 2203 then lbl_loc = substr (octal_string, 1, 6); 2204 2205 if iptr -> label.name <= 99999 2206 then do; 2207 line_no_picture = iptr -> label.name; 2208 lbl_name = line_no_picture; 2209 end; 2210 else substr (lbl_name, 5, 6) = ">99999"; 2211 2212 if string (iptr -> label.usage) = "11"b 2213 then lbl_type = "unusable"; 2214 else if iptr -> label.format 2215 then lbl_type = "format"; 2216 else lbl_type = "executable"; 2217 2218 a = iptr -> label.hash_chain; /* first cross reference entry */ 2219 if a > 0 /* i.e., there are cref nodes */ 2220 then z = cross_reference (a).symbol; 2221 /* last entry */ 2222 else z = -1; /* must be < a */ 2223 2224 if iptr -> label.set 2225 then do; 2226 line_len = begin_line - 1; 2227 2228 if a > 0 2229 then do while (a <= z & cross_reference (z).line_no < 0); 2230 numb = print_line_number (z); 2231 if line_len + length (numb) + 1 > max_line 2232 then call print$line (begin_refs); 2233 substr (full_line, line_len + 2, length (numb)) = numb; 2234 line_len = line_len + length (numb) + 1; 2235 z = z - 1; 2236 end; 2237 2238 if line_len < begin_refs - 1 2239 then line_len = begin_refs - 1; 2240 end; 2241 else lbl_line = "undefined"; 2242 2243 if iptr -> label.referenced_executable & ^iptr -> label.format 2244 then do; 2245 if line_len + 17 > max_line 2246 then call print$line (begin_refs); 2247 substr (full_line, line_len + 2, 16) = "used in transfer"; 2248 line_len = line_len + 17; 2249 end; 2250 2251 if iptr -> label.name <= 0 2252 then do; 2253 if line_len + 12 > max_line 2254 then call print$line (begin_refs); 2255 substr (full_line, line_len + 2, 11) = "by compiler"; 2256 line_len = line_len + 12; 2257 end; 2258 2259 call print_crefs (a, z, begin_refs, hdr); 2260 end; 2261 2262 else do; /* HEADER NODE */ 2263 if length (iptr -> header.block_name) > length (sym_name) 2264 then call print$long_name (begin_refs, 0, (iptr -> header.block_name)); 2265 else sym_name = iptr -> header.block_name; 2266 2267 sym_type = "common block name"; 2268 2269 numb = print_number ((iptr -> header.length)); 2270 2271 if numb = "1" 2272 then i = 6; 2273 else i = 7; 2274 2275 if line_len + length (numb) + i > max_line 2276 then call print$line (begin_refs); 2277 2278 substr (full_line, line_len + 2, length (numb)) = numb; 2279 if iptr -> header.units = word_units 2280 then substr (full_line, line_len + length (numb) + 3, i - 2) = substr ("words", 1, i - 2); 2281 else if iptr -> header.units = bit_units 2282 then substr (full_line, line_len + length (numb) + 3, i - 2) = substr (" bits", 1, i - 2); 2283 else if iptr -> header.units = char_units 2284 then substr (full_line, line_len + length (numb) + 3, i - 2) = substr ("chars", 1, i - 2); 2285 else if iptr -> header.units = halfword_units 2286 then do; 2287 i = i + 5; /* space for "half_" */ 2288 substr (full_line, line_len + length (numb) + 3, i - 2) = 2289 substr ("half_words", 1, i - 2); 2290 end; 2291 2292 line_len = line_len + length (numb) + i; 2293 2294 a = iptr -> header.last_element; 2295 if a > 0 /* i.e., there are cref nodes */ 2296 then z = cross_reference (a).symbol; 2297 /* last entry */ 2298 else z = -1; /* must be < a */ 2299 2300 call print_crefs (a, z, begin_refs, hdr); 2301 end; 2302 2303 call print$line (begin_refs); 2304 end; 2305 return; 2306 2307 2308 print_offset: 2309 procedure; 2310 2311 if iptr -> symbol.VLA 2312 then call binoct (unspec (iptr -> symbol.offset), octal_string); 2313 else do; 2314 loc = iptr -> symbol.address.offset; 2315 if iptr -> symbol.large_address 2316 then loc = loc + iptr -> symbol.location; 2317 call binoct (unspec (loc), octal_string); 2318 end; 2319 2320 sym_loc = substr (octal_string, 5, 8); 2321 2322 /* print bit offset if it applies */ 2323 2324 loc = iptr -> symbol.address.char_num * 9; 2325 if loc = 0 2326 then sym_char = ""; 2327 else sym_char = "(" || print_number ((loc)) || ")"; 2328 2329 end print_offset; 2330 2331 2332 print_dim_bound: 2333 procedure (bound, variable); 2334 2335 dcl bound fixed bin (24); /* Bound value or operand offset */ 2336 dcl Symbol_for_expression 2337 char (1) static options (constant) init ("#"); 2338 2339 dcl variable bit (1) aligned; /* On if bound is operand offset */ 2340 2341 dcl bp pointer; /* Pointer to bound variable */ 2342 dcl name_length fixed bin (18); /* Length of variable name */ 2343 dcl name_ptr ptr; /* Address of variable name. */ 2344 2345 dcl name char (name_length) based (name_ptr); 2346 2347 2348 if variable 2349 then do; 2350 2351 if bound = 0 2352 then do; 2353 2354 /* Bound should be variable, but has not been set */ 2355 2356 if line_len + 10 > max_line 2357 then call print$line (begin_refs); 2358 substr (full_line, line_len + 1, 9) = "undefined"; 2359 line_len = line_len + 9; 2360 end; 2361 2362 else do; 2363 2364 /* Bound is variable; print a suitable name. */ 2365 2366 bp = addr (rands (bound)); 2367 if bp -> symbol.by_compiler 2368 then if polish (bp -> symbol.initial - 1) = 1 2369 then do; /* Bound is value of a variable. */ 2370 bp = addr (rands (polish (bp -> symbol.initial))); 2371 name_ptr = addr (bp -> symbol.name); 2372 name_length = length (bp -> symbol.name); 2373 end; 2374 else do; /* Bound is value of an expression. */ 2375 name_ptr = addr (Symbol_for_expression); 2376 name_length = length (Symbol_for_expression); 2377 end; 2378 else do; /* Bound is a variable. */ 2379 name_ptr = addr (bp -> symbol.name); 2380 name_length = length (bp -> symbol.name); 2381 end; 2382 if line_len + name_length + 1 > max_line 2383 then if name_length > max_line - begin_refs 2384 then do; 2385 call print$long_name (begin_refs, line_len, (name)); 2386 name_length = 0; 2387 end; 2388 else call print$line (begin_refs); 2389 2390 if name_length > 0 2391 then substr (full_line, line_len + 1, name_length) = name; 2392 line_len = line_len + name_length; 2393 end; 2394 end; 2395 2396 else do; 2397 2398 /* The bound is constant */ 2399 2400 numb = print_number ((bound)); 2401 if line_len + length (numb) + 1 > max_line 2402 then call print$line (begin_refs); 2403 substr (full_line, line_len + 1, length (numb)) = numb; 2404 line_len = line_len + length (numb); 2405 end; 2406 2407 end print_dim_bound; 2408 end print_symbols; 2409 2410 print_crefs: 2411 procedure (first_cr, last_cr, begin_col, cref_hdr); 2412 2413 dcl begin_col fixed bin (18); 2414 dcl cref_hdr char (8) varying; 2415 dcl cref_index fixed bin (18); 2416 dcl first_cr fixed bin (18); 2417 dcl last_cr fixed bin (18); 2418 2419 if last_cr < first_cr 2420 then return; 2421 2422 if cross_reference (first_cr).line_no > 0 & length (cref_hdr) > 0 2423 then do; 2424 if line_len + length (cref_hdr) + 2 > max_line 2425 then call print$line (begin_col); 2426 substr (full_line, line_len + 2, length (cref_hdr)) = cref_hdr; 2427 line_len = line_len + length (cref_hdr) + 2; 2428 end; 2429 2430 do cref_index = first_cr to last_cr; 2431 2432 if cross_reference (cref_index).line_no > 0 2433 then do; 2434 numb = print_line_number (cref_index); 2435 if line_len + length (numb) + 1 > max_line 2436 then call print$line (begin_col); 2437 substr (full_line, line_len + 1, length (numb)) = numb; 2438 line_len = line_len + length (numb) + 1; 2439 end; 2440 end; 2441 end print_crefs; 2442 2443 length_symbol_name: 2444 proc (sp) returns (fixed bin (18)); 2445 2446 dcl sp ptr; 2447 2448 /* routine to return length of symbol. If symbol is compiler generated, and 2449* has a zero length name, then a 9 character name would be generated. */ 2450 2451 2452 if sp -> symbol.name_length = 0 & sp -> symbol.by_compiler 2453 then return (9); 2454 else return (sp -> symbol.name_length); 2455 end length_symbol_name; 2456 2457 2458 symbol_name: 2459 proc (sp) returns (char (*)); 2460 2461 2462 /* routine to return name of symbol. If symbol is compiler generated, and 2463* has a zero length name, generate the name of cg.oooooo, where the oooooo 2464* is the octal address of the symbol node. */ 2465 2466 dcl sp ptr; 2467 2468 2469 if sp -> symbol.name_length > 0 2470 then return (sp -> symbol.name); 2471 2472 2473 if sp -> symbol.by_compiler 2474 then do; 2475 call binoct (unspec (rel (sp)), octal_string); 2476 2477 return ("cg." || substr (octal_string, 1, 6)); 2478 end; 2479 else return (""); 2480 end symbol_name; 2481 2482 /* program to display output text produced by pl/1 or fortran 2483* 2484* Initial Version: 17 October, 1968 2485* Modified: 01 October 1979 by PES to list char*(*) variables as char*(*). 2486* Modified: 12 September 1979 by CRD to fix bug 239 (-16384). 2487* Modified: 06 December 1978 by PES for %options and %global 2488* Modified: 25 October 1978 by PES for larger common and arrays. 2489* Modified: 19 August 1972 by BLW 2490* Modified: 20 February 1973 by RAB for multiple base-regs 2491* Modified: 3 July 1973 by RAB for EIS 2492* Modified: 30 September 1976 by DSL for new fortran compiler 2493* Modified: 12 May 1977 by DSL for new operator name convention 2494**/ 2495 2496 display_text: 2497 proc (first_word, last_word); 2498 2499 dcl first_word fixed bin (18); 2500 dcl last_word fixed bin (18); 2501 2502 dcl (i, j, k, m, mop, save_k, irand, nrands, ndesc) 2503 fixed bin (18), 2504 (fract_offset, offset, size, scale) 2505 fixed bin (18), 2506 (ignore_ic_mod, double, eis, eis_desc, need_comma, ext_base, itag, has_ic, decimal) 2507 bit (1) aligned, 2508 htht char (2) int static options (constant) aligned init (" "), 2509 /* two tabs */ 2510 pt ptr, 2511 c char (1), 2512 op_code char (5), 2513 tag char (3), 2514 line char (256), 2515 pl1_operators_$operator_table 2516 fixed bin ext; 2517 2518 dcl (fixed, length, min, ptr, rel) 2519 builtin; 2520 2521 dcl pl1_operator_names_$pl1_operator_names_ 2522 ext static; 2523 12 1 /* Begin include file op_mnemonic_dcl_.incl.pl1 BIM 12/82 */ 12 2 /* format: style3 */ 12 3 /* INTERNAL INTERFACE OF THE PL/I COMPILER */ 12 4 12 5 declare 1 op_mnemonic_$op_mnemonic_ 12 6 (0:1023) aligned like op_mnemonic external static; 12 7 12 8 declare op_mnemonic_ptr pointer; 12 9 declare 1 op_mnemonic aligned based (op_mnemonic_ptr), 12 10 2 name char (6) unaligned, /* opcode name, save abd/abdx, or .... */ 12 11 2 dtype fixed bin (2) unaligned, /* for num_words > 1, 0 ==> char, 1 ==> bit, 2 ==> other. Else 1 ==> abd/abdx (funny bit 29) */ 12 12 2 num_desc fixed bin (5) unaligned, 12 13 2 num_words fixed bin (8) unaligned; 12 14 12 15 /* End include file op_mnemonic_dcl_ */ 2524 2525 2526 dcl 1 name_pair aligned based, 2527 2 rel_ptr unaligned bit (18), /* ptr to ascii string */ 2528 2 size unaligned bit (18); /* size of string */ 2529 2530 dcl based_string aligned char (size) based; 2531 2532 dcl digit (0:9) char (1) aligned int static options (constant) 2533 init ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9"); 2534 2535 dcl relocation (-1:11) char (1) aligned int static options (constant) 2536 init ("a", "t", "1", "2", "3", "l", "d", "s", "7", "8", "i", "r", "e"); 2537 2538 dcl base (0:7) char (4) aligned int static options (constant) 2539 init ("pr0|", "pr1|", "pr2|", "pr3|", "pr4|", "pr5|", "pr6|", "pr7|"); 2540 2541 dcl modifier (0:63) char (3) aligned int static options (constant) 2542 init ("n", "au", "qu", "du", "ic", "al", "ql", "dl", "0", "1", "2", "3", "4", "5", "6", "7", 2543 "*", "au*", "qu*", "...", "ic*", "al*", "ql*", "...", "0*", "1*", "2*", "3*", "4*", "5*", 2544 "6*", 2545 "7*", (8) (1)"...", (8) (1)"...", "*n", "*au", "*qu", "...", "*ic", "*al", "*ql", "...", 2546 "*0", 2547 "*1", "*2", "*3", "*4", "*5", "*6", "*7"); 2548 2549 dcl 1 instruction (0:261119) based (object_base) aligned, 2550 2 base unaligned bit (3), 2551 2 offset unaligned bit (15), 2552 2 op_code unaligned bit (10), 2553 2 unused unaligned bit (1), 2554 2 ext_base unaligned bit (1), 2555 2 tag unaligned bit (6); 2556 2557 dcl 1 half (0:261119) based (object_base) aligned, 2558 2 left unaligned bit (18), 2559 2 right unaligned bit (18); 2560 2561 dcl 1 rel_tab (0:261119) based (rel_base) aligned, 2562 2 dummy_l unaligned bit (14), 2563 2 left unaligned bit (4), 2564 2 dummy_r unaligned bit (14), 2565 2 right unaligned bit (4); 2566 2567 dcl 1 mod_factor aligned, 2568 2 ext_base bit (1) unal, 2569 2 length_in_reg bit (1) unal, 2570 2 indirect_descriptor 2571 bit (1) unal, 2572 2 tag bit (4) unal; 2573 2574 dcl mf (3) fixed bin (6) int static options (constant) init (30, 12, 3); 2575 /* location of modification factor fields in EIS inst */ 2576 2577 dcl (ebase, len_reg, ic) 2578 (3) bit (1) aligned; 2579 dcl desc_word char (8) varying; 2580 2581 dcl desc_op (0:3) char (8) varying int static options (constant) 2582 init ("desc9a", "descb", "desc9fl", "desc9ls"); 2583 2584 dcl eis_modifier (0:15) char (3) aligned int static options (constant) 2585 init ("n", "au", "qu", "du", "ic", "al", "ql", "...", "x0", "x1", "x2", "x3", "x4", "x5", 2586 "x6", 2587 "x7"); 2588 2589 dcl bool_word (0:15) char (6) aligned int static options (constant) varying 2590 init ("clear", "and", "andnot", "move", "", "", "xor", "or", "", "", "", "", "invert", "", 2591 "nand", "set"); 2592 2593 dcl 1 descriptor based aligned, /* EIS descriptor */ 2594 2 address bit (18) unal, 2595 2 char bit (2) unal, 2596 2 bit bit (4) unal, 2597 2 length bit (12) unal; 2598 2599 dcl char builtin; 2600 2601 13 1 /* BEGIN INCLUDE FILE operator_names.incl.pl1 77-5-2 SHW */ 13 2 13 3 /* Modified June 83 JMAthane for full qualification of "refer" args in dcls */ 13 4 13 5 dcl op_names_pt ptr; 13 6 13 7 dcl 1 operator_names aligned based (op_names_pt), 13 8 2 first fixed bin (18), /* offset of first operator in operator segment */ 13 9 2 last fixed bin (18), /* offset of last operator in operator segment */ 13 10 2 first_special fixed bin (18), /* offset of first special operator */ 13 11 2 last_special fixed bin (18), /* offset of last special operator */ 13 12 2 number_special fixed bin, /* number of special operators */ 13 13 13 14 2 names (1 refer (operator_names.first):1 refer (operator_names.last)), /* array of pointers to and lengths of names */ 13 15 3 namep bit (18) unal, /* rel pointer to ACI string for name */ 13 16 3 len fixed bin (17) unal, /* length of this operator name */ 13 17 13 18 2 special (0 refer (operator_names.number_special)), /* array of info about special operators */ 13 19 3 offset fixed bin (18), /* offset of start of code for this operator */ 13 20 3 namep bit (18) unal, /* rel pointer to ACI string for name */ 13 21 3 len fixed bin (17) unal; /* length of this operator name */ 13 22 13 23 /* END INCLUDE FILE operator_names.incl.pl1 */ 2602 2603 2604 /* begin display text */ 2605 2606 op_names_pt = addr (pl1_operator_names_$pl1_operator_names_); 2607 2608 eis = "0"b; 2609 irand = 0; 2610 2611 do i = first_word to last_word; 2612 2613 tag = " "; 2614 call binoct (unspec (i), octal_string); 2615 substr (line, 1, 6) = substr (octal_string, 7, 6); 2616 substr (line, 7, 2) = " "; 2617 2618 call insert_relocation; 2619 2620 call binoct (object (i), octal_string); 2621 2622 if sym_info (i) < 0 /* negative value is used as flag to indicate */ 2623 then goto not_ins; /* that word is definitely not an instruction */ 2624 2625 if instruction (i).unused 2626 then goto not_ins; 2627 2628 if ^eis 2629 then do; 2630 mop = fixed (instruction (i).op_code, 10); 2631 op_code = op_mnemonic_$op_mnemonic_ (mop).name; 2632 end; 2633 else do; 2634 mop = 0; 2635 end; 2636 2637 if op_code = ".... " 2638 then do; 2639 not_ins: 2640 substr (line, 13, 3) = " "; 2641 substr (line, 16, 12) = octal_string; 2642 k = 28; 2643 goto prt; 2644 end; 2645 2646 if op_mnemonic_$op_mnemonic_ (mop).num_words > 1 2647 then do; 2648 2649 /* EIS */ 2650 2651 call init_eis; 2652 2653 substr (line, 13, 4) = substr (octal_string, 1, 3); 2654 substr (line, 17, 4) = substr (octal_string, 4, 3); 2655 substr (line, 21, 4) = substr (octal_string, 7, 3); 2656 substr (line, 25, 3) = substr (octal_string, 10, 3); 2657 2658 substr (line, 28, 1) = TB; 2659 substr (line, 29, 5) = op_code; 2660 substr (line, 34, 1) = TB; 2661 2662 k = 35; 2663 2664 do j = 1 to ndesc; 2665 string (mod_factor) = substr (object (i), mf (j), 7); 2666 ebase (j) = mod_factor.ext_base; 2667 len_reg (j) = mod_factor.length_in_reg; 2668 2669 substr (line, k, 1) = "("; 2670 k = k + 1; 2671 need_comma = "0"b; 2672 2673 if ebase (j) 2674 then do; 2675 substr (line, k, 2) = "pr"; 2676 k = k + 2; 2677 need_comma = "1"b; 2678 end; 2679 2680 if len_reg (j) 2681 then do; 2682 if need_comma 2683 then do; 2684 substr (line, k, 1) = ","; 2685 k = k + 1; 2686 end; 2687 substr (line, k, 2) = "rl"; 2688 k = k + 2; 2689 need_comma = "1"b; 2690 end; 2691 2692 if mod_factor.tag 2693 then do; 2694 if need_comma 2695 then do; 2696 substr (line, k, 1) = ","; 2697 k = k + 1; 2698 end; 2699 ic (j) = mod_factor.tag = "0100"b; 2700 /* IC */ 2701 substr (line, k, 2) = eis_modifier (fixed (mod_factor.tag, 4)); 2702 k = k + 2; 2703 end; 2704 else ic (j) = "0"b; 2705 2706 substr (line, k, 2) = "),"; 2707 k = k + 2; 2708 end; 2709 2710 2711 if substr (object (i), 10, 1) 2712 then do; 2713 substr (line, k, 12) = "enablefault,"; 2714 k = k + 12; 2715 end; 2716 2717 if desc_word = "desc9a" 2718 then if ndesc < 3 2719 then do; 2720 if substr (op_code, 1, 2) ^= "sc" 2721 then substr (line, k, 5) = "fill("; 2722 else substr (line, k, 5) = "mask("; 2723 k = k + 5; 2724 substr (line, k, 3) = substr (octal_string, 1, 3); 2725 k = k + 3; 2726 substr (line, k, 1) = ")"; 2727 k = k + 1; 2728 end; 2729 else k = k - 1; 2730 else if desc_word = "descb" 2731 then do; 2732 substr (line, k, 5) = "fill("; 2733 k = k + 5; 2734 substr (line, k, 1) = digit (fixed (substr (object (i), 1, 1), 1)); 2735 k = k + 1; 2736 substr (line, k, 1) = ")"; 2737 k = k + 1; 2738 if op_code ^= "cmpb " 2739 then do; 2740 substr (line, k, 6) = ",bool("; 2741 k = k + 6; 2742 j = fixed (substr (object (i), 6, 4), 4); 2743 m = length (bool_word (j)); 2744 if m > 0 2745 then do; 2746 substr (line, k, m) = bool_word (j); 2747 k = k + m; 2748 end; 2749 else do; 2750 substr (line, k, 1) = digit (fixed (substr (object (i), 6, 1), 1)); 2751 substr (line, k + 1, 1) = 2752 digit (fixed (substr (object (i), 7, 3), 3)); 2753 k = k + 2; 2754 end; 2755 substr (line, k, 1) = ")"; 2756 k = k + 1; 2757 end; 2758 end; 2759 else if substr (object (i), 11, 1) 2760 then do; 2761 substr (line, k, 5) = "round"; 2762 k = k + 5; 2763 end; 2764 else k = k - 1; 2765 2766 irand = 0; 2767 go to prt; 2768 end; 2769 2770 double, ignore_ic_mod = "0"b; 2771 2772 eis_desc = eis & desc_word ^= "arg"; 2773 if eis_desc 2774 then do; 2775 substr (line, 13, 2) = " "; 2776 substr (line, 15, 6) = substr (octal_string, 2, 5); 2777 substr (line, 21, 3) = substr (octal_string, 7, 2); 2778 substr (line, 24, 4) = substr (octal_string, 9, 4); 2779 2780 substr (line, 28, 1) = TB; 2781 2782 if decimal 2783 then desc_word = desc_op (2 + fixed (addr (object (i)) -> descriptor.bit, 4)); 2784 if irand > 1 2785 then if op_code = "dtb " | op_code = "mvne " 2786 then desc_word = desc_op (0); 2787 else ; 2788 else if op_code = "btd " 2789 then desc_word = desc_op (0); 2790 2791 substr (line, 29, length (desc_word)) = desc_word; 2792 k = length (desc_word) + 29; 2793 2794 ext_base = ebase (irand); 2795 itag = len_reg (irand); 2796 if itag 2797 then tag = eis_modifier (fixed (substr (addr (object (i)) -> descriptor.length, 9, 4), 4)); 2798 has_ic = ic (irand); 2799 go to chk_ext; 2800 end; 2801 2802 if op_code = "rpd " 2803 then goto set; 2804 if op_code = "rpt " 2805 then goto set; 2806 2807 if op_mnemonic_$op_mnemonic_ (mop).num_desc ^= 0 2808 then do; 2809 call binoct ((instruction (i).tag), octal_string); 2810 tag = substr (octal_string, 1, 2); 2811 ignore_ic_mod = "1"b; 2812 goto set; 2813 end; 2814 2815 if instruction (i).tag ^= "0"b 2816 then do; 2817 tag = modifier (fixed (instruction (i).tag, 6)); 2818 if tag = "..." 2819 then goto not_ins; 2820 end; 2821 2822 set: 2823 substr (line, 13, 2) = " "; 2824 substr (line, 15, 6) = substr (octal_string, 2, 5); 2825 substr (line, 21, 5) = substr (octal_string, 7, 4); 2826 substr (line, 26, 2) = substr (octal_string, 11, 2); 2827 2828 substr (line, 28, 1) = TB; 2829 k = 29; 2830 2831 substr (line, k, 5) = op_code; 2832 2833 c = substr (line, k + 3, 1); 2834 2835 double = substr (op_code, 1, 2) = "df" | substr (op_code, 3, 2) = "aq" | substr (op_code, 4, 2) = "aq"; 2836 2837 ext_base = instruction (i).ext_base; 2838 itag = instruction (i).tag ^= "000000"b; 2839 has_ic = instruction (i).tag = "000100"b; /* IC */ 2840 2841 k = 34; 2842 chk_ext: 2843 chk_ext1: 2844 substr (line, k, 1) = TB; 2845 k = k + 1; 2846 2847 save_k = k; 2848 2849 if ^eis 2850 then if instruction (i).unused 2851 then do; 2852 2853 /* have rpd | rpt instruction */ 2854 2855 tag = digit (fixed (instruction (i).tag, 6)); 2856 offset = fixed (substr (half (i).left, 1, 8), 8); 2857 ignore_ic_mod = "1"b; 2858 goto sk; 2859 end; 2860 2861 if ext_base 2862 then do; 2863 substr (line, k, 4) = base (fixed (instruction (i).base, 3)); 2864 offset = fixed (instruction (i).offset, 15); 2865 if offset >= 16384 2866 then offset = offset - 32768; 2867 k = k + 4; 2868 j = 13; 2869 end; 2870 else do; 2871 offset = fixed (half (i).left, 18); 2872 2873 if offset >= 131072 2874 then do; 2875 if tag = "du " 2876 then goto sk; 2877 if tag = "dl " 2878 then goto sk; 2879 offset = offset - 262144;/* 2's comp */ 2880 end; 2881 2882 sk: 2883 j = 14; 2884 end; 2885 2886 substr (line, j, 1) = octal_string; 2887 2888 call bin2dec (offset); 2889 2890 if eis_desc 2891 then do; 2892 if desc_word = "descb" 2893 then fract_offset = 2894 fixed (addr (object (i)) -> descriptor.char, 2) * bits_per_char 2895 + fixed (addr (object (i)) -> descriptor.bit, 4); 2896 else fract_offset = fixed (addr (object (i)) -> descriptor.char, 2); 2897 if fract_offset ^= 0 2898 then do; 2899 substr (line, k, 1) = "("; 2900 k = k + 1; 2901 call bin2dec (fract_offset); 2902 substr (line, k, 1) = ")"; 2903 k = k + 1; 2904 end; 2905 end; 2906 2907 if itag 2908 then do; 2909 substr (line, k, 1) = ","; 2910 substr (line, k + 1, 3) = tag; 2911 2912 k = k + 2; 2913 if substr (line, k, 1) ^= " " 2914 then k = k + 1; 2915 if substr (line, k, 1) ^= " " 2916 then k = k + 1; 2917 end; 2918 else if eis_desc 2919 then do; 2920 substr (line, k, 1) = ","; 2921 k = k + 1; 2922 if desc_word = "desc9ls" 2923 then do; 2924 call bin2dec (fixed (substr (addr (object (i)) -> descriptor.length, 7, 6), 6)); 2925 substr (line, k, 1) = ","; 2926 k = k + 1; 2927 scale = fixed (substr (addr (object (i)) -> descriptor.length, 1, 6), 6); 2928 if scale >= 32 2929 then scale = scale - 64; 2930 call bin2dec (scale); 2931 end; 2932 else call bin2dec (fixed (addr (object (i)) -> descriptor.length, 12)); 2933 end; 2934 2935 if ignore_ic_mod 2936 then goto chk_base; 2937 2938 if has_ic 2939 then do; 2940 substr (line, k, 2) = htht; 2941 k = k + 2; 2942 2943 pt = addr (object (i + offset - irand)); 2944 call binoct (rel (pt), octal_string); 2945 substr (line, k, 6) = substr (octal_string, 1, 6); 2946 2947 k = k + 6; 2948 2949 if substr (op_code, 1, 1) = "t" 2950 then goto prt; 2951 if fixed (rel (pt), 18) > text_pos 2952 then goto prt; 2953 2954 substr (line, k, 1) = " "; 2955 k = k + 1; 2956 2957 equal: 2958 substr (line, k, 2) = "= "; 2959 call binoct (pt -> object (0), octal_string); 2960 substr (line, k + 2, 12) = octal_string; 2961 k = k + 14; 2962 2963 if double 2964 then do; 2965 substr (line, k, 1) = " "; 2966 call binoct (pt -> object (1), octal_string); 2967 substr (line, k + 1, 12) = octal_string; 2968 k = k + 13; 2969 end; 2970 2971 goto prt; 2972 end; 2973 2974 chk_base: 2975 if ^ext_base 2976 then goto prt; 2977 2978 if instruction (i).base ^= "000"b 2979 then do; 2980 if sym_info (i) <= 0 2981 then goto prt; 2982 2983 pt = addr (rands (sym_info (i))); 2984 2985 j = 2 - divide (k - save_k, 10, 17, 0); 2986 substr (line, k, j) = htht; 2987 k = k + j; 2988 2989 if pt -> node.node_type = symbol_node 2990 then if compiler_generated (pt) 2991 then ; 2992 else do; 2993 j = length (pt -> symbol.name); 2994 substr (line, k, j) = pt -> symbol.name; 2995 k = k + j; 2996 goto prt; 2997 end; 2998 2999 else if pt -> node.node_type = label_node 3000 then if pt -> label.name <= 0 & ^debuggin_ 3001 then ; 3002 else do; 3003 numb = print_number ((pt -> label.name)); 3004 3005 substr (line, k, 16) = "statement label "; 3006 substr (line, k + 16, length (numb)) = numb; 3007 k = k + 16 + length (numb); 3008 goto prt; 3009 end; 3010 3011 else if pt -> node.node_type = header_node 3012 then if ^pt -> header.in_common 3013 then ; 3014 else do; 3015 j = length (pt -> header.block_name); 3016 substr (line, k, j) = pt -> header.block_name; 3017 k = k + j; 3018 goto prt; 3019 end; 3020 3021 else if pt -> node.node_type = array_ref_node & pt -> array_ref.parent > 0 3022 then do; 3023 pt = addr (rands (pt -> array_ref.parent)); 3024 j = length (pt -> symbol.name); 3025 substr (line, k, j) = pt -> symbol.name; 3026 k = k + j; 3027 goto prt; 3028 end; 3029 3030 k = k - j; /* remove the tabs */ 3031 goto prt; 3032 end; 3033 3034 if op_code = "xec " 3035 then do; 3036 pt = addrel (addr (pl1_operators_$operator_table), offset); 3037 mop = fixed (pt -> instruction (0).op_code, 10); 3038 if op_mnemonic_$op_mnemonic_ (mop).num_words > 1 3039 then do; 3040 3041 /* we are executing an EIS instruction in pl1_operators_ */ 3042 3043 call init_eis; 3044 3045 do j = 1 to ndesc; 3046 ebase (j) = "1"b; 3047 len_reg (j) = ^decimal; 3048 ic (j) = "0"b; 3049 end; 3050 3051 irand = 0; 3052 end; 3053 end; 3054 3055 if itag 3056 then goto prt; 3057 3058 /* get appropriate operator name */ 3059 3060 if offset >= operator_names.first & offset <= operator_names.last 3061 then do; 3062 pt = addr (operator_names.names (offset)); 3063 goto str_info; 3064 end; 3065 3066 else if offset >= operator_names.first_special & offset <= operator_names.last_special 3067 then do; 3068 do j = 1 to operator_names.number_special; 3069 3070 if operator_names.special (j).offset = offset 3071 then do; 3072 pt = addr (operator_names.special (j).namep); 3073 goto str_info; 3074 end; 3075 end; 3076 end; 3077 3078 if substr (op_code, 1, 1) ^= "t" & substr (op_code, 1, 3) ^= "epp" 3079 then do; 3080 if offset >= operator_names.first 3081 then goto prt; 3082 pt = addrel (addr (pl1_operators_$operator_table), offset); 3083 substr (line, k, 2) = htht; 3084 k = k + 2; 3085 goto equal; 3086 end; 3087 3088 else go to prt; /* Not found */ 3089 3090 str_info: 3091 size = fixed (pt -> name_pair.size, 18); 3092 pt = ptr (pt, pt -> name_pair.rel_ptr); 3093 3094 substr (line, k, 2) = htht; 3095 k = k + 2; 3096 3097 substr (line, k, size) = pt -> based_string; 3098 k = size + k; 3099 3100 prt: 3101 if length (output) + k > output_max 3102 then call print$buffer; 3103 output = output || substr (line, 1, k - 1); 3104 output = output || NL; 3105 3106 if eis 3107 then do; 3108 irand = irand + 1; 3109 if irand > nrands 3110 then do; 3111 eis = "0"b; 3112 irand = 0; 3113 end; 3114 else if irand > ndesc 3115 then op_code, desc_word = "arg"; 3116 end; 3117 3118 end; /* loop thruough words */ 3119 3120 return; 3121 3122 display_text$display_abs: 3123 entry (first_word, last_word); 3124 3125 do i = first_word to last_word; 3126 3127 call binoct (unspec (i), octal_string); 3128 substr (line, 1, 6) = substr (octal_string, 7, 6); 3129 3130 substr (line, 7, 2) = " "; 3131 call insert_relocation; 3132 substr (line, 13, 3) = " "; 3133 3134 call binoct (object (i), octal_string); 3135 substr (line, 16, 12) = octal_string; 3136 3137 if length (output) + 28 > output_max 3138 then call print$buffer; 3139 output = output || substr (line, 1, 27); 3140 output = output || NL; 3141 end; 3142 3143 return; 3144 3145 display_text$display_create: 3146 entry (first_word, last_word, cp); 3147 3148 dcl extra_line char (256) var; 3149 dcl cp ptr; 3150 dcl cur_offset fixed bin (35); /* offset of current ptr from lp or sp */ 3151 dcl s ptr; /* ptr to symbol */ 3152 3153 do i = first_word to last_word; 3154 3155 call binoct (unspec (i), octal_string); 3156 substr (line, 1, 6) = substr (octal_string, 7, 6); 3157 3158 substr (line, 7, 2) = " "; 3159 call insert_relocation; 3160 substr (line, 13, 3) = " "; 3161 3162 call binoct (object (i), octal_string); 3163 substr (line, 16, 12) = octal_string; 3164 extra_line = ""; 3165 3166 if i = first_word 3167 then do; 3168 extra_line = " location "; 3169 if cp -> create_entry.flags.auto 3170 then extra_line = extra_line || "sp|"; 3171 else extra_line = extra_line || "lp|"; 3172 extra_line = extra_line || ltrim (substr (line, 16, 6), "0"); 3173 /* pick out location */ 3174 if cp -> create_entry.auto 3175 then extra_line = extra_line || " automatic"; 3176 else if cp -> create_entry.static 3177 then extra_line = extra_line || " static"; 3178 else if cp -> create_entry.common 3179 then extra_line = extra_line || " common"; 3180 3181 3182 if cp -> create_entry.LA 3183 then extra_line = extra_line || " Large Array"; 3184 else if cp -> create_entry.VLA 3185 then do; 3186 if cp -> create_entry.K256 3187 then extra_line = extra_line || " Very Large Array (256K)"; 3188 else extra_line = extra_line || " Very Large Array (255K)"; 3189 end; 3190 3191 if cp -> create_entry.init 3192 then extra_line = extra_line || " Initialized"; 3193 end; 3194 3195 else if i = first_word + 1 3196 then extra_line = extra_line || " length " || ltrim (char (cp -> create_entry.length)); 3197 3198 else if i = first_word + 2 3199 then do; 3200 extra_line = extra_line || " next " || substr (line, 16, 6); 3201 if cp -> create_entry.name_length > 0 3202 then extra_line = extra_line || " /" || 3203 cp -> create_entry.block_name || "/"; 3204 end; 3205 else if i = first_word + 3 3206 then do; 3207 if cp -> create_entry.common 3208 then do; 3209 extra_line = extra_line || " linkage rel "; 3210 extra_line = extra_line || substr (line, 16, 6); 3211 end; 3212 if cp -> create_entry.pointer_count > 0 3213 then do; 3214 extra_line = extra_line || " "; 3215 extra_line = extra_line || ltrim (char (cp -> create_entry.pointer_count)); 3216 extra_line = extra_line || " pointer"; 3217 if cp -> create_entry.pointer_count > 1 3218 then 3219 extra_line = extra_line || "s"; 3220 end; 3221 end; 3222 3223 /* the last create_entry.pointer_count entries are pointers */ 3224 else if (last_word - i) < cp -> create_entry.pointer_count 3225 then do; 3226 extra_line = extra_line || " "; 3227 3228 /* output "lp|offset" or "sp|offset" as appropriate */ 3229 if cp -> create_entry.flags.auto 3230 then 3231 extra_line = extra_line || "sp|"; 3232 else extra_line = extra_line || "lp|"; 3233 cur_offset = cp -> create_entry.location + cp -> create_entry.pointer_count + i - last_word; 3234 call binoct (unspec (cur_offset), octal_string); 3235 extra_line = extra_line || ltrim (octal_string, "0"); 3236 3237 /* output " -> name|offset where name is the name of the storage block and 3238* offset is the octal offset from the beginning of the storage block */ 3239 extra_line = extra_line || " -> /"; 3240 if cp -> create_entry.name_length > 0 3241 then do; 3242 extra_line = extra_line || 3243 cp -> create_entry.block_name || "/|"; 3244 end; 3245 else do; 3246 extra_line = extra_line || "base/|"; 3247 end; 3248 extra_line = extra_line || 3249 ltrim (substr (line, 20, 8), "0"); 3250 3251 extra_line = extra_line || " "; 3252 3253 /* output the symbol name this pointer points to */ 3254 if sym_info (i) > 0 3255 then do; 3256 s = addr (rands (sym_info (i))); 3257 extra_line = extra_line || " " || s -> symbol.name; 3258 end; 3259 3260 end; 3261 3262 if length (output) + 28 + length (extra_line) > output_max 3263 then call print$buffer; 3264 output = output || substr (line, 1, 27); 3265 output = output || extra_line; 3266 output = output || NL; 3267 end; 3268 3269 return; 3270 3271 3272 display_text$display_init: 3273 entry (cp); 3274 3275 dcl init_p ptr; 3276 dcl (first_init_word, last_init_word) 3277 fixed bin (18); 3278 3279 init_p = cp; 3280 do while (init_p ^= null); 3281 first_init_word = fixed (rel (init_p), 18); 3282 3283 /* If we are a filler then repeat = 0, if we are the end then length = 0 */ 3284 3285 if init_p -> create_init_entry.repeat = 0 3286 then last_init_word = first_init_word + 1; 3287 else last_init_word = first_init_word + currentsize (init_p -> create_init_entry) - 1; 3288 3289 if init_p -> create_init_entry.length = 0 3290 then last_init_word = first_init_word; 3291 3292 if length (output) + 1 > output_max 3293 then call print$buffer; 3294 output = output || NL; 3295 3296 do i = first_init_word to last_init_word; 3297 call binoct (unspec (i), octal_string); 3298 substr (line, 1, 6) = substr (octal_string, 7, 6); 3299 3300 substr (line, 7, 2) = " "; 3301 call insert_relocation; 3302 substr (line, 13, 3) = " "; 3303 3304 call binoct (object (i), octal_string); 3305 substr (line, 16, 12) = octal_string; 3306 extra_line = ""; 3307 3308 if i = first_init_word + 1 3309 then if init_p -> create_init_entry.repeat = 0 3310 then extra_line = " Fill Zero"; 3311 else extra_line = " repeat " || ltrim (print_number ((init_p -> create_init_entry.repeat))); 3312 3313 else if i = first_init_word 3314 then if init_p -> create_init_entry.length = 0 3315 then extra_line = " End of Init"; 3316 else extra_line = 3317 " Data length (bits) " || ltrim (print_number ((init_p -> create_init_entry.length))); 3318 3319 if length (output) + 28 + length (extra_line) > output_max 3320 then call print$buffer; 3321 output = output || substr (line, 1, 27); 3322 output = output || extra_line; 3323 output = output || NL; 3324 end; 3325 if init_p -> create_init_entry.length = 0 3326 then init_p = null (); 3327 else init_p = addrel (init_p, last_init_word - first_init_word + 1); 3328 end; 3329 return; 3330 3331 display_text$display_ascii: 3332 entry (first_word, n_chars); 3333 3334 dcl n_chars fixed bin (18); /* size of string to be displayed */ 3335 3336 dcl nc fixed bin (18), 3337 char_off fixed bin (18), 3338 char_string char (4) aligned based (addr (object (i))); 3339 3340 i = first_word; 3341 nc = n_chars; 3342 3343 3344 do char_off = 1 by 4 to nc; 3345 3346 call binoct (unspec (i), octal_string); 3347 substr (line, 1, 6) = substr (octal_string, 7, 6); 3348 substr (line, 7, 2) = " "; 3349 substr (line, 9, 4) = "aa "; 3350 3351 call binoct (object (i), octal_string); 3352 k = 13; 3353 do j = 1 by 3 to 12; 3354 substr (line, k, 4) = substr (octal_string, j, 3); 3355 k = k + 4; 3356 end; 3357 3358 substr (line, 28, 1) = TB; 3359 3360 k = min (4, nc - char_off + 1); 3361 do j = 1 to k; 3362 c = substr (char_string, j, 1); 3363 if unspec (c) < "000100000"b | unspec (c) > "001111110"b 3364 then substr (line, j + 28, 1) = " "; 3365 else substr (line, j + 28, 1) = c; 3366 end; 3367 3368 if length (output) + k + 29 > output_max 3369 then call print$buffer; 3370 output = output || substr (line, 1, k + 28); 3371 output = output || NL; 3372 3373 i = i + 1; 3374 end; 3375 return; 3376 3377 insert_relocation: 3378 proc; 3379 3380 /* inserts relocation characters in line */ 3381 3382 if rel_base = null 3383 then do; 3384 substr (line, 9, 4) = "aa "; 3385 return; 3386 end; 3387 3388 if rel_tab (i).dummy_l 3389 then k = fixed (rel_tab (i).left, 4); 3390 else k = -1; 3391 3392 substr (line, 9, 1) = relocation (k); 3393 3394 if rel_tab (i).dummy_r 3395 then k = fixed (rel_tab (i).right, 4); 3396 else k = -1; 3397 3398 substr (line, 10, 3) = relocation (k); 3399 3400 end insert_relocation; 3401 3402 3403 bin2dec: 3404 proc (number); 3405 3406 dcl (m, number) fixed bin (18); 3407 3408 numb = print_number ((number)); 3409 m = length (numb); 3410 substr (line, k, m) = numb; 3411 k = k + m; 3412 3413 end bin2dec; 3414 3415 3416 init_eis: 3417 proc; 3418 3419 eis = "1"b; 3420 nrands = op_mnemonic_$op_mnemonic_ (mop).num_words - 1; 3421 ndesc = op_mnemonic_$op_mnemonic_ (mop).num_desc; 3422 decimal = op_mnemonic_$op_mnemonic_ (mop).dtype = 2; 3423 desc_word = desc_op (op_mnemonic_$op_mnemonic_ (mop).dtype); 3424 3425 end init_eis; 3426 end display_text; 3427 end listing_generator; 3428 end ext_listing_generator; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/10/88 1336.4 ext_listing_generator.pl1 >spec>install>MR12.2-1209>ext_listing_generator.pl1 101 1 08/04/86 2015.0 fort_shared_vars.incl.pl1 >ldd>include>fort_shared_vars.incl.pl1 104 2 03/27/82 0439.3 fort_parse_vars.incl.pl1 >ldd>include>fort_parse_vars.incl.pl1 107 3 03/27/82 0439.4 fort_cg_vars.incl.pl1 >ldd>include>fort_cg_vars.incl.pl1 109 4 08/06/87 1153.7 fort_options.incl.pl1 >ldd>include>fort_options.incl.pl1 110 5 08/04/86 2015.0 fort_system_constants.incl.pl1 >ldd>include>fort_system_constants.incl.pl1 111 6 11/10/88 1314.2 fort_nodes.incl.pl1 >spec>install>MR12.2-1209>fort_nodes.incl.pl1 112 7 03/27/82 0439.3 fort_listing_nodes.incl.pl1 >ldd>include>fort_listing_nodes.incl.pl1 113 8 03/27/82 0424.8 fort_opt_nodes.incl.pl1 >ldd>include>fort_opt_nodes.incl.pl1 114 9 03/10/77 1345.4 compiler_source_info.incl.pl1 >ldd>include>compiler_source_info.incl.pl1 115 10 10/12/83 1515.6 fortran_storage.incl.pl1 >ldd>include>fortran_storage.incl.pl1 116 11 08/05/77 1022.5 object_map.incl.pl1 >ldd>include>object_map.incl.pl1 2524 12 04/07/83 1635.0 op_mnemonic_dcl_.incl.pl1 >ldd>include>op_mnemonic_dcl_.incl.pl1 2602 13 11/02/83 1845.0 operator_names.incl.pl1 >ldd>include>operator_names.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. Area_create_first 3144 based fixed bin(18,0) level 2 dcl 100 ref 919 928 Area_init_first 3146 based fixed bin(18,0) level 2 dcl 100 ref 948 957 FF 022200 constant char(1) initial packed unaligned dcl 137 ref 425 1284 1420 K256 0(23) based bit(1) level 3 packed packed unaligned dcl 10-23 ref 3186 LA 4(01) based bit(1) level 3 in structure "symbol" packed packed unaligned dcl 6-844 in procedure "ext_listing_generator" ref 1959 LA 0(21) based bit(1) level 3 in structure "create_entry" packed packed unaligned dcl 10-23 in procedure "ext_listing_generator" ref 3182 LA_chain 57(18) based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 6-753 ref 558 NL 022177 constant char(1) initial packed unaligned dcl 139 ref 303 418 419 490 494 703 725 812 829 829 831 863 877 891 906 1314 1422 1445 1459 3104 3140 3266 3294 3323 3371 Symbol_for_expression 000256 constant char(1) initial packed unaligned dcl 2336 set ref 2375 2376 TB constant char(1) initial packed unaligned dcl 138 ref 2658 2660 2780 2828 2842 3358 VLA 0(22) based bit(1) level 3 in structure "create_entry" packed packed unaligned dcl 10-23 in procedure "ext_listing_generator" ref 3184 VLA 4 based bit(1) level 3 in structure "symbol" packed packed unaligned dcl 6-844 in procedure "ext_listing_generator" ref 1973 2013 2311 VLA_chain 57 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 6-753 ref 563 a 003156 automatic fixed bin(18,0) dcl 1888 set ref 1912* 1913 1913 2195* 2218* 2219 2219 2228 2228 2259* 2294* 2295 2295 2300* a_final parameter fixed bin(18,0) dcl 1757 ref 1754 1781 a_initial parameter fixed bin(18,0) dcl 1758 ref 1754 1780 a_ptr parameter pointer dcl 1345 ref 1342 1350 1363 abs builtin function dcl 141 ref 1498 1502 addr builtin function dcl 142 ref 301 305 319 331 372 376 390 396 406 430 432 446 458 458 524 526 551 556 561 566 577 597 613 733 846 855 869 883 898 1006 1006 1016 1021 1033 1036 1040 1040 1041 1041 1042 1048 1049 1049 1051 1053 1078 1091 1098 1098 1098 1098 1102 1102 1103 1103 1115 1115 1120 1120 1122 1127 1127 1128 1128 1133 1136 1168 1192 1193 1193 1193 1193 1198 1198 1199 1199 1243 1293 1361 1524 1536 1580 1590 1603 1614 1901 1963 1977 1979 1982 1997 2064 2144 2366 2370 2371 2375 2379 2606 2782 2796 2892 2892 2896 2924 2924 2927 2932 2932 2943 2983 3023 3036 3062 3072 3082 3256 3362 addrel builtin function dcl 143 ref 314 314 331 934 934 3036 3082 3327 address 1 based structure level 2 in structure "label" dcl 6-530 in procedure "ext_listing_generator" ref 2201 2201 address 1 based structure level 2 in structure "char_constant" dcl 6-316 in procedure "ext_listing_generator" address 1 based structure level 2 in structure "constant" dcl 6-256 in procedure "ext_listing_generator" address 1 based structure level 2 in structure "symbol" dcl 6-844 in procedure "ext_listing_generator" addressing_bits 0(14) based structure level 2 in structure "symbol" packed packed unaligned dcl 6-844 in procedure "ext_listing_generator" addressing_bits 0(14) based structure level 2 in structure "constant" packed packed unaligned dcl 6-256 in procedure "ext_listing_generator" allocated 0(17) based bit(1) level 3 packed packed unaligned dcl 6-256 ref 857 871 885 900 array_ref based structure level 1 dcl 6-155 array_ref_node constant fixed bin(4,0) initial dcl 5-87 ref 3021 assumed_size 0(28) based bit(1) level 2 packed packed unaligned dcl 6-383 ref 2153 attributes 10 based structure level 2 dcl 6-844 auto 0(18) based bit(1) level 3 packed packed unaligned dcl 10-23 ref 3169 3174 3229 automatic 11 based bit(1) level 4 packed packed unaligned dcl 6-844 ref 1967 1979 2018 base 000217 constant char(4) initial array dcl 2538 in procedure "display_text" ref 2863 base based bit(3) array level 2 in structure "instruction" packed packed unaligned dcl 2549 in procedure "display_text" ref 2863 2978 based_string based char dcl 2530 ref 3097 begin_class constant fixed bin(18,0) initial dcl 280 set ref 1967* 1970* 1979* 1982* 1986* 1988* 2002* begin_col parameter fixed bin(18,0) dcl 2413 set ref 2410 2424* 2435* begin_ep_attr constant fixed bin(18,0) initial dcl 291 set ref 1081 1083* 1098* 1109* 1130* 1140* 1147* 1171 1179* 1193* 1210* 1213* 1246 1251* 1269 1270 1274 1276* begin_line constant fixed bin(18,0) initial dcl 287 ref 2226 begin_refs constant fixed bin(18,0) initial dcl 281 set ref 1906 1918* 1967* 1970* 1979* 1982* 1986* 1988* 2002* 2042* 2052* 2068* 2077* 2086* 2094* 2102* 2110* 2118* 2130* 2139* 2156* 2173* 2181* 2189* 2195* 2231* 2238 2238 2245* 2253* 2259* 2263* 2275* 2300* 2303* 2356* 2382 2385* 2388* 2401* binary builtin function dcl 144 ref 315 709 759 775 777 800 800 803 803 808 808 819 973 973 973 973 973 973 973 973 973 973 973 973 973 973 973 973 bit 0(20) based bit(4) level 2 packed packed unaligned dcl 2593 ref 2782 2892 bit_units constant fixed bin(3,0) initial dcl 5-136 ref 1262 2281 bits 0(25) based structure level 2 in structure "label" packed packed unaligned dcl 6-530 in procedure "ext_listing_generator" bits 0(25) based structure level 2 in structure "header" packed packed unaligned dcl 6-436 in procedure "ext_listing_generator" bits 3 002232 automatic structure level 2 in structure "stmnt" packed packed unaligned dcl 224 in procedure "listing_generator" set ref 1356 bits 0(25) based structure level 2 in structure "symbol" packed packed unaligned dcl 6-844 in procedure "ext_listing_generator" bits 4 based structure level 2 in structure "opt_statement" packed packed unaligned dcl 8-176 in procedure "ext_listing_generator" ref 1356 bits 3 based structure level 2 in structure "statement" packed packed unaligned dcl 6-721 in procedure "ext_listing_generator" bits_per_char constant fixed bin(18,0) initial dcl 145 ref 2892 blank_common_name 000324 constant char(8) initial dcl 5-79 ref 1986 2000 blk_sym 000100 automatic fixed bin(18,0) dcl 146 set ref 1091* 1093 1098 1098 1098 1098 1102 1102 1103 1103 1127* 1128 1128 1133 1192* 1193 1193 1193 1193 1198 1198 1199 1199 block_data constant fixed bin(9,0) initial dcl 5-68 ref 414 block_name 3(18) based char level 2 in structure "create_entry" packed packed unaligned dcl 10-23 in procedure "ext_listing_generator" ref 3201 3242 block_name 10 based char level 2 in structure "header" dcl 6-436 in procedure "ext_listing_generator" set ref 1048 1049 1251 1251 1253 1614 1986 1988 1998 2000 2002 2008 2263 2263 2265 3015 3016 bool_word 000000 constant varying char(6) initial array dcl 2589 ref 2743 2746 bound parameter fixed bin(24,0) dcl 2335 ref 2332 2351 2366 2400 bp 003214 automatic pointer dcl 2341 set ref 2366* 2367 2367 2370* 2370 2371 2372 2379 2380 bucket_number parameter fixed bin(18,0) dcl 1516 ref 1513 1520 builtin 10(32) based bit(1) level 4 packed packed unaligned dcl 6-844 ref 1930 by_compiler 0(35) based bit(1) level 3 packed packed unaligned dcl 6-844 ref 1635 2187 2367 2452 2473 c 003276 automatic char(1) packed unaligned dcl 2502 set ref 2833* 3362* 3363 3363 3365 cg_called 000101 automatic bit(1) dcl 147 set ref 322* 324* 532 670 744 850 971 cg_ptr 000104 automatic pointer dcl 90 set ref 120* 338 348 359 cg_structure based structure level 1 dcl 106 cg_vp parameter pointer dcl 87 ref 23 120 char 0(18) based bit(2) level 2 in structure "descriptor" packed packed unaligned dcl 2593 in procedure "display_text" ref 2892 2896 char builtin function dcl 2599 in procedure "display_text" ref 3195 3215 char_constant based structure level 1 dcl 6-316 char_num 1(18) based fixed bin(2,0) level 3 packed packed unsigned unaligned dcl 6-844 ref 2324 char_off 003533 automatic fixed bin(18,0) dcl 3336 set ref 3344* 3360* char_size 10 based fixed bin(20,0) level 4 packed packed unsigned unaligned dcl 6-844 ref 2128 char_string based char(4) dcl 3336 ref 3362 char_units constant fixed bin(3,0) initial dcl 5-136 ref 1264 2283 character 10(25) based bit(1) level 5 packed packed unaligned dcl 6-844 ref 2124 chars_per_word constant fixed bin(9,0) initial dcl 5-68 ref 909 cleanup 000102 stack reference condition dcl 148 ref 333 code 000110 automatic fixed bin(35,0) dcl 149 set ref 338* 339 342* 343 458* 459 1322* 1330* 1333* 1336* 1468* 1469 com_err_$suppress_name 000016 constant entry external dcl 150 ref 1322 common 0(20) based bit(1) level 3 packed packed unaligned dcl 10-23 ref 3178 3207 common_chain 2 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 6-753 ref 553 compiler_source_info based structure level 1 dcl 9-6 complex 10(23) based bit(1) level 5 packed packed unaligned dcl 6-844 ref 2108 constant 11(05) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 6-844 in procedure "ext_listing_generator" ref 2030 constant based structure level 1 dcl 6-256 in procedure "ext_listing_generator" constant_info 77 based structure array level 2 dcl 100 cp 000112 automatic pointer dcl 152 in procedure "listing_generator" set ref 929* 931 932* 934 934 934 934 934 941 943 959* 960* cp parameter pointer dcl 3149 in procedure "display_text" ref 3145 3169 3174 3176 3178 3182 3184 3186 3191 3195 3201 3201 3207 3212 3215 3217 3224 3229 3233 3233 3240 3242 3272 3279 create_entry based structure level 1 unaligned dcl 10-23 ref 931 934 934 create_init_entry based structure level 1 unaligned dcl 10-61 ref 3287 cref_base 000114 automatic pointer dcl 95 in procedure "ext_listing_generator" set ref 125* 301 606 609 612 625 1139 1209 1273 1495 1498 1502 1671 1675 1677 1677 1678 1679 1682 1684 1684 1685 1686 1688 1690 1690 1691 1692 1697 1701 1706 1707 1707 1708 1736 1737 1738 1738 1740 1913 2219 2228 2295 2422 2432 cref_base 14 based pointer level 2 in structure "shared_structure" dcl 100 in procedure "ext_listing_generator" ref 125 cref_file 002722 automatic fixed bin(18,0) dcl 1491 set ref 1502* 1504 1504* cref_hdr parameter varying char(8) dcl 2414 ref 2410 2422 2424 2426 2426 2427 cref_index 003230 automatic fixed bin(18,0) dcl 2415 set ref 2430* 2432 2434* cref_line 002723 automatic fixed bin(18,0) dcl 1492 set ref 1498* 1500 1507* cross_reference based structure array level 1 dcl 7-8 set ref 301 1671 1675 1677* 1677 1678* 1679 1682 1684* 1684 1685* 1686 1688 1690* 1690 1691* 1692 1697 1701 1706 1707* 1707 1708* 1736 1737 1738* 1738 1740* cur_listing 22 based pointer level 2 dcl 100 set ref 369* 370 372 376 377 379 380 390* 390* 395 440 444 446 603 603 625 732* 846 cur_offset 003523 automatic fixed bin(35,0) dcl 3150 set ref 3233* 3234 3234 cur_subp 000114 automatic pointer dcl 153 set ref 396* 397 406 430 432 548 553 558 563 594 1522 cur_subprogram 71 based fixed bin(18,0) level 2 dcl 100 set ref 395* 396 524 current 000116 automatic fixed bin(18,0) dcl 154 set ref 548* 548* 550* 551 553* 553* 555* 556 558* 558* 560* 561 563* 563* 565* 566 594* 594* 596* 597 603* 606 609 611 612 615 618* 732* 732* 733* 854* 854* 855* 868* 868* 869* 882* 882* 883* 897* 897* 898* 928* 929 930 931* 957* 959 1029* 1029* 1033 1042* 1053 1077* 1078 1093 1122* 1165* 1166 1168* 1242* 1243* 1522* 1522* 1524 1526* 1531* 1539* date_line 000117 automatic char(24) packed unaligned dcl 155 set ref 348* 359* date_time_ 000020 constant entry external dcl 156 ref 348 1307 date_time_compiled 40 based fixed bin(71,0) level 2 dcl 106 set ref 348* debuggin_ 000125 automatic bit(1) dcl 157 set ref 297* 1597 1629 2187 2999 decimal 003273 automatic bit(1) dcl 2502 set ref 2782 3047 3422* default_main_entry_point_name 000322 constant char(5) initial packed unaligned dcl 5-80 ref 410 definition_length 4(18) based bit(18) level 2 packed packed unaligned dcl 11-10 ref 973 973 definition_offset 4 based bit(18) level 2 packed packed unaligned dcl 11-10 ref 973 973 depth 002770 automatic fixed bin(18,0) dcl 1644 in procedure "sort_words" set ref 1664* 1714 1715 1720 1721 1725* 1725 1744* 1744 1746 1748 1749 depth 003062 automatic fixed bin(18,0) dcl 1759 in procedure "sort_symbols" set ref 1785* 1834 1835 1840 1841 1845* 1845 1864* 1864 1866 1868 1869 desc_op 000100 constant varying char(8) initial array dcl 2581 ref 2782 2784 2788 3423 desc_word 003415 automatic varying char(8) dcl 2579 set ref 2717 2730 2772 2782* 2784* 2788* 2791 2791 2792 2892 2922 3114* 3423* descriptor based structure level 1 dcl 2593 digit 000244 constant char(1) initial array dcl 2532 ref 2734 2750 2751 2855 dim 5 based structure array level 2 dcl 6-383 dimension based structure level 1 dcl 6-383 in procedure "ext_listing_generator" dimension 12(25) based fixed bin(18,0) level 2 in structure "symbol" packed packed unsigned unaligned dcl 6-844 in procedure "ext_listing_generator" ref 2144 dimensioned 10(35) based bit(1) level 4 packed packed unaligned dcl 6-844 ref 2137 dirname 12 based varying char(168) level 2 dcl 9-6 set ref 351* 354* divide builtin function dcl 1645 in procedure "sort_words" ref 1669 divide builtin function dcl 158 in procedure "listing_generator" ref 299 909 1789 2048 2048 2985 double 003264 automatic bit(1) dcl 2502 set ref 2770* 2835* 2963 double_precision 10(22) based bit(1) level 5 packed packed unaligned dcl 6-844 ref 2100 dp 003160 automatic pointer dcl 1889 set ref 1963* 1965 1977* 1979 1982 1986 1988 1997* 1998 2000 2002 2008 2144* 2145 2147 2147 2153 2153 2161 2161 2164 dtm 2 based fixed bin(71,0) level 2 in structure "source" packed packed unaligned dcl 6-693 in procedure "ext_listing_generator" ref 1307 dtm 4(18) 002464 automatic char(16) level 2 in structure "source_info_line" packed packed unaligned dcl 264 in procedure "listing_generator" set ref 1307* dtype 1(18) 000044 external static fixed bin(2,0) array level 2 packed packed unaligned dcl 12-5 ref 3422 3423 dummy_arg 0(31) based bit(1) level 3 packed packed unaligned dcl 6-844 ref 1954 dummy_l based bit(14) array level 2 packed packed unaligned dcl 2561 ref 3388 dummy_r 0(18) based bit(14) array level 2 packed packed unaligned dcl 2561 ref 3394 ebase 003404 automatic bit(1) array dcl 2577 set ref 2666* 2673 2794 3046* eis 003265 automatic bit(1) dcl 2502 set ref 2608* 2628 2772 2849 3106 3111* 3419* eis_desc 003266 automatic bit(1) dcl 2502 set ref 2772* 2773 2890 2918 eis_modifier 000060 constant char(3) initial array dcl 2584 ref 2701 2796 entry_point 10(30) based bit(1) level 4 packed packed unaligned dcl 6-844 ref 1924 ep_loc defined char(6) packed unaligned dcl 290 set ref 1089* 1184* 1256* ep_name defined char(14) packed unaligned dcl 289 set ref 1083 1085* 1179 1181* 1251 1253* equivalenced 11(03) based bit(1) level 4 packed packed unaligned dcl 6-844 ref 2171 error_text based structure level 1 dcl 7-24 ext_attributes 4 based structure level 2 packed packed unaligned dcl 6-844 ext_base 0(29) based bit(1) array level 2 in structure "instruction" packed packed unaligned dcl 2549 in procedure "display_text" ref 2837 ext_base 003270 automatic bit(1) dcl 2502 in procedure "display_text" set ref 2794* 2837* 2861 2974 ext_base 003403 automatic bit(1) level 2 in structure "mod_factor" packed packed unaligned dcl 2567 in procedure "display_text" set ref 2666 external 10(31) based bit(1) level 4 packed packed unaligned dcl 6-844 ref 1933 2059 extra_line 003422 automatic varying char(256) dcl 3148 set ref 3164* 3168* 3169* 3169 3171* 3171 3172* 3172 3174* 3174 3176* 3176 3178* 3178 3182* 3182 3186* 3186 3188* 3188 3191* 3191 3195* 3195 3200* 3200 3201* 3201 3209* 3209 3210* 3210 3214* 3214 3215* 3215 3216* 3216 3217* 3217 3226* 3226 3229* 3229 3232* 3232 3235* 3235 3239* 3239 3242* 3242 3246* 3246 3248* 3248 3251* 3251 3257* 3257 3262 3265 3306* 3308* 3311* 3313* 3316* 3319 3322 fi parameter fixed bin(18,0) dcl 1371 set ref 1368 1377 1385* file 2 based fixed bin(8,0) level 3 packed packed unsigned unaligned dcl 6-721 ref 434 710 805 808 808 825 file_id 2(27) 002464 automatic char(3) level 2 packed packed unaligned dcl 264 set ref 1305* file_list 117 based structure array level 3 dcl 100 file_no 000126 automatic fixed bin(8,0) dcl 159 set ref 467* 468 476 file_no_picture 000127 automatic picture(4) packed unaligned dcl 160 set ref 476* 477 file_number based fixed bin(8,0) array level 2 packed packed unaligned dcl 7-31 set ref 442 467 1299 1502 final parameter fixed bin(18,0) dcl 1890 ref 1885 1900 fir 002643 automatic fixed bin(18,0) dcl 1372 set ref 1376* 1378 1378 1381* 1395 first 000130 automatic fixed bin(18,0) dcl 161 in procedure "listing_generator" set ref 609 611* 625 1075* 1115 1115 1115 1117* 1117 1120 1120 1120 1122 1124 1125 1144* 1144 1152* 1152* 1155 1165 first 003063 automatic fixed bin(18,0) dcl 1760 in procedure "sort_symbols" set ref 1780* 1782 1789 1792 1795 1795 1797 1798 1808 1808 1810 1811 1832 1834 1836* 1847 1851 1851 1855* 1855* 1856 1857* 1868* first 13 based fixed bin(18,0) array level 3 in structure "subprogram" packed packed unsigned unaligned dcl 6-753 in procedure "ext_listing_generator" ref 1033 1522 first based fixed bin(18,0) level 2 in structure "operator_names" dcl 13-7 in procedure "display_text" ref 3060 3062 3070 3072 3080 first 003074 automatic fixed bin(18,0) array level 2 in structure "stack" dcl 1774 in procedure "sort_symbols" set ref 1834* 1840* 1868 first 002771 automatic fixed bin(18,0) dcl 1646 in procedure "sort_words" set ref 1665* 1669 1672 1675 1677 1678 1688 1690 1691 1712 1714 1716* 1727 1731 1731 1735* 1735* 1736 1737* 1748* first 003000 automatic fixed bin(18,0) array level 2 in structure "stack" dcl 1654 in procedure "sort_words" set ref 1714* 1720* 1748 first_block_constant defined fixed bin(18,0) dcl 1-153 ref 897 first_char 000131 automatic fixed bin(21,0) dcl 162 set ref 441* 452 458 458 458 458 469* 485 818* 819 821 828 first_char_constant defined fixed bin(18,0) dcl 1-149 ref 882 first_constant 100 based fixed bin(18,0) array level 3 dcl 100 ref 854 854 868 868 882 882 897 897 first_cr parameter fixed bin(18,0) dcl 2416 ref 2410 2419 2422 2430 first_cref 4 based fixed bin(18,0) level 2 unsigned dcl 7-12 ref 603 first_dw_constant defined fixed bin(18,0) dcl 1-145 ref 854 first_element 3(18) based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 6-436 ref 1534 1979 1982 first_entry_name 75 based fixed bin(18,0) level 2 dcl 100 ref 306 1006 1015 first_error 6 based fixed bin(18,0) level 2 unsigned dcl 7-12 set ref 370 376 377* 377 379* 732 first_file 000132 automatic fixed bin(8,0) dcl 163 set ref 442* first_init_word 003530 automatic fixed bin(18,0) dcl 3276 set ref 3281* 3285 3287 3289 3296 3308 3313 3327 first_label 4 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 6-753 ref 594 first_line 000133 automatic fixed bin(18,0) dcl 164 in procedure "listing_generator" set ref 440* 441 442 466 first_line 2 based fixed bin(18,0) level 2 in structure "listing_info" unsigned dcl 7-12 in procedure "ext_listing_generator" ref 440 446 first_loc 000134 automatic fixed bin(18,0) dcl 165 set ref 759* 780 837 839* 840* 908* 909 912* 930* 932* first_polish 5 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 6-753 ref 432 first_quad 10 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 6-753 ref 430 first_special 2 based fixed bin(18,0) level 2 dcl 13-7 ref 3066 first_stmnt 000136 automatic pointer dcl 166 set ref 430* 432* 434* 687 693 758* 764 774 first_string based char packed unaligned dcl 1761 ref 1795 1808 first_subprogram 72 based fixed bin(18,0) level 2 dcl 100 ref 308 1029 first_symbol 3 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 6-753 ref 548 first_word parameter fixed bin(18,0) dcl 2499 ref 2496 2611 3122 3125 3145 3153 3166 3195 3198 3205 3331 3340 first_word_constant defined fixed bin(18,0) dcl 1-141 ref 868 fixed builtin function dcl 2518 ref 2630 2701 2734 2742 2750 2751 2782 2796 2817 2855 2856 2863 2864 2871 2892 2892 2896 2924 2924 2927 2932 2932 2951 3037 3090 3281 3388 3394 flags 0(18) based structure level 2 packed packed unaligned dcl 10-23 format 0(30) based bit(1) level 4 packed packed unaligned dcl 6-530 ref 2214 2243 fort_version_info$version_name 000010 external static varying char(132) dcl 3-36 ref 359 fort_version_info$version_number 000012 external static char(16) packed unaligned dcl 3-37 ref 359 fortran_declared based structure level 1 dcl 4-91 fortran_options based structure level 1 dcl 4-40 fract_offset 003257 automatic fixed bin(18,0) dcl 2502 set ref 2892* 2896* 2897 2901* full_line 002547 automatic char(132) packed unaligned dcl 273 set ref 305 1080* 1083 1083 1085* 1085 1089* 1089 1095* 1103* 1111* 1112* 1132* 1133* 1170* 1179 1179 1181* 1181 1184* 1184 1189* 1199* 1245* 1251 1251 1253* 1253 1256* 1256 1269* 1444 1446* 1456 1460* 1905* 1918 1918 1920* 1920 1926* 1926 1930* 1930 1935* 1935 1937* 1937 1939 1939 1941 1941 1945* 1945 1948* 1948 1951* 1951 1954* 1954 2000* 2000 2002 2002 2007 2007 2008 2008 2009 2009 2013* 2013 2016* 2016 2021* 2021 2027* 2027 2034* 2034 2044* 2054* 2055* 2070* 2071* 2079* 2088* 2096* 2104* 2112* 2120* 2132* 2133* 2141* 2150* 2158* 2164* 2166* 2175* 2183* 2191* 2202* 2202 2208* 2208 2210 2210 2212* 2212 2214* 2214 2216* 2216 2233* 2241* 2241 2247* 2255* 2263 2263 2265* 2265 2267* 2267 2278* 2279* 2281* 2283* 2288* 2320* 2320 2325* 2325 2327* 2327 2358* 2390* 2403* 2426* 2437* function 10(28) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 6-844 in procedure "ext_listing_generator" ref 1939 function constant fixed bin(9,0) initial dcl 5-68 in procedure "ext_listing_generator" ref 408 given_ename 1 based varying char(32) level 2 dcl 9-6 set ref 351* 354* half based structure array level 1 dcl 2557 halfword_units constant fixed bin(3,0) initial dcl 5-136 ref 1266 2285 has_ic 003272 automatic bit(1) dcl 2502 set ref 2798* 2839* 2938 has_line_numbers 113(03) based bit(1) level 5 packed packed unaligned dcl 100 ref 450 479 hash_chain 3(18) based fixed bin(18,0) level 2 in structure "symbol" packed packed unsigned unaligned dcl 6-844 in procedure "ext_listing_generator" set ref 1108 1136 1205 1592* 1912 2064 hash_chain 3(18) based fixed bin(18,0) level 2 in structure "node" packed packed unsigned unaligned dcl 6-63 in procedure "ext_listing_generator" set ref 615* hash_chain 3(18) based fixed bin(18,0) level 2 in structure "label" packed packed unsigned unaligned dcl 6-530 in procedure "ext_listing_generator" set ref 1605* 2218 hdr 003162 automatic varying char(8) dcl 1891 set ref 1903* 1927* 2195* 2259* 2300* head parameter varying char(8) dcl 1892 ref 1885 1903 header based structure level 1 dcl 6-436 header_node constant fixed bin(4,0) initial dcl 5-87 ref 618 1529 1608 3011 high 002772 automatic fixed bin(18,0) dcl 1647 in procedure "sort_words" set ref 1673* 1697* 1697 1697* 1704 1706 1707 1712 1715 1722 high 003064 automatic fixed bin(18,0) dcl 1762 in procedure "sort_symbols" set ref 1793* 1817* 1817 1817 1817* 1824 1826 1827 1832 1835 1842 high_string based char packed unaligned dcl 1763 ref 1817 htht 022176 constant char(2) initial dcl 2502 ref 2940 2986 3083 3094 i 003246 automatic fixed bin(18,0) dcl 2502 in procedure "display_text" set ref 2611* 2614 2614 2620 2622 2625 2630 2665 2711 2734 2742 2750 2751 2759 2782 2796 2809 2815 2817 2837 2838 2839 2849 2855 2856 2863 2864 2871 2892 2892 2896 2924 2924 2927 2932 2932 2943 2978 2980 2983* 3125* 3127 3127 3134* 3153* 3155 3155 3162 3166 3195 3198 3205 3224 3233 3254 3256* 3296* 3297 3297 3304 3308 3313* 3340* 3346 3346 3351 3362 3373* 3373 3388 3388 3394 3394 i 003165 automatic fixed bin(18,0) dcl 1893 in procedure "print_symbols" set ref 2271* 2273* 2275 2279 2279 2281 2281 2283 2283 2287* 2287 2288 2288 2292 i 002736 automatic fixed bin(18,0) dcl 1517 in procedure "walk_bucket" set ref 1534* 1534* 1535* 1536 i 002642 automatic fixed bin(18,0) dcl 1372 in procedure "sort_offset" set ref 1377* 1378 1378 1380 1381* ic 003412 automatic bit(1) array dcl 2577 set ref 2699* 2704* 2798 3048* ignore_ic_mod 003263 automatic bit(1) dcl 2502 set ref 2770* 2811* 2857* 2935 in_common 11(02) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 6-844 in procedure "ext_listing_generator" ref 1993 2171 in_common 0(35) based bit(1) level 4 in structure "header" packed packed unaligned dcl 6-436 in procedure "ext_listing_generator" ref 1531 3011 in_list 000140 automatic bit(1) dcl 167 set ref 686* 687 691* 763* 764 770* 852* 1413 1415* incl_count 116 based fixed bin(17,0) level 3 dcl 100 ref 434 450 1291 incl_data 116 based structure level 2 dcl 100 incl_ptr 121 based pointer array level 4 packed packed unaligned dcl 100 ref 468 825 init 0(24) based bit(1) level 3 packed packed unaligned dcl 10-23 ref 934 3191 init_p 003526 automatic pointer dcl 3275 set ref 3279* 3280 3281 3285 3287 3289 3308 3311 3313 3316 3325 3325* 3327* 3327 initial 003065 automatic fixed bin(18,0) dcl 1764 in procedure "sort_symbols" set ref 1780* 1851 initial 13(07) based fixed bin(18,0) level 2 in structure "symbol" packed packed unsigned unaligned dcl 6-844 in procedure "ext_listing_generator" ref 1122 1935 2062 2062 2064 2367 2370 initial parameter fixed bin(18,0) dcl 1894 in procedure "print_symbols" ref 1885 1900 initialed 0(29) based bit(1) level 4 packed packed unaligned dcl 6-844 ref 2179 input_pointer 102 based pointer level 2 dcl 9-6 ref 295 instruction based structure array level 1 dcl 2549 integer 10(20) based bit(1) level 5 packed packed unaligned dcl 6-844 ref 2084 ioa_$ioa_switch 000022 constant entry external dcl 168 ref 351 354 359 973 1006 ioa_$rsnnl 000036 constant entry external dcl 1880 ref 1882 iocb 000142 automatic pointer dcl 169 set ref 329* 338* 342* 351* 354* 359* 458* 973* 1006* 1330* 1333 1333* 1336 1336* 1468* iox_$attach_ioname 000024 constant entry external dcl 170 ref 338 iox_$close 000026 constant entry external dcl 171 ref 1333 iox_$detach_iocb 000030 constant entry external dcl 172 ref 1336 iox_$open 000032 constant entry external dcl 173 ref 342 iox_$put_chars 000034 constant entry external dcl 174 ref 458 1330 1468 iptr 003166 automatic pointer dcl 1895 set ref 1901* 1910 1912 1918* 1918* 1920* 1924 1930 1933 1935 1939 1941 1945 1948 1951 1954 1959 1959 1963 1967 1973 1973 1977 1979 1982 1993 1997 2013 2013 2018 2024 2030 2032 2039 2039 2048 2048 2048 2050 2059 2062 2062 2064 2075 2084 2092 2100 2108 2116 2124 2126 2128 2137 2144 2171 2171 2179 2187 2199 2201 2201 2205 2207 2212 2214 2218 2224 2243 2243 2251 2263 2263 2265 2269 2279 2281 2283 2285 2294 2311 2311 2311 2314 2315 2315 2324 irand 003254 automatic fixed bin(18,0) dcl 2502 set ref 2609* 2766* 2784 2794 2795 2798 2943 3051* 3108* 3108 3109 3112* 3114 itag 003271 automatic bit(1) dcl 2502 set ref 2795* 2796 2838* 2907 3055 item 003170 automatic fixed bin(18,0) dcl 1896 set ref 1900* 1901 2062* j 003247 automatic fixed bin(18,0) dcl 2502 in procedure "display_text" set ref 2664* 2665 2666 2667 2673 2680 2699 2704* 2742* 2743 2746 2868* 2882* 2886 2985* 2986 2987 2993* 2994 2995 3015* 3016 3017 3024* 3025 3026 3030 3045* 3046 3047 3048* 3068* 3070 3072* 3353* 3354* 3361* 3362 3363 3365* j 002654 automatic fixed bin(18,0) dcl 1393 in procedure "simple_sort" set ref 1395* 1396 1397 1399 1400* k 003250 automatic fixed bin(18,0) dcl 2502 in procedure "display_text" set ref 2642* 2662* 2669 2670* 2670 2675 2676* 2676 2684 2685* 2685 2687 2688* 2688 2696 2697* 2697 2701 2702* 2702 2706 2707* 2707 2713 2714* 2714 2720 2722 2723* 2723 2724 2725* 2725 2726 2727* 2727 2729* 2729 2732 2733* 2733 2734 2735* 2735 2736 2737* 2737 2740 2741* 2741 2746 2747* 2747 2750 2751 2753* 2753 2755 2756* 2756 2761 2762* 2762 2764* 2764 2792* 2829* 2831 2833 2841* 2842 2845* 2845 2847 2863 2867* 2867 2899 2900* 2900 2902 2903* 2903 2909 2910 2912* 2912 2913 2913* 2913 2915 2915* 2915 2920 2921* 2921 2925 2926* 2926 2940 2941* 2941 2945 2947* 2947 2954 2955* 2955 2957 2960 2961* 2961 2965 2967 2968* 2968 2985 2986 2987* 2987 2994 2995* 2995 3005 3006 3007* 3007 3016 3017* 3017 3025 3026* 3026 3030* 3030 3083 3084* 3084 3094 3095* 3095 3097 3098* 3098 3100 3103 3352* 3354 3355* 3355 3360* 3361 3368 3370 3388* 3390* 3392 3394* 3396* 3398 3410 3411* 3411 k 002655 automatic fixed bin(18,0) dcl 1393 in procedure "simple_sort" set ref 1396* 1397 1400 1401* label based structure level 1 dcl 6-530 label_node constant fixed bin(4,0) initial dcl 5-87 ref 615 1595 2199 2999 large_address 0(20) based bit(1) level 3 packed packed unaligned dcl 6-844 ref 2315 last 1 003000 automatic fixed bin(18,0) array level 2 in structure "stack" dcl 1654 in procedure "sort_words" set ref 1715* 1721* 1749 last 000144 automatic fixed bin(18,0) dcl 175 in procedure "listing_generator" set ref 448* 452 490 601* 606 609 612* 613 621* 625 1128* 1130 1133 1134 1139* 1140* 1209* 1210* 1273* 1274* last 002773 automatic fixed bin(18,0) dcl 1648 in procedure "sort_words" set ref 1660* 1661 1669 1673 1682 1684 1685 1712 1721 1722* 1727 1731 1735 1749* last 1 003074 automatic fixed bin(18,0) array level 2 in structure "stack" dcl 1774 in procedure "sort_symbols" set ref 1835* 1841* 1869 last 003066 automatic fixed bin(18,0) dcl 1765 in procedure "sort_symbols" set ref 1781* 1782 1789 1793 1802 1802 1804 1805 1832 1841 1842* 1847 1851 1855 1869* last 1 based fixed bin(18,0) level 2 in structure "operator_names" dcl 13-7 in procedure "display_text" ref 3060 3070 3072 last_char 000145 automatic fixed bin(21,0) dcl 176 set ref 819* 821 829 last_cr parameter fixed bin(18,0) dcl 2417 ref 2410 2419 2430 last_cref 5 based fixed bin(18,0) level 2 unsigned dcl 7-12 ref 603 625 last_element 4 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 6-436 set ref 618* 1272 1616* 2294 last_error 7 based fixed bin(18,0) level 2 unsigned dcl 7-12 set ref 376 380* last_init_word 003531 automatic fixed bin(18,0) dcl 3276 set ref 3285* 3287* 3289* 3296 3327 last_line 000146 automatic fixed bin(18,0) dcl 177 set ref 444* 446* 448 448 466 last_loc 000147 automatic fixed bin(18,0) dcl 178 set ref 771* 775* 777* 780 837 839* 840 909* 912* 931* 932* 1163* 1175 1177* last_slot parameter fixed bin(18,0) dcl 1392 ref 1389 1395 1396 last_special 3 based fixed bin(18,0) level 2 dcl 13-7 ref 3066 last_string based char packed unaligned dcl 1766 ref 1802 last_subprogram 73 based fixed bin(18,0) level 2 dcl 100 ref 308 last_symbol 000150 automatic fixed bin(18,0) dcl 179 set ref 520* 571* 636 646* 647* 653 663 664 1554 1564* 1568 1570 1573 1575* last_word parameter fixed bin(18,0) dcl 2500 ref 2496 2611 3122 3125 3145 3153 3224 3233 lbl_line defined char(75) packed unaligned dcl 286 set ref 2241* lbl_loc defined char(6) packed unaligned dcl 284 set ref 2202* lbl_name defined char(10) packed unaligned dcl 283 set ref 2208* 2210* lbl_type defined char(41) packed unaligned dcl 285 set ref 2212* 2214* 2216* leading_columns parameter fixed bin(18,0) dcl 1431 ref 1451 1454 1456 1456 left based bit(18) array level 2 in structure "half" packed packed unaligned dcl 2557 in procedure "display_text" ref 2856 2871 left 0(14) based bit(4) array level 2 in structure "rel_tab" packed packed unaligned dcl 2561 in procedure "display_text" ref 3388 len_reg 003407 automatic bit(1) array dcl 2577 set ref 2667* 2680 2795 3047* length based fixed bin(35,0) level 2 in structure "create_init_entry" dcl 10-61 in procedure "ext_listing_generator" ref 3287 3289 3313 3316 3325 length 1(18) based fixed bin(18,0) array level 2 in structure "symbols" packed packed unsigned unaligned dcl 248 in procedure "listing_generator" set ref 1020* 1040* 1048* 1378 1378 1589* 1602* 1613* 1795 1802 1808 1817 1821 1857 length 6 based fixed bin(24,0) level 2 in structure "header" dcl 6-436 in procedure "ext_listing_generator" ref 1261 2269 length 0(24) based bit(12) level 2 in structure "descriptor" packed packed unaligned dcl 2593 in procedure "display_text" ref 2796 2924 2924 2927 2932 2932 length 2(27) based bit(9) level 2 in structure "statement" packed packed unaligned dcl 6-721 in procedure "ext_listing_generator" ref 816 819 length 4 based fixed bin(18,0) level 2 in structure "char_constant" packed packed unsigned unaligned dcl 6-316 in procedure "ext_listing_generator" ref 892 892 909 length builtin function dcl 180 in procedure "listing_generator" ref 421 421 456 458 458 473 492 501 501 638 655 672 705 711 735 735 746 790 823 861 875 889 892 892 904 909 921 937 950 966 1020 1048 1069 1083 1109 1112 1113 1157 1179 1218 1227 1234 1251 1251 1269 1269 1281 1310 1310 1330 1330 1330 1417 1442 1454 1454 1468 1468 1631 1918 1998 2002 2052 2055 2056 2068 2071 2072 2130 2133 2134 2231 2233 2234 2263 2263 2275 2278 2279 2281 2283 2288 2292 2372 2376 2380 2401 2403 2404 2422 2424 2426 2427 2435 2437 2438 length 1 based fixed bin(17,0) level 2 in structure "error_text" dcl 7-24 in procedure "ext_listing_generator" ref 735 738 length 3(27) based bit(9) level 2 in structure "opt_statement" packed packed unaligned dcl 8-176 in procedure "ext_listing_generator" ref 1355 length 1 based fixed bin(24,0) level 2 in structure "create_entry" dcl 10-23 in procedure "ext_listing_generator" ref 3195 length builtin function dcl 2518 in procedure "display_text" ref 2743 2791 2792 2993 3006 3007 3015 3024 3100 3137 3262 3262 3292 3319 3319 3368 3409 length 2(27) 002232 automatic bit(9) level 2 in structure "stmnt" packed packed unaligned dcl 224 in procedure "listing_generator" set ref 1355* length 1(18) 003072 automatic fixed bin(18,0) level 2 in structure "t" packed packed unsigned unaligned dcl 1771 in procedure "sort_symbols" set ref 1795 1802 1808 1817 1821 1857 length_in_reg 0(01) 003403 automatic bit(1) level 2 packed packed unaligned dcl 2567 set ref 2667 line 003303 automatic char(256) packed unaligned dcl 2502 in procedure "display_text" set ref 2615* 2616* 2639* 2641* 2653* 2654* 2655* 2656* 2658* 2659* 2660* 2669* 2675* 2684* 2687* 2696* 2701* 2706* 2713* 2720* 2722* 2724* 2726* 2732* 2734* 2736* 2740* 2746* 2750* 2751* 2755* 2761* 2775* 2776* 2777* 2778* 2780* 2791* 2822* 2824* 2825* 2826* 2828* 2831* 2833 2842* 2863* 2886* 2899* 2902* 2909* 2910* 2913 2915 2920* 2925* 2940* 2945* 2954* 2957* 2960* 2965* 2967* 2986* 2994* 3005* 3006* 3016* 3025* 3083* 3094* 3097* 3103 3128* 3130* 3132* 3135* 3139 3156* 3158* 3160* 3163* 3172 3200 3210 3248 3264 3298* 3300* 3302* 3305* 3321 3347* 3348* 3349* 3354* 3358* 3363* 3365* 3370 3384* 3392* 3398* 3410* line 2(08) based bit(14) level 3 in structure "statement" packed packed unaligned dcl 6-721 in procedure "ext_listing_generator" ref 709 803 803 line_id 002464 automatic char(9) level 2 packed packed unaligned dcl 264 set ref 1300* line_len 000151 automatic fixed bin(18,0) dcl 181 set ref 304* 685* 700 704* 721* 721 725 1081* 1095 1096* 1096 1098 1098* 1103 1104* 1104 1109 1111 1112 1113* 1113 1130 1132 1133 1134* 1134 1171* 1189 1190* 1190 1193 1193* 1199 1201* 1201 1246* 1270* 1442 1444 1447* 1461* 1906* 2042 2044 2045* 2045 2052 2054 2055 2056* 2056 2068 2070 2071 2072* 2072 2077 2079 2080* 2080 2086 2088 2089* 2089 2094 2096 2097* 2097 2102 2104 2105* 2105 2110 2112 2113* 2113 2118 2120 2121* 2121 2130 2132 2133 2134* 2134 2139 2141 2142* 2142 2150 2151* 2151 2156 2158 2159* 2159 2164 2166 2167* 2167 2173 2175 2176* 2176 2181 2183 2184* 2184 2189 2191 2192* 2192 2226* 2231 2233 2234* 2234 2238 2238* 2245 2247 2248* 2248 2253 2255 2256* 2256 2275 2278 2279 2281 2283 2288 2292* 2292 2356 2358 2359* 2359 2382 2385* 2390 2392* 2392 2401 2403 2404* 2404 2424 2426 2427* 2427 2435 2437 2438* 2438 line_length 1 based fixed bin(18,0) array level 2 packed packed unsigned unaligned dcl 7-31 set ref 448 470 line_no 0(18) based fixed bin(17,0) array level 2 in structure "cross_reference" packed packed unaligned dcl 7-8 in procedure "ext_listing_generator" set ref 1495 1498 1502 2228 2422 2432 line_no 000152 automatic fixed bin(17,0) dcl 182 in procedure "listing_generator" set ref 471* 481 line_no_picture 000154 automatic picture(6) packed unaligned dcl 183 set ref 481* 482 709* 711 714 1298* 1300 2207* 2208 line_number 0(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 6-693 ref 1298 1299 line_number_in_file 1(18) based fixed bin(18,0) array level 2 packed packed unsigned unaligned dcl 7-31 set ref 471 1298 1498 line_ptr 000156 automatic pointer dcl 184 set ref 305* line_start 0(09) based fixed bin(21,0) array level 2 packed packed unsigned unaligned dcl 7-31 set ref 441 448 469 linkage_length 5(18) based bit(18) level 2 packed packed unaligned dcl 11-10 ref 973 973 linkage_offset 5 based bit(18) level 2 packed packed unaligned dcl 11-10 ref 973 973 list 113(10) based bit(1) level 5 packed packed unaligned dcl 100 ref 744 850 listing 113(07) based structure level 4 packed packed unaligned dcl 100 listing_base 000120 automatic pointer dcl 97 in procedure "ext_listing_generator" set ref 127* 369 372 376 390 390 390 446 733 846 listing_base 20 based pointer level 2 in structure "shared_structure" dcl 100 in procedure "ext_listing_generator" ref 127 listing_info based structure level 1 dcl 7-12 listing_seg based fixed bin(17,0) array dcl 7-22 set ref 372 376 390 446 733 846 loc 000160 automatic fixed bin(18,0) dcl 185 set ref 1087* 1088 1088 1102* 1103 1104 1124* 1127 1136* 1136 1137 1139 1140* 1173* 1175 1177 1183 1183 1198* 1199 1201 1205* 1207 1209 1210* 1247* 1249 1255 1255 1258 1272* 1273 1274* 1965* 1966 1966 2314* 2315* 2315 2317 2317 2324* 2325 2327 location 1 based fixed bin(18,0) level 3 in structure "label" packed packed unsigned unaligned dcl 6-530 in procedure "ext_listing_generator" ref 1006 location 5 based fixed bin(24,0) level 2 in structure "header" dcl 6-436 in procedure "ext_listing_generator" ref 1247 1965 location 1 based fixed bin(18,0) level 3 in structure "constant" packed packed unsigned unaligned dcl 6-256 in procedure "ext_listing_generator" ref 864 864 878 878 location 1(18) 002232 automatic bit(18) level 2 in structure "stmnt" packed packed unaligned dcl 224 in procedure "listing_generator" set ref 1353* location 5 based fixed bin(24,0) level 2 in structure "symbol" dcl 6-844 in procedure "ext_listing_generator" ref 2048 2048 2050 2315 location 1(18) based bit(18) level 2 in structure "statement" packed packed unaligned dcl 6-721 in procedure "ext_listing_generator" ref 718 718 759 777 location based fixed bin(18,0) level 2 in structure "create_entry" packed packed unsigned unaligned dcl 10-23 in procedure "ext_listing_generator" ref 3233 location 5 based bit(18) level 2 in structure "opt_statement" packed packed unaligned dcl 8-176 in procedure "ext_listing_generator" ref 775 1353 location 1 based fixed bin(18,0) level 3 in structure "char_constant" packed packed unsigned unaligned dcl 6-316 in procedure "ext_listing_generator" ref 892 908 logical 10(24) based bit(1) level 5 packed packed unaligned dcl 6-844 ref 2116 long_name parameter varying char(256) dcl 1433 ref 1451 1454 1458 looping 000161 automatic bit(1) packed unaligned dcl 186 set ref 918* 928 941* low 002774 automatic fixed bin(18,0) dcl 1649 in procedure "sort_words" set ref 1672* 1701* 1701 1701* 1704 1707 1708 1712 1716 1720 1737* 1737* 1738 1738* 1740 low 003067 automatic fixed bin(18,0) dcl 1767 in procedure "sort_symbols" set ref 1792* 1821* 1821 1821 1821* 1824 1827 1828 1832 1836 1840 1857* 1857 1857* 1858 1858* 1860 low_string based char packed unaligned dcl 1768 ref 1821 1857 lower 0(09) based bit(1) array level 3 packed packed unaligned dcl 6-383 ref 2147 lower_bound 5 based fixed bin(24,0) array level 3 dcl 6-383 set ref 2147* ltrim builtin function dcl 187 ref 711 714 1300 1300 1967 1970 3172 3195 3215 3235 3248 3311 3316 m 000162 automatic fixed bin(17,0) dcl 188 in procedure "listing_generator" set ref 1032* 1033* 1291* 1293 1295 1304* m 003564 automatic fixed bin(18,0) dcl 3406 in procedure "bin2dec" set ref 3409* 3410 3411 m 003251 automatic fixed bin(18,0) dcl 2502 in procedure "display_text" set ref 2743* 2744 2746 2747 main_program constant fixed bin(9,0) initial dcl 5-68 ref 410 map_file_no_picture 000163 automatic picture(4) packed unaligned dcl 189 set ref 710* 713 1299* 1300 map_ptr based bit(18) dcl 11-38 ref 314 max_line constant fixed bin(18,0) initial dcl 190 ref 790 1098 1109 1130 1193 2042 2052 2068 2077 2086 2094 2102 2110 2118 2130 2139 2156 2173 2181 2189 2231 2245 2253 2275 2356 2382 2382 2401 2424 2435 max_number 000164 automatic fixed bin(18,0) dcl 191 set ref 299* 1550 median 003070 automatic fixed bin(18,0) dcl 1769 in procedure "sort_symbols" set ref 1789* 1791 1797 1799 1804 1806 1810 1812 median 002775 automatic fixed bin(18,0) dcl 1650 in procedure "sort_words" set ref 1669* 1671 1677 1679 1684 1686 1690 1692 mf 000114 constant fixed bin(6,0) initial array dcl 2574 ref 2665 min builtin function dcl 2518 ref 3360 misc_attributes 10(28) based structure level 3 packed packed unaligned dcl 6-844 mod_factor 003403 automatic structure level 1 dcl 2567 set ref 2665* mode 10(20) based structure level 4 packed packed unaligned dcl 6-844 mode_bits 10 based structure level 3 packed packed unaligned dcl 6-844 modifier 000117 constant char(3) initial array dcl 2541 ref 2817 mop 003252 automatic fixed bin(18,0) dcl 2502 set ref 2630* 2631 2634* 2646 2807 3037* 3038 3420 3421 3422 3423 more_than_one 000165 automatic bit(1) dcl 192 set ref 308* 1093 1187 1420 moved 4(06) based bit(1) level 3 packed packed unaligned dcl 8-176 ref 1359 moved_text 000166 automatic bit(1) dcl 193 set ref 327* 695 780 785 788 797 1359* n 002737 automatic fixed bin(18,0) dcl 1518 in procedure "walk_bucket" set ref 1520* 1522 n 000167 automatic fixed bin(18,0) dcl 194 in procedure "listing_generator" set ref 466* 467 469 470 471* 534* 535* 537* 538* 575* 577 581 583 584* 1015* 1015* 1016 1019* 1033* 1033* 1036 1039 1040 1040 1041 1042 1047 1048 1049* 1051 1063* 1064* 1065* 1075 1240* 1249 1258* 1568* 1570 1570* n 003171 automatic fixed bin(18,0) dcl 1897 in procedure "print_symbols" set ref 1998* 2002 2008 2009 2145* 2147 2147 2153 2161 2161 2164* n_chars parameter fixed bin(18,0) dcl 3334 ref 3331 3341 n_com 000170 automatic fixed bin(18,0) dcl 195 set ref 1026* 1046* 1046 1047 1048 1049 1060* 1061* 1225 1242 n_ep 000171 automatic fixed bin(18,0) dcl 196 set ref 1011* 1018* 1018 1019 1020 1021 1026 1027 1057* 1058* 1060 1061 1063 1077 1152 1225 1242 n_hdr 000172 automatic fixed bin(18,0) dcl 197 set ref 307* 1027 1063 1152 1610* 1610 n_ref 000173 automatic fixed bin(18,0) dcl 198 set ref 1027* 1038* 1038 1039 1040 1041 1064* 1065* 1115 1120 1152 1155 1165 name 000044 external static char(6) array level 2 in structure "op_mnemonic_$op_mnemonic_" packed packed unaligned dcl 12-5 in procedure "display_text" ref 2631 name 20 based char level 2 in structure "symbol" dcl 6-844 in procedure "ext_listing_generator" set ref 406 1020 1021 1041 1133 1590 1631 1633 1635 1979 1982 2371 2372 2379 2380 2469 2993 2994 3024 3025 3257 name based char packed unaligned dcl 2345 in procedure "print_dim_bound" ref 2385 2390 name 4(18) based fixed bin(17,0) level 2 in structure "label" packed packed unaligned dcl 6-530 in procedure "ext_listing_generator" set ref 1597 1603 2205 2207 2251 2999 3003 name_length 2(18) based fixed bin(17,0) level 2 in structure "create_entry" packed packed unaligned dcl 10-23 in procedure "ext_listing_generator" ref 931 934 934 3201 3201 3240 3242 name_length 4(18) based fixed bin(17,0) level 2 in structure "header" packed packed unaligned dcl 6-436 in procedure "ext_listing_generator" ref 1048 1049 1251 1251 1253 1613 1614 1986 1988 1998 2000 2002 2008 2263 2263 2265 3015 3016 name_length 003216 automatic fixed bin(18,0) dcl 2342 in procedure "print_dim_bound" set ref 2372* 2376* 2380* 2382 2382 2385 2386* 2390 2390 2390 2392 name_length 14(07) based fixed bin(17,0) level 2 in structure "symbol" packed packed unaligned dcl 6-844 in procedure "ext_listing_generator" ref 406 1020 1021 1041 1133 1590 1631 1633 1635 1979 1982 2371 2372 2379 2380 2452 2454 2469 2469 2993 2994 3024 3025 3257 name_pair based structure level 1 dcl 2526 name_ptr 003220 automatic pointer dcl 2343 set ref 2371* 2375* 2379* 2385 2390 named_constant 11(06) based bit(1) level 4 packed packed unaligned dcl 6-844 ref 1951 namelist 10(34) based bit(1) level 4 packed packed unaligned dcl 6-844 ref 1948 namep based bit(18) array level 3 packed packed unaligned dcl 13-7 set ref 3072 names 5 based structure array level 2 dcl 13-7 set ref 3062 nc 003532 automatic fixed bin(18,0) dcl 3336 set ref 3341* 3344 3360 ndesc 003256 automatic fixed bin(18,0) dcl 2502 set ref 2664 2717 3045 3114 3421* need_comma 003267 automatic bit(1) dcl 2502 set ref 2671* 2677* 2682 2689* 2694 needs_descriptors 0(33) based bit(1) level 3 packed packed unaligned dcl 6-844 ref 2075 new_str based char dcl 1374 ref 1378 next 3 based fixed bin(18,0) level 2 in structure "node" packed packed unsigned unaligned dcl 6-63 in procedure "ext_listing_generator" ref 1051 1540 next 2 based bit(18) level 2 in structure "opt_statement" packed packed unaligned dcl 8-176 in procedure "ext_listing_generator" ref 1352 next 1 002232 automatic bit(18) level 2 in structure "stmnt" packed packed unaligned dcl 224 in procedure "listing_generator" set ref 1352* next 2 based fixed bin(18,0) level 2 in structure "create_entry" packed packed unsigned unaligned dcl 10-23 in procedure "ext_listing_generator" ref 941 943 next based fixed bin(18,0) level 2 in structure "error_text" unsigned dcl 7-24 in procedure "ext_listing_generator" set ref 376* 739 next 1 based fixed bin(18,0) level 2 in structure "listing_info" unsigned dcl 7-12 in procedure "ext_listing_generator" ref 372 390 444 446 846 next 1 based bit(18) level 2 in structure "statement" packed packed unaligned dcl 6-721 in procedure "ext_listing_generator" ref 691 693 768 774 next_constant 3 based fixed bin(18,0) level 2 in structure "char_constant" packed packed unsigned unaligned dcl 6-316 in procedure "ext_listing_generator" ref 895 914 next_constant 3 based fixed bin(18,0) level 2 in structure "constant" packed packed unsigned unaligned dcl 6-256 in procedure "ext_listing_generator" ref 866 880 next_entry_name 000174 automatic fixed bin(18,0) dcl 199 set ref 306* 524 524 525* 526* 526 next_free_object 43 based fixed bin(18,0) level 2 dcl 100 set ref 312 314 973* next_header 3 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 6-436 ref 556 561 566 next_label 3 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 6-530 ref 597 next_member 7(18) based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 6-844 ref 1536 next_subprogram 1(18) based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 6-753 ref 1053 next_symbol 3 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 6-844 ref 526 551 1022 node based structure level 1 dcl 6-63 node_offset parameter fixed bin(18,0) dcl 1546 ref 1543 1579 node_type based fixed bin(4,0) level 2 packed packed unaligned dcl 6-63 ref 579 615 615 618 1036 1526 1529 1582 1595 1608 1910 2199 2989 2999 3011 3021 nrands 003255 automatic fixed bin(18,0) dcl 2502 set ref 3109 3420* null builtin function dcl 200 ref 329 1333 1336 3280 3325 3382 num_desc 1(21) 000044 external static fixed bin(5,0) array level 2 packed packed unaligned dcl 12-5 ref 2807 3421 num_words 1(27) 000044 external static fixed bin(8,0) array level 2 packed packed unaligned dcl 12-5 ref 2646 3038 3420 numb 000175 automatic varying char(12) dcl 201 set ref 1108* 1109 1112 1112 1113 1261* 1262* 1262 1264* 1264 1266* 1266 1269 1269 1269 2048* 2050* 2052 2055 2055 2056 2064* 2068 2071 2071 2072 2126* 2128* 2130 2133 2133 2134 2230* 2231 2233 2233 2234 2269* 2271 2275 2278 2278 2279 2281 2283 2288 2292 2400* 2401 2403 2403 2404 2434* 2435 2437 2437 2438 3003* 3006 3006 3007 3408* 3409 3410 number parameter bit(36) dcl 1877 in procedure "binoct" set ref 1874 1882* number 002710 automatic picture(12) packed unaligned dcl 1478 in procedure "print_number" set ref 1482* 1484 1484 number parameter fixed bin(18,0) dcl 3406 in procedure "bin2dec" ref 3403 3408 number_of_crefs 54 based fixed bin(17,0) level 2 dcl 100 ref 299 301 1660 number_of_dims 0(05) based fixed bin(3,0) level 2 packed packed unaligned dcl 6-383 ref 2145 2153 2164 number_of_lines 53 based fixed bin(17,0) level 2 dcl 100 ref 319 444 number_of_operands 000201 automatic fixed bin(18,0) dcl 202 set ref 518* 541 568 571 653 663* 664* 1550 1556* 1557* 1559* 1568 1573* 1573 1587* 1587 1588 1589 1590 1600* 1600 1601 1602 1603 1611* 1611 1612 1613 1614 number_referenced 000202 automatic fixed bin(18,0) dcl 203 set ref 519* 541* 568* 575 581 584 585 588* 588 630* 631* 636 646 647 1560* 1566* 1574* number_special 4 based fixed bin(17,0) level 2 dcl 13-7 ref 3068 object based bit(36) array dcl 204 set ref 1006 2620* 2665 2711 2734 2742 2750 2751 2759 2782 2796 2892 2892 2896 2924 2924 2927 2932 2932 2943 2959* 2966* 3134* 3162* 3304* 3351* 3362 object_base 4 based pointer level 2 in structure "shared_structure" dcl 100 in procedure "ext_listing_generator" ref 124 object_base 000112 automatic pointer dcl 94 in procedure "ext_listing_generator" set ref 124* 314 314 929 959 1006 2620 2625 2630 2665 2711 2734 2742 2750 2751 2759 2782 2796 2809 2815 2817 2837 2838 2839 2849 2855 2856 2863 2864 2871 2892 2892 2896 2924 2924 2927 2932 2932 2943 2978 3134 3162 3304 3351 3362 object_map based structure level 1 dcl 11-10 object_map_ptr 000204 automatic pointer dcl 205 set ref 314* 315 973 973 973 973 973 973 973 973 973 973 973 973 973 973 973 973 objectname 42 based varying char(32) level 2 dcl 106 ref 338 octal_string 000206 automatic char(12) dcl 206 set ref 718* 719 1088* 1089 1183* 1184 1255* 1256 1966* 1967 1970 2201* 2202 2202 2311* 2317* 2320 2475* 2477 2614* 2615 2620* 2641 2653 2654 2655 2656 2724 2776 2777 2778 2809* 2810 2824 2825 2826 2886 2944* 2945 2959* 2960 2966* 2967 3127* 3128 3134* 3135 3155* 3156 3162* 3163 3234* 3235 3297* 3298 3304* 3305 3346* 3347 3351* 3354 offset 17 based fixed bin(24,0) level 2 in structure "symbol" dcl 6-844 in procedure "ext_listing_generator" ref 2311 2311 offset 1(03) based fixed bin(14,0) level 3 in structure "symbol" packed packed unaligned dcl 6-844 in procedure "ext_listing_generator" ref 1087 1173 2032 2314 offset 003260 automatic fixed bin(18,0) dcl 2502 in procedure "display_text" set ref 2856* 2864* 2865 2865* 2865 2871* 2873 2879* 2879 2888* 2943 3036 3060 3060 3062 3066 3066 3070 3080 3082 offset based fixed bin(18,0) array level 3 in structure "operator_names" dcl 13-7 in procedure "display_text" ref 3070 offset 1 based fixed bin(18,0) array level 2 in structure "symbols" packed packed unsigned unaligned dcl 248 in procedure "listing_generator" set ref 577 1019* 1039* 1047* 1078 1093 1115 1115 1120 1120 1122 1122 1124 1125* 1152 1166 1168 1243 1397 1397 1588* 1601* 1612* 1901 2062 offset 0(03) based bit(15) array level 2 in structure "instruction" packed packed unaligned dcl 2549 in procedure "display_text" ref 2864 old_id 000211 automatic bit(27) dcl 207 set ref 684* 695 698* 761* 785 787* old_moved 000212 automatic bit(1) dcl 208 set ref 762* 785 788* old_str based char dcl 1373 ref 1378 op_code 003300 automatic char(5) packed unaligned dcl 2502 in procedure "display_text" set ref 2631* 2637 2659 2720 2738 2784 2784 2788 2802 2804 2831 2835 2835 2835 2949 3034 3078 3078 3114* op_code 0(18) based bit(10) array level 2 in structure "instruction" packed packed unaligned dcl 2549 in procedure "display_text" ref 2630 3037 op_mnemonic based structure level 1 dcl 12-9 op_mnemonic_$op_mnemonic_ 000044 external static structure array level 1 dcl 12-5 op_names_pt 003420 automatic pointer dcl 13-5 set ref 2606* 3060 3060 3062 3066 3066 3068 3070 3072 3080 operand_base 2 based pointer level 2 in structure "shared_structure" dcl 100 in procedure "ext_listing_generator" ref 123 operand_base 000110 automatic pointer dcl 93 in procedure "ext_listing_generator" set ref 123* 396 406 524 526 551 556 561 566 577 597 613 855 869 883 898 1006 1016 1033 1036 1040 1040 1041 1042 1048 1049 1051 1053 1078 1091 1098 1098 1098 1098 1102 1102 1103 1103 1115 1115 1120 1120 1122 1127 1127 1128 1128 1133 1136 1168 1192 1193 1193 1193 1193 1198 1198 1199 1199 1243 1293 1524 1536 1580 1901 1963 1977 1979 1982 1997 2064 2144 2366 2370 2983 3023 3256 operator_names based structure level 1 dcl 13-7 opt_statement based structure level 1 dcl 8-176 optimize 113(01) based bit(1) level 4 packed packed unaligned dcl 100 ref 128 326 optimizing 000213 automatic bit(1) dcl 209 set ref 326* 430 775 1348 options 113 based structure level 2 dcl 100 options_string 64 based varying char(256) level 2 dcl 106 set ref 359* output 000214 automatic varying char(4096) dcl 210 set ref 330* 331 421 423* 423 456 461* 473 477* 477 482* 482 485* 485 492 494* 494 501 504* 504 508* 508 638 641* 641 655 658* 658 672 675* 675 703* 703 705 716* 716 719* 719 725* 725 735 738* 738 746 749* 749 790 793* 793 797* 797 799* 799 800* 800 802* 802 803* 803 807* 807 808* 808 812* 812 823 828* 828 829* 829 831* 831 861 863* 863 875 877* 877 889 891* 891 904 906* 906 921 923* 923 937 939* 939 950 952* 952 966 1001* 1069 1071* 1071 1157 1159* 1159 1218 1220* 1220 1227 1229* 1229 1234 1236* 1236 1281 1284* 1284 1285* 1285 1310 1313* 1313 1314* 1314 1330 1330 1330 1417 1420* 1420 1422* 1422 1424* 1424 1442 1444* 1444 1445* 1445 1454 1456* 1456 1458* 1458 1459* 1459 1468 1468 1471* 3100 3103* 3103 3104* 3104 3137 3139* 3139 3140* 3140 3262 3264* 3264 3265* 3265 3266* 3266 3292 3294* 3294 3319 3321* 3321 3322* 3322 3323* 3323 3368 3370* 3370 3371* 3371 output_max constant fixed bin(18,0) initial dcl 211 ref 421 473 492 501 638 655 672 705 735 746 790 823 861 875 889 904 921 937 950 1069 1157 1218 1227 1234 1281 1310 1417 1442 1454 3100 3137 3262 3292 3319 3368 output_ptr 002216 automatic pointer dcl 212 set ref 331* 1330* 1468* p 002220 automatic pointer dcl 213 set ref 372* 376 377 693* 723 733* 735 738 739 758* 759 774* 775 777 843 parameter 11(04) based bit(1) level 4 packed packed unaligned dcl 6-844 ref 2013 2039 parent 11(18) based fixed bin(18,0) level 2 in structure "array_ref" packed packed unsigned unaligned dcl 6-155 in procedure "ext_listing_generator" ref 3021 3023 parent 7 based fixed bin(18,0) level 2 in structure "symbol" packed packed unsigned unaligned dcl 6-844 in procedure "ext_listing_generator" set ref 524 1042* 1091 1127 1192 1959 1963 1973 1977 1997 parse_ptr 000102 automatic pointer dcl 90 set ref 119* 295 351 351 351 354 354 354 parse_structure based structure level 1 dcl 103 parse_vp parameter pointer dcl 87 ref 23 119 pathname 11 002464 automatic char(168) level 2 in structure "source_info_line" packed packed unaligned dcl 264 in procedure "listing_generator" set ref 1308* pathname 5 based varying char(256) level 2 in structure "source" dcl 6-693 in procedure "ext_listing_generator" ref 1308 pl1_operator_names_$pl1_operator_names_ 000042 external static fixed bin(17,0) dcl 2521 set ref 2606 pl1_operators_$operator_table 000040 external static fixed bin(17,0) dcl 2502 set ref 3036 3082 pointer_count 0(27) based fixed bin(9,0) level 3 packed packed unsigned unaligned dcl 10-23 ref 931 934 934 3212 3215 3217 3224 3233 polish based fixed bin(18,0) array dcl 214 set ref 432 2367 2370 polish_base 000106 automatic pointer dcl 92 in procedure "ext_listing_generator" set ref 122* 432 2367 2370 polish_base based pointer level 2 in structure "shared_structure" dcl 100 in procedure "ext_listing_generator" ref 122 print_message 1530 based entry variable level 2 dcl 100 ref 436 621 1539 1552 1619 pt 003274 automatic pointer dcl 2502 set ref 2943* 2944 2944 2951 2959 2966 2983* 2989 2989* 2993 2994 2999 2999 3003 3011 3011 3015 3016 3021 3021 3023* 3023 3024 3025 3036* 3037 3062* 3072* 3082* 3090 3092* 3092 3092 3097 ptr builtin function dcl 215 in procedure "listing_generator" ref 693 774 929 959 ptr builtin function dcl 2518 in procedure "display_text" ref 3092 put_in_map 3 based bit(1) level 3 packed packed unaligned dcl 6-721 ref 695 780 quad based fixed bin(18,0) array dcl 216 set ref 430 quad_base 000122 automatic pointer dcl 98 set ref 128* 430 quadruple_base 6 based pointer level 2 dcl 100 ref 128 rands based fixed bin(18,0) array dcl 217 set ref 396 406 524 526 551 556 561 566 577 597 613 855 869 883 898 1006 1016 1033 1036 1040 1040 1041 1042 1048 1049 1051 1053 1078 1091 1098 1098 1098 1098 1102 1102 1103 1103 1115 1115 1120 1120 1122 1127 1127 1128 1128 1133 1136 1168 1192 1193 1193 1193 1193 1198 1198 1199 1199 1243 1293 1524 1536 1580 1901 1963 1977 1979 1982 1997 2064 2144 2366 2370 2983 3023 3256 real 10(21) based bit(1) level 5 packed packed unaligned dcl 6-844 ref 2092 referenced 0(27) based bit(1) level 5 packed packed unaligned dcl 6-844 ref 579 2048 referenced_executable 0(29) based bit(1) level 4 packed packed unaligned dcl 6-530 ref 2243 rel builtin function dcl 2518 ref 2944 2944 2951 3281 rel_base 002222 automatic pointer dcl 218 set ref 318* 3382 3388 3388 3394 3394 rel_ptr based bit(18) level 2 packed packed unaligned dcl 2526 ref 3092 rel_tab based structure array level 1 dcl 2561 relocation 000227 constant char(1) initial array dcl 2535 ref 3392 3398 relocation_base 12 based pointer level 2 dcl 100 ref 318 repeat 1(06) based fixed bin(30,0) level 2 packed packed unsigned unaligned dcl 10-61 ref 3285 3308 3311 resumption_column parameter fixed bin(18,0) dcl 1432 ref 1439 1447 1451 1461 return_string 002724 automatic varying char(12) initial dcl 1493 set ref 1493* 1504* 1507* 1507 1510 right 0(32) based bit(4) array level 2 packed packed unaligned dcl 2561 ref 3394 rtrim builtin function dcl 219 ref 1310 1313 s 003524 automatic pointer dcl 3151 set ref 3256* 3257 save_k 003253 automatic fixed bin(18,0) dcl 2502 set ref 2847* 2985 scale 003262 automatic fixed bin(18,0) dcl 2502 set ref 2927* 2928 2928* 2928 2930* segname 65 based varying char(32) level 2 dcl 9-6 set ref 351 354* set 0(26) based bit(1) level 5 packed packed unaligned dcl 6-530 ref 2224 shared_ptr 000100 automatic pointer dcl 90 set ref 118* 122 123 124 125 126 127 128 128 297 299 301 306 308 308 312 314 318 319 326 369 370 372 376 377 379 380 390 390 395 395 396 434 436 440 444 444 446 450 450 468 479 524 603 603 621 625 732 744 825 846 850 854 868 882 897 919 928 948 957 973 1006 1015 1029 1291 1293 1539 1552 1619 1660 shared_structure based structure level 1 dcl 100 shared_vp parameter pointer dcl 87 ref 23 118 size 0(18) based bit(18) level 2 in structure "name_pair" packed packed unaligned dcl 2526 in procedure "display_text" ref 3090 size 003261 automatic fixed bin(18,0) dcl 2502 in procedure "display_text" set ref 3090* 3097 3097 3098 source based structure level 1 dcl 6-693 source_format 113(03) based structure level 4 packed packed unaligned dcl 100 source_id 2 002232 automatic structure level 2 in structure "stmnt" packed packed unaligned dcl 224 in procedure "listing_generator" set ref 1354* source_id 2 based structure level 2 in structure "statement" packed packed unaligned dcl 6-721 in procedure "ext_listing_generator" ref 695 698 785 787 source_id 3 based structure level 2 in structure "opt_statement" packed packed unaligned dcl 8-176 in procedure "ext_listing_generator" ref 1354 source_info_index parameter fixed bin(18,0) dcl 1490 ref 1487 1495 1498 1502 source_info_line 002464 automatic structure level 1 dcl 264 set ref 1292* 1310 1313 source_info_ptr based pointer level 2 dcl 103 ref 295 351 351 351 354 354 354 source_line_base 16 based pointer level 2 in structure "shared_structure" dcl 100 in procedure "ext_listing_generator" ref 126 source_line_base 000116 automatic pointer dcl 96 in procedure "ext_listing_generator" set ref 126* 319 441 442 448 448 467 469 470 471 1298 1299 1498 1502 source_list based structure array level 1 dcl 7-31 set ref 319 source_node_offset 117 based fixed bin(18,0) array level 4 dcl 100 ref 1293 source_node_ptr 002224 automatic pointer dcl 220 set ref 1293* 1298 1299 1307 1308 source_ptr 002226 automatic pointer dcl 221 set ref 295* 458 458 458 458 468* 485 490 825* 828 829 source_seg based char(1044479) dcl 222 ref 490 829 sp parameter pointer dcl 2466 in procedure "symbol_name" ref 2458 2469 2469 2473 2475 2475 sp parameter pointer dcl 2446 in procedure "length_symbol_name" ref 2443 2452 2452 2454 sp 002230 automatic pointer dcl 223 in procedure "listing_generator" set ref 577* 579 579 613* 615 615 615 618 618 687* 689* 689* 691 693 695 695 698 709 710 718 718* 764* 766* 766* 768 774 780 785 787 800 800 803 803 805 808 808 816 818 819 825* 855* 857 864 864 866 869* 871 878 878 880 883* 885 892 892 892 895 898* 900 908 909 914 1016* 1020 1021 1022 1078* 1083* 1083* 1085* 1087 1091 1108 1115* 1120* 1168* 1173 1179* 1179* 1181* 1192 1205 1243* 1247 1251 1251 1253 1261 1262 1264 1266 1272 1524* 1526 1529 1531 1534 1540 sp parameter pointer dcl 1627 in procedure "compiler_generated" ref 1624 1631 1633 1635 1635 special based structure array level 2 dcl 13-7 sr parameter fixed bin(18,0) dcl 1371 ref 1368 1376 1377 st_ptr 002632 automatic pointer dcl 1346 set ref 1350* 1352 1353 1354 1355 1356 1357 1359 stack 003000 automatic structure array level 1 dcl 1654 in procedure "sort_words" stack 003074 automatic structure array level 1 dcl 1774 in procedure "sort_symbols" stack_indirect 0(19) based bit(1) level 3 packed packed unaligned dcl 6-844 ref 2039 stack_len based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 259 set ref 1006* stack_length_overlay based structure level 1 dcl 259 standard_bits 0(25) based structure level 4 in structure "label" packed packed unaligned dcl 6-530 in procedure "ext_listing_generator" standard_bits 0(25) based structure level 4 in structure "symbol" packed packed unaligned dcl 6-844 in procedure "ext_listing_generator" star_extents 11(09) based bit(1) level 3 packed packed unaligned dcl 6-844 ref 2126 start 4(09) based fixed bin(26,0) level 2 in structure "opt_statement" packed packed unaligned dcl 8-176 in procedure "ext_listing_generator" ref 1357 start 3(09) 002232 automatic fixed bin(26,0) level 2 in structure "stmnt" packed packed unaligned dcl 224 in procedure "listing_generator" set ref 1357* start 3(09) based fixed bin(26,0) level 2 in structure "statement" packed packed unaligned dcl 6-721 in procedure "ext_listing_generator" ref 818 statement 2(22) based bit(5) level 3 in structure "statement" packed packed unaligned dcl 6-721 in procedure "ext_listing_generator" ref 800 800 statement based structure level 1 dcl 6-721 in procedure "ext_listing_generator" static 11(01) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 6-844 in procedure "ext_listing_generator" ref 1982 2024 static 0(19) based bit(1) level 3 in structure "create_entry" packed packed unaligned dcl 10-23 in procedure "ext_listing_generator" ref 3176 static_length 6(18) based bit(18) level 2 packed packed unaligned dcl 11-10 ref 973 973 static_offset 6 based bit(18) level 2 packed packed unaligned dcl 11-10 ref 973 973 stmnt 002232 automatic structure level 1 dcl 224 set ref 1361 stmnt_func 10(33) based bit(1) level 4 packed packed unaligned dcl 6-844 ref 1945 storage_class 11 based structure level 3 in structure "symbol" packed packed unaligned dcl 6-844 in procedure "ext_listing_generator" storage_class 0(33) based structure level 3 in structure "header" packed packed unaligned dcl 6-436 in procedure "ext_listing_generator" storage_info 0(25) based structure level 3 in structure "symbol" packed packed unaligned dcl 6-844 in procedure "ext_listing_generator" storage_info 0(25) based structure level 3 in structure "label" packed packed unaligned dcl 6-530 in procedure "ext_listing_generator" storage_info 13 based structure array level 2 in structure "subprogram" dcl 6-753 in procedure "ext_listing_generator" str_p based pointer array level 2 in structure "symbols" packed packed unaligned dcl 248 in procedure "listing_generator" set ref 1021* 1041* 1049* 1378 1378 1590* 1603* 1614* 1795 1802 1808 1817 1821 1857 str_p 003072 automatic pointer level 2 in structure "t" packed packed unaligned dcl 1771 in procedure "sort_symbols" set ref 1795 1802 1808 1817 1821 1857 string parameter char(12) dcl 1878 in procedure "binoct" set ref 1874 1882* string builtin function dcl 225 in procedure "listing_generator" set ref 297 1292* 1310 1313 1356 1356 2212 2665* string 2 based char level 2 in structure "error_text" dcl 7-24 in procedure "ext_listing_generator" ref 735 738 subp_type 002236 automatic fixed bin(18,0) dcl 226 set ref 397* 403 408 408 410 414 subprogram based structure level 1 dcl 6-753 in procedure "ext_listing_generator" subprogram based fixed bin(18,0) level 2 in structure "listing_info" unsigned dcl 7-12 in procedure "ext_listing_generator" ref 395 subprogram_header 002237 automatic varying char(276) dcl 227 set ref 303* 401* 401 403* 403 408* 408 410* 410 414* 414 418* 418 419* 419 421 423 425* 501 504 subprogram_name 002345 automatic varying char(256) dcl 228 set ref 406* 408 410 410 414 414 subprogram_type 000270 constant char(18) initial array packed unaligned dcl 229 in procedure "listing_generator" ref 403 subprogram_type 0(05) based fixed bin(3,0) level 2 in structure "subprogram" packed packed unaligned dcl 6-753 in procedure "ext_listing_generator" ref 397 subroutine constant fixed bin(9,0) initial dcl 5-68 in procedure "ext_listing_generator" ref 408 subroutine 10(29) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 6-844 in procedure "ext_listing_generator" ref 1941 substr builtin function dcl 235 set ref 401 425* 490 711 719 829 1089 1095* 1103* 1111* 1112* 1132* 1133* 1184 1189* 1199* 1256 1269* 1356* 1356 1444 1456 1484 1633 1939* 1941* 1967 1970 2007* 2008* 2009* 2044* 2054* 2055* 2070* 2071* 2079* 2088* 2096* 2104* 2112* 2120* 2132* 2133* 2141* 2150* 2158* 2164* 2166* 2175* 2183* 2191* 2202 2202 2210* 2233* 2247* 2255* 2278* 2279* 2279 2281* 2281 2283* 2283 2288* 2288 2320 2358* 2390* 2403* 2426* 2437* 2477 2615* 2615 2616* 2639* 2641* 2653* 2653 2654* 2654 2655* 2655 2656* 2656 2658* 2659* 2660* 2665 2669* 2675* 2684* 2687* 2696* 2701* 2706* 2711 2713* 2720 2720* 2722* 2724* 2724 2726* 2732* 2734* 2734 2736* 2740* 2742 2746* 2750* 2750 2751* 2751 2755* 2759 2761* 2775* 2776* 2776 2777* 2777 2778* 2778 2780* 2791* 2796 2810 2822* 2824* 2824 2825* 2825 2826* 2826 2828* 2831* 2833 2835 2835 2835 2842* 2856 2863* 2886* 2899* 2902* 2909* 2910* 2913 2915 2920* 2924 2924 2925* 2927 2940* 2945* 2945 2949 2954* 2957* 2960* 2965* 2967* 2986* 2994* 3005* 3006* 3016* 3025* 3078 3078 3083* 3094* 3097* 3103 3128* 3128 3130* 3132* 3135* 3139 3156* 3156 3158* 3160* 3163* 3172 3200 3210 3248 3264 3298* 3298 3300* 3302* 3305* 3321 3347* 3347 3348* 3349* 3354* 3354 3358* 3362 3363* 3365* 3370 3384* 3392* 3398* 3410* swap_temp 002462 automatic structure level 1 dcl 253 in procedure "listing_generator" set ref 583* 585 1399* 1401 1826* 1828 swap_temp 002776 automatic bit(36) dcl 1651 in procedure "sort_words" set ref 1706* 1708 sym_char defined char(4) packed unaligned dcl 278 set ref 2325* 2327* sym_class defined char(9) packed unaligned dcl 279 set ref 2000* 2002 2007* 2008* 2009* 2013* 2016* 2021* 2027* 2034* sym_info based fixed bin(18,0) array dcl 236 ref 2622 2980 2983 3254 3256 sym_info_base 002446 automatic pointer dcl 237 set ref 319* 2622 2980 2983 3254 3256 sym_loc defined char(8) packed unaligned dcl 277 set ref 2320* sym_name defined char(9) packed unaligned dcl 275 set ref 1918 1920* 2263 2265* sym_type defined char(20) packed unaligned dcl 276 set ref 1926* 1930* 1935* 1937* 1939* 1941* 1945* 1948* 1951* 1954* 2267* symbol 0(18) based fixed bin(18,0) level 2 in structure "subprogram" packed packed unsigned unaligned dcl 6-753 in procedure "ext_listing_generator" ref 406 1091 1127 1192 symbol based fixed bin(18,0) array level 2 in structure "cross_reference" packed packed unsigned unaligned dcl 7-8 in procedure "ext_listing_generator" set ref 606 609* 612 625* 1139 1209 1273 1913 2219 2295 symbol based structure level 1 dcl 6-844 in procedure "ext_listing_generator" symbol_length 7(18) based bit(18) level 2 packed packed unaligned dcl 11-10 ref 973 973 symbol_node constant fixed bin(4,0) initial dcl 5-87 ref 579 615 1036 1526 1582 1910 2989 symbol_offset 7 based bit(18) level 2 packed packed unaligned dcl 11-10 ref 973 973 symbols based structure array level 1 dcl 248 set ref 583 584* 584 585* 1399 1400* 1400 1401* 1570* 1570 1791 1797* 1797 1798* 1799 1804* 1804 1805* 1806 1810* 1810 1811* 1812 1826 1827* 1827 1828* 1856 1858* 1858 1860* sys_info$max_seg_size 000014 external static fixed bin(18,0) dcl 5-61 ref 299 system_debugging 113(22) based structure level 4 packed packed unaligned dcl 100 ref 297 t 003072 automatic structure level 1 dcl 1771 in procedure "sort_symbols" set ref 1791* 1798 1799* 1805 1806* 1811 1812* 1856* 1860 t 002777 automatic bit(36) dcl 1652 in procedure "sort_words" set ref 1671* 1675 1678 1679* 1682 1685 1686* 1688 1691 1692* 1697 1701 1736* 1737 1740 t_string based char packed unaligned dcl 1772 ref 1795 1802 1808 1817 1821 1857 tag 0(30) based bit(6) array level 2 in structure "instruction" packed packed unaligned dcl 2549 in procedure "display_text" ref 2809 2815 2817 2838 2839 2855 tag 0(03) 003403 automatic bit(4) level 2 in structure "mod_factor" packed packed unaligned dcl 2567 in procedure "display_text" set ref 2692 2699 2701 tag 003302 automatic char(3) packed unaligned dcl 2502 in procedure "display_text" set ref 2613* 2796* 2810* 2817* 2818 2855* 2875 2877 2910 text based char level 2 packed packed unaligned dcl 255 set ref 458 458 458 458 485 828 text_length 002450 automatic fixed bin(17,0) dcl 238 in procedure "listing_generator" set ref 452* 458 458 458 458 470* 473 485 821* 823 828 text_length 3(18) based bit(18) level 2 in structure "object_map" packed packed unaligned dcl 11-10 in procedure "ext_listing_generator" ref 315 text_overlay based structure level 1 dcl 255 text_pos 002452 automatic fixed bin(18,0) dcl 242 set ref 315* 973* 2951 three_digits 002451 automatic picture(3) packed unaligned dcl 239 set ref 1304* 1305 title_lines 000257 constant char(12) initial array packed unaligned dcl 240 set ref 359* 359* 359* units 2 based fixed bin(3,0) level 2 packed packed unsigned unaligned dcl 6-436 ref 1262 1264 1266 2279 2281 2283 2285 unnamed_block_data_subprg_name 000312 constant char(29) initial packed unaligned dcl 5-82 ref 414 1635 unspec builtin function dcl 243 set ref 695 698 718 718 785 787 1088 1088 1183 1183 1255 1255 1354* 1354 1671 1675 1677* 1677 1678* 1679 1682 1684* 1684 1685* 1686 1688 1690* 1690 1691* 1692 1697 1701 1706 1707* 1707 1708* 1736 1737 1738* 1738 1740* 1966 1966 2201 2201 2311 2311 2317 2317 2475 2475 2614 2614 3127 3127 3155 3155 3234 3234 3297 3297 3346 3346 3363 3363 unused 0(28) based bit(1) array level 2 packed packed unaligned dcl 2549 ref 2625 2849 upper 0(10) based bit(1) array level 3 packed packed unaligned dcl 6-383 ref 2161 upper_bound 6 based fixed bin(24,0) array level 3 dcl 6-383 set ref 2161* usage 0(30) based structure level 3 packed packed unaligned dcl 6-530 ref 2212 user_options 113 based structure level 3 dcl 100 v_bound 0(09) based structure array level 2 packed packed unaligned dcl 6-383 value parameter fixed bin(18,0) dcl 1479 in procedure "print_number" ref 1475 1482 value 4(18) based char level 2 in structure "char_constant" packed packed unaligned dcl 6-316 in procedure "ext_listing_generator" ref 892 892 909 variable parameter bit(1) dcl 2339 ref 2332 2348 verify builtin function dcl 244 ref 1484 word_units constant fixed bin(3,0) initial dcl 5-136 ref 2279 work_base 002454 automatic pointer dcl 245 set ref 301* 577 583 584 584 585 1019 1020 1021 1039 1040 1041 1047 1048 1049 1078 1093 1115 1115 1120 1120 1122 1122 1124 1125 1152 1166 1168 1243 1378 1378 1378 1378 1397 1397 1399 1400 1400 1401 1570 1570 1588 1589 1590 1601 1602 1603 1612 1613 1614 1791 1795 1795 1797 1797 1798 1799 1802 1802 1804 1804 1805 1806 1808 1808 1810 1810 1811 1812 1817 1817 1821 1821 1826 1827 1827 1828 1856 1857 1857 1858 1858 1860 1901 2062 work_string 002456 automatic varying char(12) dcl 246 set ref 711* 713* 713 714* 714 716 x 002746 automatic fixed bin(18,0) dcl 1547 set ref 1579* 1580 1588 1601 1612 1619* xp 002750 automatic pointer dcl 1548 set ref 1580* 1582 1584* 1589* 1590 1592 1595 1597 1603 1605 1608 1613 1614 1616 z 003172 automatic fixed bin(18,0) dcl 1898 set ref 1913* 1916* 2195* 2219* 2222* 2228 2228 2230* 2235* 2235 2259* 2295* 2298* 2300* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. EOS_token internal static bit(9) initial dcl 5-156 add_op internal static fixed bin(18,0) initial dcl 5-197 allocate_symbol_name automatic fixed bin(17,0) dcl 6-525 and internal static bit(9) initial dcl 5-156 and_op internal static fixed bin(18,0) initial dcl 5-197 apostrophe internal static bit(9) initial dcl 5-156 arg_desc based structure level 1 dcl 6-130 arg_desc_node internal static fixed bin(4,0) initial dcl 5-87 array_ref_type internal static fixed bin(4,0) initial dcl 5-120 assign internal static bit(9) initial dcl 5-156 assign_label_op internal static fixed bin(18,0) initial dcl 5-197 assign_op internal static fixed bin(18,0) initial dcl 5-197 asterisk internal static bit(9) initial dcl 5-156 backspace_op internal static fixed bin(18,0) initial dcl 5-197 bias internal static fixed bin(19,0) initial dcl 5-56 bif internal static fixed bin(4,0) initial dcl 5-120 bits_per_char internal static fixed bin(9,0) initial dcl 5-68 block_data_op internal static fixed bin(18,0) initial dcl 5-197 block_if_op internal static fixed bin(18,0) initial dcl 5-197 builtin_op internal static fixed bin(18,0) initial dcl 5-197 call_op internal static fixed bin(18,0) initial dcl 5-197 cat_op internal static fixed bin(18,0) initial dcl 5-197 chain based structure level 1 dcl 8-27 chain_op internal static fixed bin(18,0) initial dcl 5-197 char_constant_length automatic fixed bin(18,0) unsigned dcl 6-378 char_constant_node internal static fixed bin(4,0) initial dcl 5-87 char_mode internal static fixed bin(4,0) initial dcl 5-106 char_string internal static bit(9) initial dcl 5-156 chars_per_dw internal static fixed bin(9,0) initial dcl 5-68 close_op internal static fixed bin(18,0) initial dcl 5-197 closefile_op internal static fixed bin(18,0) initial dcl 5-197 cmpx_mode internal static fixed bin(4,0) initial dcl 5-106 colon internal static bit(9) initial dcl 5-156 comma internal static bit(9) initial dcl 5-156 compiler_name internal static char(8) initial packed unaligned dcl 3-39 compiler_source_info_version_2 internal static fixed bin(17,0) initial dcl 9-16 complex_const internal static bit(9) initial dcl 5-156 concat internal static bit(9) initial dcl 5-156 constant_node internal static fixed bin(4,0) initial dcl 5-87 constant_type internal static fixed bin(4,0) initial dcl 5-120 convert_to_cmpx_op internal static fixed bin(18,0) initial dcl 5-197 convert_to_dp_op internal static fixed bin(18,0) initial dcl 5-197 convert_to_int_op internal static fixed bin(18,0) initial dcl 5-197 convert_to_real_op internal static fixed bin(18,0) initial dcl 5-197 count_type internal static fixed bin(4,0) initial dcl 5-120 data_type_size internal static fixed bin(17,0) initial array dcl 5-115 dec_int internal static bit(9) initial dcl 5-156 decode_string_op internal static fixed bin(18,0) initial dcl 5-197 dfast_mask internal static bit(72) initial packed unaligned dcl 4-162 dimension_node internal static fixed bin(4,0) initial dcl 5-87 div_op internal static fixed bin(18,0) initial dcl 5-197 do_op internal static fixed bin(18,0) initial dcl 5-197 double_const internal static bit(9) initial dcl 5-156 dp_mode internal static fixed bin(4,0) initial dcl 5-106 dummy internal static fixed bin(4,0) initial dcl 5-120 edge based structure level 1 dcl 8-33 else_if_op internal static fixed bin(18,0) initial dcl 5-197 else_op internal static fixed bin(18,0) initial dcl 5-197 encode_string_op internal static fixed bin(18,0) initial dcl 5-197 end_label_op internal static fixed bin(18,0) initial dcl 5-197 endfile_op internal static fixed bin(18,0) initial dcl 5-197 endunit_op internal static fixed bin(18,0) initial dcl 5-197 entry_type internal static fixed bin(4,0) initial dcl 5-120 eol_op internal static fixed bin(18,0) initial dcl 5-197 eq internal static bit(9) initial dcl 5-156 equal_op internal static fixed bin(18,0) initial dcl 5-197 equiv_op internal static fixed bin(18,0) initial dcl 5-197 eqv internal static bit(9) initial dcl 5-156 error internal static fixed bin(4,0) initial dcl 5-120 error_label_op internal static fixed bin(18,0) initial dcl 5-197 error_text_length automatic fixed bin(17,0) dcl 7-29 exit_op internal static fixed bin(18,0) initial dcl 5-197 expon internal static bit(9) initial dcl 5-156 exponentiation_op internal static fixed bin(18,0) initial dcl 5-197 external internal static fixed bin(4,0) initial dcl 5-120 false internal static bit(9) initial dcl 5-156 fast_mask internal static bit(72) initial packed unaligned dcl 4-168 fill_node internal static fixed bin(4,0) initial dcl 5-87 first_auto_loc internal static fixed bin(9,0) initial dcl 5-68 flow_unit based structure level 1 dcl 8-46 form_VLA_packed_ptr_op internal static fixed bin(18,0) initial dcl 5-197 format_op internal static fixed bin(18,0) initial dcl 5-197 func_op internal static fixed bin(18,0) initial dcl 5-197 func_ref_op internal static fixed bin(18,0) initial dcl 5-197 gap_value internal static fixed bin(17,0) initial dcl 5-57 ge internal static bit(9) initial dcl 5-156 greater_op internal static fixed bin(18,0) initial dcl 5-197 greater_or_equal_op internal static fixed bin(18,0) initial dcl 5-197 gt internal static bit(9) initial dcl 5-156 ident internal static bit(9) initial dcl 5-156 increment_polish_op internal static fixed bin(18,0) initial dcl 5-197 input_to based structure level 1 dcl 8-87 inquire_op internal static fixed bin(18,0) initial dcl 5-197 int_mode internal static fixed bin(4,0) initial dcl 5-106 iostat_op internal static fixed bin(18,0) initial dcl 5-197 is_arith_constant internal static bit(9) initial dcl 5-147 is_constant internal static bit(9) initial dcl 5-147 is_operand internal static bit(9) initial dcl 5-147 is_operator internal static bit(9) initial dcl 5-147 item_op internal static fixed bin(18,0) initial dcl 5-197 jump_arithmetic_op internal static fixed bin(18,0) initial dcl 5-197 jump_assigned_op internal static fixed bin(18,0) initial dcl 5-197 jump_computed_op internal static fixed bin(18,0) initial dcl 5-197 jump_false_op internal static fixed bin(18,0) initial dcl 5-197 jump_logical_op internal static fixed bin(18,0) initial dcl 5-197 jump_op internal static fixed bin(18,0) initial dcl 5-197 jump_true_op internal static fixed bin(18,0) initial dcl 5-197 label_const internal static bit(9) initial dcl 5-156 label_op internal static fixed bin(18,0) initial dcl 5-197 last_assigned_mode internal static fixed bin(4,0) initial dcl 5-106 last_assigned_op internal static fixed bin(18,0) initial dcl 5-197 last_block_constant defined fixed bin(18,0) dcl 1-154 last_char_constant defined fixed bin(18,0) dcl 1-150 last_dw_constant defined fixed bin(18,0) dcl 1-146 last_word_constant defined fixed bin(18,0) dcl 1-142 lchain based structure level 1 dcl 8-94 le internal static bit(9) initial dcl 5-156 left_parn internal static bit(9) initial dcl 5-156 left_shift_op internal static fixed bin(18,0) initial dcl 5-197 less_op internal static fixed bin(18,0) initial dcl 5-197 less_or_equal_op internal static fixed bin(18,0) initial dcl 5-197 lhs_fld_op internal static fixed bin(18,0) initial dcl 5-197 library based structure level 1 dcl 6-605 library_node internal static fixed bin(4,0) initial dcl 5-87 load_preg_op internal static fixed bin(18,0) initial dcl 5-197 load_xreg_op internal static fixed bin(18,0) initial dcl 5-197 logical_const internal static bit(9) initial dcl 5-156 logical_mode internal static fixed bin(4,0) initial dcl 5-106 loop based structure level 1 dcl 8-100 loop_end_op internal static fixed bin(18,0) initial dcl 5-197 lt internal static bit(9) initial dcl 5-156 machine_state based structure level 1 dcl 6-620 machine_state_node internal static fixed bin(4,0) initial dcl 5-87 main_op internal static fixed bin(18,0) initial dcl 5-197 margin_op internal static fixed bin(18,0) initial dcl 5-197 max_char_length internal static fixed bin(10,0) initial dcl 5-77 max_error_level internal static fixed bin(17,0) initial dcl 5-64 max_fixed_bin_18 internal static fixed bin(18,0) initial dcl 5-58 max_fixed_bin_24 internal static fixed bin(24,0) initial dcl 5-59 max_num_of_rands internal static fixed bin(17,0) initial dcl 5-60 max_prec_single internal static fixed bin(9,0) initial dcl 5-68 minus internal static bit(9) initial dcl 5-156 mult_op internal static fixed bin(18,0) initial dcl 5-197 n_operands automatic fixed bin(17,0) dcl 8-171 namelist_op internal static fixed bin(18,0) initial dcl 5-197 ne internal static bit(9) initial dcl 5-156 neg_storage_add_op internal static fixed bin(18,0) initial dcl 5-197 negate_op internal static fixed bin(18,0) initial dcl 5-197 neqv internal static bit(9) initial dcl 5-156 no_op internal static fixed bin(18,0) initial dcl 5-197 no_token internal static bit(9) initial dcl 5-156 non_executable internal static fixed bin(18,0) initial dcl 5-197 not internal static bit(9) initial dcl 5-156 not_equal_op internal static fixed bin(18,0) initial dcl 5-197 not_equiv_op internal static fixed bin(18,0) initial dcl 5-197 not_op internal static fixed bin(18,0) initial dcl 5-197 num_args automatic fixed bin(17,0) dcl 6-150 num_dims automatic fixed bin(3,0) dcl 6-431 num_of_block_constants defined fixed bin(17,0) dcl 1-152 num_of_char_constants defined fixed bin(17,0) dcl 1-148 num_of_dw_constants defined fixed bin(17,0) dcl 1-144 num_of_word_constants defined fixed bin(17,0) dcl 1-140 object_map_version_2 internal static fixed bin(17,0) initial dcl 11-40 octal_const internal static bit(9) initial dcl 5-156 op_mnemonic_ptr automatic pointer dcl 12-8 open_op internal static fixed bin(18,0) initial dcl 5-197 openfile_op internal static fixed bin(18,0) initial dcl 5-197 operator based structure level 1 dcl 8-144 opt_subscript_op internal static fixed bin(18,0) initial dcl 5-197 or internal static bit(9) initial dcl 5-156 or_op internal static fixed bin(18,0) initial dcl 5-197 pause_op internal static fixed bin(18,0) initial dcl 5-197 plus internal static bit(9) initial dcl 5-156 pointer based structure level 1 dcl 6-672 pointer_node internal static fixed bin(4,0) initial dcl 5-87 primary based structure level 1 dcl 8-234 proc_frame_node internal static fixed bin(4,0) initial dcl 5-87 process_param_list_op internal static fixed bin(18,0) initial dcl 5-197 range based structure level 1 dcl 8-243 read_array_op internal static fixed bin(18,0) initial dcl 5-197 read_internal_file_op internal static fixed bin(18,0) initial dcl 5-197 read_namelist_op internal static fixed bin(18,0) initial dcl 5-197 read_op internal static fixed bin(18,0) initial dcl 5-197 read_scalar_op internal static fixed bin(18,0) initial dcl 5-197 read_vector_op internal static fixed bin(18,0) initial dcl 5-197 real_const internal static bit(9) initial dcl 5-156 real_mode internal static fixed bin(4,0) initial dcl 5-106 record_number_op internal static fixed bin(18,0) initial dcl 5-197 rel_constant internal static fixed bin(4,0) initial dcl 5-120 return_op internal static fixed bin(18,0) initial dcl 5-197 rewind_op internal static fixed bin(18,0) initial dcl 5-197 right_parn internal static bit(9) initial dcl 5-156 right_shift_op internal static fixed bin(18,0) initial dcl 5-197 sf_def_op internal static fixed bin(18,0) initial dcl 5-197 sf_op internal static fixed bin(18,0) initial dcl 5-197 slash internal static bit(9) initial dcl 5-156 source_node internal static fixed bin(4,0) initial dcl 5-87 stat_op internal static fixed bin(18,0) initial dcl 5-197 statement_function internal static fixed bin(4,0) initial dcl 5-120 stop_op internal static fixed bin(18,0) initial dcl 5-197 storage_add_one_op internal static fixed bin(18,0) initial dcl 5-197 storage_add_op internal static fixed bin(18,0) initial dcl 5-197 storage_sub_op internal static fixed bin(18,0) initial dcl 5-197 store_zero_op internal static fixed bin(18,0) initial dcl 5-197 string_length_op internal static fixed bin(18,0) initial dcl 5-197 string_op internal static fixed bin(18,0) initial dcl 5-197 sub_index_op internal static fixed bin(18,0) initial dcl 5-197 sub_op internal static fixed bin(18,0) initial dcl 5-197 subprogram_node internal static fixed bin(4,0) initial dcl 5-87 subr_op internal static fixed bin(18,0) initial dcl 5-197 subscript_op internal static fixed bin(18,0) initial dcl 5-197 substr_left_parn internal static bit(9) initial dcl 5-156 substr_op internal static fixed bin(18,0) initial dcl 5-197 temp_type internal static fixed bin(4,0) initial dcl 5-120 temporary based structure level 1 dcl 6-1005 temporary_node internal static fixed bin(4,0) initial dcl 5-87 terminate_op internal static fixed bin(18,0) initial dcl 5-197 true internal static bit(9) initial dcl 5-156 typeless_mode internal static fixed bin(4,0) initial dcl 5-106 units_per_word internal static fixed bin(6,0) initial array dcl 5-142 unrecoverable_error internal static fixed bin(17,0) initial dcl 5-64 variable_type internal static fixed bin(4,0) initial dcl 5-120 write_array_op internal static fixed bin(18,0) initial dcl 5-197 write_internal_file_op internal static fixed bin(18,0) initial dcl 5-197 write_namelist_op internal static fixed bin(18,0) initial dcl 5-197 write_op internal static fixed bin(18,0) initial dcl 5-197 write_scalar_op internal static fixed bin(18,0) initial dcl 5-197 write_vector_op internal static fixed bin(18,0) initial dcl 5-197 xmit_array_op internal static fixed bin(18,0) initial dcl 5-197 xmit_scalar_op internal static fixed bin(18,0) initial dcl 5-197 xmit_vector_op internal static fixed bin(18,0) initial dcl 5-197 NAMES DECLARED BY EXPLICIT CONTEXT. L1 011345 constant label dcl 1789 in procedure "sort_symbols" ref 1847 1851 L1 011104 constant label dcl 1669 in procedure "sort_words" ref 1727 1731 L2 011154 constant label dcl 1697 in procedure "sort_words" ref 1709 L2 011465 constant label dcl 1817 in procedure "sort_symbols" ref 1829 L4 011250 constant label dcl 1727 in procedure "sort_words" ref 1666 1750 L4 011606 constant label dcl 1847 in procedure "sort_symbols" ref 1786 1870 bin2dec 021206 constant entry internal dcl 3403 ref 2888 2901 2924 2930 2932 binoct 011707 constant entry internal dcl 1874 ref 718 1088 1183 1255 1966 2201 2311 2317 2475 2614 2620 2809 2944 2959 2966 3127 3134 3155 3162 3234 3297 3304 3346 3351 chk_base 016376 constant label dcl 2974 ref 2935 chk_ext 015767 constant label dcl 2842 ref 2799 chk_ext1 015767 constant label dcl 2842 close_file 007563 constant entry internal dcl 1327 ref 333 1318 1324 compiler_generated 011026 constant entry internal dcl 1624 ref 1584 2989 display_text 014732 constant entry internal dcl 2496 ref 839 display_text$display_abs 017037 constant entry internal dcl 3122 ref 864 878 912 display_text$display_ascii 020740 constant entry internal dcl 3331 ref 892 display_text$display_create 017143 constant entry internal dcl 3145 ref 932 display_text$display_init 020371 constant entry internal dcl 3272 ref 934 960 equal 016326 constant label dcl 2957 ref 3085 ext_listing_generator 001417 constant entry external dcl 23 get_stmnt_ptr 007645 constant entry internal dcl 1342 ref 434 689 758 766 init_eis 021225 constant entry internal dcl 3416 ref 2651 3043 insert_relocation 021142 constant entry internal dcl 3377 ref 2618 3131 3159 3301 length_symbol_name 014614 constant entry internal dcl 2443 ref 1040 1083 1098 1102 1128 1179 1193 1198 1589 1918 listing_generator 001465 constant entry internal dcl 134 ref 131 not_ins 015040 constant label dcl 2639 ref 2622 2625 2818 print$buffer 010115 constant entry internal dcl 1428 ref 421 456 473 492 501 638 655 672 705 735 746 790 823 861 875 889 904 921 937 950 966 1069 1157 1218 1227 1234 1281 1310 1417 3100 3137 3262 3292 3319 3368 print$line 010120 constant entry internal dcl 1439 ref 1109 1130 1147 1213 1276 2042 2052 2068 2077 2086 2094 2102 2110 2118 2130 2139 2156 2173 2181 2189 2231 2245 2253 2275 2303 2356 2388 2401 2424 2435 print$long_name 010160 constant entry internal dcl 1451 ref 1083 1098 1179 1193 1251 1918 1967 1970 1979 1982 1986 1988 2002 2263 2385 print_and_abort 007535 constant label dcl 1322 ref 339 343 459 1469 print_crefs 014475 constant entry internal dcl 2410 ref 1140 1210 1274 2195 2259 2300 print_dim_bound 014321 constant entry internal dcl 2332 ref 2147 2161 print_header 010046 constant entry internal dcl 1410 ref 859 873 887 902 print_line_number 010326 constant entry internal dcl 1487 ref 1108 2064 2230 2434 print_number 010264 constant entry internal dcl 1475 ref 800 803 808 1261 1504 1507 2048 2050 2128 2269 2327 2400 3003 3311 3316 3408 print_offset 014205 constant entry internal dcl 2308 ref 1961 1975 1995 2020 2026 2032 print_symbols 011746 constant entry internal dcl 1885 ref 631 647 664 1557 1566 printer 010240 constant entry internal dcl 1465 ref 1435 1442 1454 prt 016762 constant label dcl 3100 ref 2643 2767 2949 2951 2971 2974 2980 2996 3008 3018 3027 3031 3055 3078 3080 set 015667 constant label dcl 2822 set ref 2802 2804 2812 simple_sort 007762 constant entry internal dcl 1389 ref 1380 1385 sk 016061 constant label dcl 2882 ref 2858 2875 2877 sort_offset 007706 constant entry internal dcl 1368 ref 1058 1061 1065 sort_symbols 011331 constant entry internal dcl 1754 ref 630 646 663 1057 1060 1064 1556 1564 sort_words 011070 constant entry internal dcl 1641 ref 385 store_item 010540 constant entry internal dcl 1543 ref 525 550 555 560 565 596 1526 1531 1535 str_info 016736 constant label dcl 3090 ref 3063 3073 symbol_name 014636 constant entry internal dcl 2458 ref 1083 1085 1098 1103 1115 1115 1120 1120 1179 1181 1193 1199 1918 1920 walk_bucket 010435 constant entry internal dcl 1513 ref 535 538 544 NAMES DECLARED BY CONTEXT OR IMPLICATION. currentsize builtin function ref 931 934 934 3287 rel builtin function ref 2475 2475 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 22502 22550 22230 22512 Length 23274 22230 46 510 251 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ext_listing_generator 84 external procedure is an external procedure. listing_generator 2424 internal procedure enables or reverts conditions. on unit on line 333 64 on unit close_file 76 internal procedure is called by several nonquick procedures. get_stmnt_ptr internal procedure shares stack frame of internal procedure listing_generator. sort_offset internal procedure shares stack frame of internal procedure listing_generator. simple_sort internal procedure shares stack frame of internal procedure listing_generator. print_header internal procedure shares stack frame of internal procedure listing_generator. print$buffer internal procedure shares stack frame of internal procedure listing_generator. printer internal procedure shares stack frame of internal procedure listing_generator. print_number internal procedure shares stack frame of internal procedure listing_generator. print_line_number internal procedure shares stack frame of internal procedure listing_generator. walk_bucket internal procedure shares stack frame of internal procedure listing_generator. store_item internal procedure shares stack frame of internal procedure listing_generator. compiler_generated internal procedure shares stack frame of internal procedure listing_generator. sort_words internal procedure shares stack frame of internal procedure listing_generator. sort_symbols internal procedure shares stack frame of internal procedure listing_generator. binoct 84 internal procedure is called by several nonquick procedures. print_symbols internal procedure shares stack frame of internal procedure listing_generator. print_offset internal procedure shares stack frame of internal procedure listing_generator. print_dim_bound internal procedure shares stack frame of internal procedure listing_generator. print_crefs internal procedure shares stack frame of internal procedure listing_generator. length_symbol_name internal procedure shares stack frame of internal procedure listing_generator. symbol_name 74 internal procedure uses returns(char(*)) or returns(bit(*)), and is called during a stack extension. display_text internal procedure shares stack frame of internal procedure listing_generator. insert_relocation internal procedure shares stack frame of internal procedure listing_generator. bin2dec internal procedure shares stack frame of internal procedure listing_generator. init_eis internal procedure shares stack frame of internal procedure listing_generator. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ext_listing_generator 000100 shared_ptr ext_listing_generator 000102 parse_ptr ext_listing_generator 000104 cg_ptr ext_listing_generator 000106 polish_base ext_listing_generator 000110 operand_base ext_listing_generator 000112 object_base ext_listing_generator 000114 cref_base ext_listing_generator 000116 source_line_base ext_listing_generator 000120 listing_base ext_listing_generator 000122 quad_base ext_listing_generator listing_generator 000100 blk_sym listing_generator 000101 cg_called listing_generator 000110 code listing_generator 000112 cp listing_generator 000114 cur_subp listing_generator 000116 current listing_generator 000117 date_line listing_generator 000125 debuggin_ listing_generator 000126 file_no listing_generator 000127 file_no_picture listing_generator 000130 first listing_generator 000131 first_char listing_generator 000132 first_file listing_generator 000133 first_line listing_generator 000134 first_loc listing_generator 000136 first_stmnt listing_generator 000140 in_list listing_generator 000142 iocb listing_generator 000144 last listing_generator 000145 last_char listing_generator 000146 last_line listing_generator 000147 last_loc listing_generator 000150 last_symbol listing_generator 000151 line_len listing_generator 000152 line_no listing_generator 000154 line_no_picture listing_generator 000156 line_ptr listing_generator 000160 loc listing_generator 000161 looping listing_generator 000162 m listing_generator 000163 map_file_no_picture listing_generator 000164 max_number listing_generator 000165 more_than_one listing_generator 000166 moved_text listing_generator 000167 n listing_generator 000170 n_com listing_generator 000171 n_ep listing_generator 000172 n_hdr listing_generator 000173 n_ref listing_generator 000174 next_entry_name listing_generator 000175 numb listing_generator 000201 number_of_operands listing_generator 000202 number_referenced listing_generator 000204 object_map_ptr listing_generator 000206 octal_string listing_generator 000211 old_id listing_generator 000212 old_moved listing_generator 000213 optimizing listing_generator 000214 output listing_generator 002216 output_ptr listing_generator 002220 p listing_generator 002222 rel_base listing_generator 002224 source_node_ptr listing_generator 002226 source_ptr listing_generator 002230 sp listing_generator 002232 stmnt listing_generator 002236 subp_type listing_generator 002237 subprogram_header listing_generator 002345 subprogram_name listing_generator 002446 sym_info_base listing_generator 002450 text_length listing_generator 002451 three_digits listing_generator 002452 text_pos listing_generator 002454 work_base listing_generator 002456 work_string listing_generator 002462 swap_temp listing_generator 002464 source_info_line listing_generator 002547 full_line listing_generator 002632 st_ptr get_stmnt_ptr 002642 i sort_offset 002643 fir sort_offset 002654 j simple_sort 002655 k simple_sort 002710 number print_number 002722 cref_file print_line_number 002723 cref_line print_line_number 002724 return_string print_line_number 002736 i walk_bucket 002737 n walk_bucket 002746 x store_item 002750 xp store_item 002770 depth sort_words 002771 first sort_words 002772 high sort_words 002773 last sort_words 002774 low sort_words 002775 median sort_words 002776 swap_temp sort_words 002777 t sort_words 003000 stack sort_words 003062 depth sort_symbols 003063 first sort_symbols 003064 high sort_symbols 003065 initial sort_symbols 003066 last sort_symbols 003067 low sort_symbols 003070 median sort_symbols 003072 t sort_symbols 003074 stack sort_symbols 003156 a print_symbols 003160 dp print_symbols 003162 hdr print_symbols 003165 i print_symbols 003166 iptr print_symbols 003170 item print_symbols 003171 n print_symbols 003172 z print_symbols 003214 bp print_dim_bound 003216 name_length print_dim_bound 003220 name_ptr print_dim_bound 003230 cref_index print_crefs 003246 i display_text 003247 j display_text 003250 k display_text 003251 m display_text 003252 mop display_text 003253 save_k display_text 003254 irand display_text 003255 nrands display_text 003256 ndesc display_text 003257 fract_offset display_text 003260 offset display_text 003261 size display_text 003262 scale display_text 003263 ignore_ic_mod display_text 003264 double display_text 003265 eis display_text 003266 eis_desc display_text 003267 need_comma display_text 003270 ext_base display_text 003271 itag display_text 003272 has_ic display_text 003273 decimal display_text 003274 pt display_text 003276 c display_text 003300 op_code display_text 003302 tag display_text 003303 line display_text 003403 mod_factor display_text 003404 ebase display_text 003407 len_reg display_text 003412 ic display_text 003415 desc_word display_text 003420 op_names_pt display_text 003422 extra_line display_text 003523 cur_offset display_text 003524 s display_text 003526 init_p display_text 003530 first_init_word display_text 003531 last_init_word display_text 003532 nc display_text 003533 char_off display_text 003564 m bin2dec THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_s r_e_as r_ne_as r_le_a alloc_char_temp cat_realloc_chars call_ent_var_desc call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return_mac enable_op shorten_stack ext_entry int_entry int_entry_desc return_chars_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_$suppress_name date_time_ ioa_$ioa_switch ioa_$rsnnl iox_$attach_ioname iox_$close iox_$detach_iocb iox_$open iox_$put_chars THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. fort_version_info$version_name fort_version_info$version_number op_mnemonic_$op_mnemonic_ pl1_operator_names_$pl1_operator_names_ pl1_operators_$operator_table sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 23 001413 118 001424 119 001430 120 001433 122 001436 123 001440 124 001442 125 001444 126 001446 127 001450 128 001452 131 001457 132 001463 134 001464 295 001472 297 001477 299 001505 301 001511 303 001514 304 001520 305 001521 306 001523 307 001525 308 001526 312 001532 314 001534 315 001543 318 001546 319 001550 322 001555 323 001557 324 001560 326 001561 327 001565 329 001566 330 001570 331 001571 333 001575 338 001617 339 001677 342 001702 343 001723 348 001725 351 001744 354 002005 359 002040 369 002132 370 002140 372 002143 376 002146 377 002153 379 002155 380 002156 385 002157 390 002160 395 002200 396 002202 397 002204 401 002210 403 002215 406 002232 408 002250 410 002272 413 002313 414 002314 418 002335 419 002344 421 002353 423 002360 425 002372 430 002374 432 002404 434 002411 436 002422 437 002434 440 002435 441 002440 442 002447 444 002452 446 002457 448 002464 450 002476 452 002503 456 002506 458 002511 459 002534 461 002536 462 002537 466 002540 467 002547 468 002556 469 002562 470 002566 471 002571 473 002574 476 002602 477 002611 479 002623 481 002630 482 002640 485 002652 486 002666 490 002670 492 002676 494 002702 501 002711 504 002717 508 002731 518 002743 519 002744 520 002745 524 002746 525 002757 526 002761 528 002767 532 002770 534 002772 535 002777 536 003001 537 003003 538 003011 539 003013 541 003015 544 003017 545 003023 548 003024 550 003032 551 003034 553 003043 555 003052 556 003054 558 003063 560 003072 561 003074 563 003103 565 003112 566 003114 568 003123 571 003125 575 003127 577 003135 579 003143 581 003153 583 003156 584 003162 585 003171 588 003174 590 003176 594 003201 596 003210 597 003212 601 003221 603 003222 606 003235 609 003243 611 003253 612 003255 613 003260 615 003262 618 003274 621 003302 623 003321 625 003323 630 003336 631 003342 636 003352 638 003355 641 003362 646 003374 647 003401 653 003413 655 003416 658 003423 663 003435 664 003442 670 003453 672 003455 675 003462 684 003474 685 003476 686 003477 687 003501 689 003506 691 003510 693 003517 695 003522 698 003533 700 003534 703 003537 704 003546 705 003547 709 003554 710 003571 711 003605 713 003630 714 003642 716 003655 718 003667 719 003702 721 003714 723 003716 725 003721 732 003732 733 003742 735 003745 738 003752 739 003765 744 003770 746 003777 749 004004 758 004016 759 004020 761 004024 762 004026 763 004027 764 004031 766 004036 768 004040 770 004045 771 004046 772 004050 774 004051 775 004054 777 004063 780 004067 785 004076 787 004106 788 004110 790 004112 793 004117 797 004131 799 004146 800 004160 802 004201 803 004213 805 004234 807 004240 808 004253 812 004271 816 004300 818 004304 819 004311 821 004316 823 004320 825 004325 828 004335 829 004350 831 004364 837 004373 839 004376 840 004400 843 004403 846 004406 850 004416 852 004423 854 004424 855 004430 857 004433 859 004436 861 004437 863 004443 864 004452 866 004462 868 004467 869 004476 871 004501 873 004504 875 004505 877 004511 878 004520 880 004527 882 004534 883 004542 885 004545 887 004550 889 004551 891 004555 892 004564 895 004575 897 004602 898 004610 900 004613 902 004616 904 004617 906 004623 908 004632 909 004636 912 004644 914 004646 918 004653 919 004655 921 004662 923 004667 928 004701 929 004710 930 004715 931 004716 932 004733 934 004735 937 004760 939 004765 941 004774 943 005002 948 005004 950 005011 952 005016 957 005030 959 005034 960 005037 966 005041 971 005044 973 005046 1001 005176 1006 005177 1011 005232 1015 005233 1016 005242 1018 005245 1019 005246 1020 005256 1021 005263 1022 005265 1026 005271 1027 005273 1029 005275 1032 005304 1033 005310 1036 005322 1038 005331 1039 005332 1040 005342 1041 005360 1042 005365 1044 005371 1046 005372 1047 005373 1048 005403 1049 005410 1050 005412 1051 005413 1052 005422 1053 005430 1057 005437 1058 005443 1060 005447 1061 005454 1063 005461 1064 005465 1065 005467 1069 005471 1071 005476 1075 005510 1077 005512 1078 005521 1080 005527 1081 005532 1083 005534 1085 005575 1087 005622 1088 005630 1089 005642 1091 005647 1093 005656 1095 005667 1096 005673 1098 005675 1101 005750 1102 005751 1103 005757 1104 006011 1108 006014 1109 006022 1111 006031 1112 006035 1113 006042 1115 006046 1117 006133 1118 006135 1120 006136 1122 006223 1124 006250 1125 006252 1127 006256 1128 006265 1130 006273 1132 006302 1133 006306 1134 006324 1136 006330 1137 006335 1139 006336 1140 006343 1144 006346 1145 006347 1147 006350 1148 006352 1152 006354 1153 006372 1155 006374 1157 006377 1159 006404 1163 006416 1165 006420 1166 006427 1168 006435 1170 006441 1171 006444 1173 006446 1175 006452 1177 006454 1179 006455 1181 006516 1183 006543 1184 006556 1187 006563 1189 006565 1190 006571 1192 006573 1193 006602 1197 006654 1198 006655 1199 006663 1201 006715 1205 006720 1207 006724 1209 006725 1210 006732 1213 006740 1215 006742 1216 006744 1218 006745 1220 006752 1225 006764 1227 006767 1229 006774 1232 007006 1234 007007 1236 007014 1240 007026 1242 007030 1243 007041 1245 007047 1246 007052 1247 007054 1249 007056 1251 007060 1253 007101 1255 007104 1256 007116 1258 007123 1261 007125 1262 007132 1264 007150 1266 007162 1269 007173 1270 007202 1272 007204 1273 007207 1274 007214 1276 007225 1277 007227 1281 007231 1284 007236 1285 007245 1291 007257 1292 007267 1293 007272 1295 007300 1298 007302 1299 007325 1300 007341 1302 007410 1304 007411 1305 007421 1307 007425 1308 007450 1310 007455 1313 007473 1314 007517 1316 007526 1318 007530 1319 007534 1322 007535 1324 007555 1325 007561 1327 007562 1330 007570 1333 007610 1336 007626 1338 007644 1342 007645 1348 007647 1350 007651 1352 007654 1353 007656 1354 007661 1355 007663 1356 007665 1357 007671 1359 007673 1361 007677 1363 007702 1368 007706 1376 007710 1377 007712 1378 007723 1380 007741 1381 007746 1383 007750 1385 007752 1386 007761 1389 007762 1395 007764 1396 007775 1397 010007 1399 010026 1400 010031 1401 010036 1403 010041 1404 010043 1405 010045 1410 010046 1413 010047 1415 010052 1417 010054 1420 010061 1422 010073 1424 010102 1426 010114 1428 010115 1435 010116 1436 010117 1439 010120 1442 010122 1444 010127 1445 010141 1446 010150 1447 010153 1448 010157 1451 010160 1454 010162 1456 010172 1458 010207 1459 010222 1460 010231 1461 010234 1462 010237 1465 010240 1468 010241 1469 010260 1471 010262 1472 010263 1475 010264 1482 010266 1484 010276 1487 010326 1493 010330 1495 010331 1498 010344 1500 010356 1502 010357 1504 010363 1507 010410 1510 010425 1513 010435 1520 010437 1522 010441 1524 010450 1526 010453 1529 010463 1531 010465 1534 010472 1535 010500 1536 010502 1537 010511 1539 010512 1540 010532 1541 010537 1543 010540 1550 010542 1552 010545 1554 010561 1556 010563 1557 010567 1559 010577 1560 010600 1561 010601 1564 010602 1566 010606 1568 010616 1570 010627 1571 010642 1573 010644 1574 010646 1575 010647 1579 010650 1580 010653 1582 010656 1584 010663 1587 010671 1588 010672 1589 010702 1590 010714 1592 010717 1593 010722 1595 010723 1597 010725 1600 010734 1601 010735 1602 010745 1603 010750 1605 010754 1606 010756 1608 010757 1610 010761 1611 010762 1612 010763 1613 010773 1614 011000 1616 011002 1617 011004 1619 011005 1620 011025 1624 011026 1629 011030 1631 011034 1633 011046 1635 011054 1638 011066 1641 011070 1660 011071 1661 011075 1664 011100 1665 011101 1666 011103 1669 011104 1671 011110 1672 011114 1673 011116 1675 011120 1677 011123 1678 011126 1679 011130 1682 011132 1684 011135 1685 011140 1686 011142 1688 011144 1690 011146 1691 011150 1692 011152 1697 011154 1699 011165 1701 011170 1702 011200 1704 011202 1706 011205 1707 011210 1708 011212 1709 011214 1712 011215 1714 011224 1715 011231 1716 011233 1717 011235 1720 011236 1721 011243 1722 011245 1725 011247 1727 011250 1731 011254 1735 011261 1736 011267 1737 011273 1738 011305 1739 011306 1740 011311 1741 011313 1744 011315 1746 011317 1748 011321 1749 011325 1750 011327 1752 011330 1754 011331 1780 011333 1781 011336 1782 011340 1785 011343 1786 011344 1789 011345 1791 011351 1792 011357 1793 011361 1795 011363 1797 011400 1798 011405 1799 011410 1802 011413 1804 011426 1805 011433 1806 011436 1808 011441 1810 011453 1811 011457 1812 011462 1817 011465 1819 011505 1821 011510 1822 011527 1824 011531 1826 011534 1827 011542 1828 011547 1829 011552 1832 011553 1834 011562 1835 011567 1836 011571 1837 011573 1840 011574 1841 011601 1842 011603 1845 011605 1847 011606 1851 011612 1855 011617 1856 011625 1857 011633 1858 011654 1859 011661 1860 011664 1861 011670 1864 011672 1866 011674 1868 011676 1869 011702 1870 011704 1872 011705 1874 011706 1882 011714 1883 011745 1885 011746 1900 011750 1901 011757 1903 011765 1905 011774 1906 011777 1910 012001 1912 012006 1913 012011 1916 012020 1918 012022 1920 012063 1924 012110 1926 012115 1927 012120 1928 012125 1930 012126 1933 012135 1935 012140 1937 012150 1939 012153 1941 012161 1943 012167 1945 012170 1948 012177 1951 012206 1954 012215 1959 012223 1961 012233 1963 012234 1965 012241 1966 012243 1967 012255 1970 012321 1972 012361 1973 012363 1975 012371 1977 012372 1979 012377 1982 012440 1985 012502 1986 012503 1988 012521 1990 012544 1991 012545 1993 012546 1995 012551 1997 012552 1998 012557 2000 012563 2002 012574 2006 012634 2007 012635 2008 012637 2009 012644 2011 012650 2013 012651 2016 012662 2018 012666 2020 012671 2021 012672 2022 012675 2024 012676 2026 012701 2027 012702 2028 012705 2030 012706 2032 012711 2034 012716 2039 012721 2042 012730 2044 012736 2045 012742 2046 012744 2048 012745 2050 012756 2052 012762 2054 012771 2055 012775 2056 013002 2059 013006 2062 013012 2064 013026 2068 013040 2070 013047 2071 013053 2072 013060 2075 013064 2077 013067 2079 013075 2080 013101 2084 013103 2086 013107 2088 013115 2089 013121 2090 013123 2092 013124 2094 013127 2096 013135 2097 013141 2098 013143 2100 013144 2102 013147 2104 013155 2105 013161 2106 013163 2108 013164 2110 013167 2112 013175 2113 013201 2114 013203 2116 013204 2118 013207 2120 013215 2121 013221 2122 013223 2124 013224 2126 013227 2128 013237 2130 013245 2132 013254 2133 013260 2134 013303 2137 013310 2139 013314 2141 013322 2142 013326 2144 013330 2145 013340 2147 013351 2150 013372 2151 013376 2153 013377 2156 013407 2158 013415 2159 013421 2160 013422 2161 013423 2164 013445 2166 013457 2167 013463 2168 013464 2171 013466 2173 013475 2175 013503 2176 013507 2179 013511 2181 013514 2183 013522 2184 013526 2187 013530 2189 013535 2191 013543 2192 013547 2195 013551 2196 013553 2199 013554 2201 013556 2202 013570 2205 013577 2207 013606 2208 013616 2209 013621 2210 013622 2212 013625 2214 013636 2216 013645 2218 013650 2219 013653 2222 013662 2224 013664 2226 013667 2228 013671 2230 013706 2231 013710 2233 013717 2234 013725 2235 013731 2236 013733 2238 013734 2240 013741 2241 013742 2243 013745 2245 013753 2247 013761 2248 013765 2251 013767 2253 013774 2255 014002 2256 014006 2259 014010 2260 014012 2263 014013 2265 014034 2267 014037 2269 014042 2271 014047 2273 014057 2275 014061 2278 014070 2279 014076 2281 014114 2283 014127 2285 014142 2287 014144 2288 014146 2292 014156 2294 014162 2295 014165 2298 014174 2300 014176 2303 014200 2304 014202 2305 014204 2308 014205 2311 014206 2314 014225 2315 014231 2317 014236 2320 014250 2324 014253 2325 014261 2327 014266 2329 014317 2332 014321 2348 014323 2351 014326 2356 014330 2358 014336 2359 014342 2360 014344 2366 014345 2367 014350 2370 014364 2371 014370 2372 014372 2373 014376 2375 014377 2376 014401 2377 014403 2379 014404 2380 014406 2382 014412 2385 014421 2386 014434 2387 014435 2388 014436 2390 014440 2392 014447 2394 014450 2400 014451 2401 014455 2403 014464 2404 014472 2407 014474 2410 014475 2419 014477 2422 014503 2424 014515 2426 014527 2427 014537 2430 014543 2432 014553 2434 014561 2435 014563 2437 014577 2438 014605 2440 014611 2441 014613 2443 014614 2452 014616 2454 014633 2458 014635 2469 014643 2473 014663 2475 014666 2477 014703 2479 014722 2496 014732 2606 014734 2608 014737 2609 014740 2611 014741 2613 014751 2614 014753 2615 014765 2616 014772 2618 014774 2620 014775 2622 015007 2625 015012 2628 015016 2630 015020 2631 015024 2632 015033 2634 015034 2637 015035 2639 015040 2641 015042 2642 015045 2643 015047 2646 015050 2651 015062 2653 015063 2654 015067 2655 015075 2656 015104 2658 015107 2659 015111 2660 015114 2662 015116 2664 015120 2665 015127 2666 015143 2667 015147 2669 015153 2670 015157 2671 015160 2673 015161 2675 015163 2676 015167 2677 015171 2680 015173 2682 015175 2684 015177 2685 015203 2687 015204 2688 015210 2689 015212 2692 015214 2694 015221 2696 015223 2697 015227 2699 015230 2701 015234 2702 015243 2703 015245 2704 015246 2706 015247 2707 015253 2708 015255 2711 015257 2713 015264 2714 015270 2717 015272 2720 015302 2722 015313 2723 015317 2724 015321 2725 015325 2726 015327 2727 015333 2728 015334 2729 015335 2730 015340 2732 015345 2733 015351 2734 015353 2735 015362 2736 015363 2737 015367 2738 015370 2740 015373 2741 015377 2742 015401 2743 015405 2744 015411 2746 015412 2747 015421 2748 015422 2750 015423 2751 015433 2753 015442 2755 015444 2756 015450 2758 015451 2759 015452 2761 015455 2762 015461 2763 015463 2764 015464 2766 015466 2767 015467 2770 015470 2772 015472 2773 015501 2775 015502 2776 015504 2777 015512 2778 015520 2780 015524 2782 015526 2784 015545 2787 015562 2788 015563 2791 015573 2792 015600 2794 015603 2795 015606 2796 015610 2798 015616 2799 015620 2802 015621 2804 015624 2807 015626 2809 015633 2810 015646 2811 015653 2812 015655 2815 015656 2817 015662 2818 015665 2822 015667 2824 015671 2825 015677 2826 015706 2828 015711 2829 015713 2831 015715 2833 015720 2835 015724 2837 015746 2838 015754 2839 015761 2841 015765 2842 015767 2845 015773 2847 015774 2849 015776 2855 016003 2856 016011 2857 016014 2858 016016 2861 016017 2863 016021 2864 016030 2865 016034 2867 016040 2868 016042 2869 016044 2871 016045 2873 016050 2875 016052 2877 016055 2879 016057 2882 016061 2886 016063 2888 016066 2890 016070 2892 016072 2896 016115 2897 016124 2899 016126 2900 016132 2901 016133 2902 016135 2903 016141 2907 016142 2909 016144 2910 016150 2912 016153 2913 016155 2915 016163 2917 016171 2918 016172 2920 016174 2921 016200 2922 016201 2924 016206 2925 016216 2926 016222 2927 016223 2928 016232 2930 016236 2931 016240 2932 016241 2935 016251 2938 016253 2940 016255 2941 016261 2943 016263 2944 016271 2945 016303 2947 016307 2949 016311 2951 016315 2954 016321 2955 016325 2957 016326 2959 016332 2960 016342 2961 016346 2963 016350 2965 016352 2966 016356 2967 016367 2968 016373 2971 016375 2974 016376 2978 016400 2980 016405 2983 016407 2985 016411 2986 016420 2987 016424 2989 016425 2993 016440 2994 016445 2995 016451 2996 016452 2997 016453 2999 016454 3003 016466 3005 016471 3006 016475 3007 016503 3008 016507 3009 016510 3011 016511 3015 016517 3016 016523 3017 016527 3018 016530 3019 016531 3021 016532 3023 016542 3024 016545 3025 016551 3026 016555 3027 016556 3030 016557 3031 016561 3034 016562 3036 016565 3037 016573 3038 016577 3043 016606 3045 016610 3046 016617 3047 016621 3048 016624 3049 016625 3051 016627 3055 016630 3060 016632 3062 016640 3063 016643 3066 016644 3068 016651 3070 016661 3072 016677 3073 016704 3075 016705 3078 016707 3080 016717 3082 016722 3083 016727 3084 016733 3085 016735 3090 016736 3092 016741 3094 016745 3095 016751 3097 016753 3098 016760 3100 016762 3103 016767 3104 017004 3106 017013 3108 017015 3109 017016 3111 017021 3112 017022 3113 017023 3114 017024 3118 017034 3120 017036 3122 017037 3125 017041 3127 017051 3128 017063 3130 017070 3131 017072 3132 017073 3134 017075 3135 017107 3137 017112 3139 017117 3140 017131 3141 017140 3143 017142 3145 017143 3153 017147 3155 017157 3156 017171 3158 017176 3159 017200 3160 017201 3162 017203 3163 017215 3164 017220 3166 017221 3168 017225 3169 017232 3171 017253 3172 017265 3174 017312 3176 017327 3178 017345 3182 017362 3184 017400 3186 017403 3188 017421 3191 017433 3193 017450 3195 017451 3198 017540 3200 017545 3201 017600 3204 017655 3205 017657 3207 017663 3209 017667 3210 017701 3212 017713 3214 017716 3215 017726 3216 017763 3217 017775 3221 020007 3224 020010 3226 020020 3229 020032 3232 020050 3233 020062 3234 020070 3235 020102 3239 020127 3240 020141 3242 020150 3244 020206 3246 020210 3248 020222 3251 020247 3254 020256 3256 020261 3257 020264 3258 020324 3262 020325 3264 020333 3265 020345 3266 020357 3267 020366 3269 020370 3272 020371 3279 020375 3280 020400 3281 020404 3285 020407 3287 020417 3289 020427 3292 020433 3294 020440 3296 020447 3297 020457 3298 020471 3300 020476 3301 020500 3302 020501 3304 020503 3305 020515 3306 020520 3308 020521 3311 020540 3313 020602 3316 020616 3319 020657 3321 020666 3322 020700 3323 020712 3324 020721 3325 020723 3327 020730 3328 020736 3329 020737 3331 020740 3340 020742 3341 020745 3344 020747 3346 020755 3347 020767 3348 020774 3349 020776 3351 021000 3352 021012 3353 021014 3354 021021 3355 021025 3356 021027 3358 021032 3360 021034 3361 021043 3362 021051 3363 021060 3365 021075 3366 021101 3368 021103 3370 021111 3371 021126 3373 021135 3374 021136 3375 021141 3377 021142 3382 021143 3384 021147 3385 021151 3388 021152 3390 021163 3392 021165 3394 021167 3396 021176 3398 021200 3400 021205 3403 021206 3408 021210 3409 021214 3410 021216 3411 021223 3413 021224 3416 021225 3419 021226 3420 021230 3421 021242 3422 021246 3423 021254 3425 021264 ----------------------------------------------------------- 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