Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
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 };