COMPILATION LISTING OF SEGMENT fort_eval_parm Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 11/10/88 1343.5 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,MCR7286), audit(86-07-17,Ginter), 14* install(86-07-28,MR12.0-1105): 15* Fix fortran bug 456. 16* END HISTORY COMMENTS */ 17 18 19 /* format: style2 */ 20 fort_eval_parm: 21 procedure (p, target_id, error_code); 22 23 /* Procedure to do compile-time fortran expression evaluation. Args are: 24* 25* p pointer to parameter structure, holding most of the useful info (IN-OUT) 26* target_id string identifying item being evaluated (for errors) (IN) 27* error_code success/failure indicator (OUT) 28* 29*Written: 30* July 1979 -- PES 31* 32*Modified: 33* 03 June 1985 - BW - 456: Fix out_of_bounds error when error_code = -3. 34* 23 March 1981 - MEP - Add new parameters to keep track of parse's stack and alter character allocation. 35* Alter the calling sequence and internal logic, so that FEP creates the constant nodes, not the caller. 36* 27 July 1980 - MEP -- Changes to allow evaluation of F77 character mode parameter stuff. 37* 14 Sep 1979 -- PES -- Change to make result_data_type=0 mean don't convert result. 38**/ 39 1 1 /* BEGIN fort_system_constants.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(86-07-14,BWong), approve(86-07-14,MCR7382), audit(86-07-17,Ginter), 1 7* install(86-07-28,MR12.0-1105): 1 8* Fix fortran bug 428. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 /* Created: June 1976, David Levin */ 1 13 1 14 /* Modified: 1 15* 15 Dec 85, RW - 428: Changed max_char_length from 256 to 512. 1 16* 22 Jun 84, MM - Install typeless functions support. 1 17* 17 Jun 83, HH - 383: Added 'process_param_list_op'. 1 18* 12 Jan 83, HH - Added 'form_VLA_packed_ptr_op'. 1 19* 05 Oct 82, HH - Added 'units_per_word'. 1 20* 27 Sep 82, HH - Added 'max_fixed_bin_18', 'max_fixed_bin_24' and 'sys_info$max_seg_size'. 1 21* Removed 'max_stored_value' and 'min_stored_value'. 1 22* 24 October 1981, ME Presser - added inquire_op. 1 23* 20 October 1981, C R Davis - add (read write)_internal_file_op. 1 24* 11 May 1981, Marshall Presser - added op-codes for .EQV. and .NEQV. 1 25* 28 April 1981, Marshall Presser - added default_main_entry_point_name 1 26* 11 March 1981, Marshall Presser - add min_stored_value 1 27* 8 December 1980, C R Davis - add block_if_op, else_if_op, else_op. 1 28* 15 January 1980, C R Davis - add bits_per_char. 1 29* 21 December 1979, Richard A. Barnes - add unrecoverable_errror and 1 30* max_error_level. 1 31* 3 November 1979, Richard Barnes - add pointer_node. 1 32* 17 September 1979, Richard Barnes - add load_preg_op & load_xreg_op 1 33* 13 September 1979, Paul Smee - add colon and concat token types, 1 34* change value of EOS_token, remove default_char_size. 1 35* 31 August 1979, Charlie Davis - change offset units to 1 36* be consistent with those in runtime symbols. 1 37* 13 August 1979, Richard Barnes - add cat_op & substr_op 1 38* 19 July 1979, Richard Barnes - char mode 1 39* 10 October 1978, Paul Smee - double max_stored_value and bias. 1 40* 15 June 1978, Paul Smee - add max_num_of_rands 1 41* 16 November 1977, David Levin - add machine_state_node 1 42* 12 September 1977, Richard Barnes - new ops for loop optimizer 1 43* 30 August 1977, David Levin - change bias from 65536 to 131072. 1 44* 5 July 1977, David Levin - add open_op, close_op, and iostat_op. 1 45* 28 April 1977, David Levin - add xmit_vector_op in operator list 1 46* 22 April 1977, David Levin - add max_prec_single, last_assigned_mode 1 47* 24 February 1977, Gabriel Chang for the optimizer. 1 48* 23 February 1977, David Levin to change name of count operand. 1 49* 28 October 1976, David Levin and Gabriel Chang to add 2 new ops and 1 50* 1 new node type. 1 51* 2 September 1976, David Levin - add 8 new ops and change name of 1 52* data_op. 1 53**/ 1 54 /* SYSTEM CONSTANTS */ 1 55 1 56 dcl bias init(262144) fixed bin(19) int static options(constant); 1 57 dcl gap_value init(0) fixed bin int static options(constant); 1 58 dcl max_fixed_bin_18 init(111111111111111111b) fixed bin (18) static options (constant); 1 59 dcl max_fixed_bin_24 init(111111111111111111111111b) fixed bin (24) static options (constant); 1 60 dcl max_num_of_rands init(127) fixed bin int static options(constant); 1 61 dcl sys_info$max_seg_size 1 62 fixed bin (18) ext; 1 63 1 64 dcl ( unrecoverable_error init(3), 1 65 max_error_level init(4)) 1 66 fixed bin int static options(constant); 1 67 1 68 dcl (main_program init(0), 1 69 block_data init(1), 1 70 subroutine init(2), 1 71 function init(3), 1 72 chars_per_word init(4), 1 73 chars_per_dw init(8), 1 74 bits_per_char init(9), 1 75 first_auto_loc init(64), 1 76 max_prec_single init(8)) fixed bin(9) int static options(constant); 1 77 dcl max_char_length init(512) fixed bin(10) int static options(constant); 1 78 1 79 dcl blank_common_name init("blnk*com") char(8) aligned int static options(constant); 1 80 declare default_main_entry_point_name 1 81 char (5) int static options (constant) initial ("main_"); 1 82 declare unnamed_block_data_subprg_name 1 83 char (29) int static options (constant) initial ("unnamed block data subprogram"); 1 84 1 85 /* NODE TYPES */ 1 86 1 87 dcl (fill_node init(0), 1 88 source_node init(1), 1 89 symbol_node init(2), 1 90 dimension_node init(3), 1 91 temporary_node init(4), 1 92 constant_node init(5), 1 93 label_node init(6), 1 94 header_node init(7), 1 95 char_constant_node init(8), 1 96 array_ref_node init(9), 1 97 proc_frame_node init(10), 1 98 library_node init(11), 1 99 subprogram_node init(12), 1 100 arg_desc_node init(13), 1 101 pointer_node init(14), 1 102 machine_state_node init(15)) fixed bin(4) aligned internal static options(constant); 1 103 1 104 /* DATA TYPES */ 1 105 1 106 dcl (int_mode init(1), 1 107 real_mode init(2), 1 108 dp_mode init(3), 1 109 cmpx_mode init(4), 1 110 logical_mode init(5), 1 111 char_mode init(6), 1 112 typeless_mode init(7), 1 113 last_assigned_mode init(7)) fixed bin(4) aligned internal static options(constant); 1 114 1 115 dcl data_type_size(7) init(1,1,2,2,1,0,1) fixed bin int static options(constant); 1 116 1 117 1 118 /* OPERAND TYPES */ 1 119 1 120 dcl (variable_type init(1), 1 121 constant_type init(2), 1 122 array_ref_type init(3), 1 123 temp_type init(4), 1 124 count_type init(5), 1 125 rel_constant init(6), 1 126 bif init(7), 1 127 statement_function init(8), 1 128 external init(9), 1 129 entry_type init(10), 1 130 dummy init(11), 1 131 error init(12)) fixed bin(4) aligned internal static options(constant); 1 132 1 133 1 134 /* OFFSET UNITS */ 1 135 1 136 dcl 1 137 (word_units init (0), 1 138 bit_units init (1), 1 139 char_units init (2), 1 140 halfword_units init (3)) fixed bin (3) aligned internal static options(constant); 1 141 1 142 dcl units_per_word (0:3) init (1, 36, 4, 2) fixed bin (6) static options (constant); 1 143 1 144 1 145 /* TOKEN MASKS */ 1 146 1 147 dcl 1 148 (is_operand initial("101000000"b), 1 149 is_operator initial("010000000"b), 1 150 is_constant initial("001000000"b), 1 151 is_arith_constant initial("000100000"b)) bit(9) aligned internal static options(constant); 1 152 1 153 1 154 /* TOKEN TYPES */ 1 155 1 156 dcl (no_token initial("000000000"b), 1 157 ident initial("100000000"b), 1 158 plus initial("010000001"b), 1 159 minus initial("010000010"b), 1 160 asterisk initial("010000011"b), 1 161 slash initial("010000100"b), 1 162 expon initial("010000101"b), 1 163 not initial("010000110"b), 1 164 and initial("010000111"b), 1 165 or initial("010001000"b), 1 166 eq initial("010001001"b), 1 167 ne initial("010001010"b), 1 168 lt initial("010001011"b), 1 169 gt initial("010001100"b), 1 170 le initial("010001101"b), 1 171 ge initial("010001110"b), 1 172 assign initial("010001111"b), 1 173 comma initial("010010000"b), 1 174 left_parn initial("010010001"b), 1 175 right_parn initial("010010010"b), 1 176 apostrophe initial("010010011"b), 1 177 colon initial("010010100"b), 1 178 concat initial("010010101"b), 1 179 substr_left_parn initial("010010110"b), 1 180 eqv initial("010010111"b), 1 181 neqv initial("010011000"b), 1 182 EOS_token initial("010011111"b), 1 183 char_string initial("001000001"b), 1 184 logical_const initial("001000010"b), 1 185 false initial("001000010"b), /* Must be identical to true except low order bit off. */ 1 186 true initial("001000011"b), /* Must be identical to false except low order bit on. */ 1 187 label_const initial("001000100"b), 1 188 octal_const initial("001000101"b), 1 189 dec_int initial("001100110"b), 1 190 real_const initial("001100111"b), 1 191 double_const initial("001101000"b), 1 192 complex_const initial("001101001"b)) bit(9) aligned internal static options(constant); 1 193 1 194 1 195 /* OPERATOR NAMES */ 1 196 1 197 declare 1 198 (assign_op initial(1), 1 199 add_op initial(2), 1 200 sub_op initial(3), 1 201 mult_op initial(4), 1 202 div_op initial(5), 1 203 exponentiation_op initial(6), 1 204 negate_op initial(7), 1 205 less_op initial(8), 1 206 less_or_equal_op initial(9), 1 207 equal_op initial(10), 1 208 not_equal_op initial(11), 1 209 greater_or_equal_op initial(12), 1 210 greater_op initial(13), 1 211 or_op initial(14), 1 212 and_op initial(15), 1 213 not_op initial(16), 1 214 jump_op initial(17), 1 215 jump_logical_op initial(18), 1 216 jump_arithmetic_op initial(19), 1 217 jump_computed_op initial(20), 1 218 jump_assigned_op initial(21), 1 219 assign_label_op initial(22), 1 220 read_op initial(23), 1 221 write_op initial(24), 1 222 format_op initial(25), 1 223 end_label_op initial(26), 1 224 error_label_op initial(27), 1 225 xmit_scalar_op initial(28), 1 226 xmit_array_op initial(29), 1 227 xmit_vector_op initial(30), 1 228 endfile_op initial(31), 1 229 rewind_op initial(32), 1 230 backspace_op initial(33), 1 231 margin_op initial(34), 1 232 openfile_op initial(35), 1 233 closefile_op initial(36), 1 234 record_number_op initial(37), 1 235 string_op initial(38), 1 236 string_length_op initial(39), 1 237 terminate_op initial(40), 1 238 return_op initial(41), 1 239 pause_op initial(42), 1 240 stop_op initial(43), 1 241 item_op initial(44), 1 242 exit_op initial(45), 1 243 eol_op initial(46), 1 244 do_op initial(47), 1 245 builtin_op initial(48), 1 246 sf_op initial(49), 1 247 sf_def_op initial(50), 1 248 subscript_op initial(51), 1 249 func_ref_op initial(52), 1 250 block_data_op initial(53), 1 251 increment_polish_op initial(54), 1 252 main_op initial(55), 1 253 func_op initial(56), 1 254 subr_op initial(57), 1 255 stat_op initial(58), 1 256 label_op initial(59), 1 257 call_op initial(60), 1 258 chain_op initial(61), 1 259 endunit_op initial(62), 1 260 non_executable initial(63), 1 261 no_op initial(64), 1 262 form_VLA_packed_ptr_op initial(65), 1 263 opt_subscript_op initial(66), 1 264 left_shift_op initial(67), 1 265 right_shift_op initial(68), 1 266 store_zero_op initial(69), 1 267 storage_add_op initial(70), 1 268 storage_sub_op initial(71), 1 269 neg_storage_add_op initial(72), 1 270 storage_add_one_op initial(73), 1 271 namelist_op initial(74), 1 272 open_op initial(75), 1 273 close_op initial(76), 1 274 iostat_op initial(77), 1 275 convert_to_int_op initial(78), 1 276 convert_to_real_op initial(79), 1 277 convert_to_dp_op initial(80), 1 278 convert_to_cmpx_op initial(81), 1 279 read_scalar_op initial(82), 1 280 read_array_op initial(83), 1 281 read_vector_op initial(84), 1 282 write_scalar_op initial(85), 1 283 write_array_op initial(86), 1 284 write_vector_op initial(87), 1 285 jump_true_op initial(88), 1 286 jump_false_op initial(89), 1 287 sub_index_op initial(90), 1 288 loop_end_op initial(91), 1 289 read_namelist_op initial(92), 1 290 write_namelist_op initial(93), 1 291 decode_string_op initial(94), 1 292 encode_string_op initial(95), 1 293 cat_op initial(96), 1 294 substr_op initial(97), 1 295 load_xreg_op initial(98), 1 296 load_preg_op initial(99), 1 297 block_if_op initial(100), 1 298 else_if_op initial(101), 1 299 else_op initial(102), 1 300 equiv_op initial (103), 1 301 not_equiv_op initial (104), 1 302 read_internal_file_op initial (105), 1 303 write_internal_file_op initial (106), 1 304 inquire_op initial (107), 1 305 process_param_list_op initial (108), 1 306 lhs_fld_op initial (109), 1 307 last_assigned_op initial (109)) fixed bin(18) internal static options(constant); 1 308 1 309 /* END fort_system_constants.incl.pl1 */ 40 2 1 /* BEGIN fort_nodes.incl.pl1 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(86-07-14,BWong), approve(86-07-14,MCR7382), audit(86-07-17,Ginter), 2 7* install(86-07-28,MR12.0-1105): 2 8* Fix fortran bug 473. 2 9* 2) change(88-04-28,RWaters), approve(88-04-28,MCR7875), audit(88-07-13,Huen), 2 10* install(88-11-10,MR12.2-1209): 2 11* Implement SCP 6339: Allow character variable to be up to 128K-1 (131071) 2 12* character long. 2 13* END HISTORY COMMENTS */ 2 14 2 15 2 16 /* Written: June 1976 by David Levin and Richard Barnes 2 17* 2 18*Modified: 2 19* Feb 24 1977 by G. Chang for the optimizer 2 20* Sept 12, 1977 by R. Barnes for the loop optimizer 2 21* Nov 16, 1977 by D. Levin to add machine state node for loop optimizer 2 22* Oct 09 1978 by P Smee for larger common and arrays. 2 23* Dec 05 1978 by P Smee for %options statement. 2 24* Jan 17 1979 by R Barnes for machine_state.value_in_xr 2 25* May 23 1979 by P Smee to add source.line_number 2 26* July 19 1979 by R Barnes for char mode changes 2 27* Sept 17 1979 by R Barnes for register optimizer changes 2 28* Oct 3 1979 by C R Davis for new EAQ management scheme. 2 29* 29 Oct 1979 by C R Davis for machine_state.eaq.reserved. 2 30* 3 Nov 1979 by R. Barnes for pointer node and to change 2 31* machine_state.next from a fixed bin to a pointer. 2 32* 18 Dec 1979 by R. Barnes for loop_ref_count to finalize 2 33* changes for the register optimizer. 2 34* 17 Dec 1979 by C R Davis for symbol.descriptor 2 35* 22 Dec 1979 by R. Barnes to remove in_list. 2 36* 22 Jan 1980 by P E Smee to try for long char arrays. 2 37* 23 Jan 1980 by C R Davis to fix bugs with yesterday's changes. 2 38* 4 Mar 1980 by C R Davis to rename node.multi_position to 2 39* node.stack_indirect, and to add machine_state.stack_extended 2 40* and machine_state.last_dynamic_temp. 2 41* 5 Jun 1980 by M E Presser to alter arg_desc node for use 2 42* in stack-extensions and arg-descriptor generation. 2 43* 16 July 1980 by C R Davis for symbol.variable_arglist. 2 44* 8 Jan 81 by M E Presser for label.not_referencable 2 45* 17 Feb 1981 by C R Davis for new dimension node layout. 2 46* 11 March 1981 by MEP for dimension.assumed_size 2 47* 3 May 1982 by TO to add star_extent_function to subprogram node. 2 48* Mod 1 25 August 1982 by TO to add VLA_chain and LA_chain to subprogram node. 2 49* Mod 1 2 September 1982 by TO to add 5 more entries to storage_info in 2 50* the subprogram node (13-17), and to add VLA and LA bits to the 2 51* symbol node. 2 52* Mod 1 2 September 1982 by TO move fields around in nodes to get correct 2 53* 24 (really 35) bit fields and still maintain mapping between 2 54* node, temporary, and array_ref (others limit to word 6 like node.) 2 55* 19 Jun 83, HH - 145: Add 'branched_to', 'ends_do_loop' & 'loop_end' 2 56* to 'label' node. 2 57* 19 Feb 86, BW & AG - 473.a: Add 'VLA' to 'arg_desc' node. 2 58*END Modifications */ 2 59 2 60 2 61 /* GENERAL NODE TEMPLATE */ 2 62 2 63 dcl 1 node aligned based structure, 2 64 2 65 /* WORD 1 */ 2 66 2 67 2 node_type fixed bin (4) unaligned, 2 68 2 data_type fixed bin (4) unaligned unsigned, 2 69 2 operand_type fixed bin (4) unaligned, 2 70 2 71 2 addressing_bits unaligned structure, 2 72 3 is_addressable bit (1), 2 73 3 value_in, 2 74 4 eaq bit (1), 2 75 4 x bit (1), 2 76 3 allocated bit (1), 2 77 3 needs_pointer bit (1), 2 78 3 stack_indirect bit (1), 2 79 3 large_address bit (1), 2 80 3 address_in_base bit (1), 2 81 3 dont_update bit (1), /* for optimizer */ 2 82 3 not_in_storage bit (1), /* for optimizer */ 2 83 3 globally_assigned bit (1), /* for optimizer */ 2 84 2 85 2 bits unaligned structure, 2 86 3 standard_bits, 2 87 4 allocate bit (1), 2 88 4 set bit (1), 2 89 4 referenced bit (1), 2 90 4 passed_as_arg bit (1), 2 91 2 92 3 fill bit (7), /* These bits may be used by individual nodes. */ 2 93 2 94 /* WORD 2 */ 2 95 2 96 2 address aligned structure, 2 97 3 base bit (3) unaligned, /* For labels and constants, base and offset are */ 2 98 3 offset fixed bin (14) unaligned, /* combined to: fixed bin (18) unsigned unaligned. */ 2 99 3 char_num fixed bin (2) unaligned unsigned, 2 100 3 bit_num fixed bin (4) unaligned unsigned, 2 101 3 fill bit (4) unaligned, 2 102 3 inhibit bit (1) unaligned, 2 103 3 ext_base bit (1) unaligned, 2 104 3 tag bit (6) unaligned, 2 105 2 106 /* WORD 3 */ 2 107 2 108 2 units fixed bin (3) unaligned unsigned, 2 109 2 fill bit (3) unaligned, /* already used in symbol node */ 2 110 2 reloc_hold bit (6) unaligned, 2 111 2 reloc bit (6) unaligned, 2 112 2 addr_hold bit (18) unaligned, 2 113 2 114 /* WORD 4. Must not change for constant, char_constant, header, label, or symbol nodes. */ 2 115 2 116 2 next fixed bin (18) unsigned unaligned, 2 117 2 hash_chain fixed bin (18) unsigned unaligned, /* No hash chain for header nodes. */ 2 118 2 119 /* WORD 5 */ 2 120 2 121 2 pad fixed bin (18) unsigned unaligned, 2 122 2 loop_ref_count fixed bin (17) unaligned, /* Only for symbols and temporaries. */ 2 123 2 124 /* WORD 6 */ 2 125 2 126 2 location fixed bin (24) aligned; /* Only for array refs, symbols, temporaries, and headers. */ 2 127 2 128 /* ARG DESCRIPTOR NODE */ 2 129 2 130 dcl 1 arg_desc based aligned, 2 131 2 132 /* WORD 1 */ 2 133 2 134 2 node_type fixed bin (4) unaligned, 2 135 2 n_args fixed bin (12) unaligned, 2 136 2 pad bit (18) unaligned, 2 137 2 138 /* WORDS 2 - N_ARGS + 1 */ 2 139 2 140 2 arg(num_args refer(n_args)) aligned, 2 141 3 data_type fixed bin (4) unaligned unsigned, 2 142 3 must_be unaligned, 2 143 4 array bit (1) unaligned, 2 144 4 scalar bit (1) unaligned, 2 145 4 VLA bit (1) unaligned, 2 146 3 star_extents bit (1) unaligned, 2 147 3 pad bit (9) unaligned, 2 148 3 symbol fixed bin (18) unaligned; 2 149 2 150 dcl num_args fixed bin; 2 151 2 152 2 153 /* ARRAY REF NODE -- Must be same size as TEMPORARY NODE. */ 2 154 2 155 dcl 1 array_ref aligned based structure, 2 156 2 157 /* WORD 1 */ 2 158 2 159 2 node_type fixed bin (4) unaligned, 2 160 2 data_type fixed bin (4) unaligned unsigned, 2 161 2 operand_type fixed bin (4) unaligned, 2 162 2 163 2 addressing_bits unaligned structure, 2 164 3 is_addressable bit (1), 2 165 3 value_in, 2 166 4 eaq bit (1), 2 167 4 x bit (1), 2 168 3 allocated bit (1), 2 169 3 needs_pointer bit (1), 2 170 3 stack_indirect bit (1), 2 171 3 large_address bit (1), 2 172 3 address_in_base bit (1), 2 173 3 dont_update bit (1), /* for optimizer */ 2 174 3 not_in_storage bit (1), /* for optimizer */ 2 175 3 globally_assigned bit (1), /* for optimizer */ 2 176 2 177 2 bits unaligned structure, 2 178 3 standard_bits, 2 179 4 allocate bit (1), 2 180 4 set bit (1), 2 181 4 referenced bit (1), 2 182 4 passed_as_arg bit (1), 2 183 2 184 3 variable_length bit (1), 2 185 2 186 3 variable_offset bit (1), 2 187 2 188 3 invariant bit (1), /* must line up with temporary node */ 2 189 3 irreducible bit (1), /* .. */ 2 190 3 used_across_loops bit (1), /* .. */ 2 191 2 192 3 large_offset bit (1), 2 193 2 194 3 has_address bit (1), 2 195 2 196 /* WORD 2 */ 2 197 2 198 2 address aligned structure, 2 199 3 base bit (3) unaligned, 2 200 3 offset fixed bin (14) unaligned, 2 201 3 char_num fixed bin (2) unaligned unsigned, 2 202 3 bit_num fixed bin (4) unaligned unsigned, 2 203 3 fill bit (4) unaligned, 2 204 3 inhibit bit (1) unaligned, 2 205 3 ext_base bit (1) unaligned, 2 206 3 tag bit (6) unaligned, 2 207 2 208 /* WORD 3 */ 2 209 2 210 2 units fixed bin (3) unaligned unsigned, 2 211 2 fill bit (3) unaligned, 2 212 2 reloc_hold bit (6) unaligned, 2 213 2 reloc bit (6) unaligned, 2 214 2 addr_hold bit (18) unaligned, 2 215 2 216 /* WORD 4 */ 2 217 2 218 2 next fixed bin (18) unsigned unaligned, 2 219 2 loop_end_fu_pos fixed bin (17) unaligned, /* must overlay temporary.loop_end_fu_pos */ 2 220 2 221 /* WORD 5 */ 2 222 2 223 2 pad fixed bin (18) unsigned unaligned, 2 224 2 v_offset fixed bin (18) unsigned unaligned, 2 225 2 226 /* WORD 6 */ 2 227 2 228 2 location fixed bin (24) aligned, 2 229 2 230 /* WORD 7 */ 2 231 2 232 2 ref_count fixed bin (17) unaligned, /* must overlay temporary.ref_count */ 2 233 2 output_by fixed bin (18) unsigned unal, /* must overlay temporary.output_by */ 2 234 2 235 /* WORD 8 */ 2 236 2 237 2 length fixed bin (24) aligned, 2 238 2 239 /* WORD 9 */ 2 240 2 241 2 start_input_to fixed bin (18) unsigned unal, /* must overlay temporary.start_input_to */ 2 242 2 end_input_to fixed bin (18) unsigned unal, /* must overlay temporary.end_input_to */ 2 243 2 244 /* WORD 10 */ 2 245 2 246 2 ref_count_copy fixed bin (17) unaligned, /* must overlay temporary.ref_count_copy */ 2 247 2 parent fixed bin (18) unsigned unaligned, 2 248 2 249 /* WORD 11 */ 2 250 2 251 2 unused fixed bin (24) aligned; /* Pad to size of 'temporary'. */ 2 252 2 253 2 254 /* CONSTANT NODE */ 2 255 2 256 dcl 1 constant aligned based structure, 2 257 2 258 /* WORD 1 */ 2 259 2 260 2 node_type fixed bin (4) unaligned, 2 261 2 data_type fixed bin (4) unaligned unsigned, 2 262 2 operand_type fixed bin (4) unaligned, 2 263 2 264 2 addressing_bits unaligned structure, 2 265 3 is_addressable bit (1), 2 266 3 value_in, 2 267 4 eaq bit (1), 2 268 4 x bit (1), 2 269 3 allocated bit (1), 2 270 3 needs_pointer bit (1), 2 271 3 stack_indirect bit (1), 2 272 3 large_address bit (1), 2 273 3 address_in_base bit (1), 2 274 3 dont_update bit (1), /* for optimizer */ 2 275 3 not_in_storage bit (1), /* for optimizer */ 2 276 3 globally_assigned bit (1), /* for optimizer */ 2 277 2 278 2 bits unaligned structure, 2 279 3 standard_bits, 2 280 4 allocate bit (1), 2 281 4 set bit (1), 2 282 4 referenced bit (1), 2 283 4 passed_as_arg bit (1), 2 284 2 285 3 fill bit (7), 2 286 2 287 /* WORD 2 */ 2 288 2 289 2 address aligned structure, 2 290 3 location fixed bin (18) unsigned unaligned, 2 291 3 op bit (10) unaligned, 2 292 3 inhibit bit (1) unaligned, 2 293 3 ext_base bit (1) unaligned, 2 294 3 tag bit (6) unaligned, 2 295 2 296 /* WORD 3 */ 2 297 2 298 2 units fixed bin (3) unaligned unsigned, 2 299 2 fill bit (3) unaligned, 2 300 2 reloc_hold bit (6) unaligned, 2 301 2 reloc bit (6) unaligned, 2 302 2 addr_hold bit (18) unaligned, 2 303 2 304 /* WORD 4 */ 2 305 2 306 2 next_constant fixed bin (18) unsigned unaligned, 2 307 2 hash_chain fixed bin (18) unsigned unaligned, 2 308 2 309 /* WORDS 5 & 6 */ 2 310 2 311 2 value bit (72) aligned; 2 312 2 313 2 314 /* CHARACTER CONSTANT NODE */ 2 315 2 316 dcl 1 char_constant aligned based structure, 2 317 2 318 /* WORD 1 */ 2 319 2 320 2 node_type fixed bin (4) unaligned, 2 321 2 data_type fixed bin (4) unaligned unsigned, 2 322 2 operand_type fixed bin (4) unaligned, 2 323 2 324 2 addressing_bits unaligned structure, 2 325 3 is_addressable bit (1), 2 326 3 value_in, 2 327 4 eaq bit (1), 2 328 4 x bit (1), 2 329 3 allocated bit (1), 2 330 3 needs_pointer bit (1), 2 331 3 stack_indirect bit (1), 2 332 3 large_address bit (1), 2 333 3 address_in_base bit (1), 2 334 3 dont_update bit (1), /* for optimizer */ 2 335 3 not_in_storage bit (1), /* for optimizer */ 2 336 3 globally_assigned bit (1), /* for optimizer */ 2 337 2 338 2 bits unaligned structure, 2 339 3 standard_bits, 2 340 4 allocate bit (1), 2 341 4 set bit (1), 2 342 4 referenced bit (1), 2 343 4 passed_as_arg bit (1), 2 344 2 345 3 no_value_stored bit (1), 2 346 2 347 3 fill bit (6), 2 348 2 349 /* WORD 2 */ 2 350 2 351 2 address aligned structure, 2 352 3 location fixed bin (18) unsigned unaligned, 2 353 3 char_num fixed bin (2) unaligned unsigned, 2 354 3 bit_num fixed bin (4) unaligned unsigned, 2 355 3 fill bit (4) unaligned, 2 356 3 inhibit bit (1) unaligned, 2 357 3 ext_base bit (1) unaligned, 2 358 3 tag bit (6) unaligned, 2 359 2 360 /* WORD 3 */ 2 361 2 362 2 units fixed bin (3) unaligned unsigned, 2 363 2 fill bit (3) unaligned, 2 364 2 reloc_hold bit (6) unaligned, 2 365 2 reloc bit (6) unaligned, 2 366 2 addr_hold bit (18) unaligned, 2 367 2 368 /* WORD 4 */ 2 369 2 370 2 next_constant fixed bin (18) unsigned unaligned, 2 371 2 hash_chain fixed bin (18) unsigned unaligned, 2 372 2 373 /* WORDS 5 thru n */ 2 374 2 375 2 length fixed bin (18) unsigned unaligned, 2 376 2 value char(char_constant_length refer(char_constant.length)) unaligned; 2 377 2 378 dcl char_constant_length fixed bin (18) unsigned; 2 379 2 380 2 381 /* DIMENSION NODE */ 2 382 2 383 dcl 1 dimension aligned based structure, 2 384 2 385 /* WORD 1 */ 2 386 2 387 2 node_type fixed bin (4) unaligned, /* The only field in common with other nodes */ 2 388 2 389 2 number_of_dims fixed bin (3) unaligned, /* Number of dimensions */ 2 390 2 391 2 v_bound (7) unaligned, /* Variable bound info - up to 7 dims. */ 2 392 3 lower bit (1) unaligned, /* On if lower bound is variable */ 2 393 3 upper bit (1) unaligned, /* On if upper bound is variable */ 2 394 2 395 2 has_virtual_origin bit (1) unaligned, /* On if virtual_origin is valid */ 2 396 2 has_array_size bit (1) unaligned, /* On if array_size is valid */ 2 397 2 has_dim_sizes bit (1) unaligned, /* On if dim.size (*) is valid */ 2 398 2 399 2 variable_virtual_origin bit (1) unaligned, /* On if virtual_origin is variable */ 2 400 2 variable_array_size bit (1) unaligned, /* On if array_size is variable */ 2 401 2 assumed_size bit (1) unaligned, /* On if array has assumed size */ 2 402 2 403 2 fill bit (7) unaligned, 2 404 2 405 /* WORD 2 */ 2 406 2 407 2 virtual_origin fixed bin (24) aligned, 2 408 2 409 /* WORD 3 */ 2 410 2 411 2 element_count fixed bin (24) aligned, 2 412 2 413 /* WORD 4 */ 2 414 2 415 2 array_size fixed bin (24) aligned, /* Expressed in symbol.units */ 2 416 2 417 /* WORD 5 */ 2 418 2 419 2 VLA_base_addressor fixed bin (18) aligned, 2 420 2 421 /* WORDS 6 - n (max = 26) */ 2 422 2 423 2 dim (num_dims refer (dimension.number_of_dims)) aligned, 2 424 2 425 3 lower_bound fixed bin (24) aligned, /* Lower bound of this dimension */ 2 426 2 427 3 upper_bound fixed bin (24) aligned, /* Upper bound of this dimension */ 2 428 2 429 3 size fixed bin (24) aligned; /* No. of elements in this dimension */ 2 430 2 431 dcl num_dims fixed bin (3); 2 432 2 433 2 434 /* HEADER NODE */ 2 435 2 436 dcl 1 header aligned based structure, 2 437 2 438 /* WORD 1 */ 2 439 2 440 2 node_type fixed bin (4) unaligned, 2 441 2 data_type fixed bin (4) unaligned unsigned, 2 442 2 operand_type fixed bin (4) unaligned, 2 443 2 444 2 addressing_bits unaligned structure, 2 445 3 is_addressable bit (1), 2 446 3 value_in, 2 447 4 eaq bit (1), 2 448 4 x bit (1), 2 449 3 allocated bit (1), 2 450 3 needs_pointer bit (1), 2 451 3 stack_indirect bit (1), 2 452 3 large_address bit (1), 2 453 3 address_in_base bit (1), 2 454 3 dont_update bit (1), /* for optimizer */ 2 455 3 not_in_storage bit (1), /* for optimizer */ 2 456 3 globally_assigned bit (1), /* for optimizer */ 2 457 2 458 2 bits unaligned structure, 2 459 3 storage_info, 2 460 4 standard_bits, 2 461 5 allocate bit (1), 2 462 5 set bit (1), 2 463 5 referenced bit (1), 2 464 5 passed_as_arg bit (1), 2 465 4 initialed bit (1), /* On if any member has initial attribute. */ 2 466 2 467 3 alignment structure unaligned, 2 468 4 even bit (1), 2 469 4 odd bit (1), 2 470 4 character bit (1), 2 471 2 472 3 storage_class structure unaligned, 2 473 4 automatic bit (1), 2 474 4 static bit (1), 2 475 4 in_common bit (1), 2 476 2 477 /* WORD 2 */ 2 478 2 479 2 address aligned structure, 2 480 3 base bit (3) unaligned, 2 481 3 offset fixed bin (14) unaligned, 2 482 3 char_num fixed bin (2) unaligned unsigned, 2 483 3 bit_num fixed bin (4) unaligned unsigned, 2 484 3 fill bit (4) unaligned, 2 485 3 inhibit bit (1) unaligned, 2 486 3 ext_base bit (1) unaligned, 2 487 3 tag bit (6) unaligned, 2 488 2 489 /* WORD 3 */ 2 490 2 491 2 units fixed bin (3) unaligned unsigned, 2 492 2 VLA bit (1) unaligned, /* chain for VLA's */ 2 493 2 LA bit (1) unaligned, /* chain for LA's */ 2 494 2 fill bit (1) unaligned, 2 495 2 reloc_hold bit (6) unaligned, 2 496 2 reloc bit (6) unaligned, 2 497 2 addr_hold bit (18) unaligned, 2 498 2 499 /* WORD 4 */ 2 500 2 501 2 next_header fixed bin (18) unsigned unaligned, 2 502 2 first_element fixed bin (18) unsigned unaligned, 2 503 2 504 /* WORD 5 */ 2 505 2 506 2 last_element fixed bin (18) unsigned unaligned, 2 507 2 name_length fixed bin (17) unaligned, 2 508 2 509 /* WORD 6 */ 2 510 2 511 2 location fixed bin (24) aligned, 2 512 2 513 /* WORD 7 */ 2 514 2 515 2 length fixed bin (24) aligned, 2 516 2 517 /* WORD 8 */ 2 518 2 519 2 VLA_base_addressor fixed bin (18) aligned, 2 520 2 521 /* WORDS 9 - n. This field is variable in length. Its length is zero for equivalence groups. */ 2 522 2 523 2 block_name char(allocate_symbol_name refer (header.name_length)) aligned; 2 524 2 525 dcl allocate_symbol_name fixed bin; 2 526 2 527 2 528 /* LABEL NODE */ 2 529 2 530 dcl 1 label aligned based structure, 2 531 2 532 /* WORD 1 */ 2 533 2 534 2 node_type fixed bin (4) unaligned, 2 535 2 data_type fixed bin (4) unaligned unsigned, 2 536 2 operand_type fixed bin (4) unaligned, 2 537 2 538 2 addressing_bits unaligned structure, 2 539 3 is_addressable bit (1), 2 540 3 value_in, 2 541 4 eaq bit (1), 2 542 4 x bit (1), 2 543 3 allocated bit (1), 2 544 3 needs_pointer bit (1), 2 545 3 stack_indirect bit (1), 2 546 3 large_address bit (1), 2 547 3 address_in_base bit (1), 2 548 3 dont_update bit (1), /* for optimizer */ 2 549 3 not_in_storage bit (1), /* for optimizer */ 2 550 3 globally_assigned bit (1), /* for optimizer */ 2 551 2 552 2 bits unaligned structure, 2 553 3 storage_info, 2 554 4 standard_bits, 2 555 5 allocate bit (1), 2 556 5 set bit (1), 2 557 5 referenced bit (1), 2 558 5 passed_as_arg bit (1), 2 559 4 referenced_executable bit (1), 2 560 2 561 3 usage, /* Label is on a non-executable stmnt if both bits are ON. */ 2 562 4 format bit (1), 2 563 4 executable bit (1), 2 564 2 565 3 restore_prs bit (1), 2 566 3 not_referencable bit (1), 2 567 3 branched_to bit (1), 2 568 3 ends_do_loop bit (1), 2 569 2 570 /* WORD 2 */ 2 571 2 572 2 address aligned structure, 2 573 3 location fixed bin (18) unsigned unaligned, 2 574 3 op bit (10) unaligned, 2 575 3 inhibit bit (1) unaligned, 2 576 3 ext_base bit (1) unaligned, 2 577 3 tag bit (6) unaligned, 2 578 2 579 /* WORD 3 */ 2 580 2 581 2 units fixed bin (3) unaligned unsigned, 2 582 2 fill bit (3) unaligned, 2 583 2 reloc_hold bit (6) unaligned, 2 584 2 reloc bit (6) unaligned, 2 585 2 addr_hold bit (18) unaligned, 2 586 2 587 /* WORD 4 */ 2 588 2 589 2 next_label fixed bin (18) unsigned unaligned, 2 590 2 hash_chain fixed bin (18) unsigned unaligned, 2 591 2 592 /* WORD 5 */ 2 593 2 594 2 format_var fixed bin (18) unsigned unaligned, 2 595 2 name fixed bin (17) unaligned, 2 596 2 597 /* WORD 6 */ 2 598 2 599 2 statement fixed bin (18) unsigned unaligned, 2 600 2 loop_end fixed bin (18) unsigned unaligned; 2 601 2 602 2 603 /* LIBRARY NODE */ 2 604 2 605 dcl 1 library aligned based structure, 2 606 2 607 /* WORD 1 */ 2 608 2 609 2 node_type fixed bin (4) unaligned, /* The only field in common with the other nodes. */ 2 610 2 fill bit (13) unaligned, 2 611 2 next_library_node fixed bin (18) unsigned unaligned, 2 612 2 613 /* WORD 2 */ 2 614 2 615 2 character_operand fixed bin (18) unsigned aligned; 2 616 2 617 2 618 /* MACHINE_STATE NODE */ 2 619 2 620 dcl 1 machine_state aligned based structure, 2 621 2 622 /* WORD 1 */ 2 623 2 624 2 node_type fixed bin (4) unal, 2 625 2 pad bit (31) unal, 2 626 2 627 /* WORD 2 */ 2 628 2 629 2 next pointer unaligned, 2 630 2 631 /* WORDS 3-104 */ 2 632 2 633 2 ms aligned, 2 634 2 635 3 eaq (4), /* One for each of the A, Q, EAQ, and IND */ 2 636 4 name fixed bin, 2 637 4 number fixed bin, 2 638 4 variable(4) fixed bin (18), 2 639 4 reserved bit (1) aligned, 2 640 3 rounded bit (1) aligned, 2 641 3 indicators_valid fixed bin (18), 2 642 2 643 3 value_in_xr bit (1) aligned, 2 644 2 645 3 index_regs(0:7), 2 646 4 bits structure unaligned, 2 647 5 global bit (1), 2 648 5 reserved bit (1), 2 649 5 mbz bit (34), 2 650 4 type fixed bin (18), 2 651 4 variable fixed bin (18), 2 652 4 used fixed bin (18), 2 653 4 mbz fixed bin (18), 2 654 2 655 3 address_in_base bit (1) aligned, 2 656 2 657 3 base_regs(0:7), 2 658 4 bits structure unaligned, 2 659 5 global bit (1), 2 660 5 reserved bit (1), 2 661 5 mbz bit (34), 2 662 4 type fixed bin (18), 2 663 4 variable fixed bin (18), 2 664 4 used fixed bin (18), 2 665 4 offset fixed bin (18), 2 666 2 667 3 stack_extended bit (1) aligned, 2 668 3 last_dynamic_temp fixed bin (18); 2 669 2 670 /* POINTER NODE */ 2 671 2 672 dcl 1 pointer aligned based structure, 2 673 2 674 /* WORD 1 */ 2 675 2 676 2 node_type fixed bin (4) unaligned, 2 677 2 pad bit (4) unaligned, 2 678 2 code fixed bin (9) unaligned unsigned, 2 679 2 variable fixed bin (18) unaligned unsigned, 2 680 2 681 /* WORD 2 */ 2 682 2 683 2 offset fixed bin (18) unaligned unsigned, 2 684 2 count fixed bin (18) unaligned unsigned, 2 685 2 686 /* WORD 3 */ 2 687 2 688 2 hash_chain fixed bin (18) aligned; 2 689 2 690 2 691 /* SOURCE NODE */ 2 692 2 693 dcl 1 source aligned based structure, 2 694 2 695 /* WORD 1 */ 2 696 2 697 2 node_type fixed bin (4) unal, 2 698 2 pad bit (13) unal, 2 699 2 line_number fixed bin (17) unaligned, 2 700 2 701 /* WORD 2 */ 2 702 2 703 2 uid bit (36) aligned, 2 704 2 705 /* WORDS 3 & 4 */ 2 706 2 707 2 dtm fixed bin (71) unaligned, 2 708 2 709 /* WORD 5 */ 2 710 2 711 2 next fixed bin (18) unsigned unaligned, 2 712 2 initial_subprogram fixed bin (18) unsigned unaligned, 2 713 2 714 /* WORDS 6 - ? (depends on length of pathname) */ 2 715 2 716 2 pathname char(256) varying; 2 717 2 718 2 719 /* STATEMENT NODE - This node only appears in the polish. */ 2 720 2 721 dcl 1 statement aligned based structure, 2 722 2 723 /* WORD 1 */ 2 724 2 725 2 op_code fixed bin aligned, /* Always equal to "stat_op". */ 2 726 2 727 /* WORD 2 */ 2 728 2 729 2 next bit (18) unaligned, /* "0"b = no next stmnt */ 2 730 2 location bit (18) unaligned, /* (18)"1"b = no text */ 2 731 2 732 /* WORD 3 */ 2 733 2 734 2 source_id structure unaligned, 2 735 3 file fixed bin (8) unsigned, /* 0 = first file */ 2 736 3 line bit (14), 2 737 3 statement bit (5), /* 1 = first statement */ 2 738 2 739 2 length bit (9) unaligned, 2 740 2 741 /* WORD 4 */ 2 742 2 743 2 bits structure unaligned, 2 744 3 put_in_map bit (1) unaligned, 2 745 3 put_in_profile bit (1) unaligned, 2 746 3 pad bit (7) unaligned, 2 747 2 748 2 start fixed bin (26) unaligned; 2 749 2 750 2 751 /* SUBPROGRAM NODE */ 2 752 2 753 dcl 1 subprogram aligned based structure, 2 754 2 755 /* WORD 1 */ 2 756 2 757 2 node_type fixed bin (4) unaligned, /* The only field in common with the other nodes. */ 2 758 2 subprogram_type fixed bin (3) unaligned, 2 759 2 default_is unaligned, 2 760 3 auto bit (1), 2 761 3 static bit (1), 2 762 2 need_PS bit (1) unaligned, 2 763 2 need_prologue bit (1) unaligned, 2 764 2 multiple_entry bit (1) unaligned, 2 765 2 namelist_used bit (1) unaligned, 2 766 2 has_parameters bit (1) unaligned, 2 767 2 star_extent_function bit (1) unaligned, 2 768 2 fill bit (1) unaligned, 2 769 2 770 2 symbol fixed bin (18) unsigned unaligned, /* symbol node for subprogram name */ 2 771 2 772 /* WORD 2 */ 2 773 2 774 2 previous_subprogram fixed bin (18) unsigned unaligned, 2 775 2 next_subprogram fixed bin (18) unsigned unaligned, 2 776 2 777 /* WORD 3 */ 2 778 2 779 2 common_chain fixed bin (18) unsigned unaligned, 2 780 2 equiv_chain fixed bin (18) unsigned unaligned, 2 781 2 782 /* WORD 4 */ 2 783 2 784 2 first_symbol fixed bin (18) unsigned unaligned, 2 785 2 last_symbol fixed bin (18) unsigned unaligned, 2 786 2 787 /* WORD 5 */ 2 788 2 789 2 first_label fixed bin (18) unsigned unaligned, 2 790 2 last_label fixed bin (18) unsigned unaligned, 2 791 2 792 /* WORD 6 */ 2 793 2 794 2 first_polish fixed bin (18) unsigned unaligned, 2 795 2 last_polish fixed bin (18) unsigned unaligned, 2 796 2 797 /* WORD 7 */ 2 798 2 799 2 map unaligned, 2 800 3 first fixed bin (18) unsigned unaligned, 2 801 3 last fixed bin (18) unsigned unaligned, 2 802 2 803 /* WORD 8 */ 2 804 2 805 2 entry_info fixed bin (18) unsigned unaligned, 2 806 2 runtime fixed bin (18) unsigned unaligned, 2 807 2 808 /* WORD 9 */ 2 809 2 810 2 first_quad fixed bin (18) unsigned unaligned, 2 811 2 last_quad fixed bin (18) unsigned unaligned, 2 812 2 813 /* WORD 10 */ 2 814 2 815 2 options aligned like fortran_options, 2 816 2 817 /* WORDS 11 - 44 */ 2 818 2 819 2 storage_info(17) aligned, 2 820 3 first fixed bin (18) unsigned unaligned, 2 821 3 last fixed bin (18) unsigned unaligned, 2 822 3 next_loc fixed bin (18) aligned, 2 823 2 824 /* WORD 45 */ 2 825 2 826 2 loop_vector_p pointer unaligned, 2 827 2 828 /* WORD 46 */ 2 829 2 830 2 n_loops fixed bin (18) unsigned unaligned, 2 831 2 max_operators fixed bin (18) unsigned unaligned, 2 832 2 833 /* WORD 47 */ 2 834 2 835 2 VLA_chain fixed bin (18) unsigned unaligned, /* Mod 1 */ 2 836 2 LA_chain fixed bin (18) unsigned unaligned, /* Mod 1 */ 2 837 /* WORD 48 */ 2 838 2 839 2 max_sym fixed bin (18) aligned; 2 840 2 841 2 842 /* SYMBOL NODE */ 2 843 2 844 dcl 1 symbol aligned based structure, 2 845 2 846 /* WORD 1 */ 2 847 2 848 2 node_type fixed bin (4) unaligned, 2 849 2 data_type fixed bin (4) unaligned unsigned, 2 850 2 operand_type fixed bin (4) unaligned, 2 851 2 852 2 addressing_bits unaligned structure, 2 853 3 is_addressable bit (1), 2 854 3 value_in, 2 855 4 eaq bit (1), 2 856 4 x bit (1), 2 857 3 allocated bit (1), 2 858 3 needs_pointer bit (1), 2 859 3 stack_indirect bit (1), 2 860 3 large_address bit (1), 2 861 3 address_in_base bit (1), 2 862 3 dont_update bit (1), /* for optimizer */ 2 863 3 not_in_storage bit (1), /* for optimizer */ 2 864 3 globally_assigned bit (1), /* for optimizer */ 2 865 2 866 2 bits unaligned structure, 2 867 3 storage_info, 2 868 4 standard_bits, 2 869 5 allocate bit (1), 2 870 5 set bit (1), 2 871 5 referenced bit (1), 2 872 5 passed_as_arg bit (1), 2 873 4 initialed bit (1), /* Allows variable to become a constant. */ 2 874 2 875 3 variable_arglist bit (1), 2 876 3 dummy_arg bit (1), 2 877 3 variable_extents bit (1), 2 878 3 needs_descriptors bit (1), 2 879 3 put_in_symtab bit (1), 2 880 3 by_compiler bit (1), 2 881 2 882 /* WORD 2 */ 2 883 2 884 2 address aligned structure, 2 885 3 base bit (3) unaligned, 2 886 3 offset fixed bin (14) unaligned, 2 887 3 char_num fixed bin (2) unaligned unsigned, 2 888 3 bit_num fixed bin (4) unaligned unsigned, 2 889 3 fill bit (4) unaligned, 2 890 3 inhibit bit (1) unaligned, 2 891 3 ext_base bit (1) unaligned, 2 892 3 tag bit (6) unaligned, 2 893 2 894 /* WORD 3 */ 2 895 2 896 2 units fixed bin (3) unaligned unsigned, 2 897 2 aliasable bit (1) unaligned, 2 898 2 has_constant_value bit (1) unaligned, 2 899 2 new_induction_var bit (1) unaligned, 2 900 2 reloc_hold bit (6) unaligned, 2 901 2 reloc bit (6) unaligned, 2 902 2 addr_hold bit (18) unaligned, 2 903 2 904 /* WORD 4 */ 2 905 2 906 2 next_symbol fixed bin (18) unsigned unaligned, 2 907 2 hash_chain fixed bin (18) unsigned unaligned, 2 908 2 909 /* WORD 5 */ 2 910 2 911 2 ext_attributes unaligned structure, 2 912 3 VLA bit (1), /* symbol is Very large Element */ 2 913 3 LA bit (1), /* symbol is Large Element */ 2 914 3 pad bit (18-2), 2 915 2 916 2 loop_ref_count fixed bin (17) unaligned, 2 917 2 918 /* WORD 6 */ 2 919 2 920 2 location fixed bin (24) aligned, 2 921 2 922 /* WORD 7 */ 2 923 2 924 2 v_length fixed bin (18) unsigned unaligned, 2 925 2 general fixed bin (18) unsigned unaligned, 2 926 2 927 /* WORD 8 */ 2 928 2 929 2 parent fixed bin (18) unsigned unaligned, 2 930 2 next_member fixed bin (18) unsigned unaligned, 2 931 2 932 /* WORD 9 */ 2 933 2 934 2 attributes aligned structure, 2 935 3 mode_bits unaligned structure, 2 936 4 char_size fixed bin (20) unsigned, 2 937 4 mode, 2 938 5 integer bit (1), 2 939 5 real bit (1), 2 940 5 double_precision bit (1), 2 941 5 complex bit (1), 2 942 5 logical bit (1), 2 943 5 character bit (1), 2 944 5 label_value bit (1), 2 945 5 entry_value bit (1), 2 946 2 947 3 misc_attributes unaligned structure, 2 948 4 function bit (1), 2 949 4 subroutine bit (1), 2 950 4 entry_point bit (1), 2 951 4 external bit (1), 2 952 4 builtin bit (1), 2 953 4 stmnt_func bit (1), 2 954 4 namelist bit (1), 2 955 4 dimensioned bit (1), 2 956 2 957 /* WORD 10 */ 2 958 2 959 3 storage_class unaligned structure, 2 960 4 automatic bit (1), 2 961 4 static bit (1), 2 962 4 in_common bit (1), 2 963 4 equivalenced bit (1), 2 964 4 parameter bit (1), 2 965 4 constant bit (1), /* If external or entry_point. */ 2 966 4 named_constant bit (1), 2 967 2 968 3 variable bit (1) unaligned, 2 969 3 in_equiv_stmnt bit (1) unaligned, 2 970 3 star_extents bit (1) unaligned, 2 971 3 descriptor bit (1) unaligned, 2 972 2 pad bit (25) unaligned, 2 973 2 974 /* WORD 11 */ 2 975 2 976 2 dimension fixed bin (18) unsigned unaligned, /* Bounds may be added after symbol is declared. */ 2 977 2 initial fixed bin (18) unsigned unaligned, 2 978 2 979 /* WORD 12 */ 2 980 2 981 2 runtime bit (18) unaligned, 2 982 2 name_length fixed bin (17) unaligned, 2 983 2 984 /* WORD 13 */ 2 985 2 986 2 coordinate fixed bin (17) unaligned, /* used by loop optimizer */ 2 987 2 element_size fixed bin (17) unaligned, 2 988 2 989 /* WORD 14 */ 2 990 2 991 2 secondary pointer unaligned, /* used by loop optimizer */ 2 992 2 993 /* WORD 15 */ 2 994 2 995 2 offset fixed bin (24) aligned, 2 996 2 997 /* WORDS 16 - n. This field is variable in length. */ 2 998 2 999 2 name char(allocate_symbol_name refer (symbol.name_length)) aligned; 2 1000 2 1001 2 1002 2 1003 /* TEMPORARY NODE -- Must be same size as ARRAY REF NODE. */ 2 1004 2 1005 dcl 1 temporary aligned based structure, 2 1006 2 1007 /* WORD 1 */ 2 1008 2 1009 2 node_type fixed bin (4) unaligned, 2 1010 2 data_type fixed bin (4) unaligned unsigned, 2 1011 2 operand_type fixed bin (4) unaligned, 2 1012 2 1013 2 addressing_bits unaligned structure, 2 1014 3 is_addressable bit (1), 2 1015 3 value_in, 2 1016 4 eaq bit (1), 2 1017 4 x bit (1), 2 1018 3 allocated bit (1), 2 1019 3 needs_pointer bit (1), 2 1020 3 stack_indirect bit (1), 2 1021 3 large_address bit (1), 2 1022 3 address_in_base bit (1), 2 1023 3 dont_update bit (1), /* for optimizer */ 2 1024 3 not_in_storage bit (1), /* for optimizer */ 2 1025 3 globally_assigned bit (1), /* for optimizer */ 2 1026 2 1027 2 bits unaligned structure, 2 1028 3 standard_bits, 2 1029 4 allocate bit (1), 2 1030 4 set bit (1), 2 1031 4 referenced bit (1), 2 1032 4 passed_as_arg bit (1), 2 1033 2 1034 3 variable_length bit (1), 2 1035 2 1036 3 fill bit (1), /* can be used */ 2 1037 2 1038 3 invariant bit (1), /* must line up with array_ref node */ 2 1039 3 irreducible bit (1), /* .. */ 2 1040 3 used_across_loops bit (1), /* .. */ 2 1041 3 frozen_for_do bit (1), 2 1042 3 used_as_subscript bit (1), 2 1043 2 1044 /* WORD 2 */ 2 1045 2 1046 2 address aligned structure, 2 1047 3 base bit (3) unaligned, 2 1048 3 offset fixed bin (14) unaligned, 2 1049 3 char_num fixed bin (2) unaligned unsigned, 2 1050 3 bit_num fixed bin (4) unaligned unsigned, 2 1051 3 fill bit (4) unaligned, 2 1052 3 inhibit bit (1) unaligned, 2 1053 3 ext_base bit (1) unaligned, 2 1054 3 tag bit (6) unaligned, 2 1055 2 1056 /* WORD 3 */ 2 1057 2 1058 2 units fixed bin (3) unaligned unsigned, 2 1059 2 fill bit (3) unaligned, 2 1060 2 reloc_hold bit (6) unaligned, 2 1061 2 reloc bit (6) unaligned, 2 1062 2 addr_hold bit (18) unaligned, 2 1063 2 1064 /* WORD 4 */ 2 1065 2 1066 2 next fixed bin (18) unsigned unaligned, 2 1067 2 loop_end_fu_pos fixed bin (17) unaligned, /* must overlay array_ref.loop_end_fu_pos */ 2 1068 2 1069 /* WORD 5 */ 2 1070 2 1071 2 pad fixed bin (18) unsigned unaligned, 2 1072 2 loop_ref_count fixed bin (17) unaligned, 2 1073 2 1074 /* WORD 6 */ 2 1075 2 1076 2 location fixed bin (24) aligned, 2 1077 2 1078 /* WORD 7*/ 2 1079 2 1080 2 ref_count fixed bin (17) unaligned, /* must overlay array_ref.ref_count */ 2 1081 2 output_by fixed bin (18) unsigned unal, /* must overlay array_ref.output_by */ 2 1082 2 1083 /* WORD 8 */ 2 1084 2 1085 2 size fixed bin (24) aligned, /* size in words */ 2 1086 2 1087 /* WORD 9 */ 2 1088 2 1089 2 start_input_to fixed bin (18) unsigned unal, /* must overlay array_ref.start_input_to */ 2 1090 2 end_input_to fixed bin (18) unsigned unal, /* must overlay array_ref.end_input_to */ 2 1091 2 1092 /* WORD 10 */ 2 1093 2 1094 2 ref_count_copy fixed bin (17) unaligned, /* must overlay array_ref.ref_count_copy */ 2 1095 2 ms_ref_count fixed bin (17) unaligned, /* counts occurances in saved machine states */ 2 1096 2 1097 /* WORD 11 */ 2 1098 2 1099 2 length fixed bin (24) aligned; /* length in characters */ 2 1100 2 1101 /* END fort_nodes.incl.pl1 */ 41 42 declare 1 shared_globals aligned based (shared_ptr), 3 1 3 2 /* BEGIN fort_shared_vars.incl.pl1 */ 3 3 3 4 3 5 3 6 /****^ HISTORY COMMENTS: 3 7* 1) change(86-07-14,BWong), approve(86-07-14,MCR7286), audit(86-07-17,Ginter), 3 8* install(86-07-28,MR12.0-1105): 3 9* Fix fortran bug 463. 3 10* END HISTORY COMMENTS */ 3 11 3 12 3 13 /* Created: June 1976, David Levin 3 14* 3 15* Modified: 30 Aug 76, David Levin - to add global variables for listing segment. 3 16* Modified: 22 Nov 76, Richard Barnes - to add profile_size 3 17* Modified: 24 Feb 77, Gabriel Chang - for the optimizer 3 18* Modified: 06 Oct 77, Richard Barnes - for the loop optimizer 3 19* Modified: 16 Nov 77, David Levin - add next_free_(temp array_ref). 3 20* Modified: 09 Oct 78, Paul Smee - for larger common and arrays. 3 21* Modified: 03 Apr 79, Paul Smee - add list of include file data. 3 22* Modified: 17 May 79, Paul Smee - add cur_statement_list. 3 23* Modified: 28 Jun 79, Paul Smee - add compile-time math entry arrays. 3 24* Modified: 13 Sep 79, Paul Smee - add default_char_size. 3 25* Modified: 18 Dec 79, Richard Barnes - add free and freei 3 26* Modified: 03 Mar 80, C R Davis - add must_save_stack_extent. 3 27* Modified: 15 Mar 82, T G Oke - add source (line_number, file_number). 3 28* Modified: 20 Sept 82, T G Oke - add VLA_is_256K flag 3 29* Modified: 22 Sept 82, T G Oke - add area creation info to pass to 3 30* listing generator. 3 31* Modified: 17 May 83, M Mabey - add declared_options. 3 32* Modified: 02 Aug 85, B Wong - 463: changed 'must_save_stack_extent' 3 33* to 'pad' since the variable is no longer used. 3 34**/ 3 35 3 36 2 polish_base ptr, 3 37 2 operand_base ptr, 3 38 2 object_base ptr, 3 39 2 quadruple_base ptr, 3 40 2 opt_base ptr, 3 41 2 relocation_base ptr, 3 42 3 43 2 cref_base ptr, /* base of cross reference segment */ 3 44 2 source_line_base ptr, /* base of source line offset segment */ 3 45 2 listing_base ptr, /* base of listing info segment */ 3 46 2 cur_listing ptr, /* points to listing info for the active subprogram */ 3 47 3 48 2 free(2:4) ptr, /* free chains for optimizer */ 3 49 2 freei ptr, /* .. */ 3 50 3 51 2 polish_max_len fixed bin (19), 3 52 2 operand_max_len fixed bin (19), 3 53 2 object_max_len fixed bin (19), 3 54 2 quad_max_len fixed bin (19), 3 55 2 opt_max_len fixed bin (19), 3 56 3 57 2 next_free_polish fixed bin (18), 3 58 2 next_free_operand fixed bin (18), 3 59 2 next_free_object fixed bin (18), 3 60 2 next_free_listing fixed bin (18), 3 61 2 next_free_quad fixed bin (18), 3 62 2 next_free_array_ref fixed bin (18), /* Chain for freed array_ref nodes. */ 3 63 2 next_free_temp fixed bin (18), /* Chain for freed temporary nodes. */ 3 64 2 next_free_opt fixed bin (18), 3 65 3 66 2 first_segment fixed bin, 3 67 2 number_of_source_segments fixed bin (8), 3 68 2 number_of_lines fixed bin, 3 69 2 number_of_crefs fixed bin, 3 70 2 profile_size fixed bin, 3 71 3 72 2 main_entry_point_name char (32) varying, 3 73 3 74 2 cur_statement fixed bin (18), 3 75 2 cur_statement_list fixed bin (17), 3 76 2 cur_subprogram fixed bin (18), 3 77 2 first_subprogram fixed bin (18), 3 78 2 last_subprogram fixed bin (18), 3 79 2 unnamed_block_data_subprogram 3 80 fixed bin (18), 3 81 2 first_entry_name fixed bin (18), 3 82 2 last_entry_name fixed bin (18), 3 83 3 84 2 constant_info (4) aligned structure, 3 85 3 constant_count fixed bin (17), 3 86 3 first_constant fixed bin (18), 3 87 3 last_constant fixed bin (18), 3 88 3 89 2 options aligned, 3 90 3 user_options aligned like fortran_options, 3 91 3 system_options aligned, 3 92 4 is_fast bit (1) unaligned, 3 93 4 namelist_used bit (1) unaligned, 3 94 4 compile_only bit (1) unaligned, 3 95 4 VLA_is_256K bit (1) unaligned, /* FLAG 255/256K code */ 3 96 4 pad bit (32) unaligned, 3 97 3 98 2 incl_data aligned, 3 99 3 incl_count fixed bin, 3 100 3 file_list (0:255), 3 101 4 source_node_offset fixed bin (18), 3 102 4 incl_len fixed bin (21), 3 103 4 incl_ptr unaligned ptr, 3 104 3 105 2 create_constant entry (fixed bin (4), bit (72) aligned) returns (fixed bin (18)) 3 106 variable, 3 107 2 create_char_constant entry (char (*)) returns (fixed bin (18)) 3 108 variable, 3 109 2 print_message entry options (variable) 3 110 variable, 3 111 2 get_next_temp_segment entry (ptr, fixed bin (18)) returns (ptr) 3 112 variable, 3 113 2 negate_round (6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 3 114 returns (bit (72)) variable, 3 115 2 negate_trunc (6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 3 116 returns (bit (72)) variable, 3 117 2 binop_round (6,6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 3 118 returns (bit (72)) variable, 3 119 2 binop_trunc (6,6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 3 120 returns (bit (72)) variable, 3 121 2 comp_parm (6,6) entry (fixed bin (35), bit (72), bit (72), fixed bin (35)) 3 122 returns (bit (72)) variable, 3 123 2 conv_round (6,6) entry (bit (72), fixed bin (35)) 3 124 returns (bit (72)) variable, 3 125 2 conv_trunc (6,6) entry (bit (72), fixed bin (35)) 3 126 returns (bit (72)) variable, 3 127 2 pad bit (1) aligned, 3 128 3 129 /* The following are used by "print_message - decode_source_id" if use_source_info set. */ 3 130 3 131 2 use_source_info bit (1) aligned, 3 132 2 source_file_number fixed bin (35), 3 133 2 source_line_number fixed bin (35), 3 134 2 Area_create_first fixed bin (18), /* start of text to do creation */ 3 135 2 Area_create_last fixed bin (18), /* Last item */ 3 136 2 Area_init_first fixed bin (18), /* start of text to init areas */ 3 137 2 Area_init_last fixed bin (18), /* Last item */ 3 138 2 declared_options aligned like fortran_declared; 3 139 3 140 dcl num_of_word_constants fixed bin (17) defined (constant_info (1).constant_count); 3 141 dcl first_word_constant fixed bin (18) defined (constant_info (1).first_constant); 3 142 dcl last_word_constant fixed bin (18) defined (constant_info (1).last_constant); 3 143 3 144 dcl num_of_dw_constants fixed bin (17) defined (constant_info (2).constant_count); 3 145 dcl first_dw_constant fixed bin (18) defined (constant_info (2).first_constant); 3 146 dcl last_dw_constant fixed bin (18) defined (constant_info (2).last_constant); 3 147 3 148 dcl num_of_char_constants fixed bin (17) defined (constant_info (3).constant_count); 3 149 dcl first_char_constant fixed bin (18) defined (constant_info (3).first_constant); 3 150 dcl last_char_constant fixed bin (18) defined (constant_info (3).last_constant); 3 151 3 152 dcl num_of_block_constants fixed bin (17) defined (constant_info (4).constant_count); 3 153 dcl first_block_constant fixed bin (18) defined (constant_info (4).first_constant); 3 154 dcl last_block_constant fixed bin (18) defined (constant_info (4).last_constant); 3 155 3 156 /* END fort_shared_vars.incl.pl1 */ 43 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 */ 44 5 1 /* BEGIN INCLUDE FILE ... fort_parameter.incl.pl1 */ 5 2 5 3 /* Created: August 1980, MEP 5 4* 5 5* Modified: 24 March 1981, MEP = Enlarge structure to carry some of thearguments in the call. 5 6**/ 5 7 declare 1 parameter aligned based, 5 8 2 desired_data_type fixed binary (4) unaligned, 5 9 /* IN - result converted to this if ^= 0 */ 5 10 2 result_data_type fixed binary (4) unaligned, 5 11 /* OUT - if no conversion requested, the data_type */ 5 12 2 rounding bit (1) unaligned, /* IN - rounding/trunc flag */ 5 13 2 start_of_polish fixed binary (18) unaligned, 5 14 /* IN - offset of first polish for expression */ 5 15 2 end_of_polish fixed binary (18) unaligned, 5 16 /* IN - offset of last_polish + 1 */ 5 17 2 stack_index fixed binary (18) unaligned, 5 18 /* IN - next free spot in stack, work area above this */ 5 19 2 max_stack fixed binary (18) unaligned, 5 20 /* IN/OUT - stack high water mark */ 5 21 2 result_location fixed binary (18) unaligned, 5 22 /* OUT - if error_code ^= 0, OS offset constant node */ 5 23 2 shared_pointer pointer; /* IN - pointer to shared globals structure */ 5 24 5 25 /* END INCLUDE FILE ... fort_parameter.incl.pl1 */ 45 46 47 declare p pointer; 48 declare target_id character (*); 49 declare error_code fixed binary (35); 50 51 declare 1 parm_stk (0:700) aligned based (addr (stack (stack_index))), 52 2 data_type fixed binary (4) unaligned, 53 2 location fixed binary (18) unaligned, 54 /* valid if char */ 55 2 pad1 bit (12), 56 2 value bit (72) unaligned;/* valid if ^ char */ 57 58 declare shared_ptr pointer; 59 declare start_of_polish fixed binary (18); 60 declare end_of_polish fixed binary (18); 61 declare result_data_type fixed binary (4); 62 declare result_location fixed binary (18); 63 declare desired_data_type fixed binary (4); 64 declare rounding bit (1); 65 declare max_stack fixed binary (18); 66 declare stack_index fixed binary (18); 67 68 declare (mode1, mode2) fixed binary (4) unsigned unaligned; 69 declare based_value bit (72) based; 70 71 declare (max_s_ndx, s_ndx) fixed binary; 72 declare local_error_code fixed binary (35); 73 declare i fixed binary; 74 75 declare OS (0:operand_max_len - 1) bit (36) aligned based (operand_base); 76 declare polish_string (0:polish_max_len - 1) fixed bin (19) aligned based (polish_base); 77 declare stack (0:object_max_len - 1) bit (36) aligned based (object_base); 78 79 declare polish_base pointer; 80 declare object_base pointer; 81 declare operand_base pointer; 82 declare data_ptr pointer; 83 84 declare (addr, currentsize, fixed, length, max, null, rel, size, substr) 85 builtin; 86 87 declare (fixedoverflow, overflow, underflow, zerodivide) 88 condition; 89 90 begin; /* Because some noodge declared a var named 91* error in an include file 92* Begin block can be removed when 93* pl1 bug 1758 is fixed */ 94 95 declare error condition; 96 97 shared_ptr = p -> parameter.shared_pointer; 98 desired_data_type = p -> parameter.desired_data_type; 99 rounding = p -> parameter.rounding; 100 start_of_polish = p -> parameter.start_of_polish; 101 end_of_polish = p -> parameter.end_of_polish; 102 stack_index = p -> parameter.stack_index; 103 max_stack = p -> parameter.max_stack; 104 105 on fixedoverflow go to fixedoverflow_condition; 106 on overflow go to overflow_condition; 107 on underflow go to underflow_condition; 108 on zerodivide go to zerodivide_condition; 109 on error go to error_condition; 110 111 if desired_data_type < 0 | desired_data_type > last_assigned_mode 112 /* illegal data types */ 113 then do; 114 error_code = -1; 115 call print_message (170); 116 call finish_up; 117 return; 118 end; 119 120 local_error_code = 0; 121 s_ndx, max_s_ndx = 0; 122 123 operand_base = shared_globals.operand_base; 124 polish_base = shared_globals.polish_base; 125 object_base = shared_globals.object_base; 126 127 /* error codes returned by the evaluation functions: 128* 129* 0 -- all ok 130* -1 -- bad data types 131* -2 -- operation not yet implemented 132* -3 -- a non-constant operand was encountered 133* -4 -- fixedoverflow condition was signalled 134* -5 -- overflow condition was signalled 135* -6 -- underflow condition was signalled 136* -7 -- zerodivide condition was signalled 137* -8 -- error condition was signalled 138* -9 -- invalid operator encountered 139**/ 140 141 do i = start_of_polish to end_of_polish while (local_error_code = 0); 142 143 if polish_string (i) > last_assigned_op 144 then do; 145 146 /* it must be an operand and better be a constant */ 147 148 data_ptr = addr (OS (polish_string (i))); 149 if data_ptr -> node.node_type = constant_node 150 then do; 151 152 parm_stk (s_ndx).data_type = data_ptr -> constant.data_type; 153 parm_stk (s_ndx).value = data_ptr -> constant.value; 154 s_ndx = s_ndx + 1; 155 max_s_ndx = max (max_s_ndx, s_ndx); 156 end; 157 158 else if data_ptr -> node.node_type = char_constant_node 159 then do; 160 parm_stk (s_ndx).data_type = char_mode; 161 parm_stk (s_ndx).location = polish_string (i); 162 s_ndx = s_ndx + 1; 163 max_s_ndx = max (max_s_ndx, s_ndx); 164 end; 165 166 else do; 167 call print_message (171, addr (OS (polish_string (i))) -> symbol.name, target_id); 168 local_error_code = -3; 169 end; 170 end; 171 172 else if polish_string (i) = negate_op 173 then do; 174 if parm_stk (s_ndx - 1).data_type = char_mode 175 then call bad_data_type; 176 else if rounding 177 then addr (parm_stk (s_ndx - 1).value) -> based_value = 178 negate_round (parm_stk (s_ndx - 1).data_type) 179 (6, addr (parm_stk (s_ndx - 1).value) -> based_value, 180 addr (parm_stk (s_ndx - 1).value) -> based_value, local_error_code); 181 182 else addr (parm_stk (s_ndx - 1).value) -> based_value = 183 negate_trunc (parm_stk (s_ndx - 1).data_type) 184 (6, addr (parm_stk (s_ndx - 1).value) -> based_value, 185 addr (parm_stk (s_ndx - 1).value) -> based_value, local_error_code); 186 end; 187 188 else if polish_string (i) > 1 & polish_string (i) < 7 189 /* binary arithmetic operators */ 190 then do; 191 if parm_stk (s_ndx - 1).data_type = char_mode | parm_stk (s_ndx - 2).data_type = char_mode 192 then call bad_data_type; 193 else if rounding 194 then addr (parm_stk (s_ndx - 2).value) -> based_value = 195 binop_round (parm_stk (s_ndx - 2).data_type, parm_stk (s_ndx - 1).data_type) 196 (polish_string (i) - 1, addr (parm_stk (s_ndx - 2).value) -> based_value, 197 addr (parm_stk (s_ndx - 1).value) -> based_value, local_error_code); 198 199 else addr (parm_stk (s_ndx - 2).value) -> based_value = 200 binop_trunc (parm_stk (s_ndx - 2).data_type, parm_stk (s_ndx - 1).data_type) 201 (polish_string (i) - 1, addr (parm_stk (s_ndx - 2).value) -> based_value, 202 addr (parm_stk (s_ndx - 1).value) -> based_value, local_error_code); 203 204 parm_stk (s_ndx - 2).data_type = 205 max (parm_stk (s_ndx - 1).data_type, parm_stk (s_ndx - 2).data_type); 206 s_ndx = s_ndx - 1; 207 end; 208 209 else if polish_string (i) > 7 & polish_string (i) < 14 210 /* comparisons */ 211 then do; 212 mode1 = parm_stk (s_ndx - 1).data_type; 213 mode2 = parm_stk (s_ndx - 2).data_type; 214 if mode1 ^= char_mode & mode2 ^= char_mode 215 then do; 216 addr (parm_stk (s_ndx - 2).value) -> based_value = 217 comp_parm (parm_stk (s_ndx - 2).data_type, parm_stk (s_ndx - 1).data_type) 218 (polish_string (i) - 1, addr (parm_stk (s_ndx - 2).value) -> based_value, 219 addr (parm_stk (s_ndx - 1).value) -> based_value, local_error_code); 220 221 parm_stk (s_ndx - 2).data_type = logical_mode; 222 s_ndx = s_ndx - 1; 223 end; 224 else if mode1 = char_mode & mode2 = char_mode 225 then do; 226 parm_stk (s_ndx - 2).value = 227 comp_chars (polish_string (i), (parm_stk (s_ndx - 2).location), 228 (parm_stk (s_ndx - 1).location)); 229 parm_stk (s_ndx - 2).data_type = logical_mode; 230 s_ndx = s_ndx - 1; 231 end; 232 else call bad_data_type; 233 end; 234 235 else if polish_string (i) = not_op 236 then if parm_stk (s_ndx - 1).data_type = logical_mode 237 then substr (parm_stk (s_ndx - 1).value, 1, 1) = ^substr (parm_stk (s_ndx - 1).value, 1, 1); 238 else call bad_operation; 239 240 else if polish_string (i) = or_op | polish_string (i) = and_op 241 then if parm_stk (s_ndx - 1).data_type = logical_mode & parm_stk (s_ndx - 1).data_type = logical_mode 242 then do; 243 if polish_string (i) = or_op 244 then parm_stk (s_ndx - 2).value = 245 parm_stk (s_ndx - 2).value | parm_stk (s_ndx - 1).value; 246 else parm_stk (s_ndx - 2).value = 247 parm_stk (s_ndx - 2).value & parm_stk (s_ndx - 1).value; 248 s_ndx = s_ndx - 1; 249 end; 250 else call bad_operation; 251 252 else if polish_string (i) = cat_op 253 then do; 254 if parm_stk (s_ndx - 2).data_type = char_mode & parm_stk (s_ndx - 1).data_type = char_mode 255 then do; 256 parm_stk (s_ndx - 2).location = 257 concat_char_cons ((parm_stk (s_ndx - 2).location), 258 (parm_stk (s_ndx - 1).location)); 259 s_ndx = s_ndx - 1; 260 end; 261 else call bad_data_type; 262 end; 263 264 else call bad_operation; 265 266 end; 267 268 if local_error_code = 0 & desired_data_type ^= 0 & desired_data_type ^= char_mode 269 then if rounding 270 then addr (parm_stk (s_ndx - 1).value) -> based_value = 271 conv_round (desired_data_type, parm_stk (s_ndx - 1).data_type) 272 (addr (parm_stk (s_ndx - 1).value) -> based_value, local_error_code); 273 else addr (parm_stk (s_ndx - 1).value) -> based_value = 274 conv_trunc (desired_data_type, parm_stk (s_ndx - 1).data_type) 275 (addr (parm_stk (s_ndx - 1).value) -> based_value, local_error_code); 276 277 else if local_error_code = -1 278 then call print_message (172, target_id); 279 280 else if local_error_code = -2 281 then call print_message (173, target_id); 282 283 else if local_error_code = -3 284 then do; 285 error_code = local_error_code; 286 call finish_up; 287 return; 288 end; 289 290 if desired_data_type ^= 0 291 then p -> parameter.result_data_type = desired_data_type; 292 else p -> parameter.result_data_type = parm_stk (s_ndx - 1).data_type; 293 294 if p -> parameter.result_data_type = char_mode 295 then p -> parameter.result_location = parm_stk (s_ndx - 1).location; 296 else p -> parameter.result_location = 297 create_constant ((p -> parameter.result_data_type), (parm_stk (s_ndx - 1).value)); 298 299 error_code = local_error_code; 300 301 call finish_up; 302 return; 303 304 fixedoverflow_condition: 305 call print_message (174, "fixedoverflow", target_id); 306 error_code = -4; 307 call finish_up; 308 return; 309 310 overflow_condition: 311 call print_message (174, "overflow", target_id); 312 error_code = -5; 313 call finish_up; 314 return; 315 316 underflow_condition: 317 call print_message (174, "underflow", target_id); 318 error_code = -6; 319 call finish_up; 320 return; 321 322 zerodivide_condition: 323 call print_message (174, "zerodivide", target_id); 324 error_code = -7; 325 call finish_up; 326 return; 327 328 error_condition: 329 call print_message (174, "error", target_id); 330 error_code = -8; 331 call finish_up; 332 return; 333 334 end; 335 336 finish_up: 337 procedure; 338 339 p -> parameter.max_stack = max (max_stack, binary (rel (addr (parm_stk (max_s_ndx))), 18)); 340 revert fixedoverflow, overflow, underflow, zerodivide, error; 341 342 end finish_up; 343 344 comp_chars: 345 procedure (op_id, oper1, oper2) returns (bit (72) aligned); 346 347 /* do the pl1 character comparisons, used to be in fort_parm_math */ 348 349 declare op_id fixed binary (19); 350 declare (oper1, oper2) fixed binary (18); 351 declare (ch1, ch2) pointer; 352 353 ch1 = addr (OS (oper1)); 354 ch2 = addr (OS (oper2)); 355 goto comparison (op_id); 356 357 comparison (8): /* less_op */ 358 return (ch1 -> char_constant.value < ch2 -> char_constant.value); 359 360 comparison (9): /* less_or_equal_op */ 361 return (ch1 -> char_constant.value <= ch2 -> char_constant.value); 362 363 comparison (10): /* equal_op */ 364 return (ch1 -> char_constant.value = ch2 -> char_constant.value); 365 366 comparison (11): /* not_equal_op */ 367 return (ch1 -> char_constant.value ^= ch2 -> char_constant.value); 368 369 comparison (12): /* greater_or_equal_op */ 370 return (ch1 -> char_constant.value >= ch2 -> char_constant.value); 371 372 comparison (13): /* greater_op */ 373 return (ch1 -> char_constant.value > ch2 -> char_constant.value); 374 375 end comp_chars; 376 377 concat_char_cons: 378 procedure (ch1, ch2) returns (fixed binary (18)); 379 380 /* procedure to do the concatenation and store the result in a temp char_cons */ 381 382 declare (ch1, ch2) fixed binary (18); 383 384 return (create_char_constant (addr (OS (ch1)) -> char_constant.value || addr (OS (ch2)) -> char_constant.value)) 385 ; 386 387 end concat_char_cons; 388 389 bad_data_type: 390 procedure (); 391 call print_message (176, target_id); 392 local_error_code = -3; 393 return; 394 end bad_data_type; 395 396 397 bad_operation: 398 procedure (); 399 call print_message (175, target_id); 400 local_error_code = -9; 401 return; 402 end bad_operation; 403 404 405 end fort_eval_parm; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/10/88 1336.9 fort_eval_parm.pl1 >spec>install>MR12.2-1209>fort_eval_parm.pl1 40 1 08/04/86 2015.0 fort_system_constants.incl.pl1 >ldd>include>fort_system_constants.incl.pl1 41 2 11/10/88 1314.2 fort_nodes.incl.pl1 >spec>install>MR12.2-1209>fort_nodes.incl.pl1 43 3 08/04/86 2015.0 fort_shared_vars.incl.pl1 >ldd>include>fort_shared_vars.incl.pl1 44 4 08/06/87 1153.7 fort_options.incl.pl1 >ldd>include>fort_options.incl.pl1 45 5 03/27/82 0424.8 fort_parameter.incl.pl1 >ldd>include>fort_parameter.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. OS based bit(36) array dcl 75 set ref 148 167 353 354 384 384 addr builtin function dcl 84 ref 148 152 153 160 161 167 174 176 176 176 176 176 176 176 182 182 182 182 182 182 182 191 191 193 193 193 193 193 193 193 193 199 199 199 199 199 199 199 199 204 204 204 212 213 216 216 216 216 216 216 216 216 221 226 226 226 229 235 235 235 240 240 243 243 243 246 246 246 254 254 256 256 256 268 268 268 268 268 273 273 273 273 273 292 294 296 339 339 353 354 384 384 and_op constant fixed bin(18,0) initial dcl 1-197 ref 240 based_value based bit(72) packed unaligned dcl 69 set ref 176* 176* 176* 182* 182* 182* 193* 193* 193* 199* 199* 199* 216* 216* 216* 268* 268* 273* 273* binop_round 1620 based entry variable array level 2 dcl 42 ref 193 binop_trunc 2040 based entry variable array level 2 dcl 42 ref 199 cat_op constant fixed bin(18,0) initial dcl 1-197 ref 252 ch1 000146 automatic pointer dcl 351 in procedure "comp_chars" set ref 353* 357 360 363 366 369 372 ch1 parameter fixed bin(18,0) dcl 382 in procedure "concat_char_cons" ref 377 384 ch2 parameter fixed bin(18,0) dcl 382 in procedure "concat_char_cons" ref 377 384 ch2 000150 automatic pointer dcl 351 in procedure "comp_chars" set ref 354* 357 360 363 366 369 372 char_constant based structure level 1 dcl 2-316 char_constant_node constant fixed bin(4,0) initial dcl 1-87 ref 158 char_mode constant fixed bin(4,0) initial dcl 1-106 ref 160 174 191 191 214 214 224 224 254 254 268 294 comp_parm 2260 based entry variable array level 2 dcl 42 ref 216 constant based structure level 1 dcl 2-256 constant_node constant fixed bin(4,0) initial dcl 1-87 ref 149 conv_round 2500 based entry variable array level 2 dcl 42 ref 268 conv_trunc 2720 based entry variable array level 2 dcl 42 ref 273 create_char_constant 1524 based entry variable level 2 dcl 42 ref 384 create_constant 1520 based entry variable level 2 dcl 42 ref 296 data_ptr 000124 automatic pointer dcl 82 set ref 148* 149 152 153 158 data_type based fixed bin(4,0) array level 2 in structure "parm_stk" packed packed unaligned dcl 51 in procedure "fort_eval_parm" set ref 152* 160* 174 176 182 191 191 193 193 199 199 204* 204 204 212 213 216 216 221* 229* 235 240 240 254 254 268 273 292 data_type 0(05) based fixed bin(4,0) level 2 in structure "constant" packed packed unsigned unaligned dcl 2-256 in procedure "fort_eval_parm" ref 152 desired_data_type 000104 automatic fixed bin(4,0) dcl 63 in procedure "fort_eval_parm" set ref 98* 111 111 268 268 268 273 290 290 desired_data_type based fixed bin(4,0) level 2 in structure "parameter" packed packed unaligned dcl 5-7 in procedure "fort_eval_parm" ref 98 end_of_polish 0(30) based fixed bin(18,0) level 2 in structure "parameter" packed packed unaligned dcl 5-7 in procedure "fort_eval_parm" ref 101 end_of_polish 000103 automatic fixed bin(18,0) dcl 60 in procedure "fort_eval_parm" set ref 101* 141 error 000100 stack reference condition dcl 95 in begin block on line 90 ref 109 error internal static fixed bin(4,0) initial dcl 1-120 in procedure "fort_eval_parm" ref 340 error_code parameter fixed bin(35,0) dcl 49 set ref 20 114* 285* 299* 306* 312* 318* 324* 330* fixedoverflow 000000 stack reference condition dcl 87 ref 105 340 fortran_declared based structure level 1 dcl 4-91 fortran_options based structure level 1 dcl 4-40 i 000115 automatic fixed bin(17,0) dcl 73 set ref 141* 143 148 161 167 172 188 188 193 199 209 209 216 226 235 240 240 243 252* last_assigned_mode constant fixed bin(4,0) initial dcl 1-106 ref 111 last_assigned_op constant fixed bin(18,0) initial dcl 1-197 ref 143 length 4 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 2-316 ref 357 357 360 360 363 363 366 366 369 369 372 372 384 384 local_error_code 000114 automatic fixed bin(35,0) dcl 72 set ref 120* 141 168* 176* 182* 193* 199* 216* 268 268* 273* 277 280 283 285 299 392* 400* location 0(05) based fixed bin(18,0) array level 2 packed packed unaligned dcl 51 set ref 161* 226 226 256* 256 256 294 logical_mode constant fixed bin(4,0) initial dcl 1-106 ref 221 229 235 240 240 max builtin function dcl 84 ref 155 163 204 339 max_s_ndx 000112 automatic fixed bin(17,0) dcl 71 set ref 121* 155* 155 163* 163 339 max_stack 1(32) based fixed bin(18,0) level 2 in structure "parameter" packed packed unaligned dcl 5-7 in procedure "fort_eval_parm" set ref 103 339* max_stack 000106 automatic fixed bin(18,0) dcl 65 in procedure "fort_eval_parm" set ref 103* 339 mode1 000110 automatic fixed bin(4,0) packed unsigned unaligned dcl 68 set ref 212* 214 224 mode2 000111 automatic fixed bin(4,0) packed unsigned unaligned dcl 68 set ref 213* 214 224 name 20 based char level 2 dcl 2-844 set ref 167* name_length 14(07) based fixed bin(17,0) level 2 packed packed unaligned dcl 2-844 ref 167 167 negate_op constant fixed bin(18,0) initial dcl 1-197 ref 172 negate_round 1540 based entry variable array level 2 dcl 42 ref 176 negate_trunc 1570 based entry variable array level 2 dcl 42 ref 182 node based structure level 1 dcl 2-63 node_type based fixed bin(4,0) level 2 packed packed unaligned dcl 2-63 ref 149 158 not_op constant fixed bin(18,0) initial dcl 1-197 ref 235 object_base 000120 automatic pointer dcl 80 in procedure "fort_eval_parm" set ref 125* 152 153 160 161 174 176 176 176 176 182 182 182 182 191 191 193 193 193 193 193 199 199 199 199 199 204 204 204 212 213 216 216 216 216 216 221 226 226 226 229 235 235 235 240 240 243 243 243 246 246 246 254 254 256 256 256 268 268 268 273 273 273 292 294 296 339 object_base 4 based pointer level 2 in structure "shared_globals" dcl 42 in procedure "fort_eval_parm" ref 125 op_id parameter fixed bin(19,0) dcl 349 ref 344 355 oper1 parameter fixed bin(18,0) dcl 350 ref 344 353 oper2 parameter fixed bin(18,0) dcl 350 ref 344 354 operand_base 2 based pointer level 2 in structure "shared_globals" dcl 42 in procedure "fort_eval_parm" ref 123 operand_base 000122 automatic pointer dcl 81 in procedure "fort_eval_parm" set ref 123* 148 167 353 354 384 384 or_op constant fixed bin(18,0) initial dcl 1-197 ref 240 243 overflow 000000 stack reference condition dcl 87 ref 106 340 p parameter pointer dcl 47 ref 20 97 98 99 100 101 102 103 290 292 294 294 296 296 339 parameter based structure level 1 dcl 5-7 parm_stk based structure array level 1 dcl 51 set ref 339 polish_base based pointer level 2 in structure "shared_globals" dcl 42 in procedure "fort_eval_parm" ref 124 polish_base 000116 automatic pointer dcl 79 in procedure "fort_eval_parm" set ref 124* 143 148 161 167 172 188 188 193 199 209 209 216 226 235 240 240 243 252 polish_string based fixed bin(19,0) array dcl 76 set ref 143 148 161 167 172 188 188 193 199 209 209 216 226* 235 240 240 243 252 print_message 1530 based entry variable level 2 dcl 42 ref 115 167 277 280 304 310 316 322 328 391 399 rel builtin function dcl 84 ref 339 result_data_type 0(05) based fixed bin(4,0) level 2 packed packed unaligned dcl 5-7 set ref 290* 292* 294 296 result_location 2(15) based fixed bin(18,0) level 2 packed packed unaligned dcl 5-7 set ref 294* 296* rounding 000105 automatic bit(1) packed unaligned dcl 64 in procedure "fort_eval_parm" set ref 99* 176 193 268 rounding 0(10) based bit(1) level 2 in structure "parameter" packed packed unaligned dcl 5-7 in procedure "fort_eval_parm" ref 99 s_ndx 000113 automatic fixed bin(17,0) dcl 71 set ref 121* 152 153 154* 154 155 160 161 162* 162 163 174 176 176 176 176 182 182 182 182 191 191 193 193 193 193 193 199 199 199 199 199 204 204 204 206* 206 212 213 216 216 216 216 216 221 222* 222 226 226 226 229 230* 230 235 235 235 240 240 243 243 243 246 246 246 248* 248 254 254 256 256 256 259* 259 268 268 268 273 273 273 292 294 296 shared_globals based structure level 1 dcl 42 shared_pointer 4 based pointer level 2 dcl 5-7 ref 97 shared_ptr 000100 automatic pointer dcl 58 set ref 97* 115 123 124 125 167 176 182 193 199 216 268 273 277 280 296 304 310 316 322 328 384 391 399 stack based bit(36) array dcl 77 set ref 152 153 160 161 174 176 176 176 176 182 182 182 182 191 191 193 193 193 193 193 199 199 199 199 199 204 204 204 212 213 216 216 216 216 216 221 226 226 226 229 235 235 235 240 240 243 243 243 246 246 246 254 254 256 256 256 268 268 268 273 273 273 292 294 296 339 stack_index 000107 automatic fixed bin(18,0) dcl 66 in procedure "fort_eval_parm" set ref 102* 152 153 160 161 174 176 176 176 176 182 182 182 182 191 191 193 193 193 193 193 199 199 199 199 199 204 204 204 212 213 216 216 216 216 216 221 226 226 226 229 235 235 235 240 240 243 243 243 246 246 246 254 254 256 256 256 268 268 268 273 273 273 292 294 296 339 stack_index 1(13) based fixed bin(18,0) level 2 in structure "parameter" packed packed unaligned dcl 5-7 in procedure "fort_eval_parm" ref 102 start_of_polish 000102 automatic fixed bin(18,0) dcl 59 in procedure "fort_eval_parm" set ref 100* 141 start_of_polish 0(11) based fixed bin(18,0) level 2 in structure "parameter" packed packed unaligned dcl 5-7 in procedure "fort_eval_parm" ref 100 substr builtin function dcl 84 set ref 235* 235 symbol based structure level 1 dcl 2-844 target_id parameter char packed unaligned dcl 48 set ref 20 167* 277* 280* 304* 310* 316* 322* 328* 391* 399* underflow 000000 stack reference condition dcl 87 ref 107 340 value 2 based bit(72) array level 2 in structure "parm_stk" packed packed unaligned dcl 51 in procedure "fort_eval_parm" set ref 153* 176 176 176 182 182 182 193 193 193 199 199 199 216 216 216 226* 235* 235 243* 243 243 246* 246 246 268 268 273 273 296 value 4 based bit(72) level 2 in structure "constant" dcl 2-256 in procedure "fort_eval_parm" ref 153 value 4(18) based char level 2 in structure "char_constant" packed packed unaligned dcl 2-316 in procedure "fort_eval_parm" ref 357 357 360 360 363 363 366 366 369 369 372 372 384 384 zerodivide 000000 stack reference condition dcl 87 ref 108 340 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. EOS_token internal static bit(9) initial dcl 1-156 add_op internal static fixed bin(18,0) initial dcl 1-197 allocate_symbol_name automatic fixed bin(17,0) dcl 2-525 and internal static bit(9) initial dcl 1-156 apostrophe internal static bit(9) initial dcl 1-156 arg_desc based structure level 1 dcl 2-130 arg_desc_node internal static fixed bin(4,0) initial dcl 1-87 array_ref based structure level 1 dcl 2-155 array_ref_node internal static fixed bin(4,0) initial dcl 1-87 array_ref_type internal static fixed bin(4,0) initial dcl 1-120 assign internal static bit(9) initial dcl 1-156 assign_label_op internal static fixed bin(18,0) initial dcl 1-197 assign_op internal static fixed bin(18,0) initial dcl 1-197 asterisk internal static bit(9) initial dcl 1-156 backspace_op internal static fixed bin(18,0) initial dcl 1-197 bias internal static fixed bin(19,0) initial dcl 1-56 bif internal static fixed bin(4,0) initial dcl 1-120 bit_units internal static fixed bin(3,0) initial dcl 1-136 bits_per_char internal static fixed bin(9,0) initial dcl 1-68 blank_common_name internal static char(8) initial dcl 1-79 block_data internal static fixed bin(9,0) initial dcl 1-68 block_data_op internal static fixed bin(18,0) initial dcl 1-197 block_if_op internal static fixed bin(18,0) initial dcl 1-197 builtin_op internal static fixed bin(18,0) initial dcl 1-197 call_op internal static fixed bin(18,0) initial dcl 1-197 chain_op internal static fixed bin(18,0) initial dcl 1-197 char_constant_length automatic fixed bin(18,0) unsigned dcl 2-378 char_string internal static bit(9) initial dcl 1-156 char_units internal static fixed bin(3,0) initial dcl 1-136 chars_per_dw internal static fixed bin(9,0) initial dcl 1-68 chars_per_word internal static fixed bin(9,0) initial dcl 1-68 close_op internal static fixed bin(18,0) initial dcl 1-197 closefile_op internal static fixed bin(18,0) initial dcl 1-197 cmpx_mode internal static fixed bin(4,0) initial dcl 1-106 colon internal static bit(9) initial dcl 1-156 comma internal static bit(9) initial dcl 1-156 complex_const internal static bit(9) initial dcl 1-156 concat internal static bit(9) initial dcl 1-156 constant_type internal static fixed bin(4,0) initial dcl 1-120 convert_to_cmpx_op internal static fixed bin(18,0) initial dcl 1-197 convert_to_dp_op internal static fixed bin(18,0) initial dcl 1-197 convert_to_int_op internal static fixed bin(18,0) initial dcl 1-197 convert_to_real_op internal static fixed bin(18,0) initial dcl 1-197 count_type internal static fixed bin(4,0) initial dcl 1-120 currentsize builtin function dcl 84 data_type_size internal static fixed bin(17,0) initial array dcl 1-115 dec_int internal static bit(9) initial dcl 1-156 decode_string_op internal static fixed bin(18,0) initial dcl 1-197 default_main_entry_point_name internal static char(5) initial packed unaligned dcl 1-80 dfast_mask internal static bit(72) initial packed unaligned dcl 4-162 dimension based structure level 1 dcl 2-383 dimension_node internal static fixed bin(4,0) initial dcl 1-87 div_op internal static fixed bin(18,0) initial dcl 1-197 do_op internal static fixed bin(18,0) initial dcl 1-197 double_const internal static bit(9) initial dcl 1-156 dp_mode internal static fixed bin(4,0) initial dcl 1-106 dummy internal static fixed bin(4,0) initial dcl 1-120 else_if_op internal static fixed bin(18,0) initial dcl 1-197 else_op internal static fixed bin(18,0) initial dcl 1-197 encode_string_op internal static fixed bin(18,0) initial dcl 1-197 end_label_op internal static fixed bin(18,0) initial dcl 1-197 endfile_op internal static fixed bin(18,0) initial dcl 1-197 endunit_op internal static fixed bin(18,0) initial dcl 1-197 entry_type internal static fixed bin(4,0) initial dcl 1-120 eol_op internal static fixed bin(18,0) initial dcl 1-197 eq internal static bit(9) initial dcl 1-156 equal_op internal static fixed bin(18,0) initial dcl 1-197 equiv_op internal static fixed bin(18,0) initial dcl 1-197 eqv internal static bit(9) initial dcl 1-156 error_label_op internal static fixed bin(18,0) initial dcl 1-197 exit_op internal static fixed bin(18,0) initial dcl 1-197 expon internal static bit(9) initial dcl 1-156 exponentiation_op internal static fixed bin(18,0) initial dcl 1-197 external internal static fixed bin(4,0) initial dcl 1-120 false internal static bit(9) initial dcl 1-156 fast_mask internal static bit(72) initial packed unaligned dcl 4-168 fill_node internal static fixed bin(4,0) initial dcl 1-87 first_auto_loc internal static fixed bin(9,0) initial dcl 1-68 first_block_constant defined fixed bin(18,0) dcl 3-153 first_char_constant defined fixed bin(18,0) dcl 3-149 first_dw_constant defined fixed bin(18,0) dcl 3-145 first_word_constant defined fixed bin(18,0) dcl 3-141 fixed builtin function dcl 84 form_VLA_packed_ptr_op internal static fixed bin(18,0) initial dcl 1-197 format_op internal static fixed bin(18,0) initial dcl 1-197 func_op internal static fixed bin(18,0) initial dcl 1-197 func_ref_op internal static fixed bin(18,0) initial dcl 1-197 function internal static fixed bin(9,0) initial dcl 1-68 gap_value internal static fixed bin(17,0) initial dcl 1-57 ge internal static bit(9) initial dcl 1-156 greater_op internal static fixed bin(18,0) initial dcl 1-197 greater_or_equal_op internal static fixed bin(18,0) initial dcl 1-197 gt internal static bit(9) initial dcl 1-156 halfword_units internal static fixed bin(3,0) initial dcl 1-136 header based structure level 1 dcl 2-436 header_node internal static fixed bin(4,0) initial dcl 1-87 ident internal static bit(9) initial dcl 1-156 increment_polish_op internal static fixed bin(18,0) initial dcl 1-197 inquire_op internal static fixed bin(18,0) initial dcl 1-197 int_mode internal static fixed bin(4,0) initial dcl 1-106 iostat_op internal static fixed bin(18,0) initial dcl 1-197 is_arith_constant internal static bit(9) initial dcl 1-147 is_constant internal static bit(9) initial dcl 1-147 is_operand internal static bit(9) initial dcl 1-147 is_operator internal static bit(9) initial dcl 1-147 item_op internal static fixed bin(18,0) initial dcl 1-197 jump_arithmetic_op internal static fixed bin(18,0) initial dcl 1-197 jump_assigned_op internal static fixed bin(18,0) initial dcl 1-197 jump_computed_op internal static fixed bin(18,0) initial dcl 1-197 jump_false_op internal static fixed bin(18,0) initial dcl 1-197 jump_logical_op internal static fixed bin(18,0) initial dcl 1-197 jump_op internal static fixed bin(18,0) initial dcl 1-197 jump_true_op internal static fixed bin(18,0) initial dcl 1-197 label based structure level 1 dcl 2-530 label_const internal static bit(9) initial dcl 1-156 label_node internal static fixed bin(4,0) initial dcl 1-87 label_op internal static fixed bin(18,0) initial dcl 1-197 last_block_constant defined fixed bin(18,0) dcl 3-154 last_char_constant defined fixed bin(18,0) dcl 3-150 last_dw_constant defined fixed bin(18,0) dcl 3-146 last_word_constant defined fixed bin(18,0) dcl 3-142 le internal static bit(9) initial dcl 1-156 left_parn internal static bit(9) initial dcl 1-156 left_shift_op internal static fixed bin(18,0) initial dcl 1-197 length builtin function dcl 84 less_op internal static fixed bin(18,0) initial dcl 1-197 less_or_equal_op internal static fixed bin(18,0) initial dcl 1-197 lhs_fld_op internal static fixed bin(18,0) initial dcl 1-197 library based structure level 1 dcl 2-605 library_node internal static fixed bin(4,0) initial dcl 1-87 load_preg_op internal static fixed bin(18,0) initial dcl 1-197 load_xreg_op internal static fixed bin(18,0) initial dcl 1-197 logical_const internal static bit(9) initial dcl 1-156 loop_end_op internal static fixed bin(18,0) initial dcl 1-197 lt internal static bit(9) initial dcl 1-156 machine_state based structure level 1 dcl 2-620 machine_state_node internal static fixed bin(4,0) initial dcl 1-87 main_op internal static fixed bin(18,0) initial dcl 1-197 main_program internal static fixed bin(9,0) initial dcl 1-68 margin_op internal static fixed bin(18,0) initial dcl 1-197 max_char_length internal static fixed bin(10,0) initial dcl 1-77 max_error_level internal static fixed bin(17,0) initial dcl 1-64 max_fixed_bin_18 internal static fixed bin(18,0) initial dcl 1-58 max_fixed_bin_24 internal static fixed bin(24,0) initial dcl 1-59 max_num_of_rands internal static fixed bin(17,0) initial dcl 1-60 max_prec_single internal static fixed bin(9,0) initial dcl 1-68 minus internal static bit(9) initial dcl 1-156 mult_op internal static fixed bin(18,0) initial dcl 1-197 namelist_op internal static fixed bin(18,0) initial dcl 1-197 ne internal static bit(9) initial dcl 1-156 neg_storage_add_op internal static fixed bin(18,0) initial dcl 1-197 neqv internal static bit(9) initial dcl 1-156 no_op internal static fixed bin(18,0) initial dcl 1-197 no_token internal static bit(9) initial dcl 1-156 non_executable internal static fixed bin(18,0) initial dcl 1-197 not internal static bit(9) initial dcl 1-156 not_equal_op internal static fixed bin(18,0) initial dcl 1-197 not_equiv_op internal static fixed bin(18,0) initial dcl 1-197 null builtin function dcl 84 num_args automatic fixed bin(17,0) dcl 2-150 num_dims automatic fixed bin(3,0) dcl 2-431 num_of_block_constants defined fixed bin(17,0) dcl 3-152 num_of_char_constants defined fixed bin(17,0) dcl 3-148 num_of_dw_constants defined fixed bin(17,0) dcl 3-144 num_of_word_constants defined fixed bin(17,0) dcl 3-140 octal_const internal static bit(9) initial dcl 1-156 open_op internal static fixed bin(18,0) initial dcl 1-197 openfile_op internal static fixed bin(18,0) initial dcl 1-197 opt_subscript_op internal static fixed bin(18,0) initial dcl 1-197 or internal static bit(9) initial dcl 1-156 pause_op internal static fixed bin(18,0) initial dcl 1-197 plus internal static bit(9) initial dcl 1-156 pointer based structure level 1 dcl 2-672 pointer_node internal static fixed bin(4,0) initial dcl 1-87 proc_frame_node internal static fixed bin(4,0) initial dcl 1-87 process_param_list_op internal static fixed bin(18,0) initial dcl 1-197 read_array_op internal static fixed bin(18,0) initial dcl 1-197 read_internal_file_op internal static fixed bin(18,0) initial dcl 1-197 read_namelist_op internal static fixed bin(18,0) initial dcl 1-197 read_op internal static fixed bin(18,0) initial dcl 1-197 read_scalar_op internal static fixed bin(18,0) initial dcl 1-197 read_vector_op internal static fixed bin(18,0) initial dcl 1-197 real_const internal static bit(9) initial dcl 1-156 real_mode internal static fixed bin(4,0) initial dcl 1-106 record_number_op internal static fixed bin(18,0) initial dcl 1-197 rel_constant internal static fixed bin(4,0) initial dcl 1-120 result_data_type automatic fixed bin(4,0) dcl 61 result_location automatic fixed bin(18,0) dcl 62 return_op internal static fixed bin(18,0) initial dcl 1-197 rewind_op internal static fixed bin(18,0) initial dcl 1-197 right_parn internal static bit(9) initial dcl 1-156 right_shift_op internal static fixed bin(18,0) initial dcl 1-197 sf_def_op internal static fixed bin(18,0) initial dcl 1-197 sf_op internal static fixed bin(18,0) initial dcl 1-197 size builtin function dcl 84 slash internal static bit(9) initial dcl 1-156 source based structure level 1 dcl 2-693 source_node internal static fixed bin(4,0) initial dcl 1-87 stat_op internal static fixed bin(18,0) initial dcl 1-197 statement based structure level 1 dcl 2-721 statement_function internal static fixed bin(4,0) initial dcl 1-120 stop_op internal static fixed bin(18,0) initial dcl 1-197 storage_add_one_op internal static fixed bin(18,0) initial dcl 1-197 storage_add_op internal static fixed bin(18,0) initial dcl 1-197 storage_sub_op internal static fixed bin(18,0) initial dcl 1-197 store_zero_op internal static fixed bin(18,0) initial dcl 1-197 string_length_op internal static fixed bin(18,0) initial dcl 1-197 string_op internal static fixed bin(18,0) initial dcl 1-197 sub_index_op internal static fixed bin(18,0) initial dcl 1-197 sub_op internal static fixed bin(18,0) initial dcl 1-197 subprogram based structure level 1 dcl 2-753 subprogram_node internal static fixed bin(4,0) initial dcl 1-87 subr_op internal static fixed bin(18,0) initial dcl 1-197 subroutine internal static fixed bin(9,0) initial dcl 1-68 subscript_op internal static fixed bin(18,0) initial dcl 1-197 substr_left_parn internal static bit(9) initial dcl 1-156 substr_op internal static fixed bin(18,0) initial dcl 1-197 symbol_node internal static fixed bin(4,0) initial dcl 1-87 sys_info$max_seg_size external static fixed bin(18,0) dcl 1-61 temp_type internal static fixed bin(4,0) initial dcl 1-120 temporary based structure level 1 dcl 2-1005 temporary_node internal static fixed bin(4,0) initial dcl 1-87 terminate_op internal static fixed bin(18,0) initial dcl 1-197 true internal static bit(9) initial dcl 1-156 typeless_mode internal static fixed bin(4,0) initial dcl 1-106 units_per_word internal static fixed bin(6,0) initial array dcl 1-142 unnamed_block_data_subprg_name internal static char(29) initial packed unaligned dcl 1-82 unrecoverable_error internal static fixed bin(17,0) initial dcl 1-64 variable_type internal static fixed bin(4,0) initial dcl 1-120 word_units internal static fixed bin(3,0) initial dcl 1-136 write_array_op internal static fixed bin(18,0) initial dcl 1-197 write_internal_file_op internal static fixed bin(18,0) initial dcl 1-197 write_namelist_op internal static fixed bin(18,0) initial dcl 1-197 write_op internal static fixed bin(18,0) initial dcl 1-197 write_scalar_op internal static fixed bin(18,0) initial dcl 1-197 write_vector_op internal static fixed bin(18,0) initial dcl 1-197 xmit_array_op internal static fixed bin(18,0) initial dcl 1-197 xmit_scalar_op internal static fixed bin(18,0) initial dcl 1-197 xmit_vector_op internal static fixed bin(18,0) initial dcl 1-197 NAMES DECLARED BY EXPLICIT CONTEXT. bad_data_type 002300 constant entry internal dcl 389 ref 174 191 232 261 bad_operation 002327 constant entry internal dcl 397 ref 238 250 264 comp_chars 002105 constant entry internal dcl 344 ref 226 comparison 000000 constant label array(8:13) dcl 357 ref 355 concat_char_cons 002223 constant entry internal dcl 377 ref 256 error_condition 002000 constant label dcl 328 ref 109 finish_up 002045 constant entry internal dcl 336 ref 116 286 301 307 313 319 325 331 fixedoverflow_condition 001555 constant label dcl 304 ref 105 fort_eval_parm 000046 constant entry external dcl 20 overflow_condition 001622 constant label dcl 310 ref 106 underflow_condition 001665 constant label dcl 316 ref 107 zerodivide_condition 001733 constant label dcl 322 ref 108 NAME DECLARED BY CONTEXT OR IMPLICATION. binary builtin function ref 339 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2470 2500 2376 2500 Length 2764 2376 10 247 72 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME fort_eval_parm 87 external procedure is an external procedure. begin block on line 90 212 begin block enables or reverts conditions. on unit on line 105 64 on unit on unit on line 106 64 on unit on unit on line 107 64 on unit on unit on line 108 64 on unit on unit on line 109 64 on unit finish_up 94 internal procedure enables or reverts conditions. comp_chars internal procedure shares stack frame of begin block on line 90. concat_char_cons internal procedure shares stack frame of begin block on line 90. bad_data_type internal procedure shares stack frame of begin block on line 90. bad_operation internal procedure shares stack frame of begin block on line 90. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 90 000146 ch1 comp_chars 000150 ch2 comp_chars fort_eval_parm 000100 shared_ptr fort_eval_parm 000102 start_of_polish fort_eval_parm 000103 end_of_polish fort_eval_parm 000104 desired_data_type fort_eval_parm 000105 rounding fort_eval_parm 000106 max_stack fort_eval_parm 000107 stack_index fort_eval_parm 000110 mode1 fort_eval_parm 000111 mode2 fort_eval_parm 000112 max_s_ndx fort_eval_parm 000113 s_ndx fort_eval_parm 000114 local_error_code fort_eval_parm 000115 i fort_eval_parm 000116 polish_base fort_eval_parm 000120 object_base fort_eval_parm 000122 operand_base fort_eval_parm 000124 data_ptr fort_eval_parm THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_s r_l_s r_e_as r_ne_as r_ge_s r_le_s alloc_char_temp enter_begin_block call_ent_var_desc call_ent_var call_int_other begin_return_mac return_mac tra_ext_1 enable_op shorten_stack ext_entry_desc int_entry NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 20 000042 90 000061 97 000064 98 000072 99 000075 100 000101 101 000105 102 000112 103 000116 105 000123 106 000142 107 000161 108 000200 109 000217 111 000236 114 000243 115 000246 116 000261 117 000266 120 000270 121 000271 123 000273 124 000276 125 000301 141 000304 143 000316 148 000322 149 000324 152 000331 153 000344 154 000350 155 000351 156 000356 158 000357 160 000361 161 000371 162 000377 163 000400 164 000405 167 000406 168 000444 170 000447 172 000450 174 000452 176 000467 182 000516 186 000542 188 000543 191 000547 193 000574 199 000627 204 000657 206 000701 207 000703 209 000704 212 000710 213 000722 214 000727 216 000741 221 000772 222 001000 223 001003 224 001004 226 001014 229 001060 230 001064 231 001067 232 001070 233 001071 235 001072 238 001116 240 001120 243 001141 246 001154 248 001163 249 001165 250 001166 252 001170 254 001172 256 001211 259 001246 260 001251 261 001252 262 001253 264 001254 266 001255 268 001260 273 001321 277 001352 280 001377 283 001423 285 001425 286 001427 287 001434 290 001436 292 001450 294 001463 296 001507 299 001543 301 001546 302 001553 304 001555 306 001607 307 001613 308 001620 310 001622 312 001652 313 001656 314 001663 316 001665 318 001720 319 001724 320 001731 322 001733 324 001765 325 001771 326 001776 328 002000 330 002030 331 002034 332 002041 405 002043 336 002044 339 002052 340 002076 342 002103 344 002105 353 002107 354 002113 355 002117 357 002121 360 002134 363 002147 366 002162 369 002175 372 002210 377 002223 384 002225 389 002300 391 002301 392 002323 393 002326 397 002327 399 002330 400 002352 401 002355 ----------------------------------------------------------- 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