1 /* BEGIN fort_system_constants.incl.pl1 */
  2 
  3 
  4 
  5 /****^  HISTORY COMMENTS:
  6   1) change(86-07-14,BWong), approve(86-07-14,MCR7382), audit(86-07-17,Ginter),
  7      install(86-07-28,MR12.0-1105):
  8      Fix fortran bug 428.
  9                                                    END HISTORY COMMENTS */
 10 
 11 
 12 /* Created:         June 1976, David Levin  */
 13 
 14 /* Modified:
 15           15 Dec 85, RW - 428: Changed max_char_length from 256 to 512.
 16           22 Jun 84, MM - Install typeless functions support.
 17           17 Jun 83, HH - 383: Added 'process_param_list_op'.
 18           12 Jan 83, HH - Added 'form_VLA_packed_ptr_op'.
 19           05 Oct 82, HH - Added 'units_per_word'.
 20           27 Sep 82, HH - Added 'max_fixed_bin_18', 'max_fixed_bin_24' and 'sys_info$max_seg_size'.
 21                     Removed 'max_stored_value' and 'min_stored_value'.
 22           24 October 1981, ME Presser - added inquire_op.
 23           20 October 1981, C R Davis - add (read write)_internal_file_op.
 24           11 May 1981, Marshall Presser - added op-codes for .EQV. and .NEQV.
 25           28 April 1981, Marshall Presser - added default_main_entry_point_name
 26           11 March 1981, Marshall Presser - add min_stored_value
 27           8 December 1980, C R Davis - add block_if_op, else_if_op, else_op.
 28           15 January 1980, C R Davis - add bits_per_char.
 29           21 December 1979, Richard A. Barnes - add unrecoverable_errror and
 30                     max_error_level.
 31           3 November 1979, Richard Barnes - add pointer_node.
 32           17 September 1979, Richard Barnes - add load_preg_op & load_xreg_op
 33           13 September 1979, Paul Smee - add colon and concat token types,
 34                     change value of EOS_token, remove default_char_size.
 35           31 August 1979, Charlie Davis - change offset units to
 36                     be consistent with those in runtime symbols.
 37           13 August 1979, Richard Barnes - add cat_op & substr_op
 38           19 July 1979, Richard Barnes - char mode
 39           10 October 1978, Paul Smee - double max_stored_value and bias.
 40           15 June 1978, Paul Smee - add max_num_of_rands
 41           16 November 1977, David Levin - add machine_state_node
 42           12 September 1977, Richard Barnes - new ops for loop optimizer
 43           30 August 1977, David Levin - change bias from 65536 to 131072.
 44           5 July 1977, David Levin - add open_op, close_op, and iostat_op.
 45           28 April 1977, David Levin - add xmit_vector_op in operator list
 46           22 April 1977, David Levin - add max_prec_single, last_assigned_mode
 47           24 February 1977, Gabriel Chang for the optimizer.
 48           23 February 1977, David Levin to change name of count operand.
 49           28 October 1976, David Levin and Gabriel Chang to add 2 new ops and
 50                     1 new node type.
 51           2 September 1976, David Levin - add 8 new ops and change name of
 52                     data_op.
 53 */
 54           /* SYSTEM CONSTANTS */
 55 
 56 dcl       bias                init(262144) fixed bin(19) int static options(constant);
 57 dcl       gap_value           init(0) fixed bin int static options(constant);
 58 dcl       max_fixed_bin_18    init(111111111111111111b) fixed bin (18) static options (constant);
 59 dcl       max_fixed_bin_24    init(111111111111111111111111b) fixed bin (24) static options (constant);
 60 dcl       max_num_of_rands    init(127) fixed bin int static options(constant);
 61 dcl       sys_info$max_seg_size
 62                               fixed bin (18) ext;
 63 
 64 dcl (     unrecoverable_error init(3),
 65           max_error_level     init(4))
 66           fixed bin int static options(constant);
 67 
 68 dcl       (main_program       init(0),
 69            block_data         init(1),
 70            subroutine         init(2),
 71            function           init(3),
 72            chars_per_word     init(4),
 73            chars_per_dw       init(8),
 74            bits_per_char      init(9),
 75            first_auto_loc     init(64),
 76            max_prec_single    init(8)) fixed bin(9) int static options(constant);
 77 dcl        max_char_length    init(512) fixed bin(10) int static options(constant);
 78 
 79 dcl       blank_common_name   init("blnk*com") char(8) aligned int static options(constant);
 80 declare   default_main_entry_point_name
 81                               char (5) int static options (constant) initial ("main_");
 82 declare   unnamed_block_data_subprg_name
 83                               char (29) int static options (constant) initial ("unnamed block data subprogram");
 84 
 85           /*  NODE TYPES      */
 86 
 87 dcl       (fill_node          init(0),
 88            source_node        init(1),
 89            symbol_node        init(2),
 90            dimension_node     init(3),
 91            temporary_node     init(4),
 92            constant_node      init(5),
 93            label_node         init(6),
 94            header_node        init(7),
 95            char_constant_node init(8),
 96            array_ref_node     init(9),
 97            proc_frame_node    init(10),
 98            library_node       init(11),
 99            subprogram_node    init(12),
100            arg_desc_node      init(13),
101            pointer_node       init(14),
102            machine_state_node init(15)) fixed bin(4) aligned internal static options(constant);
103 
104           /*  DATA TYPES      */
105 
106 dcl       (int_mode           init(1),
107            real_mode          init(2),
108            dp_mode            init(3),
109            cmpx_mode          init(4),
110            logical_mode       init(5),
111            char_mode          init(6),
112            typeless_mode      init(7),
113            last_assigned_mode init(7)) fixed bin(4) aligned internal static options(constant);
114 
115 dcl       data_type_size(7)   init(1,1,2,2,1,0,1) fixed bin int static options(constant);
116 
117 
118           /*  OPERAND TYPES   */
119 
120 dcl       (variable_type      init(1),
121            constant_type      init(2),
122            array_ref_type     init(3),
123            temp_type          init(4),
124            count_type         init(5),
125            rel_constant       init(6),
126            bif                init(7),
127            statement_function init(8),
128            external           init(9),
129            entry_type         init(10),
130            dummy              init(11),
131            error              init(12)) fixed bin(4) aligned internal static options(constant);
132 
133 
134           /* OFFSET UNITS */
135 
136 dcl
137           (word_units         init (0),
138            bit_units          init (1),
139            char_units         init (2),
140            halfword_units     init (3)) fixed bin (3) aligned internal static options(constant);
141 
142 dcl        units_per_word     (0:3) init (1, 36, 4, 2) fixed bin (6) static options (constant);
143 
144 
145           /* TOKEN MASKS */
146 
147 dcl
148           (is_operand                   initial("101000000"b),
149            is_operator                  initial("010000000"b),
150            is_constant                  initial("001000000"b),
151            is_arith_constant            initial("000100000"b)) bit(9) aligned internal static options(constant);
152 
153 
154           /* TOKEN TYPES */
155 
156 dcl       (no_token           initial("000000000"b),
157            ident              initial("100000000"b),
158            plus               initial("010000001"b),
159            minus              initial("010000010"b),
160            asterisk           initial("010000011"b),
161            slash              initial("010000100"b),
162            expon              initial("010000101"b),
163            not                initial("010000110"b),
164            and                initial("010000111"b),
165            or                 initial("010001000"b),
166            eq                 initial("010001001"b),
167            ne                 initial("010001010"b),
168            lt                 initial("010001011"b),
169            gt                 initial("010001100"b),
170            le                 initial("010001101"b),
171            ge                 initial("010001110"b),
172            assign             initial("010001111"b),
173            comma              initial("010010000"b),
174            left_parn          initial("010010001"b),
175            right_parn         initial("010010010"b),
176            apostrophe         initial("010010011"b),
177            colon              initial("010010100"b),
178            concat             initial("010010101"b),
179            substr_left_parn   initial("010010110"b),
180            eqv                initial("010010111"b),
181            neqv               initial("010011000"b),
182            EOS_token          initial("010011111"b),
183            char_string        initial("001000001"b),
184            logical_const      initial("001000010"b),
185            false              initial("001000010"b),        /* Must be identical to true except low order bit off. */
186            true               initial("001000011"b),        /* Must be identical to false except low order bit on. */
187            label_const        initial("001000100"b),
188            octal_const        initial("001000101"b),
189            dec_int            initial("001100110"b),
190            real_const         initial("001100111"b),
191            double_const       initial("001101000"b),
192            complex_const      initial("001101001"b)) bit(9) aligned internal static options(constant);
193 
194 
195           /* OPERATOR NAMES */
196 
197 declare
198           (assign_op                    initial(1),
199            add_op                       initial(2),
200            sub_op                       initial(3),
201            mult_op                      initial(4),
202            div_op                       initial(5),
203            exponentiation_op            initial(6),
204            negate_op                    initial(7),
205            less_op                      initial(8),
206            less_or_equal_op             initial(9),
207            equal_op                     initial(10),
208            not_equal_op                 initial(11),
209            greater_or_equal_op          initial(12),
210            greater_op                   initial(13),
211            or_op                        initial(14),
212            and_op                       initial(15),
213            not_op                       initial(16),
214            jump_op                      initial(17),
215            jump_logical_op              initial(18),
216            jump_arithmetic_op           initial(19),
217            jump_computed_op             initial(20),
218            jump_assigned_op             initial(21),
219            assign_label_op              initial(22),
220            read_op                      initial(23),
221            write_op                     initial(24),
222            format_op                    initial(25),
223            end_label_op                 initial(26),
224            error_label_op               initial(27),
225            xmit_scalar_op               initial(28),
226            xmit_array_op                initial(29),
227            xmit_vector_op               initial(30),
228            endfile_op                   initial(31),
229            rewind_op                    initial(32),
230            backspace_op                 initial(33),
231            margin_op                    initial(34),
232            openfile_op                  initial(35),
233            closefile_op                 initial(36),
234            record_number_op             initial(37),
235            string_op                    initial(38),
236            string_length_op             initial(39),
237            terminate_op                 initial(40),
238            return_op                    initial(41),
239            pause_op                     initial(42),
240            stop_op                      initial(43),
241            item_op                      initial(44),
242            exit_op                      initial(45),
243            eol_op                       initial(46),
244            do_op                        initial(47),
245            builtin_op                   initial(48),
246            sf_op                        initial(49),
247            sf_def_op                    initial(50),
248            subscript_op                 initial(51),
249            func_ref_op                  initial(52),
250            block_data_op                initial(53),
251            increment_polish_op          initial(54),
252            main_op                      initial(55),
253            func_op                      initial(56),
254            subr_op                      initial(57),
255            stat_op                      initial(58),
256            label_op                     initial(59),
257            call_op                      initial(60),
258            chain_op                     initial(61),
259            endunit_op                   initial(62),
260            non_executable               initial(63),
261            no_op                        initial(64),
262            form_VLA_packed_ptr_op       initial(65),
263            opt_subscript_op             initial(66),
264            left_shift_op                initial(67),
265            right_shift_op               initial(68),
266            store_zero_op                initial(69),
267            storage_add_op               initial(70),
268            storage_sub_op               initial(71),
269            neg_storage_add_op           initial(72),
270            storage_add_one_op           initial(73),
271            namelist_op                  initial(74),
272            open_op                      initial(75),
273            close_op                     initial(76),
274            iostat_op                    initial(77),
275            convert_to_int_op            initial(78),
276            convert_to_real_op           initial(79),
277            convert_to_dp_op             initial(80),
278            convert_to_cmpx_op           initial(81),
279            read_scalar_op               initial(82),
280            read_array_op                initial(83),
281            read_vector_op               initial(84),
282            write_scalar_op              initial(85),
283            write_array_op               initial(86),
284            write_vector_op              initial(87),
285            jump_true_op                 initial(88),
286            jump_false_op                initial(89),
287            sub_index_op                 initial(90),
288            loop_end_op                  initial(91),
289            read_namelist_op             initial(92),
290            write_namelist_op            initial(93),
291            decode_string_op             initial(94),
292            encode_string_op             initial(95),
293            cat_op                       initial(96),
294            substr_op                    initial(97),
295            load_xreg_op                 initial(98),
296            load_preg_op                 initial(99),
297            block_if_op                  initial(100),
298            else_if_op                   initial(101),
299            else_op                      initial(102),
300            equiv_op                     initial (103),
301            not_equiv_op                 initial (104),
302            read_internal_file_op        initial (105),
303            write_internal_file_op       initial (106),
304            inquire_op                   initial (107),
305            process_param_list_op        initial (108),
306            lhs_fld_op                   initial (109),
307            last_assigned_op             initial (109))  fixed bin(18) internal static options(constant);
308 
309 /* END   fort_system_constants.incl.pl1 */