Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
type.h
Go to the documentation of this file.
00001 /*
00002 
00003   Copyright (C) 2000, 2001 Silicon Graphics, Inc.  All Rights Reserved.
00004 
00005   This program is free software; you can redistribute it and/or modify it
00006   under the terms of version 2 of the GNU General Public License as
00007   published by the Free Software Foundation.
00008 
00009   This program is distributed in the hope that it would be useful, but
00010   WITHOUT ANY WARRANTY; without even the implied warranty of
00011   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
00012 
00013   Further, this software is distributed without any warranty that it is
00014   free of the rightful claim of any third person regarding infringement 
00015   or the like.  Any license provided herein, whether implied or 
00016   otherwise, applies only to this software file.  Patent licenses, if 
00017   any, provided herein do not apply to combinations of this program with 
00018   other software, or any other product whatsoever.  
00019 
00020   You should have received a copy of the GNU General Public License along
00021   with this program; if not, write the Free Software Foundation, Inc., 59
00022   Temple Place - Suite 330, Boston MA 02111-1307, USA.
00023 
00024   Contact information:  Silicon Graphics, Inc., 1600 Amphitheatre Pky,
00025   Mountain View, CA 94043, or:
00026 
00027   http://www.sgi.com
00028 
00029   For further information regarding this notice, see:
00030 
00031   http://oss.sgi.com/projects/GenInfo/NoticeExplan
00032 
00033 */
00034 
00035 
00036 
00037 /* USMID:  "\n@(#)5.0_pl/headers/type.h 5.14    10/20/99 12:57:15\n" */
00038 
00039 /******************************************************************************\
00040 |**                                                                          **|
00041 |**     This header file is used to intialize tables that are used to        **|
00042 |**     define type information.  These tables are processor dependent.      **|
00043 |**                                                                          **|
00044 \******************************************************************************/
00045 
00046 # if defined(_TARGET_OS_MAX)
00047 
00048 linear_type_type        init_default_linear_type[Num_Fortran_Types] = {
00049 
00050                         Integer_8,      /* Fortran_Integer        */
00051                         Logical_8,      /* Fortran_Logical        */
00052                         Real_8,         /* Fortran_Real           */
00053                         Real_8,         /* Fortran_Double         */
00054                         Complex_8,      /* Fortran_Complex        */
00055                         Complex_8,      /* Fortran_Double_Complex */
00056                         Character_1,    /* Fortran_Character      */
00057                         Typeless_8      /* Fortran_Typeless       */
00058                         };
00059 
00060 linear_type_type        half_linear_type[Num_Fortran_Types] = {
00061 
00062                         Integer_4,      /* Fortran_Integer        */
00063                         Logical_4,      /* Fortran_Logical        */
00064                         Real_4,         /* Fortran_Real           */
00065                         Real_8,         /* Fortran_Double         */
00066                         Complex_4,      /* Fortran_Complex        */
00067                         Complex_8,      /* Fortran_Double_Complex */
00068                         Character_1,    /* Fortran_Character      */
00069                         Typeless_4      /* Fortran_Typeless       */
00070                         };
00071 
00072 # else
00073 linear_type_type        init_default_linear_type[Num_Fortran_Types] = {
00074                         Integer_4,      /* Fortran_Integer        */
00075                         Logical_4,      /* Fortran_Logical        */
00076                         Real_4,         /* Fortran_Real           */
00077                         Real_8,         /* Fortran_Double         */
00078                         Complex_4,      /* Fortran_Complex        */
00079                         Complex_8,      /* Fortran_Double_Complex */
00080                         Character_1,    /* Fortran_Character      */
00081                         Typeless_4      /* Fortran_Typeless       */
00082                         };
00083 
00084 linear_type_type        half_linear_type[Num_Fortran_Types] = {
00085 
00086                         Err_Res,        /* Fortran_Integer        */
00087                         Err_Res,        /* Fortran_Logical        */
00088                         Err_Res,        /* Fortran_Real           */
00089                         Real_4,         /* Fortran_Double         */
00090                         Err_Res,        /* Fortran_Complex        */
00091                         Complex_4,      /* Fortran_Double_Complex */
00092                         Err_Res,        /* Fortran_Character      */
00093                         Err_Res         /* Fortran_Typeless       */
00094                         };
00095 
00096 linear_type_type        double_linear_type[Num_Fortran_Types] = {
00097                         Integer_8,      /* Fortran_Integer        */
00098                         Logical_8,      /* Fortran_Logical        */
00099                         Real_8,         /* Fortran_Real           */
00100                         Real_16,        /* Fortran_Double         */
00101                         Complex_8,      /* Fortran_Complex        */
00102                         Complex_16,     /* Fortran_Double_Complex */
00103                         Character_1,    /* Fortran_Character      */
00104                         Typeless_8      /* Fortran_Typeless       */
00105                         };
00106 # endif
00107 
00108 
00109 int     bit_size_tbl[Num_Linear_Types] = {
00110         /* Err_Res           */          0,
00111         /* Short_Char_Const  */         64,
00112         /* Short_Typeless_Const    */   64,
00113         /* Typeless_1        */          8,
00114         /* Typeless_2        */         16,
00115         /* Typeless_4        */         32,
00116         /* Typeless_8        */         64,
00117         /* Long_Typeless     */          0,
00118 
00119 # if defined(_TARGET_OS_UNICOS) || defined(_TARGET_OS_MAX) ||            \
00120      defined(_TARGET_SV2)
00121         /* Integer_1         */         32,
00122         /* Integer_2         */         32,
00123 # else
00124         /* Integer_1         */          8,
00125         /* Integer_2         */         16,
00126 # endif
00127 
00128         /* Integer_4         */         32,
00129         /* Integer_8         */         64,
00130 
00131 # if defined(_TARGET_OS_UNICOS) && !defined(_TARGET_SV2)
00132         /* Real_4            */         64,
00133 # else
00134         /* Real_4            */         32,
00135 # endif
00136 
00137         /* Real_8            */         64,
00138         /* Real_16           */        128,
00139 
00140 # if defined(_TARGET_OS_UNICOS) && !defined(_TARGET_SV2)
00141         /* Complex_4         */        128,
00142 # else
00143         /* Complex_4         */         64,
00144 # endif
00145 
00146         /* Complex_8         */        128,
00147 
00148 # if defined(_TARGET_OS_MAX)
00149         /* Complex_16        */        128,
00150 # else
00151         /* Complex_16        */        256,
00152 # endif
00153 
00154         /* CRI_Ptr_8         */         64,
00155 
00156 # if defined(_TARGET_OS_MAX) || defined(_TARGET_SV2)
00157         /* Logical_1         */         32,
00158         /* Logical_2         */         32,
00159         /* Logical_4         */         32,
00160 # elif defined(_TARGET_OS_UNICOS)
00161         /* Logical_1         */         64,
00162         /* Logical_2         */         64,
00163         /* Logical_4         */         64,
00164 # else
00165         /* Logical_1         */          8,
00166         /* Logical_2         */         16,
00167         /* Logical_4         */         32,
00168 # endif
00169 
00170         /* Logical_8         */         64,
00171         /* Character_1       */          0,
00172         /* Character_2       */          0,
00173         /* Character_4       */          0,
00174         /* CRI_Ch_Ptr_8      */         64,
00175         /* Structure_Type    */          0,
00176         /* CRI_Parcel_Ptr_8  */         64
00177                                                  };
00178 
00179 
00180 # if defined(_TARGET_OS_UNICOS) && !defined(_TARGET_SV2)
00181 
00182 int     storage_bit_kind_tbl[Num_Linear_Types] = {        
00183         /* Err_Res           */         0,
00184         /* Short_Char_Const  */         0,
00185         /* Short_Typeless_Const    */   0,
00186         /* Typeless_1        */         1,
00187         /* Typeless_2        */         2,
00188         /* Typeless_4        */         4,
00189         /* Typeless_8        */         8,
00190         /* Long_Typeless     */         0,
00191         /* Integer_1         */         1,
00192         /* Integer_2         */         2,
00193         /* Integer_4         */         4,
00194         /* Integer_8         */         8,
00195         /* Real_4            */         4,
00196         /* Real_8            */         8,
00197         /* Real_16           */         16,
00198         /* Complex_4         */         4,
00199         /* Complex_8         */         8,
00200         /* Complex_16        */         16,
00201         /* CRI_Ptr_8         */         8,
00202         /* Logical_1         */         1,
00203         /* Logical_2         */         2,
00204         /* Logical_4         */         4,
00205         /* Logical_8         */         8,
00206         /* Character_1       */         1,
00207         /* Character_2       */         2,
00208         /* Character_4       */         4,
00209         /* CRI_Ch_Ptr_8      */         8,
00210         /* Structure_Type    */         0,
00211         /* CRI_Parcel_Ptr_8  */         8
00212                                                  };
00213 
00214 /****************************************************\
00215 |* storage_bit_size_tbl[Complex_4] does not reflect *|
00216 |* the size of a Complex_4 constant in our cn table *|
00217 |* on the t3e. These are stored in two 64 bit words.*|
00218 \****************************************************/
00219 
00220 int     storage_bit_size_tbl[Num_Linear_Types] = {        
00221         /* Err_Res           */         0,
00222         /* Short_Char_Const  */         64,
00223         /* Short_Typeless_Const    */   64,
00224         /* Typeless_1        */         64,
00225         /* Typeless_2        */         64,
00226         /* Typeless_4        */         64,
00227         /* Typeless_8        */         64,
00228         /* Long_Typeless     */         0,
00229         /* Integer_1         */         64,
00230         /* Integer_2         */         64,
00231         /* Integer_4         */         64,
00232         /* Integer_8         */         64,
00233         /* Real_4            */         64,
00234         /* Real_8            */         64,
00235         /* Real_16           */         128,
00236         /* Complex_4         */         128,
00237         /* Complex_8         */         128,
00238         /* Complex_16        */         256,
00239         /* CRI_Ptr_8         */         64,
00240         /* Logical_1         */         64,
00241         /* Logical_2         */         64,
00242         /* Logical_4         */         64,
00243         /* Logical_8         */         64,
00244         /* Character_1       */         0,
00245         /* Character_2       */         0,
00246         /* Character_4       */         0,
00247         /* CRI_Ch_Ptr_8      */         64,
00248         /* Structure_Type    */         0,
00249         /* CRI_Parcel_Ptr_8  */         64
00250                                                  };
00251 
00252 int     storage_bit_prec_tbl[Num_Linear_Types] = {
00253         /* Err_Res           */         0,
00254         /* Short_Char_Const  */         8,
00255         /* Short_Typeless_Const    */   64,
00256         /* Typeless_1        */         64,
00257         /* Typeless_2        */         64,
00258         /* Typeless_4        */         64,
00259         /* Typeless_8        */         64,
00260         /* Long_Typeless     */         0,
00261         /* Integer_1         */         32,
00262         /* Integer_2         */         32,
00263         /* Integer_4         */         32,
00264         /* Integer_8         */         64,
00265         /* Real_4            */         48,
00266         /* Real_8            */         48,
00267         /* Real_16           */         96,
00268         /* Complex_4         */         48,
00269         /* Complex_8         */         48,
00270         /* Complex_16        */         96,
00271         /* CRI_Ptr_8         */         64,
00272         /* Logical_1         */         64,
00273         /* Logical_2         */         64,
00274         /* Logical_4         */         64,
00275         /* Logical_8         */         64,
00276         /* Character_1       */         8,
00277         /* Character_2       */         8,
00278         /* Character_4       */         8,
00279         /* CRI_Ch_Ptr_8      */         8,
00280         /* Structure_Type    */         0,
00281         /* CRI_Parcel_Ptr_8  */         16
00282                                                  };
00283 
00284 int     register_bit_size_tbl[Num_Linear_Types] = {
00285         /* Err_Res           */         0,
00286         /* Short_Char_Const  */         64,
00287         /* Short_Typeless_Const    */   64,
00288         /* Typeless_1        */         64,
00289         /* Typeless_2        */         64,
00290         /* Typeless_4        */         64,
00291         /* Typeless_8        */         64,
00292         /* Long_Typeless     */         0,
00293         /* Integer_1         */         64,
00294         /* Integer_2         */         64,
00295         /* Integer_4         */         64,
00296         /* Integer_8         */         64,
00297         /* Real_4            */         64,
00298         /* Real_8            */         64,
00299         /* Real_16           */         64,
00300         /* Complex_4         */         64,
00301         /* Complex_8         */         64,
00302         /* Complex_16        */         64,
00303         /* CRI_Ptr_8         */         64,
00304         /* Logical_1         */         64,
00305         /* Logical_2         */         64,
00306         /* Logical_4         */         64,
00307         /* Logical_8         */         64,
00308         /* Character_1       */         0,
00309         /* Character_2       */         0,
00310         /* Character_4       */         0,
00311         /* CRI_Ch_Ptr_8      */         64,
00312         /* Structure_Type    */         0,
00313         /* CRI_Parcel_Ptr_8  */         64
00314                                                  };
00315 
00316 int     stride_mult_unit_in_bits[Num_Linear_Types] = {
00317         /* Err_Res           */         0,
00318         /* Short_Char_Const  */         8,
00319         /* Short_Typeless_Const    */   64,
00320         /* Typeless_1        */         64,
00321         /* Typeless_2        */         64,
00322         /* Typeless_4        */         64,
00323         /* Typeless_8        */         64,
00324         /* Long_Typeless     */         0,
00325         /* Integer_1         */         64,
00326         /* Integer_2         */         64,
00327         /* Integer_4         */         64,
00328         /* Integer_8         */         64,
00329         /* Real_4            */         64,
00330         /* Real_8            */         64,
00331         /* Real_16           */         64,
00332         /* Complex_4         */         64,
00333         /* Complex_8         */         64,
00334         /* Complex_16        */         64,
00335         /* CRI_Ptr_8         */         64,
00336         /* Logical_1         */         64,
00337         /* Logical_2         */         64,
00338         /* Logical_4         */         64,
00339         /* Logical_8         */         64,
00340         /* Character_1       */         8,
00341         /* Character_2       */         16,
00342         /* Character_4       */         32,
00343         /* CRI_Ch_Ptr_8      */         64,
00344         /* Structure_Type    */         64,
00345         /* CRI_Parcel_Ptr_8  */         64
00346         };
00347 
00348 int     type_alignment_tbl[Num_Linear_Types] = {
00349         /* Err_Res           */         No_Align,
00350         /* Short_Char_Const  */         No_Align,
00351         /* Short_Typeless_Const    */   No_Align,
00352         /* Typeless_1        */         No_Align,
00353         /* Typeless_2        */         No_Align,
00354         /* Typeless_4        */         No_Align,
00355         /* Typeless_8        */         No_Align,
00356         /* Long_Typeless     */         No_Align,
00357         /* Integer_1         */         No_Align,
00358         /* Integer_2         */         No_Align,
00359         /* Integer_4         */         No_Align,
00360         /* Integer_8         */         No_Align,
00361         /* Real_4            */         No_Align,
00362         /* Real_8            */         No_Align,
00363         /* Real_16           */         No_Align,
00364         /* Complex_4         */         No_Align,
00365         /* Complex_8         */         No_Align,
00366         /* Complex_16        */         No_Align,
00367         /* CRI_Ptr_8         */         No_Align,
00368         /* Logical_1         */         No_Align,
00369         /* Logical_2         */         No_Align,
00370         /* Logical_4         */         No_Align,
00371         /* Logical_8         */         No_Align,
00372         /* Character_1       */         No_Align,
00373         /* Character_2       */         No_Align,
00374         /* Character_4       */         No_Align,
00375         /* CRI_Ch_Ptr_8      */         No_Align,
00376         /* Structure_Type    */         No_Align,
00377         /* CRI_Parcel_Ptr_8  */         No_Align
00378         };
00379 
00380 
00381 
00382 # elif defined(_TARGET_OS_MAX)
00383 int     storage_bit_kind_tbl[Num_Linear_Types] = {        
00384         /* Err_Res           */         0,
00385         /* Short_Char_Const  */         0,
00386         /* Short_Typeless_Const    */   0,
00387         /* Typeless_1        */         4,
00388         /* Typeless_2        */         4,
00389         /* Typeless_4        */         4,
00390         /* Typeless_8        */         8,
00391         /* Long_Typeless     */         0,
00392         /* Integer_1         */         1,
00393         /* Integer_2         */         2,
00394         /* Integer_4         */         4,
00395         /* Integer_8         */         8,
00396         /* Real_4            */         4,
00397         /* Real_8            */         8,
00398         /* Real_16           */         16,
00399         /* Complex_4         */         4,
00400         /* Complex_8         */         8,
00401         /* Complex_16        */         16,
00402         /* CRI_Ptr_8         */         8,
00403         /* Logical_1         */         1,
00404         /* Logical_2         */         2,
00405         /* Logical_4         */         4,
00406         /* Logical_8         */         8,
00407         /* Character_1       */         1,
00408         /* Character_2       */         2,
00409         /* Character_4       */         4,
00410         /* CRI_Ch_Ptr_8      */         8,
00411         /* Structure_Type    */         0,
00412         /* CRI_Parcel_Ptr_8  */         8
00413                                                  };
00414 
00415 /****************************************************\
00416 |* storage_bit_size_tbl[Complex_4] does not reflect *|
00417 |* the size of a Complex_4 constant in our cn table *|
00418 |* on the t3e. These are stored in two 64 bit words.*|
00419 \****************************************************/
00420 
00421 int     storage_bit_size_tbl[Num_Linear_Types] = {        
00422         /* Err_Res           */         0,
00423         /* Short_Char_Const  */         64,
00424         /* Short_Typeless_Const    */   64,
00425         /* Typeless_1        */         32,
00426         /* Typeless_2        */         32,
00427         /* Typeless_4        */         32,
00428         /* Typeless_8        */         64,
00429         /* Long_Typeless     */         0,
00430         /* Integer_1         */         32,
00431         /* Integer_2         */         32,
00432         /* Integer_4         */         32,
00433         /* Integer_8         */         64,
00434         /* Real_4            */         32,
00435         /* Real_8            */         64,
00436         /* Real_16           */         128,
00437         /* Complex_4         */         64,
00438         /* Complex_8         */         128,
00439         /* Complex_16        */         256,
00440         /* CRI_Ptr_8         */         64,
00441         /* Logical_1         */         32,
00442         /* Logical_2         */         32,
00443         /* Logical_4         */         32,
00444         /* Logical_8         */         64,
00445         /* Character_1       */         0,
00446         /* Character_2       */         0,
00447         /* Character_4       */         0,
00448         /* CRI_Ch_Ptr_8      */         64,
00449         /* Structure_Type    */         0,
00450         /* CRI_Parcel_Ptr_8  */         64
00451                                                  };
00452 
00453 int     storage_bit_prec_tbl[Num_Linear_Types] = {
00454         /* Err_Res           */         0,
00455         /* Short_Char_Const  */         8,
00456         /* Short_Typeless_Const    */   0,
00457         /* Typeless_1        */         0,
00458         /* Typeless_2        */         0,
00459         /* Typeless_4        */         0,
00460         /* Typeless_8        */         0,
00461         /* Long_Typeless     */         0,
00462         /* Integer_1         */         32,
00463         /* Integer_2         */         32,
00464         /* Integer_4         */         32,
00465         /* Integer_8         */         64,
00466         /* Real_4            */         24,
00467         /* Real_8            */         48,
00468         /* Real_16           */         96,
00469         /* Complex_4         */         24,
00470         /* Complex_8         */         48,
00471         /* Complex_16        */         96,
00472         /* CRI_Ptr_8         */         64,
00473         /* Logical_1         */         32,
00474         /* Logical_2         */         32,
00475         /* Logical_4         */         32,
00476         /* Logical_8         */         64,
00477         /* Character_1       */         8,
00478         /* Character_2       */         8,
00479         /* Character_4       */         8,
00480         /* CRI_Ch_Ptr_8      */         8,
00481         /* Structure_Type    */         0,
00482         /* CRI_Parcel_Ptr_8  */         8
00483                                                  };
00484 
00485 int     register_bit_size_tbl[Num_Linear_Types] = {
00486         /* Err_Res           */         0,
00487         /* Short_Char_Const  */         64,
00488         /* Short_Typeless_Const    */   64,
00489         /* Typeless_1        */         32,
00490         /* Typeless_2        */         32,
00491         /* Typeless_4        */         32,
00492         /* Typeless_8        */         64,
00493         /* Long_Typeless     */         0,
00494         /* Integer_1         */         32,
00495         /* Integer_2         */         32,
00496         /* Integer_4         */         32,
00497         /* Integer_8         */         64,
00498         /* Real_4            */         32,
00499         /* Real_8            */         64,
00500         /* Real_16           */         64,
00501         /* Complex_4         */         64,
00502         /* Complex_8         */         64,
00503         /* Complex_16        */         64,
00504         /* CRI_Ptr_8         */         64,
00505         /* Logical_1         */         64,
00506         /* Logical_2         */         64,
00507         /* Logical_4         */         64,
00508         /* Logical_8         */         64,
00509         /* Character_1       */         0,
00510         /* Character_2       */         0,
00511         /* Character_4       */         0,
00512         /* CRI_Ch_Ptr_8      */         64,
00513         /* Structure_Type    */         0,
00514         /* CRI_Parcel_Ptr_8  */         64
00515                                                  };
00516 
00517 int     stride_mult_unit_in_bits[Num_Linear_Types] = {
00518         /* Err_Res           */         0,
00519         /* Short_Char_Const  */         8,
00520         /* Short_Typeless_Const    */   64,
00521         /* Typeless_1        */         32,
00522         /* Typeless_2        */         32,
00523         /* Typeless_4        */         32,
00524         /* Typeless_8        */         64,
00525         /* Long_Typeless     */         0,
00526         /* Integer_1         */         32,
00527         /* Integer_2         */         32,
00528         /* Integer_4         */         32,
00529         /* Integer_8         */         64,
00530         /* Real_4            */         32,
00531         /* Real_8            */         64,
00532         /* Real_16           */         64,
00533         /* Complex_4         */         64,
00534         /* Complex_8         */         64,
00535         /* Complex_16        */         64,
00536         /* CRI_Ptr_8         */         64,
00537         /* Logical_1         */         32,
00538         /* Logical_2         */         32,
00539         /* Logical_4         */         32,
00540         /* Logical_8         */         64,
00541         /* Character_1       */         8,
00542         /* Character_2       */         16,
00543         /* Character_4       */         32,
00544         /* CRI_Ch_Ptr_8      */         64,
00545         /* Structure_Type    */         64,
00546         /* CRI_Parcel_Ptr_8  */         64
00547         };
00548 
00549 int     type_alignment_tbl[Num_Linear_Types] = {
00550         /* Err_Res           */         No_Align,
00551         /* Short_Char_Const  */         No_Align,
00552         /* Short_Typeless_Const    */   No_Align,
00553         /* Typeless_1        */         No_Align,
00554         /* Typeless_2        */         No_Align,
00555         /* Typeless_4        */         No_Align,
00556         /* Typeless_8        */         No_Align,
00557         /* Long_Typeless     */         No_Align,
00558         /* Integer_1         */         No_Align,
00559         /* Integer_2         */         No_Align,
00560         /* Integer_4         */         No_Align,
00561         /* Integer_8         */         No_Align,
00562         /* Real_4            */         No_Align,
00563         /* Real_8            */         No_Align,
00564         /* Real_16           */         No_Align,
00565         /* Complex_4         */         No_Align,
00566         /* Complex_8         */         No_Align,
00567         /* Complex_16        */         No_Align,
00568         /* CRI_Ptr_8         */         No_Align,
00569         /* Logical_1         */         No_Align,
00570         /* Logical_2         */         No_Align,
00571         /* Logical_4         */         No_Align,
00572         /* Logical_8         */         No_Align,
00573         /* Character_1       */         No_Align,
00574         /* Character_2       */         No_Align,
00575         /* Character_4       */         No_Align,
00576         /* CRI_Ch_Ptr_8      */         No_Align,
00577         /* Structure_Type    */         No_Align,
00578         /* CRI_Parcel_Ptr_8  */         No_Align
00579         };
00580 
00581 
00582 
00583 # else
00584 int     storage_bit_kind_tbl[Num_Linear_Types] = {        
00585         /* Err_Res           */         0,
00586         /* Short_Char_Const  */         0,
00587         /* Short_Typeless_Const    */   0,
00588         /* Typeless_1        */         1,
00589         /* Typeless_2        */         2,
00590         /* Typeless_4        */         4,
00591         /* Typeless_8        */         8,
00592         /* Long_Typeless     */         0,
00593         /* Integer_1         */         1,
00594         /* Integer_2         */         2,
00595         /* Integer_4         */         4,
00596         /* Integer_8         */         8,
00597         /* Real_4            */         4,
00598         /* Real_8            */         8,
00599         /* Real_16           */         16,
00600         /* Complex_4         */         4,
00601         /* Complex_8         */         8,
00602         /* Complex_16        */         16,
00603         /* CRI_Ptr_8         */         8,
00604         /* Logical_1         */         1,
00605         /* Logical_2         */         2,
00606         /* Logical_4         */         4,
00607         /* Logical_8         */         8,
00608         /* Character_1       */         1,
00609         /* Character_2       */         2,
00610         /* Character_4       */         4,
00611         /* CRI_Ch_Ptr_8      */         8,
00612         /* Structure_Type    */         0,
00613         /* CRI_Parcel_Ptr_8  */         8
00614                                                  };
00615 
00616 int     storage_bit_size_tbl[Num_Linear_Types] = {
00617         /* Err_Res           */         0,
00618         /* Short_Char_Const  */         32,
00619         /* Short_Typeless_Const    */   32,
00620         /* Typeless_1        */         32,
00621         /* Typeless_2        */         32,
00622         /* Typeless_4        */         32,
00623         /* Typeless_8        */         64,
00624         /* Long_Typeless     */         0,
00625         /* Integer_1         */         32,
00626         /* Integer_2         */         32,
00627         /* Integer_4         */         32,
00628         /* Integer_8         */         64,
00629         /* Real_4            */         32,
00630         /* Real_8            */         64,
00631         /* Real_16           */         128,
00632         /* Complex_4         */         64,
00633         /* Complex_8         */         128,
00634         /* Complex_16        */         256,
00635         /* CRI_Ptr_8         */         32,
00636         /* Logical_1         */         32,
00637         /* Logical_2         */         32,
00638         /* Logical_4         */         32,
00639         /* Logical_8         */         64,
00640         /* Character_1       */         0,
00641         /* Character_2       */         0,
00642         /* Character_4       */         0,
00643         /* CRI_Ch_Ptr_8      */         64,
00644         /* Structure_Type    */         0,
00645         /* CRI_Parcel_Ptr_8  */         32
00646                                                  };
00647 
00648 int     storage_bit_prec_tbl[Num_Linear_Types] = {
00649         /* Err_Res           */         0,
00650         /* Short_Char_Const  */         8,
00651         /* Short_Typeless_Const*/       32,
00652         /* Typeless_1        */         32,
00653         /* Typeless_2        */         32,
00654         /* Typeless_4        */         32,
00655         /* Typeless_8        */         64,
00656         /* Long_Typeless     */         0,
00657         /* Integer_1         */         32,
00658         /* Integer_2         */         32,
00659         /* Integer_4         */         32,
00660         /* Integer_8         */         64,
00661         /* Real_4            */         24,
00662         /* Real_8            */         48,
00663         /* Real_16           */         96,
00664         /* Complex_4         */         24,
00665         /* Complex_8         */         48,
00666         /* Complex_16        */         96,
00667         /* CRI_Ptr_8         */         32,
00668         /* Logical_1         */         32,
00669         /* Logical_2         */         32,
00670         /* Logical_4         */         32,
00671         /* Logical_8         */         64,
00672         /* Character_1       */         8,
00673         /* Character_2       */         8,
00674         /* Character_4       */         8,
00675         /* CRI_Ch_Ptr_8      */         8,
00676         /* Structure_Type    */         0,
00677         /* CRI_Parcel_Ptr_8    */       8
00678                                                   };
00679 
00680 int     register_bit_size_tbl[Num_Linear_Types] = {
00681         /* Err_Res           */         0,
00682         /* Short_Char_Const  */         64,
00683         /* Short_Typeless_Const    */   64,
00684         /* Typeless_1        */         32,
00685         /* Typeless_2        */         32,
00686         /* Typeless_4        */         32,
00687         /* Typeless_8        */         64,
00688         /* Long_Typeless     */         0,
00689         /* Integer_1         */         32,
00690         /* Integer_2         */         32,
00691         /* Integer_4         */         32,
00692         /* Integer_8         */         64,
00693         /* Real_4            */         32,
00694         /* Real_8            */         64,
00695         /* Real_16           */         64,
00696         /* Complex_4         */         64,
00697         /* Complex_8         */         64,
00698         /* Complex_16        */         64,
00699         /* CRI_Ptr_8         */         64,
00700         /* Logical_1         */         64,
00701         /* Logical_2         */         64,
00702         /* Logical_4         */         64,
00703         /* Logical_8         */         64,
00704         /* Character_1       */         0,
00705         /* Character_2       */         0,
00706         /* Character_4       */         0,
00707         /* CRI_Ch_Ptr_8      */         64,
00708         /* Structure_Type    */         0,
00709         /* CRI_Parcel_Ptr_8  */         64
00710                                                  };
00711 
00712 int     stride_mult_unit_in_bits[Num_Linear_Types] = {
00713         /* Err_Res           */         0,
00714         /* Short_Char_Const  */         8,
00715         /* Short_Typeless_Const    */   32,
00716         /* Typeless_1        */         32,
00717         /* Typeless_2        */         32,
00718         /* Typeless_4        */         32,
00719 # ifdef _WHIRL_HOST64_TARGET64
00720         /* Typeless_8        */         64,
00721 # else
00722         /* Typeless_8        */         32,
00723 # endif /* _WHIRL_HOST64_TARGET64 */
00724         /* Long_Typeless     */         0,
00725         /* Integer_1         */         32,
00726         /* Integer_2         */         32,
00727         /* Integer_4         */         32,
00728 # ifdef _WHIRL_HOST64_TARGET64
00729         /* Integer_8         */         64,
00730 # else
00731         /* Integer_8         */         32,
00732 # endif /* _WHIRL_HOST64_TARGET64 */
00733         /* Real_4            */         32,
00734 # ifdef _WHIRL_HOST64_TARGET64
00735         /* Real_8            */         64,
00736         /* Real_16           */         64,
00737         /* Complex_4         */         64,
00738         /* Complex_8         */         64,
00739         /* Complex_16        */         64,
00740         /* CRI_Ptr_8         */         64,
00741 # else
00742         /* Real_8            */         32,
00743         /* Real_16           */         32,
00744         /* Complex_4         */         32,
00745         /* Complex_8         */         32,
00746         /* Complex_16        */         32,
00747         /* CRI_Ptr_8         */         32,
00748 # endif /* _WHIRL_HOST64_TARGET64 */
00749         /* Logical_1         */         32,
00750         /* Logical_2         */         32,
00751         /* Logical_4         */         32,
00752 # ifdef _WHIRL_HOST64_TARGET64
00753         /* Logical_8         */         64,
00754 # else
00755         /* Logical_8         */         32,
00756 # endif /* _WHIRL_HOST64_TARGET64 */
00757         /* Character_1       */         8,
00758         /* Character_2       */         16,
00759         /* Character_4       */         32,
00760 # ifdef _WHIRL_HOST64_TARGET64
00761         /* CRI_Ch_Ptr_8      */         64,
00762 # else
00763         /* CRI_Ch_Ptr_8      */         32,
00764 # endif /* _WHIRL_HOST64_TARGET64 */
00765         /* Structure_Type    */         32,
00766         /* CRI_Parcel_Ptr_8    */       32
00767                                                 };
00768 
00769 int     type_alignment_tbl[Num_Linear_Types] = {
00770         /* Err_Res           */         No_Align,
00771         /* Short_Char_Const  */         Align_Bit,
00772         /* Short_Typeless_Const    */   Align_Bit,
00773         /* Typeless_1        */         Align_8,
00774         /* Typeless_2        */         Align_16,
00775         /* Typeless_4        */         Align_32,
00776         /* Typeless_8        */         Align_64,
00777         /* Long_Typeless     */         WORD_ALIGN,
00778         /* Integer_1         */         Align_8,
00779         /* Integer_2         */         Align_16,
00780         /* Integer_4         */         Align_32,
00781         /* Integer_8         */         Align_64,
00782         /* Real_4            */         Align_32,
00783         /* Real_8            */         Align_64,
00784         /* Real_16           */         Align_128,
00785         /* Complex_4         */         Align_32,
00786         /* Complex_8         */         Align_64,
00787         /* Complex_16        */         Align_128,
00788         /* CRI_Ptr_8         */         Align_64,
00789         /* Logical_1         */         Align_8,
00790         /* Logical_2         */         Align_16,
00791         /* Logical_4         */         Align_32,
00792         /* Logical_8         */         Align_64,
00793         /* Character_1       */         Align_Bit,
00794         /* Character_2       */         Align_Bit,
00795         /* Character_4       */         Align_Bit,
00796         /* CRI_Ch_Ptr_8      */         Align_64,
00797         /* Structure_Type    */         No_Align,
00798         /* CRI_Parcel_Ptr_8  */         Align_64
00799         };
00800 
00801 
00802 
00803 # endif
00804 
00805 
00806         /* Table used to initialize the type table default.  The first  */
00807         /* entries in the type table, correspond to the linear_types.   */
00808         /* This table is read up as longs, and copied to the type table */
00809         /* in parse_prog_unit.   Then const_one_idx is entered into the */
00810         /* default Character entry at runtime.                          */
00811         /* TYP_DECLARED_DBL is set here.                                */
00812 
00813 type_tbl_type           type_init_tbl[Num_Linear_Types + 2] = {
00814 
00815                 {Integer,               0,                      NO_Tbl_Idx,
00816                  Unknown_Char,          FALSE,                  FALSE,
00817                  FALSE,                 FALSE,                  FALSE,
00818                  FALSE,
00819                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00820                  Err_Res,               0},
00821 
00822                 {Character,             0,                      NO_Tbl_Idx,
00823                  Const_Len_Char,        FALSE,                  FALSE,
00824                  FALSE,                 FALSE,                  FALSE,
00825                  FALSE,
00826                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00827                  Short_Char_Const,      0},
00828 
00829                 {Typeless,              0,                      NO_Tbl_Idx,
00830                  Unknown_Char,          FALSE,                  FALSE,
00831                  FALSE,                 FALSE,                  FALSE,
00832                  FALSE,
00833                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00834                  Short_Typeless_Const,  TARGET_BITS_PER_WORD},
00835 
00836                 {Typeless,              0,                      NO_Tbl_Idx,
00837                  Unknown_Char,          FALSE,                  FALSE,
00838                  FALSE,                 FALSE,                  FALSE,
00839                  FALSE,
00840                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00841                  Typeless_1,            8},
00842 
00843                 {Typeless,              0,                      NO_Tbl_Idx,
00844                  Unknown_Char,          FALSE,                  FALSE,
00845                  FALSE,                 FALSE,                  FALSE,
00846                  FALSE,
00847                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00848                  Typeless_2,            16},
00849 
00850                 {Typeless,              0,                      NO_Tbl_Idx,
00851                  Unknown_Char,          FALSE,                  FALSE,
00852                  FALSE,                 FALSE,                  FALSE,
00853                  FALSE,
00854                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00855                  Typeless_4,            32},
00856 
00857                 {Typeless,              0,                      NO_Tbl_Idx,
00858                  Unknown_Char,          FALSE,                  FALSE,
00859                  FALSE,                 FALSE,                  FALSE,
00860                  FALSE,
00861                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00862                  Typeless_8,            64},
00863 
00864                 {Typeless,              0,                      NO_Tbl_Idx,
00865                  Unknown_Char,          FALSE,                  FALSE,
00866                  FALSE,                 FALSE,                  FALSE,
00867                  FALSE,
00868                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00869                  Long_Typeless,         0},
00870 
00871                 {Integer,               0,                      NO_Tbl_Idx,
00872                  Unknown_Char,          FALSE,                  FALSE,
00873                  FALSE,                 FALSE,                  FALSE,
00874                  FALSE,
00875                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00876                  Integer_1,             0},
00877 
00878                 {Integer,               0,                      NO_Tbl_Idx,
00879                  Unknown_Char,          FALSE,                  FALSE,
00880                  FALSE,                 FALSE,                  FALSE,
00881                  FALSE,
00882                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00883                  Integer_2,             0},
00884 
00885                 {Integer,               0,                      NO_Tbl_Idx,
00886                  Unknown_Char,          FALSE,                  FALSE,
00887                  FALSE,                 FALSE,                  FALSE,
00888                  FALSE,
00889                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00890                  Integer_4,             0},
00891 
00892                 {Integer,               0,                      NO_Tbl_Idx,
00893                  Unknown_Char,          FALSE,                  FALSE,
00894                  FALSE,                 FALSE,                  FALSE,
00895                  FALSE,
00896                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00897                  Integer_8,             0},
00898 
00899                 {Real,                  0,                      NO_Tbl_Idx,
00900                  Unknown_Char,          FALSE,                  FALSE,
00901                  FALSE,                 FALSE,                  FALSE,
00902                  FALSE,
00903                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00904                  Real_4,                0},
00905 
00906                 {Real,                  0,                      NO_Tbl_Idx,
00907                  Unknown_Char,          FALSE,                  FALSE,
00908                  FALSE,                 FALSE,                  FALSE,
00909                  FALSE,
00910                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00911                  Real_8,                0},
00912 
00913                 {Real,                  0,                      NO_Tbl_Idx,
00914                  Unknown_Char,          FALSE,                  FALSE,
00915                  FALSE,                 FALSE,                  FALSE,
00916                  FALSE,
00917                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00918                  Real_16,               0},
00919 
00920                 {Complex,               0,                      NO_Tbl_Idx,
00921                  Unknown_Char,          FALSE,                  FALSE,
00922                  FALSE,                 FALSE,                  FALSE,
00923                  FALSE,
00924                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00925                  Complex_4,             0},
00926 
00927                 {Complex,               0,                      NO_Tbl_Idx,
00928                  Unknown_Char,          FALSE,                  FALSE,
00929                  FALSE,                 FALSE,                  FALSE,
00930                  FALSE,
00931                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00932                  Complex_8,             0},
00933 
00934                 {Complex,               0,                      NO_Tbl_Idx,
00935                  Unknown_Char,          FALSE,                  FALSE,
00936                  FALSE,                 FALSE,                  FALSE,
00937                  FALSE,
00938                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00939                  Complex_16,            0},
00940 
00941                 {CRI_Ptr,               0,                      NO_Tbl_Idx,
00942                  Unknown_Char,          FALSE,                  FALSE,
00943                  FALSE,                 FALSE,                  FALSE,
00944                  FALSE,
00945                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00946                  CRI_Ptr_8,             TARGET_BITS_PER_WORD},
00947 
00948                 {Logical,               0,                      NO_Tbl_Idx,
00949                  Unknown_Char,          FALSE,                  FALSE,
00950                  FALSE,                 FALSE,                  FALSE,
00951                  FALSE,
00952                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00953                  Logical_1,             0},
00954 
00955                 {Logical,               0,                      NO_Tbl_Idx,
00956                  Unknown_Char,          FALSE,                  FALSE,
00957                  FALSE,                 FALSE,                  FALSE,
00958                  FALSE,
00959                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00960                  Logical_2,             0},
00961 
00962                 {Logical,               0,                      NO_Tbl_Idx,
00963                  Unknown_Char,          FALSE,                  FALSE,
00964                  FALSE,                 FALSE,                  FALSE,
00965                  FALSE,
00966                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00967                  Logical_4,             0},
00968 
00969                 {Logical,               0,                      NO_Tbl_Idx,
00970                  Unknown_Char,          FALSE,                  FALSE,
00971                  FALSE,                 FALSE,                  FALSE,
00972                  FALSE,
00973                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00974                  Logical_8,             0},
00975 
00976                 {Character,             0,                      NO_Tbl_Idx,
00977                  Const_Len_Char,        FALSE,                  FALSE,
00978                  FALSE,                 FALSE,                  FALSE,
00979                  FALSE,
00980                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00981                  Character_1,           0},
00982 
00983                 {Character,             0,                      NO_Tbl_Idx,
00984                  Const_Len_Char,        FALSE,                  FALSE,
00985                  FALSE,                 FALSE,                  FALSE,
00986                  FALSE,
00987                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00988                  Character_2,           0},
00989 
00990                 {Character,             0,                      NO_Tbl_Idx,
00991                  Const_Len_Char,        FALSE,                  FALSE,
00992                  FALSE,                 FALSE,                  FALSE,
00993                  FALSE,
00994                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
00995                  Character_4,           0},
00996 
00997                 {CRI_Ch_Ptr,            0,                      NO_Tbl_Idx,
00998                  Unknown_Char,          FALSE,                  FALSE,
00999                  FALSE,                 FALSE,                  FALSE,
01000                  FALSE,
01001                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
01002                  CRI_Ch_Ptr_8,          0},
01003 
01004                 {Structure,             0,                      NO_Tbl_Idx,
01005                  Unknown_Char,          FALSE,                  FALSE,
01006                  FALSE,                 FALSE,                  FALSE,
01007                  FALSE,
01008                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
01009                  Structure_Type,        0},
01010 
01011                 {CRI_Parcel_Ptr,        0,                      NO_Tbl_Idx,
01012                  Unknown_Char,          FALSE,                  FALSE,
01013                  FALSE,                 FALSE,                  FALSE,
01014                  FALSE,
01015                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
01016                  CRI_Parcel_Ptr_8,      0},
01017 
01018 /* this is the DOUBLE_DEFAULT_TYPE entry. keywords "DOUBLE PRECISION" only */
01019 
01020                 {Real,                  0,                      NO_Tbl_Idx,
01021                  Unknown_Char,          FALSE,                  FALSE,
01022                  FALSE,                 FALSE,                  FALSE,
01023                  TRUE,
01024                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
01025                  Real_8,                0},
01026 
01027 /* this is the DOUBLE_COMPLEX_DEFAULT_TYPE entry.  "DOUBLE COMPLEX" only */
01028 
01029                 {Complex,               0,                      NO_Tbl_Idx,
01030                  Unknown_Char,          FALSE,                  FALSE,
01031                  FALSE,                 FALSE,                  FALSE,
01032                  TRUE,
01033                  0,                     Default_Typed,          NO_Tbl_Idx, 0,
01034                  Complex_8,             0},
01035 
01036 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines