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 /* Initialization of operator information */ 00037 00038 #include "errors.h" 00039 #include "opcode.h" 00040 #include "config.h" 00041 00042 struct OPERATOR_info_struct OPERATOR_info[OPERATOR_LAST+1] = { 00043 00044 OPERATOR_info_struct(OPERATOR_UNKNOWN, 00045 "UNKNOWN_OPERATOR", 00046 0 /* nkids */, 00047 OPERATOR_MAPCAT_HDR /* mapcat */, 00048 0), 00049 00050 OPERATOR_info_struct(OPR_ABS, 00051 "OPR_ABS", 00052 1 /* nkids */, 00053 OPERATOR_MAPCAT_OEXP /* mapcat */, 00054 OPERATOR_PROPERTY_expression), 00055 00056 OPERATOR_info_struct(OPR_ADD, 00057 "OPR_ADD", 00058 2 /* nkids */, 00059 OPERATOR_MAPCAT_OEXP /* mapcat */, 00060 OPERATOR_PROPERTY_expression), 00061 00062 OPERATOR_info_struct(OPR_AGOTO, 00063 "OPR_AGOTO", 00064 1 /* nkids */, 00065 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00066 OPERATOR_PROPERTY_stmt | 00067 OPERATOR_PROPERTY_non_scf | 00068 OPERATOR_PROPERTY_endsbb | 00069 OPERATOR_PROPERTY_next_prev), 00070 00071 OPERATOR_info_struct(OPR_ALTENTRY, 00072 "OPR_ALTENTRY", 00073 -1 /* nkids */, 00074 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00075 OPERATOR_PROPERTY_stmt | 00076 OPERATOR_PROPERTY_non_scf | 00077 OPERATOR_PROPERTY_next_prev | 00078 OPERATOR_PROPERTY_sym), 00079 00080 OPERATOR_info_struct(OPR_ARRAY, 00081 "OPR_ARRAY", 00082 -1 /* nkids */, 00083 OPERATOR_MAPCAT_ARRAY /* mapcat */, 00084 OPERATOR_PROPERTY_expression | 00085 OPERATOR_PROPERTY_ndim | 00086 OPERATOR_PROPERTY_esize), 00087 00088 OPERATOR_info_struct(OPR_ARRAYEXP, 00089 "OPR_ARRAYEXP", 00090 -1 /* nkids */, 00091 OPERATOR_MAPCAT_OEXP /* mapcat */, 00092 OPERATOR_PROPERTY_expression), 00093 00094 OPERATOR_info_struct(OPR_ARRSECTION, 00095 "OPR_ARRSECTION", 00096 -1 /* nkids */, 00097 OPERATOR_MAPCAT_ARRAY /* mapcat */, 00098 OPERATOR_PROPERTY_expression | 00099 OPERATOR_PROPERTY_ndim | 00100 OPERATOR_PROPERTY_esize), 00101 00102 OPERATOR_info_struct(OPR_ASHR, 00103 "OPR_ASHR", 00104 2 /* nkids */, 00105 OPERATOR_MAPCAT_OEXP /* mapcat */, 00106 OPERATOR_PROPERTY_expression), 00107 00108 OPERATOR_info_struct(OPR_ASSERT, 00109 "OPR_ASSERT", 00110 1 /* nkids */, 00111 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00112 OPERATOR_PROPERTY_stmt | 00113 OPERATOR_PROPERTY_next_prev | 00114 OPERATOR_PROPERTY_offset), 00115 00116 OPERATOR_info_struct(OPR_BACKWARD_BARRIER, 00117 "OPR_BACKWARD_BARRIER", 00118 -1 /* nkids */, 00119 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00120 OPERATOR_PROPERTY_stmt | 00121 OPERATOR_PROPERTY_non_scf | 00122 OPERATOR_PROPERTY_next_prev | 00123 OPERATOR_PROPERTY_barrier), 00124 00125 OPERATOR_info_struct(OPR_BAND, 00126 "OPR_BAND", 00127 2 /* nkids */, 00128 OPERATOR_MAPCAT_OEXP /* mapcat */, 00129 OPERATOR_PROPERTY_expression), 00130 00131 OPERATOR_info_struct(OPR_BIOR, 00132 "OPR_BIOR", 00133 2 /* nkids */, 00134 OPERATOR_MAPCAT_OEXP /* mapcat */, 00135 OPERATOR_PROPERTY_expression), 00136 00137 OPERATOR_info_struct(OPR_BLOCK, 00138 "OPR_BLOCK", 00139 -1 /* nkids */, 00140 OPERATOR_MAPCAT_SCF /* mapcat */, 00141 OPERATOR_PROPERTY_scf | 00142 OPERATOR_PROPERTY_next_prev), 00143 00144 OPERATOR_info_struct(OPR_BNOR, 00145 "OPR_BNOR", 00146 2 /* nkids */, 00147 OPERATOR_MAPCAT_OEXP /* mapcat */, 00148 OPERATOR_PROPERTY_expression), 00149 00150 OPERATOR_info_struct(OPR_BNOT, 00151 "OPR_BNOT", 00152 1 /* nkids */, 00153 OPERATOR_MAPCAT_OEXP /* mapcat */, 00154 OPERATOR_PROPERTY_expression), 00155 00156 OPERATOR_info_struct(OPR_BXOR, 00157 "OPR_BXOR", 00158 2 /* nkids */, 00159 OPERATOR_MAPCAT_OEXP /* mapcat */, 00160 OPERATOR_PROPERTY_expression), 00161 00162 OPERATOR_info_struct(OPR_CALL, 00163 "OPR_CALL", 00164 -1 /* nkids */, 00165 OPERATOR_MAPCAT_CALL /* mapcat */, 00166 OPERATOR_PROPERTY_stmt | 00167 OPERATOR_PROPERTY_call | 00168 OPERATOR_PROPERTY_endsbb | 00169 OPERATOR_PROPERTY_next_prev | 00170 OPERATOR_PROPERTY_sym | 00171 OPERATOR_PROPERTY_flags), 00172 00173 OPERATOR_info_struct(OPR_CAND, 00174 "OPR_CAND", 00175 2 /* nkids */, 00176 OPERATOR_MAPCAT_OEXP /* mapcat */, 00177 OPERATOR_PROPERTY_expression | 00178 OPERATOR_PROPERTY_boolean), 00179 00180 OPERATOR_info_struct(OPR_CASEGOTO, 00181 "OPR_CASEGOTO", 00182 0 /* nkids */, 00183 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00184 OPERATOR_PROPERTY_stmt | 00185 OPERATOR_PROPERTY_leaf | 00186 OPERATOR_PROPERTY_non_scf | 00187 OPERATOR_PROPERTY_next_prev | 00188 OPERATOR_PROPERTY_label | 00189 OPERATOR_PROPERTY_value), 00190 00191 OPERATOR_info_struct(OPR_CEIL, 00192 "OPR_CEIL", 00193 1 /* nkids */, 00194 OPERATOR_MAPCAT_OEXP /* mapcat */, 00195 OPERATOR_PROPERTY_expression), 00196 00197 OPERATOR_info_struct(OPR_CIOR, 00198 "OPR_CIOR", 00199 2 /* nkids */, 00200 OPERATOR_MAPCAT_OEXP /* mapcat */, 00201 OPERATOR_PROPERTY_expression | 00202 OPERATOR_PROPERTY_boolean), 00203 00204 OPERATOR_info_struct(OPR_COMMA, 00205 "OPR_COMMA", 00206 2 /* nkids */, 00207 OPERATOR_MAPCAT_OEXP /* mapcat */, 00208 OPERATOR_PROPERTY_expression), 00209 00210 OPERATOR_info_struct(OPR_COMMENT, 00211 "OPR_COMMENT", 00212 0 /* nkids */, 00213 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00214 OPERATOR_PROPERTY_stmt | 00215 OPERATOR_PROPERTY_leaf | 00216 OPERATOR_PROPERTY_not_executable | 00217 OPERATOR_PROPERTY_next_prev | 00218 OPERATOR_PROPERTY_sym), 00219 00220 OPERATOR_info_struct(OPR_COMPGOTO, 00221 "OPR_COMPGOTO", 00222 -1 /* nkids */, 00223 OPERATOR_MAPCAT_SCF /* mapcat */, 00224 OPERATOR_PROPERTY_stmt | 00225 OPERATOR_PROPERTY_non_scf | 00226 OPERATOR_PROPERTY_endsbb | 00227 OPERATOR_PROPERTY_next_prev | 00228 OPERATOR_PROPERTY_num_entries | 00229 OPERATOR_PROPERTY_last_label), 00230 00231 OPERATOR_info_struct(OPR_PAIR, 00232 "OPR_PAIR", 00233 2 /* nkids */, 00234 OPERATOR_MAPCAT_OEXP /* mapcat */, 00235 OPERATOR_PROPERTY_expression), 00236 00237 OPERATOR_info_struct(OPR_CONST, 00238 "OPR_CONST", 00239 0 /* nkids */, 00240 OPERATOR_MAPCAT_OEXP /* mapcat */, 00241 OPERATOR_PROPERTY_expression | 00242 OPERATOR_PROPERTY_leaf | 00243 OPERATOR_PROPERTY_sym), 00244 00245 OPERATOR_info_struct(OPR_CSELECT, 00246 "OPR_CSELECT", 00247 3 /* nkids */, 00248 OPERATOR_MAPCAT_OEXP /* mapcat */, 00249 OPERATOR_PROPERTY_expression), 00250 00251 OPERATOR_info_struct(OPR_CVT, 00252 "OPR_CVT", 00253 1 /* nkids */, 00254 OPERATOR_MAPCAT_OEXP /* mapcat */, 00255 OPERATOR_PROPERTY_expression), 00256 00257 OPERATOR_info_struct(OPR_CVTL, 00258 "OPR_CVTL", 00259 1 /* nkids */, 00260 OPERATOR_MAPCAT_OEXP /* mapcat */, 00261 OPERATOR_PROPERTY_expression | 00262 OPERATOR_PROPERTY_bits), 00263 00264 OPERATOR_info_struct(OPR_DIV, 00265 "OPR_DIV", 00266 2 /* nkids */, 00267 OPERATOR_MAPCAT_OEXP /* mapcat */, 00268 OPERATOR_PROPERTY_expression), 00269 00270 OPERATOR_info_struct(OPR_DIVREM, 00271 "OPR_DIVREM", 00272 2 /* nkids */, 00273 OPERATOR_MAPCAT_OEXP /* mapcat */, 00274 OPERATOR_PROPERTY_expression), 00275 00276 OPERATOR_info_struct(OPR_DO_LOOP, 00277 "OPR_DO_LOOP", 00278 -1 /* nkids */, 00279 OPERATOR_MAPCAT_SCF /* mapcat */, 00280 OPERATOR_PROPERTY_scf | 00281 OPERATOR_PROPERTY_next_prev), 00282 00283 OPERATOR_info_struct(OPR_DO_WHILE, 00284 "OPR_DO_WHILE", 00285 2 /* nkids */, 00286 OPERATOR_MAPCAT_SCF /* mapcat */, 00287 OPERATOR_PROPERTY_scf | 00288 OPERATOR_PROPERTY_next_prev), 00289 00290 OPERATOR_info_struct(OPR_EQ, 00291 "OPR_EQ", 00292 2 /* nkids */, 00293 OPERATOR_MAPCAT_OEXP /* mapcat */, 00294 OPERATOR_PROPERTY_expression | 00295 OPERATOR_PROPERTY_compare | 00296 OPERATOR_PROPERTY_boolean), 00297 00298 OPERATOR_info_struct(OPR_EVAL, 00299 "OPR_EVAL", 00300 1 /* nkids */, 00301 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00302 OPERATOR_PROPERTY_stmt | 00303 OPERATOR_PROPERTY_next_prev), 00304 00305 OPERATOR_info_struct(OPR_EXC_SCOPE_BEGIN, 00306 "OPR_EXC_SCOPE_BEGIN", 00307 -1 /* nkids */, 00308 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00309 OPERATOR_PROPERTY_stmt | 00310 OPERATOR_PROPERTY_non_scf | 00311 OPERATOR_PROPERTY_next_prev | 00312 OPERATOR_PROPERTY_offset | 00313 OPERATOR_PROPERTY_ereg_supp), 00314 00315 OPERATOR_info_struct(OPR_EXC_SCOPE_END, 00316 "OPR_EXC_SCOPE_END", 00317 -1 /* nkids */, 00318 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00319 OPERATOR_PROPERTY_stmt | 00320 OPERATOR_PROPERTY_non_scf | 00321 OPERATOR_PROPERTY_next_prev | 00322 OPERATOR_PROPERTY_offset), 00323 00324 OPERATOR_info_struct(OPR_FALSEBR, 00325 "OPR_FALSEBR", 00326 1 /* nkids */, 00327 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00328 OPERATOR_PROPERTY_stmt | 00329 OPERATOR_PROPERTY_non_scf | 00330 OPERATOR_PROPERTY_endsbb | 00331 OPERATOR_PROPERTY_next_prev | 00332 OPERATOR_PROPERTY_label), 00333 00334 OPERATOR_info_struct(OPR_FLOOR, 00335 "OPR_FLOOR", 00336 1 /* nkids */, 00337 OPERATOR_MAPCAT_OEXP /* mapcat */, 00338 OPERATOR_PROPERTY_expression), 00339 00340 OPERATOR_info_struct(OPR_FORWARD_BARRIER, 00341 "OPR_FORWARD_BARRIER", 00342 -1 /* nkids */, 00343 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00344 OPERATOR_PROPERTY_stmt | 00345 OPERATOR_PROPERTY_non_scf | 00346 OPERATOR_PROPERTY_next_prev | 00347 OPERATOR_PROPERTY_barrier), 00348 00349 OPERATOR_info_struct(OPR_FUNC_ENTRY, 00350 "OPR_FUNC_ENTRY", 00351 -1 /* nkids */, 00352 OPERATOR_MAPCAT_HDR /* mapcat */, 00353 OPERATOR_PROPERTY_scf | 00354 OPERATOR_PROPERTY_next_prev | 00355 OPERATOR_PROPERTY_sym), 00356 00357 OPERATOR_info_struct(OPR_GE, 00358 "OPR_GE", 00359 2 /* nkids */, 00360 OPERATOR_MAPCAT_OEXP /* mapcat */, 00361 OPERATOR_PROPERTY_expression | 00362 OPERATOR_PROPERTY_compare | 00363 OPERATOR_PROPERTY_boolean), 00364 00365 OPERATOR_info_struct(OPR_GOTO, 00366 "OPR_GOTO", 00367 0 /* nkids */, 00368 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00369 OPERATOR_PROPERTY_stmt | 00370 OPERATOR_PROPERTY_leaf | 00371 OPERATOR_PROPERTY_non_scf | 00372 OPERATOR_PROPERTY_endsbb | 00373 OPERATOR_PROPERTY_next_prev | 00374 OPERATOR_PROPERTY_label), 00375 00376 OPERATOR_info_struct(OPR_GT, 00377 "OPR_GT", 00378 2 /* nkids */, 00379 OPERATOR_MAPCAT_OEXP /* mapcat */, 00380 OPERATOR_PROPERTY_expression | 00381 OPERATOR_PROPERTY_compare | 00382 OPERATOR_PROPERTY_boolean), 00383 00384 OPERATOR_info_struct(OPR_HIGHMPY, 00385 "OPR_HIGHMPY", 00386 2 /* nkids */, 00387 OPERATOR_MAPCAT_OEXP /* mapcat */, 00388 OPERATOR_PROPERTY_expression), 00389 00390 OPERATOR_info_struct(OPR_HIGHPART, 00391 "OPR_HIGHPART", 00392 1 /* nkids */, 00393 OPERATOR_MAPCAT_OEXP /* mapcat */, 00394 OPERATOR_PROPERTY_expression), 00395 00396 OPERATOR_info_struct(OPR_ICALL, 00397 "OPR_ICALL", 00398 -1 /* nkids */, 00399 OPERATOR_MAPCAT_CALL /* mapcat */, 00400 OPERATOR_PROPERTY_stmt | 00401 OPERATOR_PROPERTY_call | 00402 OPERATOR_PROPERTY_endsbb | 00403 OPERATOR_PROPERTY_next_prev | 00404 OPERATOR_PROPERTY_flags | 00405 OPERATOR_PROPERTY_1ty), 00406 00407 OPERATOR_info_struct(OPR_IDNAME, 00408 "OPR_IDNAME", 00409 0 /* nkids */, 00410 OPERATOR_MAPCAT_OEXP /* mapcat */, 00411 OPERATOR_PROPERTY_expression | 00412 OPERATOR_PROPERTY_leaf | 00413 OPERATOR_PROPERTY_sym | 00414 OPERATOR_PROPERTY_offset), 00415 00416 OPERATOR_info_struct(OPR_IF, 00417 "OPR_IF", 00418 3 /* nkids */, 00419 OPERATOR_MAPCAT_SCF /* mapcat */, 00420 OPERATOR_PROPERTY_scf | 00421 OPERATOR_PROPERTY_next_prev), 00422 00423 OPERATOR_info_struct(OPR_ILDA, 00424 "OPR_ILDA", 00425 1 /* nkids */, 00426 OPERATOR_MAPCAT_OEXP /* mapcat */, 00427 OPERATOR_PROPERTY_expression | 00428 OPERATOR_PROPERTY_offset | 00429 OPERATOR_PROPERTY_1ty | 00430 OPERATOR_PROPERTY_field_id), 00431 00432 OPERATOR_info_struct(OPR_ILDBITS, 00433 "OPR_ILDBITS", 00434 1 /* nkids */, 00435 OPERATOR_MAPCAT_LDST /* mapcat */, 00436 OPERATOR_PROPERTY_expression | 00437 OPERATOR_PROPERTY_load | 00438 OPERATOR_PROPERTY_offset | 00439 OPERATOR_PROPERTY_2ty), 00440 00441 OPERATOR_info_struct(OPR_ILOAD, 00442 "OPR_ILOAD", 00443 1 /* nkids */, 00444 OPERATOR_MAPCAT_LDST /* mapcat */, 00445 OPERATOR_PROPERTY_expression | 00446 OPERATOR_PROPERTY_load | 00447 OPERATOR_PROPERTY_offset | 00448 OPERATOR_PROPERTY_2ty | 00449 OPERATOR_PROPERTY_field_id), 00450 00451 OPERATOR_info_struct(OPR_ILOADX, 00452 "OPR_ILOADX", 00453 2 /* nkids */, 00454 OPERATOR_MAPCAT_LDST /* mapcat */, 00455 OPERATOR_PROPERTY_expression | 00456 OPERATOR_PROPERTY_load | 00457 OPERATOR_PROPERTY_2ty), 00458 00459 OPERATOR_info_struct(OPR_SECONDPART, 00460 "OPR_SECONDPART", 00461 1 /* nkids */, 00462 OPERATOR_MAPCAT_OEXP /* mapcat */, 00463 OPERATOR_PROPERTY_expression), 00464 00465 OPERATOR_info_struct(OPR_INTCONST, 00466 "OPR_INTCONST", 00467 0 /* nkids */, 00468 OPERATOR_MAPCAT_OEXP /* mapcat */, 00469 OPERATOR_PROPERTY_expression | 00470 OPERATOR_PROPERTY_leaf | 00471 OPERATOR_PROPERTY_value), 00472 00473 OPERATOR_info_struct(OPR_INTRINSIC_CALL, 00474 "OPR_INTRINSIC_CALL", 00475 -1 /* nkids */, 00476 OPERATOR_MAPCAT_CALL /* mapcat */, 00477 OPERATOR_PROPERTY_stmt | 00478 OPERATOR_PROPERTY_call | 00479 OPERATOR_PROPERTY_endsbb | 00480 OPERATOR_PROPERTY_next_prev | 00481 OPERATOR_PROPERTY_flags | 00482 OPERATOR_PROPERTY_inumber), 00483 00484 OPERATOR_info_struct(OPR_INTRINSIC_OP, 00485 "OPR_INTRINSIC_OP", 00486 -1 /* nkids */, 00487 OPERATOR_MAPCAT_OEXP /* mapcat */, 00488 OPERATOR_PROPERTY_expression | 00489 OPERATOR_PROPERTY_flags | 00490 OPERATOR_PROPERTY_inumber), 00491 00492 OPERATOR_info_struct(OPR_IO, 00493 "OPR_IO", 00494 -1 /* nkids */, 00495 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00496 OPERATOR_PROPERTY_stmt | 00497 OPERATOR_PROPERTY_endsbb | 00498 OPERATOR_PROPERTY_next_prev | 00499 OPERATOR_PROPERTY_flags | 00500 OPERATOR_PROPERTY_inumber), 00501 00502 OPERATOR_info_struct(OPR_IO_ITEM, 00503 "OPR_IO_ITEM", 00504 -1 /* nkids */, 00505 OPERATOR_MAPCAT_OEXP /* mapcat */, 00506 OPERATOR_PROPERTY_expression | 00507 OPERATOR_PROPERTY_inumber | 00508 OPERATOR_PROPERTY_1ty), 00509 00510 OPERATOR_info_struct(OPR_ISTBITS, 00511 "OPR_ISTBITS", 00512 2 /* nkids */, 00513 OPERATOR_MAPCAT_LDST /* mapcat */, 00514 OPERATOR_PROPERTY_stmt | 00515 OPERATOR_PROPERTY_store | 00516 OPERATOR_PROPERTY_next_prev | 00517 OPERATOR_PROPERTY_offset | 00518 OPERATOR_PROPERTY_1ty), 00519 00520 OPERATOR_info_struct(OPR_ISTORE, 00521 "OPR_ISTORE", 00522 2 /* nkids */, 00523 OPERATOR_MAPCAT_LDST /* mapcat */, 00524 OPERATOR_PROPERTY_stmt | 00525 OPERATOR_PROPERTY_store | 00526 OPERATOR_PROPERTY_next_prev | 00527 OPERATOR_PROPERTY_offset | 00528 OPERATOR_PROPERTY_1ty | 00529 OPERATOR_PROPERTY_field_id), 00530 00531 00532 OPERATOR_info_struct(OPR_ISTOREX, 00533 "OPR_ISTOREX", 00534 3 /* nkids */, 00535 OPERATOR_MAPCAT_LDST /* mapcat */, 00536 OPERATOR_PROPERTY_stmt | 00537 OPERATOR_PROPERTY_store | 00538 OPERATOR_PROPERTY_next_prev | 00539 OPERATOR_PROPERTY_1ty), 00540 00541 OPERATOR_info_struct(OPR_LABEL, 00542 "OPR_LABEL", 00543 -1 /* nkids */, 00544 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00545 OPERATOR_PROPERTY_stmt | 00546 OPERATOR_PROPERTY_non_scf | 00547 OPERATOR_PROPERTY_not_executable | 00548 OPERATOR_PROPERTY_next_prev | 00549 OPERATOR_PROPERTY_label | 00550 OPERATOR_PROPERTY_flags), 00551 00552 OPERATOR_info_struct(OPR_LAND, 00553 "OPR_LAND", 00554 2 /* nkids */, 00555 OPERATOR_MAPCAT_OEXP /* mapcat */, 00556 OPERATOR_PROPERTY_expression | 00557 OPERATOR_PROPERTY_boolean), 00558 00559 OPERATOR_info_struct(OPR_LDA, 00560 "OPR_LDA", 00561 0 /* nkids */, 00562 OPERATOR_MAPCAT_OEXP /* mapcat */, 00563 OPERATOR_PROPERTY_expression | 00564 OPERATOR_PROPERTY_leaf | 00565 OPERATOR_PROPERTY_sym | 00566 OPERATOR_PROPERTY_offset | 00567 OPERATOR_PROPERTY_1ty | 00568 OPERATOR_PROPERTY_field_id), 00569 00570 OPERATOR_info_struct(OPR_LDBITS, 00571 "OPR_LDBITS", 00572 0 /* nkids */, 00573 OPERATOR_MAPCAT_LDST /* mapcat */, 00574 OPERATOR_PROPERTY_expression | 00575 OPERATOR_PROPERTY_leaf | 00576 OPERATOR_PROPERTY_load | 00577 OPERATOR_PROPERTY_sym | 00578 OPERATOR_PROPERTY_offset | 00579 OPERATOR_PROPERTY_1ty), 00580 00581 OPERATOR_info_struct(OPR_LDID, 00582 "OPR_LDID", 00583 0 /* nkids */, 00584 OPERATOR_MAPCAT_LDST /* mapcat */, 00585 OPERATOR_PROPERTY_expression | 00586 OPERATOR_PROPERTY_leaf | 00587 OPERATOR_PROPERTY_load | 00588 OPERATOR_PROPERTY_sym | 00589 OPERATOR_PROPERTY_offset | 00590 OPERATOR_PROPERTY_1ty | 00591 OPERATOR_PROPERTY_field_id), 00592 00593 OPERATOR_info_struct(OPR_LE, 00594 "OPR_LE", 00595 2 /* nkids */, 00596 OPERATOR_MAPCAT_OEXP /* mapcat */, 00597 OPERATOR_PROPERTY_expression | 00598 OPERATOR_PROPERTY_compare | 00599 OPERATOR_PROPERTY_boolean), 00600 00601 OPERATOR_info_struct(OPR_LIOR, 00602 "OPR_LIOR", 00603 2 /* nkids */, 00604 OPERATOR_MAPCAT_OEXP /* mapcat */, 00605 OPERATOR_PROPERTY_expression | 00606 OPERATOR_PROPERTY_boolean), 00607 00608 OPERATOR_info_struct(OPR_LNOT, 00609 "OPR_LNOT", 00610 1 /* nkids */, 00611 OPERATOR_MAPCAT_OEXP /* mapcat */, 00612 OPERATOR_PROPERTY_expression | 00613 OPERATOR_PROPERTY_boolean), 00614 00615 OPERATOR_info_struct(OPR_LOOP_INFO, 00616 "OPR_LOOP_INFO", 00617 -1 /* nkids */, 00618 OPERATOR_MAPCAT_OEXP /* mapcat */, 00619 OPERATOR_PROPERTY_expression | 00620 OPERATOR_PROPERTY_2offsets | 00621 OPERATOR_PROPERTY_flags), 00622 00623 OPERATOR_info_struct(OPR_LOWPART, 00624 "OPR_LOWPART", 00625 1 /* nkids */, 00626 OPERATOR_MAPCAT_OEXP /* mapcat */, 00627 OPERATOR_PROPERTY_expression), 00628 00629 OPERATOR_info_struct(OPR_LSHR, 00630 "OPR_LSHR", 00631 2 /* nkids */, 00632 OPERATOR_MAPCAT_OEXP /* mapcat */, 00633 OPERATOR_PROPERTY_expression), 00634 00635 OPERATOR_info_struct(OPR_LT, 00636 "OPR_LT", 00637 2 /* nkids */, 00638 OPERATOR_MAPCAT_OEXP /* mapcat */, 00639 OPERATOR_PROPERTY_expression | 00640 OPERATOR_PROPERTY_compare | 00641 OPERATOR_PROPERTY_boolean), 00642 00643 OPERATOR_info_struct(OPR_MADD, 00644 "OPR_MADD", 00645 3 /* nkids */, 00646 OPERATOR_MAPCAT_OEXP /* mapcat */, 00647 OPERATOR_PROPERTY_expression), 00648 00649 OPERATOR_info_struct(OPR_MAX, 00650 "OPR_MAX", 00651 2 /* nkids */, 00652 OPERATOR_MAPCAT_OEXP /* mapcat */, 00653 OPERATOR_PROPERTY_expression), 00654 00655 OPERATOR_info_struct(OPR_MAXPART, 00656 "OPR_MAXPART", 00657 1 /* nkids */, 00658 OPERATOR_MAPCAT_OEXP /* mapcat */, 00659 OPERATOR_PROPERTY_expression), 00660 00661 OPERATOR_info_struct(OPR_MIN, 00662 "OPR_MIN", 00663 2 /* nkids */, 00664 OPERATOR_MAPCAT_OEXP /* mapcat */, 00665 OPERATOR_PROPERTY_expression), 00666 00667 OPERATOR_info_struct(OPR_MINMAX, 00668 "OPR_MINMAX", 00669 2 /* nkids */, 00670 OPERATOR_MAPCAT_OEXP /* mapcat */, 00671 OPERATOR_PROPERTY_expression), 00672 00673 OPERATOR_info_struct(OPR_MINPART, 00674 "OPR_MINPART", 00675 1 /* nkids */, 00676 OPERATOR_MAPCAT_OEXP /* mapcat */, 00677 OPERATOR_PROPERTY_expression), 00678 00679 OPERATOR_info_struct(OPR_MLOAD, 00680 "OPR_MLOAD", 00681 2 /* nkids */, 00682 OPERATOR_MAPCAT_LDST /* mapcat */, 00683 OPERATOR_PROPERTY_expression | 00684 OPERATOR_PROPERTY_load | 00685 OPERATOR_PROPERTY_offset | 00686 OPERATOR_PROPERTY_1ty | 00687 OPERATOR_PROPERTY_field_id), 00688 00689 OPERATOR_info_struct(OPR_MOD, 00690 "OPR_MOD", 00691 2 /* nkids */, 00692 OPERATOR_MAPCAT_OEXP /* mapcat */, 00693 OPERATOR_PROPERTY_expression), 00694 00695 OPERATOR_info_struct(OPR_MPY, 00696 "OPR_MPY", 00697 2 /* nkids */, 00698 OPERATOR_MAPCAT_OEXP /* mapcat */, 00699 OPERATOR_PROPERTY_expression), 00700 00701 OPERATOR_info_struct(OPR_MSTORE, 00702 "OPR_MSTORE", 00703 3 /* nkids */, 00704 OPERATOR_MAPCAT_LDST /* mapcat */, 00705 OPERATOR_PROPERTY_stmt | 00706 OPERATOR_PROPERTY_store | 00707 OPERATOR_PROPERTY_next_prev | 00708 OPERATOR_PROPERTY_offset | 00709 OPERATOR_PROPERTY_1ty | 00710 OPERATOR_PROPERTY_field_id), 00711 00712 OPERATOR_info_struct(OPR_MSUB, 00713 "OPR_MSUB", 00714 3 /* nkids */, 00715 OPERATOR_MAPCAT_OEXP /* mapcat */, 00716 OPERATOR_PROPERTY_expression), 00717 00718 OPERATOR_info_struct(OPR_NE, 00719 "OPR_NE", 00720 2 /* nkids */, 00721 OPERATOR_MAPCAT_OEXP /* mapcat */, 00722 OPERATOR_PROPERTY_expression | 00723 OPERATOR_PROPERTY_compare | 00724 OPERATOR_PROPERTY_boolean), 00725 00726 OPERATOR_info_struct(OPR_NEG, 00727 "OPR_NEG", 00728 1 /* nkids */, 00729 OPERATOR_MAPCAT_OEXP /* mapcat */, 00730 OPERATOR_PROPERTY_expression), 00731 00732 OPERATOR_info_struct(OPR_NMADD, 00733 "OPR_NMADD", 00734 3 /* nkids */, 00735 OPERATOR_MAPCAT_OEXP /* mapcat */, 00736 OPERATOR_PROPERTY_expression), 00737 00738 OPERATOR_info_struct(OPR_NMSUB, 00739 "OPR_NMSUB", 00740 3 /* nkids */, 00741 OPERATOR_MAPCAT_OEXP /* mapcat */, 00742 OPERATOR_PROPERTY_expression), 00743 00744 OPERATOR_info_struct(OPR_OPTPARM, 00745 "OPR_OPTPARM", 00746 1 /* nkids */, 00747 OPERATOR_MAPCAT_OEXP /* mapcat */, 00748 OPERATOR_PROPERTY_expression | 00749 OPERATOR_PROPERTY_not_executable), 00750 00751 OPERATOR_info_struct(OPR_OPT_CHI, 00752 "OPR_OPT_CHI", 00753 -1 /* nkids */, 00754 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00755 OPERATOR_PROPERTY_stmt | 00756 OPERATOR_PROPERTY_next_prev), 00757 00758 OPERATOR_info_struct(OPR_OPT_RESERVE2, 00759 "OPR_OPT_RESERVE2", 00760 -1 /* nkids */, 00761 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00762 OPERATOR_PROPERTY_stmt | 00763 OPERATOR_PROPERTY_not_executable), 00764 00765 OPERATOR_info_struct(OPR_PAREN, 00766 "OPR_PAREN", 00767 1 /* nkids */, 00768 OPERATOR_MAPCAT_OEXP /* mapcat */, 00769 OPERATOR_PROPERTY_expression), 00770 00771 OPERATOR_info_struct(OPR_PARM, 00772 "OPR_PARM", 00773 1 /* nkids */, 00774 OPERATOR_MAPCAT_OEXP /* mapcat */, 00775 OPERATOR_PROPERTY_expression | 00776 OPERATOR_PROPERTY_not_executable | 00777 OPERATOR_PROPERTY_flags | 00778 OPERATOR_PROPERTY_1ty), 00779 00780 OPERATOR_info_struct(OPR_PICCALL, 00781 "OPR_PICCALL", 00782 -1 /* nkids */, 00783 OPERATOR_MAPCAT_CALL /* mapcat */, 00784 OPERATOR_PROPERTY_stmt | 00785 OPERATOR_PROPERTY_call | 00786 OPERATOR_PROPERTY_endsbb | 00787 OPERATOR_PROPERTY_next_prev | 00788 OPERATOR_PROPERTY_sym | 00789 OPERATOR_PROPERTY_flags), 00790 00791 OPERATOR_info_struct(OPR_PRAGMA, 00792 "OPR_PRAGMA", 00793 0 /* nkids */, 00794 OPERATOR_MAPCAT_PRAGMA /* mapcat */, 00795 OPERATOR_PROPERTY_stmt | 00796 OPERATOR_PROPERTY_leaf | 00797 OPERATOR_PROPERTY_not_executable | 00798 OPERATOR_PROPERTY_next_prev | 00799 OPERATOR_PROPERTY_sym | 00800 OPERATOR_PROPERTY_offset | 00801 OPERATOR_PROPERTY_value), 00802 00803 OPERATOR_info_struct(OPR_PREFETCH, 00804 "OPR_PREFETCH", 00805 1 /* nkids */, 00806 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00807 OPERATOR_PROPERTY_stmt | 00808 OPERATOR_PROPERTY_prefetch | 00809 OPERATOR_PROPERTY_next_prev | 00810 OPERATOR_PROPERTY_offset | 00811 OPERATOR_PROPERTY_flags), 00812 00813 OPERATOR_info_struct(OPR_PREFETCHX, 00814 "OPR_PREFETCHX", 00815 2 /* nkids */, 00816 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00817 OPERATOR_PROPERTY_stmt | 00818 OPERATOR_PROPERTY_prefetch | 00819 OPERATOR_PROPERTY_next_prev | 00820 OPERATOR_PROPERTY_offset | 00821 OPERATOR_PROPERTY_flags), 00822 00823 OPERATOR_info_struct(OPR_RCOMMA, 00824 "OPR_RCOMMA", 00825 2 /* nkids */, 00826 OPERATOR_MAPCAT_OEXP /* mapcat */, 00827 OPERATOR_PROPERTY_expression), 00828 00829 OPERATOR_info_struct(OPR_FIRSTPART, 00830 "OPR_FIRSTPART", 00831 1 /* nkids */, 00832 OPERATOR_MAPCAT_OEXP /* mapcat */, 00833 OPERATOR_PROPERTY_expression), 00834 00835 OPERATOR_info_struct(OPR_RECIP, 00836 "OPR_RECIP", 00837 1 /* nkids */, 00838 OPERATOR_MAPCAT_OEXP /* mapcat */, 00839 OPERATOR_PROPERTY_expression), 00840 00841 OPERATOR_info_struct(OPR_REGION, 00842 "OPR_REGION", 00843 3 /* nkids */, 00844 OPERATOR_MAPCAT_HDR /* mapcat */, 00845 OPERATOR_PROPERTY_scf | 00846 OPERATOR_PROPERTY_next_prev | 00847 OPERATOR_PROPERTY_ereg_supp), 00848 00849 OPERATOR_info_struct(OPR_REGION_EXIT, 00850 "OPR_REGION_EXIT", 00851 0 /* nkids */, 00852 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00853 OPERATOR_PROPERTY_stmt | 00854 OPERATOR_PROPERTY_leaf | 00855 OPERATOR_PROPERTY_non_scf | 00856 OPERATOR_PROPERTY_endsbb | 00857 OPERATOR_PROPERTY_next_prev | 00858 OPERATOR_PROPERTY_label), 00859 00860 OPERATOR_info_struct(OPR_REM, 00861 "OPR_REM", 00862 2 /* nkids */, 00863 OPERATOR_MAPCAT_OEXP /* mapcat */, 00864 OPERATOR_PROPERTY_expression), 00865 00866 OPERATOR_info_struct(OPR_RETURN, 00867 "OPR_RETURN", 00868 0 /* nkids */, 00869 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00870 OPERATOR_PROPERTY_stmt | 00871 OPERATOR_PROPERTY_non_scf | 00872 OPERATOR_PROPERTY_endsbb | 00873 OPERATOR_PROPERTY_next_prev), 00874 00875 OPERATOR_info_struct(OPR_RETURN_VAL, 00876 "OPR_RETURN_VAL", 00877 1 /* nkids */, 00878 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00879 OPERATOR_PROPERTY_stmt | 00880 OPERATOR_PROPERTY_non_scf | 00881 OPERATOR_PROPERTY_endsbb | 00882 OPERATOR_PROPERTY_next_prev), 00883 00884 OPERATOR_info_struct(OPR_RND, 00885 "OPR_RND", 00886 1 /* nkids */, 00887 OPERATOR_MAPCAT_OEXP /* mapcat */, 00888 OPERATOR_PROPERTY_expression), 00889 00890 OPERATOR_info_struct(OPR_RSQRT, 00891 "OPR_RSQRT", 00892 1 /* nkids */, 00893 OPERATOR_MAPCAT_OEXP /* mapcat */, 00894 OPERATOR_PROPERTY_expression), 00895 00896 OPERATOR_info_struct(OPR_SELECT, 00897 "OPR_SELECT", 00898 3 /* nkids */, 00899 OPERATOR_MAPCAT_OEXP /* mapcat */, 00900 OPERATOR_PROPERTY_expression), 00901 00902 OPERATOR_info_struct(OPR_SHL, 00903 "OPR_SHL", 00904 2 /* nkids */, 00905 OPERATOR_MAPCAT_OEXP /* mapcat */, 00906 OPERATOR_PROPERTY_expression), 00907 00908 OPERATOR_info_struct(OPR_SQRT, 00909 "OPR_SQRT", 00910 1 /* nkids */, 00911 OPERATOR_MAPCAT_OEXP /* mapcat */, 00912 OPERATOR_PROPERTY_expression), 00913 00914 OPERATOR_info_struct(OPR_STBITS, 00915 "OPR_STBITS", 00916 1 /* nkids */, 00917 OPERATOR_MAPCAT_LDST /* mapcat */, 00918 OPERATOR_PROPERTY_stmt | 00919 OPERATOR_PROPERTY_store | 00920 OPERATOR_PROPERTY_next_prev | 00921 OPERATOR_PROPERTY_sym | 00922 OPERATOR_PROPERTY_offset | 00923 OPERATOR_PROPERTY_1ty), 00924 00925 OPERATOR_info_struct(OPR_STID, 00926 "OPR_STID", 00927 1 /* nkids */, 00928 OPERATOR_MAPCAT_LDST /* mapcat */, 00929 OPERATOR_PROPERTY_stmt | 00930 OPERATOR_PROPERTY_store | 00931 OPERATOR_PROPERTY_next_prev | 00932 OPERATOR_PROPERTY_sym | 00933 OPERATOR_PROPERTY_offset | 00934 OPERATOR_PROPERTY_1ty | 00935 OPERATOR_PROPERTY_field_id), 00936 00937 OPERATOR_info_struct(OPR_SUB, 00938 "OPR_SUB", 00939 2 /* nkids */, 00940 OPERATOR_MAPCAT_OEXP /* mapcat */, 00941 OPERATOR_PROPERTY_expression), 00942 00943 OPERATOR_info_struct(OPR_SWITCH, 00944 "OPR_SWITCH", 00945 -1 /* nkids */, 00946 OPERATOR_MAPCAT_SCF /* mapcat */, 00947 OPERATOR_PROPERTY_stmt | 00948 OPERATOR_PROPERTY_non_scf | 00949 OPERATOR_PROPERTY_endsbb | 00950 OPERATOR_PROPERTY_next_prev | 00951 OPERATOR_PROPERTY_num_entries | 00952 OPERATOR_PROPERTY_last_label), 00953 00954 OPERATOR_info_struct(OPR_TAS, 00955 "OPR_TAS", 00956 1 /* nkids */, 00957 OPERATOR_MAPCAT_OEXP /* mapcat */, 00958 OPERATOR_PROPERTY_expression | 00959 OPERATOR_PROPERTY_1ty), 00960 00961 OPERATOR_info_struct(OPR_TRAP, 00962 "OPR_TRAP", 00963 0 /* nkids */, 00964 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00965 OPERATOR_PROPERTY_stmt | 00966 OPERATOR_PROPERTY_next_prev | 00967 OPERATOR_PROPERTY_offset), 00968 00969 OPERATOR_info_struct(OPR_TRIPLET, 00970 "OPR_TRIPLET", 00971 3 /* nkids */, 00972 OPERATOR_MAPCAT_OEXP /* mapcat */, 00973 OPERATOR_PROPERTY_expression), 00974 00975 OPERATOR_info_struct(OPR_TRUEBR, 00976 "OPR_TRUEBR", 00977 1 /* nkids */, 00978 OPERATOR_MAPCAT_OSTMT /* mapcat */, 00979 OPERATOR_PROPERTY_stmt | 00980 OPERATOR_PROPERTY_non_scf | 00981 OPERATOR_PROPERTY_endsbb | 00982 OPERATOR_PROPERTY_next_prev | 00983 OPERATOR_PROPERTY_label), 00984 00985 OPERATOR_info_struct(OPR_TRUNC, 00986 "OPR_TRUNC", 00987 1 /* nkids */, 00988 OPERATOR_MAPCAT_OEXP /* mapcat */, 00989 OPERATOR_PROPERTY_expression), 00990 00991 OPERATOR_info_struct(OPR_VFCALL, 00992 "OPR_VFCALL", 00993 -1 /* nkids */, 00994 OPERATOR_MAPCAT_CALL /* mapcat */, 00995 OPERATOR_PROPERTY_stmt | 00996 OPERATOR_PROPERTY_call | 00997 OPERATOR_PROPERTY_endsbb | 00998 OPERATOR_PROPERTY_next_prev | 00999 OPERATOR_PROPERTY_flags | 01000 OPERATOR_PROPERTY_1ty), 01001 01002 OPERATOR_info_struct(OPR_WHERE, 01003 "OPR_WHERE", 01004 3 /* nkids */, 01005 OPERATOR_MAPCAT_SCF /* mapcat */, 01006 OPERATOR_PROPERTY_scf | 01007 OPERATOR_PROPERTY_next_prev), 01008 01009 OPERATOR_info_struct(OPR_WHILE_DO, 01010 "OPR_WHILE_DO", 01011 2 /* nkids */, 01012 OPERATOR_MAPCAT_SCF /* mapcat */, 01013 OPERATOR_PROPERTY_scf | 01014 OPERATOR_PROPERTY_next_prev), 01015 01016 OPERATOR_info_struct(OPR_XGOTO, 01017 "OPR_XGOTO", 01018 2 /* nkids */, 01019 OPERATOR_MAPCAT_SCF /* mapcat */, 01020 OPERATOR_PROPERTY_stmt | 01021 OPERATOR_PROPERTY_non_scf | 01022 OPERATOR_PROPERTY_endsbb | 01023 OPERATOR_PROPERTY_next_prev | 01024 OPERATOR_PROPERTY_sym | 01025 OPERATOR_PROPERTY_num_entries), 01026 01027 OPERATOR_info_struct(OPR_XMPY, 01028 "OPR_XMPY", 01029 2 /* nkids */, 01030 OPERATOR_MAPCAT_OEXP /* mapcat */, 01031 OPERATOR_PROPERTY_expression), 01032 01033 OPERATOR_info_struct(OPR_XPRAGMA, 01034 "OPR_XPRAGMA", 01035 1 /* nkids */, 01036 OPERATOR_MAPCAT_PRAGMA /* mapcat */, 01037 OPERATOR_PROPERTY_stmt | 01038 OPERATOR_PROPERTY_not_executable | 01039 OPERATOR_PROPERTY_next_prev | 01040 OPERATOR_PROPERTY_sym | 01041 OPERATOR_PROPERTY_offset), 01042 01043 OPERATOR_info_struct(OPR_AFFIRM, 01044 "OPR_AFFIRM", 01045 1 /* nkids */, 01046 OPERATOR_MAPCAT_OSTMT /* mapcat */, 01047 OPERATOR_PROPERTY_stmt | 01048 OPERATOR_PROPERTY_next_prev), 01049 01050 OPERATOR_info_struct(OPR_ALLOCA, 01051 "OPR_ALLOCA", 01052 1 /* nkids */, 01053 OPERATOR_MAPCAT_OEXP /* mapcat */, 01054 OPERATOR_PROPERTY_expression), 01055 01056 OPERATOR_info_struct(OPR_DEALLOCA, 01057 "OPR_DEALLOCA", 01058 -1 /* nkids */, 01059 OPERATOR_MAPCAT_OSTMT /* mapcat */, 01060 OPERATOR_PROPERTY_stmt | 01061 OPERATOR_PROPERTY_next_prev), 01062 01063 OPERATOR_info_struct(OPR_LDMA, 01064 "OPR_LDMA", 01065 0 /* nkids */, 01066 OPERATOR_MAPCAT_OEXP /* mapcat */, 01067 OPERATOR_PROPERTY_expression | 01068 OPERATOR_PROPERTY_leaf | 01069 OPERATOR_PROPERTY_sym | 01070 OPERATOR_PROPERTY_offset | 01071 OPERATOR_PROPERTY_1ty | 01072 OPERATOR_PROPERTY_field_id), 01073 01074 OPERATOR_info_struct(OPR_ASM_STMT, 01075 "OPR_ASM_STMT", 01076 -1 /* nkids */, 01077 OPERATOR_MAPCAT_OSTMT /* mapcat */, 01078 OPERATOR_PROPERTY_stmt | 01079 OPERATOR_PROPERTY_next_prev | 01080 OPERATOR_PROPERTY_sym | /* SCLASS_NAME string symbol */ 01081 OPERATOR_PROPERTY_flags), 01082 01083 OPERATOR_info_struct(OPR_ASM_EXPR, 01084 "OPR_ASM_EXPR", 01085 -1 /* nkids */, 01086 OPERATOR_MAPCAT_OEXP /* mapcat */, 01087 OPERATOR_PROPERTY_expression | 01088 OPERATOR_PROPERTY_sym | /* SCLASS_NAME string symbol */ 01089 OPERATOR_PROPERTY_flags), 01090 01091 OPERATOR_info_struct(OPR_ASM_INPUT, 01092 "OPR_ASM_INPUT", 01093 1 /* nkids */, 01094 OPERATOR_MAPCAT_OEXP /* mapcat */, 01095 OPERATOR_PROPERTY_expression | 01096 OPERATOR_PROPERTY_sym), /* SCLASS_NAME constraint symbol */ 01097 01098 OPERATOR_info_struct(OPR_RROTATE, 01099 "OPR_RROTATE", 01100 2 /* nkids */, 01101 OPERATOR_MAPCAT_OEXP /* mapcat */, 01102 OPERATOR_PROPERTY_expression), 01103 01104 OPERATOR_info_struct(OPR_LDA_LABEL, 01105 "OPR_LDA_LABEL", 01106 0 /* nkids */, 01107 OPERATOR_MAPCAT_OEXP /* mapcat */, 01108 OPERATOR_PROPERTY_expression | 01109 OPERATOR_PROPERTY_leaf | 01110 OPERATOR_PROPERTY_1ty | 01111 OPERATOR_PROPERTY_label), 01112 01113 OPERATOR_info_struct(OPR_GOTO_OUTER_BLOCK, 01114 "OPR_GOTO_OUTER_BLOCK", 01115 0 /* nkids */, 01116 OPERATOR_MAPCAT_OSTMT /* mapcat */, 01117 OPERATOR_PROPERTY_stmt | 01118 OPERATOR_PROPERTY_leaf | 01119 OPERATOR_PROPERTY_non_scf | 01120 OPERATOR_PROPERTY_endsbb | 01121 OPERATOR_PROPERTY_next_prev | 01122 OPERATOR_PROPERTY_label), 01123 01124 OPERATOR_info_struct(OPR_EXTRACT_BITS, 01125 "OPR_EXTRACT_BITS", 01126 1 /* nkids */, 01127 OPERATOR_MAPCAT_OEXP /* mapcat */, 01128 OPERATOR_PROPERTY_expression), 01129 01130 OPERATOR_info_struct(OPR_COMPOSE_BITS, 01131 "OPR_COMPOSE_BITS", 01132 2 /* nkids */, 01133 OPERATOR_MAPCAT_OEXP /* mapcat */, 01134 OPERATOR_PROPERTY_expression), 01135 01136 OPERATOR_info_struct(OPR_PSTORE, 01137 "OPR_PSTORE", 01138 2 /* nkids */, 01139 OPERATOR_MAPCAT_LDST /* mapcat */, 01140 OPERATOR_PROPERTY_stmt | 01141 OPERATOR_PROPERTY_store | 01142 OPERATOR_PROPERTY_next_prev | 01143 OPERATOR_PROPERTY_offset | 01144 OPERATOR_PROPERTY_1ty | 01145 OPERATOR_PROPERTY_field_id), 01146 01147 OPERATOR_info_struct(OPR_PSTID, 01148 "OPR_PSTID", 01149 1 /* nkids */, 01150 OPERATOR_MAPCAT_LDST /* mapcat */, 01151 OPERATOR_PROPERTY_stmt | 01152 OPERATOR_PROPERTY_store | 01153 OPERATOR_PROPERTY_next_prev | 01154 OPERATOR_PROPERTY_sym | 01155 OPERATOR_PROPERTY_offset | 01156 OPERATOR_PROPERTY_1ty | 01157 OPERATOR_PROPERTY_field_id), 01158 01159 OPERATOR_info_struct(OPR_USE, 01160 "OPR_USE", 01161 -1 /* nkids */, 01162 OPERATOR_MAPCAT_HDR /* mapcat */, 01163 OPERATOR_PROPERTY_scf | 01164 OPERATOR_PROPERTY_next_prev | 01165 OPERATOR_PROPERTY_sym), 01166 01167 OPERATOR_info_struct(OPR_NAMELIST, 01168 "OPR_NAMELIST", 01169 -1 /* nkids */, 01170 OPERATOR_MAPCAT_HDR /* mapcat */, 01171 OPERATOR_PROPERTY_scf | 01172 OPERATOR_PROPERTY_next_prev | 01173 OPERATOR_PROPERTY_sym), 01174 01175 OPERATOR_info_struct(OPR_IMPLICIT_BND, 01176 "OPR_IMPLICIT_BND", 01177 0 /* nkids */, 01178 OPERATOR_MAPCAT_HDR /* mapcat */, 01179 OPERATOR_PROPERTY_scf | 01180 OPERATOR_PROPERTY_leaf | 01181 OPERATOR_PROPERTY_sym), 01182 01183 OPERATOR_info_struct(OPR_SRCTRIPLET, 01184 "OPR_SRCTRIPLET", 01185 3 /* nkids */, 01186 OPERATOR_MAPCAT_OEXP /* mapcat */, 01187 OPERATOR_PROPERTY_expression), 01188 01189 OPERATOR_info_struct(OPR_NULLIFY, 01190 "OPR_NULLIFY", 01191 -1 /* nkids */, 01192 OPERATOR_MAPCAT_HDR /* mapcat */, 01193 OPERATOR_PROPERTY_scf | 01194 OPERATOR_PROPERTY_next_prev | 01195 OPERATOR_PROPERTY_sym), 01196 01197 01198 OPERATOR_info_struct(OPR_INTERFACE, 01199 "OPR_INTERFACE", 01200 -1 /* nkids */, 01201 OPERATOR_MAPCAT_HDR /* mapcat */, 01202 OPERATOR_PROPERTY_scf | 01203 OPERATOR_PROPERTY_next_prev | 01204 OPERATOR_PROPERTY_sym), 01205 01206 OPERATOR_info_struct(OPR_ARRAY_CONSTRUCT, 01207 "OPR_ARRAY_CONSTRUCT", 01208 -1 /* nkids */, 01209 OPERATOR_MAPCAT_OEXP /* mapcat */, 01210 OPERATOR_PROPERTY_expression), 01211 01212 OPERATOR_info_struct(OPR_IMPLIED_DO, 01213 "OPR_IMPLIED_DO", 01214 5 /* nkids */, 01215 OPERATOR_MAPCAT_OEXP /* mapcat */, 01216 OPERATOR_PROPERTY_expression), 01217 01218 OPERATOR_info_struct(OPR_STRCTFLD, 01219 "OPR_STRCTFLD", 01220 1 /* nkids */, 01221 OPERATOR_MAPCAT_LDST /* mapcat */, 01222 OPERATOR_PROPERTY_expression | 01223 OPERATOR_PROPERTY_load | 01224 OPERATOR_PROPERTY_2ty | 01225 OPERATOR_PROPERTY_field_id), 01226 01227 }; 01228 01229 static BOOL 01230 Is_MTYPE_b [MTYPE_LAST+1] = { 01231 0, /* MTYPE_UNKNOWN */ 01232 1, /* MTYPE_B */ 01233 0, /* MTYPE_I1 */ 01234 0, /* MTYPE_I2 */ 01235 1, /* MTYPE_I4 */ 01236 1, /* MTYPE_I8 */ 01237 0, /* MTYPE_U1 */ 01238 0, /* MTYPE_U2 */ 01239 1, /* MTYPE_U4 */ 01240 1, /* MTYPE_U8 */ 01241 0, /* MTYPE_F4 */ 01242 0, /* MTYPE_F8 */ 01243 0, /* MTYPE_F10 */ 01244 0, /* MTYPE_F16 */ 01245 0, /* MTYPE_STR */ 01246 0, /* MTYPE_FQ */ 01247 0, /* MTYPE_M */ 01248 0, /* MTYPE_C4 */ 01249 0, /* MTYPE_C8 */ 01250 0, /* MTYPE_CQ */ 01251 0, /* MTYPE_V */ 01252 0, /* MTYPE_BS */ 01253 0, /* MTYPE_A4 */ 01254 0, /* MTYPE_A8 */ 01255 0, /* MTYPE_C10 */ 01256 0, /* MTYPE_C16 */ 01257 0, /* MTYPE_I16 */ 01258 0 /* MTYPE_U16 */ 01259 }; 01260 01261 static BOOL 01262 Is_MTYPE_b_f_i_M_p_z [MTYPE_LAST+1] = { 01263 0, /* MTYPE_UNKNOWN */ 01264 1, /* MTYPE_B */ 01265 0, /* MTYPE_I1 */ 01266 0, /* MTYPE_I2 */ 01267 1, /* MTYPE_I4 */ 01268 1, /* MTYPE_I8 */ 01269 0, /* MTYPE_U1 */ 01270 0, /* MTYPE_U2 */ 01271 1, /* MTYPE_U4 */ 01272 1, /* MTYPE_U8 */ 01273 1, /* MTYPE_F4 */ 01274 1, /* MTYPE_F8 */ 01275 1, /* MTYPE_F10 */ 01276 1, /* MTYPE_F16 */ 01277 0, /* MTYPE_STR */ 01278 1, /* MTYPE_FQ */ 01279 1, /* MTYPE_M */ 01280 1, /* MTYPE_C4 */ 01281 1, /* MTYPE_C8 */ 01282 1, /* MTYPE_CQ */ 01283 0, /* MTYPE_V */ 01284 0, /* MTYPE_BS */ 01285 1, /* MTYPE_A4 */ 01286 1, /* MTYPE_A8 */ 01287 1, /* MTYPE_C10 */ 01288 1, /* MTYPE_C16 */ 01289 1, /* MTYPE_I16 */ 01290 1 /* MTYPE_U16 */ 01291 }; 01292 01293 static BOOL 01294 Is_MTYPE_b_f_i_M_p_V_z [MTYPE_LAST+1] = { 01295 0, /* MTYPE_UNKNOWN */ 01296 1, /* MTYPE_B */ 01297 0, /* MTYPE_I1 */ 01298 0, /* MTYPE_I2 */ 01299 1, /* MTYPE_I4 */ 01300 1, /* MTYPE_I8 */ 01301 0, /* MTYPE_U1 */ 01302 0, /* MTYPE_U2 */ 01303 1, /* MTYPE_U4 */ 01304 1, /* MTYPE_U8 */ 01305 1, /* MTYPE_F4 */ 01306 1, /* MTYPE_F8 */ 01307 1, /* MTYPE_F10 */ 01308 1, /* MTYPE_F16 */ 01309 0, /* MTYPE_STR */ 01310 1, /* MTYPE_FQ */ 01311 1, /* MTYPE_M */ 01312 1, /* MTYPE_C4 */ 01313 1, /* MTYPE_C8 */ 01314 1, /* MTYPE_CQ */ 01315 1, /* MTYPE_V */ 01316 0, /* MTYPE_BS */ 01317 1, /* MTYPE_A4 */ 01318 1, /* MTYPE_A8 */ 01319 1, /* MTYPE_C10 */ 01320 1, /* MTYPE_C16 */ 01321 1, /* MTYPE_I16 */ 01322 1 /* MTYPE_U16 */ 01323 }; 01324 01325 static BOOL 01326 Is_MTYPE_b_f_i_M_p_s_z [MTYPE_LAST+1] = { 01327 0, /* MTYPE_UNKNOWN */ 01328 1, /* MTYPE_B */ 01329 1, /* MTYPE_I1 */ 01330 1, /* MTYPE_I2 */ 01331 1, /* MTYPE_I4 */ 01332 1, /* MTYPE_I8 */ 01333 1, /* MTYPE_U1 */ 01334 1, /* MTYPE_U2 */ 01335 1, /* MTYPE_U4 */ 01336 1, /* MTYPE_U8 */ 01337 1, /* MTYPE_F4 */ 01338 1, /* MTYPE_F8 */ 01339 1, /* MTYPE_F10 */ 01340 1, /* MTYPE_F16 */ 01341 0, /* MTYPE_STR */ 01342 1, /* MTYPE_FQ */ 01343 1, /* MTYPE_M */ 01344 1, /* MTYPE_C4 */ 01345 1, /* MTYPE_C8 */ 01346 1, /* MTYPE_CQ */ 01347 0, /* MTYPE_V */ 01348 0, /* MTYPE_BS */ 01349 1, /* MTYPE_A4 */ 01350 1, /* MTYPE_A8 */ 01351 1, /* MTYPE_C10 */ 01352 1, /* MTYPE_C16 */ 01353 1, /* MTYPE_I16 */ 01354 1 /* MTYPE_U16 */ 01355 }; 01356 01357 static BOOL 01358 Is_MTYPE_b_f_i_p_z [MTYPE_LAST+1] = { 01359 0, /* MTYPE_UNKNOWN */ 01360 1, /* MTYPE_B */ 01361 0, /* MTYPE_I1 */ 01362 0, /* MTYPE_I2 */ 01363 1, /* MTYPE_I4 */ 01364 1, /* MTYPE_I8 */ 01365 0, /* MTYPE_U1 */ 01366 0, /* MTYPE_U2 */ 01367 1, /* MTYPE_U4 */ 01368 1, /* MTYPE_U8 */ 01369 1, /* MTYPE_F4 */ 01370 1, /* MTYPE_F8 */ 01371 1, /* MTYPE_F10 */ 01372 1, /* MTYPE_F16 */ 01373 0, /* MTYPE_STR */ 01374 1, /* MTYPE_FQ */ 01375 0, /* MTYPE_M */ 01376 1, /* MTYPE_C4 */ 01377 1, /* MTYPE_C8 */ 01378 1, /* MTYPE_CQ */ 01379 0, /* MTYPE_V */ 01380 0, /* MTYPE_BS */ 01381 1, /* MTYPE_A4 */ 01382 1, /* MTYPE_A8 */ 01383 1, /* MTYPE_C10 */ 01384 1, /* MTYPE_C16 */ 01385 1, /* MTYPE_I16 */ 01386 1 /* MTYPE_U16 */ 01387 }; 01388 01389 static BOOL 01390 Is_MTYPE_bs_I1_I2_I4_I8 [MTYPE_LAST+1] = { 01391 0, /* MTYPE_UNKNOWN */ 01392 0, /* MTYPE_B */ 01393 1, /* MTYPE_I1 */ 01394 1, /* MTYPE_I2 */ 01395 1, /* MTYPE_I4 */ 01396 1, /* MTYPE_I8 */ 01397 0, /* MTYPE_U1 */ 01398 0, /* MTYPE_U2 */ 01399 0, /* MTYPE_U4 */ 01400 0, /* MTYPE_U8 */ 01401 0, /* MTYPE_F4 */ 01402 0, /* MTYPE_F8 */ 01403 0, /* MTYPE_F10 */ 01404 0, /* MTYPE_F16 */ 01405 0, /* MTYPE_STR */ 01406 0, /* MTYPE_FQ */ 01407 0, /* MTYPE_M */ 01408 0, /* MTYPE_C4 */ 01409 0, /* MTYPE_C8 */ 01410 0, /* MTYPE_CQ */ 01411 0, /* MTYPE_V */ 01412 1, /* MTYPE_BS */ 01413 0, /* MTYPE_A4 */ 01414 0, /* MTYPE_A8 */ 01415 0, /* MTYPE_C10 */ 01416 0, /* MTYPE_C16 */ 01417 0, /* MTYPE_I16 */ 01418 0 /* MTYPE_U16 */ 01419 }; 01420 01421 static BOOL 01422 Is_MTYPE_bs_U1_U2_U4_U8 [MTYPE_LAST+1] = { 01423 0, /* MTYPE_UNKNOWN */ 01424 0, /* MTYPE_B */ 01425 0, /* MTYPE_I1 */ 01426 0, /* MTYPE_I2 */ 01427 0, /* MTYPE_I4 */ 01428 0, /* MTYPE_I8 */ 01429 1, /* MTYPE_U1 */ 01430 1, /* MTYPE_U2 */ 01431 1, /* MTYPE_U4 */ 01432 1, /* MTYPE_U8 */ 01433 0, /* MTYPE_F4 */ 01434 0, /* MTYPE_F8 */ 01435 0, /* MTYPE_F10 */ 01436 0, /* MTYPE_F16 */ 01437 0, /* MTYPE_STR */ 01438 0, /* MTYPE_FQ */ 01439 0, /* MTYPE_M */ 01440 0, /* MTYPE_C4 */ 01441 0, /* MTYPE_C8 */ 01442 0, /* MTYPE_CQ */ 01443 0, /* MTYPE_V */ 01444 1, /* MTYPE_BS */ 01445 0, /* MTYPE_A4 */ 01446 0, /* MTYPE_A8 */ 01447 0, /* MTYPE_C10 */ 01448 0, /* MTYPE_C16 */ 01449 0, /* MTYPE_I16 */ 01450 0 /* MTYPE_U16 */ 01451 }; 01452 01453 static BOOL 01454 Is_MTYPE_b_bs_f_i_p_s_z [MTYPE_LAST+1] = { 01455 0, /* MTYPE_UNKNOWN */ 01456 1, /* MTYPE_B */ 01457 1, /* MTYPE_I1 */ 01458 1, /* MTYPE_I2 */ 01459 1, /* MTYPE_I4 */ 01460 1, /* MTYPE_I8 */ 01461 1, /* MTYPE_U1 */ 01462 1, /* MTYPE_U2 */ 01463 1, /* MTYPE_U4 */ 01464 1, /* MTYPE_U8 */ 01465 1, /* MTYPE_F4 */ 01466 1, /* MTYPE_F8 */ 01467 1, /* MTYPE_F10 */ 01468 1, /* MTYPE_F16 */ 01469 0, /* MTYPE_STR */ 01470 1, /* MTYPE_FQ */ 01471 0, /* MTYPE_M */ 01472 1, /* MTYPE_C4 */ 01473 1, /* MTYPE_C8 */ 01474 1, /* MTYPE_CQ */ 01475 0, /* MTYPE_V */ 01476 1, /* MTYPE_BS */ 01477 1, /* MTYPE_A4 */ 01478 1, /* MTYPE_A8 */ 01479 1, /* MTYPE_C10 */ 01480 1, /* MTYPE_C16 */ 01481 1, /* MTYPE_I16 */ 01482 1 /* MTYPE_U16 */ 01483 }; 01484 01485 static BOOL 01486 Is_MTYPE_b_bs_f_i_M_p_s_z [MTYPE_LAST+1] = { 01487 0, /* MTYPE_UNKNOWN */ 01488 1, /* MTYPE_B */ 01489 1, /* MTYPE_I1 */ 01490 1, /* MTYPE_I2 */ 01491 1, /* MTYPE_I4 */ 01492 1, /* MTYPE_I8 */ 01493 1, /* MTYPE_U1 */ 01494 1, /* MTYPE_U2 */ 01495 1, /* MTYPE_U4 */ 01496 1, /* MTYPE_U8 */ 01497 1, /* MTYPE_F4 */ 01498 1, /* MTYPE_F8 */ 01499 1, /* MTYPE_F10 */ 01500 1, /* MTYPE_F16 */ 01501 0, /* MTYPE_STR */ 01502 1, /* MTYPE_FQ */ 01503 1, /* MTYPE_M */ 01504 1, /* MTYPE_C4 */ 01505 1, /* MTYPE_C8 */ 01506 1, /* MTYPE_CQ */ 01507 0, /* MTYPE_V */ 01508 1, /* MTYPE_BS */ 01509 1, /* MTYPE_A4 */ 01510 1, /* MTYPE_A8 */ 01511 1, /* MTYPE_C10 */ 01512 1, /* MTYPE_C16 */ 01513 1, /* MTYPE_I16 */ 01514 1 /* MTYPE_U16 */ 01515 }; 01516 01517 static BOOL 01518 Is_MTYPE_f [MTYPE_LAST+1] = { 01519 0, /* MTYPE_UNKNOWN */ 01520 0, /* MTYPE_B */ 01521 0, /* MTYPE_I1 */ 01522 0, /* MTYPE_I2 */ 01523 0, /* MTYPE_I4 */ 01524 0, /* MTYPE_I8 */ 01525 0, /* MTYPE_U1 */ 01526 0, /* MTYPE_U2 */ 01527 0, /* MTYPE_U4 */ 01528 0, /* MTYPE_U8 */ 01529 1, /* MTYPE_F4 */ 01530 1, /* MTYPE_F8 */ 01531 1, /* MTYPE_F10 */ 01532 1, /* MTYPE_F16 */ 01533 0, /* MTYPE_STR */ 01534 1, /* MTYPE_FQ */ 01535 0, /* MTYPE_M */ 01536 0, /* MTYPE_C4 */ 01537 0, /* MTYPE_C8 */ 01538 0, /* MTYPE_CQ */ 01539 0, /* MTYPE_V */ 01540 0, /* MTYPE_BS */ 01541 0, /* MTYPE_A4 */ 01542 0, /* MTYPE_A8 */ 01543 0, /* MTYPE_C10 */ 01544 0, /* MTYPE_C16 */ 01545 0, /* MTYPE_I16 */ 01546 0 /* MTYPE_U16 */ 01547 }; 01548 01549 static BOOL 01550 Is_MTYPE_f_I4_I8_I16 [MTYPE_LAST+1] = { 01551 0, /* MTYPE_UNKNOWN */ 01552 0, /* MTYPE_B */ 01553 0, /* MTYPE_I1 */ 01554 0, /* MTYPE_I2 */ 01555 1, /* MTYPE_I4 */ 01556 1, /* MTYPE_I8 */ 01557 0, /* MTYPE_U1 */ 01558 0, /* MTYPE_U2 */ 01559 0, /* MTYPE_U4 */ 01560 0, /* MTYPE_U8 */ 01561 1, /* MTYPE_F4 */ 01562 1, /* MTYPE_F8 */ 01563 1, /* MTYPE_F10 */ 01564 1, /* MTYPE_F16 */ 01565 0, /* MTYPE_STR */ 01566 1, /* MTYPE_FQ */ 01567 0, /* MTYPE_M */ 01568 0, /* MTYPE_C4 */ 01569 0, /* MTYPE_C8 */ 01570 0, /* MTYPE_CQ */ 01571 0, /* MTYPE_V */ 01572 0, /* MTYPE_BS */ 01573 0, /* MTYPE_A4 */ 01574 0, /* MTYPE_A8 */ 01575 0, /* MTYPE_C10 */ 01576 0, /* MTYPE_C16 */ 01577 1, /* MTYPE_I16 */ 01578 0 /* MTYPE_U16 */ 01579 }; 01580 01581 static BOOL 01582 Is_MTYPE_f_i_M_p_V_z [MTYPE_LAST+1] = { 01583 0, /* MTYPE_UNKNOWN */ 01584 0, /* MTYPE_B */ 01585 0, /* MTYPE_I1 */ 01586 0, /* MTYPE_I2 */ 01587 1, /* MTYPE_I4 */ 01588 1, /* MTYPE_I8 */ 01589 0, /* MTYPE_U1 */ 01590 0, /* MTYPE_U2 */ 01591 1, /* MTYPE_U4 */ 01592 1, /* MTYPE_U8 */ 01593 1, /* MTYPE_F4 */ 01594 1, /* MTYPE_F8 */ 01595 1, /* MTYPE_F10 */ 01596 1, /* MTYPE_F16 */ 01597 0, /* MTYPE_STR */ 01598 1, /* MTYPE_FQ */ 01599 1, /* MTYPE_M */ 01600 1, /* MTYPE_C4 */ 01601 1, /* MTYPE_C8 */ 01602 1, /* MTYPE_CQ */ 01603 1, /* MTYPE_V */ 01604 0, /* MTYPE_BS */ 01605 1, /* MTYPE_A4 */ 01606 1, /* MTYPE_A8 */ 01607 1, /* MTYPE_C10 */ 01608 1, /* MTYPE_C16 */ 01609 1, /* MTYPE_I16 */ 01610 1 /* MTYPE_U16 */ 01611 }; 01612 01613 static BOOL 01614 Is_MTYPE_f_i_M_p_s_V_z [MTYPE_LAST+1] = { 01615 0, /* MTYPE_UNKNOWN */ 01616 0, /* MTYPE_B */ 01617 1, /* MTYPE_I1 */ 01618 1, /* MTYPE_I2 */ 01619 1, /* MTYPE_I4 */ 01620 1, /* MTYPE_I8 */ 01621 1, /* MTYPE_U1 */ 01622 1, /* MTYPE_U2 */ 01623 1, /* MTYPE_U4 */ 01624 1, /* MTYPE_U8 */ 01625 1, /* MTYPE_F4 */ 01626 1, /* MTYPE_F8 */ 01627 1, /* MTYPE_F10 */ 01628 1, /* MTYPE_F16 */ 01629 0, /* MTYPE_STR */ 01630 1, /* MTYPE_FQ */ 01631 1, /* MTYPE_M */ 01632 1, /* MTYPE_C4 */ 01633 1, /* MTYPE_C8 */ 01634 1, /* MTYPE_CQ */ 01635 1, /* MTYPE_V */ 01636 0, /* MTYPE_BS */ 01637 1, /* MTYPE_A4 */ 01638 1, /* MTYPE_A8 */ 01639 1, /* MTYPE_C10 */ 01640 1, /* MTYPE_C16 */ 01641 1, /* MTYPE_I16 */ 01642 1 /* MTYPE_U16 */ 01643 }; 01644 01645 static BOOL 01646 Is_MTYPE_f_i_M_p_s_z [MTYPE_LAST+1] = { 01647 0, /* MTYPE_UNKNOWN */ 01648 0, /* MTYPE_B */ 01649 1, /* MTYPE_I1 */ 01650 1, /* MTYPE_I2 */ 01651 1, /* MTYPE_I4 */ 01652 1, /* MTYPE_I8 */ 01653 1, /* MTYPE_U1 */ 01654 1, /* MTYPE_U2 */ 01655 1, /* MTYPE_U4 */ 01656 1, /* MTYPE_U8 */ 01657 1, /* MTYPE_F4 */ 01658 1, /* MTYPE_F8 */ 01659 1, /* MTYPE_F10 */ 01660 1, /* MTYPE_F16 */ 01661 0, /* MTYPE_STR */ 01662 1, /* MTYPE_FQ */ 01663 1, /* MTYPE_M */ 01664 1, /* MTYPE_C4 */ 01665 1, /* MTYPE_C8 */ 01666 1, /* MTYPE_CQ */ 01667 0, /* MTYPE_V */ 01668 0, /* MTYPE_BS */ 01669 1, /* MTYPE_A4 */ 01670 1, /* MTYPE_A8 */ 01671 1, /* MTYPE_C10 */ 01672 1, /* MTYPE_C16 */ 01673 1, /* MTYPE_I16 */ 01674 1 /* MTYPE_U16 */ 01675 }; 01676 01677 static BOOL 01678 Is_MTYPE_f_i_M_p_z [MTYPE_LAST+1] = { 01679 0, /* MTYPE_UNKNOWN */ 01680 0, /* MTYPE_B */ 01681 0, /* MTYPE_I1 */ 01682 0, /* MTYPE_I2 */ 01683 1, /* MTYPE_I4 */ 01684 1, /* MTYPE_I8 */ 01685 0, /* MTYPE_U1 */ 01686 0, /* MTYPE_U2 */ 01687 1, /* MTYPE_U4 */ 01688 1, /* MTYPE_U8 */ 01689 1, /* MTYPE_F4 */ 01690 1, /* MTYPE_F8 */ 01691 1, /* MTYPE_F10 */ 01692 1, /* MTYPE_F16 */ 01693 0, /* MTYPE_STR */ 01694 1, /* MTYPE_FQ */ 01695 1, /* MTYPE_M */ 01696 1, /* MTYPE_C4 */ 01697 1, /* MTYPE_C8 */ 01698 1, /* MTYPE_CQ */ 01699 0, /* MTYPE_V */ 01700 0, /* MTYPE_BS */ 01701 1, /* MTYPE_A4 */ 01702 1, /* MTYPE_A8 */ 01703 1, /* MTYPE_C10 */ 01704 1, /* MTYPE_C16 */ 01705 1, /* MTYPE_I16 */ 01706 1 /* MTYPE_U16 */ 01707 }; 01708 01709 static BOOL 01710 Is_MTYPE_f_i_M_z [MTYPE_LAST+1] = { 01711 0, /* MTYPE_UNKNOWN */ 01712 0, /* MTYPE_B */ 01713 0, /* MTYPE_I1 */ 01714 0, /* MTYPE_I2 */ 01715 1, /* MTYPE_I4 */ 01716 1, /* MTYPE_I8 */ 01717 1, /* MTYPE_U1 */ 01718 0, /* MTYPE_U2 */ 01719 1, /* MTYPE_U4 */ 01720 1, /* MTYPE_U8 */ 01721 1, /* MTYPE_F4 */ 01722 1, /* MTYPE_F8 */ 01723 1, /* MTYPE_F10 */ 01724 1, /* MTYPE_F16 */ 01725 0, /* MTYPE_STR */ 01726 1, /* MTYPE_FQ */ 01727 1, /* MTYPE_M */ 01728 1, /* MTYPE_C4 */ 01729 1, /* MTYPE_C8 */ 01730 1, /* MTYPE_CQ */ 01731 0, /* MTYPE_V */ 01732 0, /* MTYPE_BS */ 01733 0, /* MTYPE_A4 */ 01734 0, /* MTYPE_A8 */ 01735 1, /* MTYPE_C10 */ 01736 1, /* MTYPE_C16 */ 01737 1, /* MTYPE_I16 */ 01738 1 /* MTYPE_U16 */ 01739 }; 01740 01741 static BOOL 01742 Is_MTYPE_f_i [MTYPE_LAST+1] = { 01743 0, /* MTYPE_UNKNOWN */ 01744 0, /* MTYPE_B */ 01745 0, /* MTYPE_I1 */ 01746 0, /* MTYPE_I2 */ 01747 1, /* MTYPE_I4 */ 01748 1, /* MTYPE_I8 */ 01749 0, /* MTYPE_U1 */ 01750 0, /* MTYPE_U2 */ 01751 1, /* MTYPE_U4 */ 01752 1, /* MTYPE_U8 */ 01753 1, /* MTYPE_F4 */ 01754 1, /* MTYPE_F8 */ 01755 1, /* MTYPE_F10 */ 01756 1, /* MTYPE_F16 */ 01757 0, /* MTYPE_STR */ 01758 1, /* MTYPE_FQ */ 01759 0, /* MTYPE_M */ 01760 0, /* MTYPE_C4 */ 01761 0, /* MTYPE_C8 */ 01762 0, /* MTYPE_CQ */ 01763 0, /* MTYPE_V */ 01764 0, /* MTYPE_BS */ 01765 0, /* MTYPE_A4 */ 01766 0, /* MTYPE_A8 */ 01767 0, /* MTYPE_C10 */ 01768 0, /* MTYPE_C16 */ 01769 1, /* MTYPE_I16 */ 01770 1 /* MTYPE_U16 */ 01771 }; 01772 01773 static BOOL 01774 Is_MTYPE_f_i_p [MTYPE_LAST+1] = { 01775 0, /* MTYPE_UNKNOWN */ 01776 0, /* MTYPE_B */ 01777 0, /* MTYPE_I1 */ 01778 0, /* MTYPE_I2 */ 01779 1, /* MTYPE_I4 */ 01780 1, /* MTYPE_I8 */ 01781 0, /* MTYPE_U1 */ 01782 0, /* MTYPE_U2 */ 01783 1, /* MTYPE_U4 */ 01784 1, /* MTYPE_U8 */ 01785 1, /* MTYPE_F4 */ 01786 1, /* MTYPE_F8 */ 01787 1, /* MTYPE_F10 */ 01788 1, /* MTYPE_F16 */ 01789 0, /* MTYPE_STR */ 01790 1, /* MTYPE_FQ */ 01791 0, /* MTYPE_M */ 01792 0, /* MTYPE_C4 */ 01793 0, /* MTYPE_C8 */ 01794 0, /* MTYPE_CQ */ 01795 0, /* MTYPE_V */ 01796 0, /* MTYPE_BS */ 01797 1, /* MTYPE_A4 */ 01798 1, /* MTYPE_A8 */ 01799 0, /* MTYPE_C10 */ 01800 0, /* MTYPE_C16 */ 01801 1, /* MTYPE_I16 */ 01802 1 /* MTYPE_U16 */ 01803 }; 01804 01805 static BOOL 01806 Is_MTYPE_f_i_p_s_z [MTYPE_LAST+1] = { 01807 0, /* MTYPE_UNKNOWN */ 01808 0, /* MTYPE_B */ 01809 1, /* MTYPE_I1 */ 01810 1, /* MTYPE_I2 */ 01811 1, /* MTYPE_I4 */ 01812 1, /* MTYPE_I8 */ 01813 1, /* MTYPE_U1 */ 01814 1, /* MTYPE_U2 */ 01815 1, /* MTYPE_U4 */ 01816 1, /* MTYPE_U8 */ 01817 1, /* MTYPE_F4 */ 01818 1, /* MTYPE_F8 */ 01819 1, /* MTYPE_F10 */ 01820 1, /* MTYPE_F16 */ 01821 0, /* MTYPE_STR */ 01822 1, /* MTYPE_FQ */ 01823 0, /* MTYPE_M */ 01824 1, /* MTYPE_C4 */ 01825 1, /* MTYPE_C8 */ 01826 1, /* MTYPE_CQ */ 01827 0, /* MTYPE_V */ 01828 0, /* MTYPE_BS */ 01829 1, /* MTYPE_A4 */ 01830 1, /* MTYPE_A8 */ 01831 1, /* MTYPE_C10 */ 01832 1, /* MTYPE_C16 */ 01833 1, /* MTYPE_I16 */ 01834 1 /* MTYPE_U16 */ 01835 }; 01836 01837 static BOOL 01838 Is_MTYPE_f_i_p_z [MTYPE_LAST+1] = { 01839 0, /* MTYPE_UNKNOWN */ 01840 0, /* MTYPE_B */ 01841 0, /* MTYPE_I1 */ 01842 0, /* MTYPE_I2 */ 01843 1, /* MTYPE_I4 */ 01844 1, /* MTYPE_I8 */ 01845 0, /* MTYPE_U1 */ 01846 0, /* MTYPE_U2 */ 01847 1, /* MTYPE_U4 */ 01848 1, /* MTYPE_U8 */ 01849 1, /* MTYPE_F4 */ 01850 1, /* MTYPE_F8 */ 01851 1, /* MTYPE_F10 */ 01852 1, /* MTYPE_F16 */ 01853 0, /* MTYPE_STR */ 01854 1, /* MTYPE_FQ */ 01855 0, /* MTYPE_M */ 01856 1, /* MTYPE_C4 */ 01857 1, /* MTYPE_C8 */ 01858 1, /* MTYPE_CQ */ 01859 0, /* MTYPE_V */ 01860 0, /* MTYPE_BS */ 01861 1, /* MTYPE_A4 */ 01862 1, /* MTYPE_A8 */ 01863 1, /* MTYPE_C10 */ 01864 1, /* MTYPE_C16 */ 01865 1, /* MTYPE_I16 */ 01866 1 /* MTYPE_U16 */ 01867 }; 01868 01869 static BOOL 01870 Is_MTYPE_f_i_z [MTYPE_LAST+1] = { 01871 0, /* MTYPE_UNKNOWN */ 01872 0, /* MTYPE_B */ 01873 0, /* MTYPE_I1 */ 01874 0, /* MTYPE_I2 */ 01875 1, /* MTYPE_I4 */ 01876 1, /* MTYPE_I8 */ 01877 0, /* MTYPE_U1 */ 01878 0, /* MTYPE_U2 */ 01879 1, /* MTYPE_U4 */ 01880 1, /* MTYPE_U8 */ 01881 1, /* MTYPE_F4 */ 01882 1, /* MTYPE_F8 */ 01883 1, /* MTYPE_F10 */ 01884 1, /* MTYPE_F16 */ 01885 0, /* MTYPE_STR */ 01886 1, /* MTYPE_FQ */ 01887 0, /* MTYPE_M */ 01888 1, /* MTYPE_C4 */ 01889 1, /* MTYPE_C8 */ 01890 1, /* MTYPE_CQ */ 01891 0, /* MTYPE_V */ 01892 0, /* MTYPE_BS */ 01893 0, /* MTYPE_A4 */ 01894 0, /* MTYPE_A8 */ 01895 1, /* MTYPE_C10 */ 01896 1, /* MTYPE_C16 */ 01897 1, /* MTYPE_I16 */ 01898 1 /* MTYPE_U16 */ 01899 }; 01900 01901 static BOOL 01902 Is_MTYPE_f_z [MTYPE_LAST+1] = { 01903 0, /* MTYPE_UNKNOWN */ 01904 0, /* MTYPE_B */ 01905 0, /* MTYPE_I1 */ 01906 0, /* MTYPE_I2 */ 01907 0, /* MTYPE_I4 */ 01908 0, /* MTYPE_I8 */ 01909 0, /* MTYPE_U1 */ 01910 0, /* MTYPE_U2 */ 01911 0, /* MTYPE_U4 */ 01912 0, /* MTYPE_U8 */ 01913 1, /* MTYPE_F4 */ 01914 1, /* MTYPE_F8 */ 01915 1, /* MTYPE_F10 */ 01916 1, /* MTYPE_F16 */ 01917 0, /* MTYPE_STR */ 01918 1, /* MTYPE_FQ */ 01919 0, /* MTYPE_M */ 01920 1, /* MTYPE_C4 */ 01921 1, /* MTYPE_C8 */ 01922 1, /* MTYPE_CQ */ 01923 0, /* MTYPE_V */ 01924 0, /* MTYPE_BS */ 01925 0, /* MTYPE_A4 */ 01926 0, /* MTYPE_A8 */ 01927 1, /* MTYPE_C10 */ 01928 1, /* MTYPE_C16 */ 01929 0, /* MTYPE_I16 */ 01930 0 /* MTYPE_U16 */ 01931 }; 01932 01933 static BOOL 01934 Is_MTYPE_i [MTYPE_LAST+1] = { 01935 0, /* MTYPE_UNKNOWN */ 01936 0, /* MTYPE_B */ 01937 0, /* MTYPE_I1 */ 01938 0, /* MTYPE_I2 */ 01939 1, /* MTYPE_I4 */ 01940 1, /* MTYPE_I8 */ 01941 0, /* MTYPE_U1 */ 01942 0, /* MTYPE_U2 */ 01943 1, /* MTYPE_U4 */ 01944 1, /* MTYPE_U8 */ 01945 0, /* MTYPE_F4 */ 01946 0, /* MTYPE_F8 */ 01947 0, /* MTYPE_F10 */ 01948 0, /* MTYPE_F16 */ 01949 0, /* MTYPE_STR */ 01950 0, /* MTYPE_FQ */ 01951 0, /* MTYPE_M */ 01952 0, /* MTYPE_C4 */ 01953 0, /* MTYPE_C8 */ 01954 0, /* MTYPE_CQ */ 01955 0, /* MTYPE_V */ 01956 0, /* MTYPE_BS */ 01957 0, /* MTYPE_A4 */ 01958 0, /* MTYPE_A8 */ 01959 0, /* MTYPE_C10 */ 01960 0, /* MTYPE_C16 */ 01961 1, /* MTYPE_I16 */ 01962 1 /* MTYPE_U16 */ 01963 }; 01964 01965 static BOOL 01966 Is_MTYPE_b_i_p [MTYPE_LAST+1] = { 01967 0, /* MTYPE_UNKNOWN */ 01968 1, /* MTYPE_B */ 01969 0, /* MTYPE_I1 */ 01970 0, /* MTYPE_I2 */ 01971 1, /* MTYPE_I4 */ 01972 1, /* MTYPE_I8 */ 01973 0, /* MTYPE_U1 */ 01974 0, /* MTYPE_U2 */ 01975 1, /* MTYPE_U4 */ 01976 1, /* MTYPE_U8 */ 01977 0, /* MTYPE_F4 */ 01978 0, /* MTYPE_F8 */ 01979 0, /* MTYPE_F10 */ 01980 0, /* MTYPE_F16 */ 01981 0, /* MTYPE_STR */ 01982 0, /* MTYPE_FQ */ 01983 0, /* MTYPE_M */ 01984 0, /* MTYPE_C4 */ 01985 0, /* MTYPE_C8 */ 01986 0, /* MTYPE_CQ */ 01987 0, /* MTYPE_V */ 01988 0, /* MTYPE_BS */ 01989 1, /* MTYPE_A4 */ 01990 1, /* MTYPE_A8 */ 01991 0, /* MTYPE_C10 */ 01992 0, /* MTYPE_C16 */ 01993 1, /* MTYPE_I16 */ 01994 1 /* MTYPE_U16 */ 01995 }; 01996 01997 static BOOL 01998 Is_MTYPE_p [MTYPE_LAST+1] = { 01999 0, /* MTYPE_UNKNOWN */ 02000 0, /* MTYPE_B */ 02001 0, /* MTYPE_I1 */ 02002 0, /* MTYPE_I2 */ 02003 0, /* MTYPE_I4 */ 02004 0, /* MTYPE_I8 */ 02005 0, /* MTYPE_U1 */ 02006 0, /* MTYPE_U2 */ 02007 1, /* MTYPE_U4 */ 02008 1, /* MTYPE_U8 */ 02009 0, /* MTYPE_F4 */ 02010 0, /* MTYPE_F8 */ 02011 0, /* MTYPE_F10 */ 02012 0, /* MTYPE_F16 */ 02013 0, /* MTYPE_STR */ 02014 0, /* MTYPE_FQ */ 02015 0, /* MTYPE_M */ 02016 0, /* MTYPE_C4 */ 02017 0, /* MTYPE_C8 */ 02018 0, /* MTYPE_CQ */ 02019 0, /* MTYPE_V */ 02020 0, /* MTYPE_BS */ 02021 1, /* MTYPE_A4 */ 02022 1, /* MTYPE_A8 */ 02023 0, /* MTYPE_C10 */ 02024 0, /* MTYPE_C16 */ 02025 0, /* MTYPE_I16 */ 02026 0 /* MTYPE_U16 */ 02027 }; 02028 02029 static BOOL 02030 Is_MTYPE_s [MTYPE_LAST+1] = { 02031 0, /* MTYPE_UNKNOWN */ 02032 0, /* MTYPE_B */ 02033 1, /* MTYPE_I1 */ 02034 1, /* MTYPE_I2 */ 02035 0, /* MTYPE_I4 */ 02036 0, /* MTYPE_I8 */ 02037 1, /* MTYPE_U1 */ 02038 1, /* MTYPE_U2 */ 02039 0, /* MTYPE_U4 */ 02040 0, /* MTYPE_U8 */ 02041 0, /* MTYPE_F4 */ 02042 0, /* MTYPE_F8 */ 02043 0, /* MTYPE_F10 */ 02044 0, /* MTYPE_F16 */ 02045 0, /* MTYPE_STR */ 02046 0, /* MTYPE_FQ */ 02047 0, /* MTYPE_M */ 02048 0, /* MTYPE_C4 */ 02049 0, /* MTYPE_C8 */ 02050 0, /* MTYPE_CQ */ 02051 0, /* MTYPE_V */ 02052 0, /* MTYPE_BS */ 02053 0, /* MTYPE_A4 */ 02054 0, /* MTYPE_A8 */ 02055 0, /* MTYPE_C10 */ 02056 0, /* MTYPE_C16 */ 02057 0, /* MTYPE_I16 */ 02058 0 /* MTYPE_U16 */ 02059 }; 02060 02061 static BOOL 02062 Is_MTYPE_b_i_s [MTYPE_LAST+1] = { 02063 0, /* MTYPE_UNKNOWN */ 02064 1, /* MTYPE_B */ 02065 1, /* MTYPE_I1 */ 02066 1, /* MTYPE_I2 */ 02067 1, /* MTYPE_I4 */ 02068 1, /* MTYPE_I8 */ 02069 1, /* MTYPE_U1 */ 02070 1, /* MTYPE_U2 */ 02071 1, /* MTYPE_U4 */ 02072 1, /* MTYPE_U8 */ 02073 0, /* MTYPE_F4 */ 02074 0, /* MTYPE_F8 */ 02075 0, /* MTYPE_F10 */ 02076 0, /* MTYPE_F16 */ 02077 0, /* MTYPE_STR */ 02078 0, /* MTYPE_FQ */ 02079 0, /* MTYPE_M */ 02080 0, /* MTYPE_C4 */ 02081 0, /* MTYPE_C8 */ 02082 0, /* MTYPE_CQ */ 02083 0, /* MTYPE_V */ 02084 0, /* MTYPE_BS */ 02085 0, /* MTYPE_A4 */ 02086 0, /* MTYPE_A8 */ 02087 0, /* MTYPE_C10 */ 02088 0, /* MTYPE_C16 */ 02089 1, /* MTYPE_I16 */ 02090 1 /* MTYPE_U16 */ 02091 }; 02092 02093 static BOOL 02094 Is_MTYPE_z [MTYPE_LAST+1] = { 02095 0, /* MTYPE_UNKNOWN */ 02096 0, /* MTYPE_B */ 02097 0, /* MTYPE_I1 */ 02098 0, /* MTYPE_I2 */ 02099 0, /* MTYPE_I4 */ 02100 0, /* MTYPE_I8 */ 02101 0, /* MTYPE_U1 */ 02102 0, /* MTYPE_U2 */ 02103 0, /* MTYPE_U4 */ 02104 0, /* MTYPE_U8 */ 02105 0, /* MTYPE_F4 */ 02106 0, /* MTYPE_F8 */ 02107 0, /* MTYPE_F10 */ 02108 0, /* MTYPE_F16 */ 02109 0, /* MTYPE_STR */ 02110 0, /* MTYPE_FQ */ 02111 0, /* MTYPE_M */ 02112 1, /* MTYPE_C4 */ 02113 1, /* MTYPE_C8 */ 02114 1, /* MTYPE_CQ */ 02115 0, /* MTYPE_V */ 02116 0, /* MTYPE_BS */ 02117 0, /* MTYPE_A4 */ 02118 0, /* MTYPE_A8 */ 02119 1, /* MTYPE_C10 */ 02120 1, /* MTYPE_C16 */ 02121 0, /* MTYPE_I16 */ 02122 0 /* MTYPE_U16 */ 02123 }; 02124 02125 02126 void 02127 breakpoint () 02128 { 02129 } 02130 02131 BOOL 02132 Is_Valid_Opcode_Parts (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc) 02133 { 02134 BOOL valid; 02135 02136 if (opr < OPERATOR_FIRST || opr > OPERATOR_LAST) valid = FALSE; 02137 else if (rtype < MTYPE_FIRST || rtype > MTYPE_LAST) valid = FALSE; 02138 else if (desc < MTYPE_FIRST || desc > MTYPE_LAST) valid = FALSE; 02139 02140 else { 02141 switch (opr) { 02142 02143 case OPR_ABS: 02144 // [RTYPE] : f,I4,I8,I16 [DESC] : V 02145 valid = Is_MTYPE_f_I4_I8_I16 [rtype] && desc == MTYPE_V; 02146 break; 02147 02148 case OPR_ADD: 02149 case OPR_CONST: 02150 case OPR_SUB: 02151 case OPR_ASM_EXPR: 02152 // [RTYPE] : f,i,p,z [DESC] : V 02153 valid = Is_MTYPE_f_i_p_z [rtype] && desc == MTYPE_V; 02154 break; 02155 02156 case OPR_AGOTO: 02157 case OPR_ALTENTRY: 02158 case OPR_ASSERT: 02159 case OPR_BACKWARD_BARRIER: 02160 case OPR_BLOCK: 02161 case OPR_CASEGOTO: 02162 case OPR_COMMENT: 02163 case OPR_COMPGOTO: 02164 case OPR_DO_LOOP: 02165 case OPR_DO_WHILE: 02166 case OPR_EVAL: 02167 case OPR_EXC_SCOPE_BEGIN: 02168 case OPR_EXC_SCOPE_END: 02169 case OPR_FALSEBR: 02170 case OPR_FORWARD_BARRIER: 02171 case OPR_FUNC_ENTRY: 02172 case OPR_GOTO: 02173 case OPR_IDNAME: 02174 case OPR_IF: 02175 case OPR_IO: 02176 case OPR_IO_ITEM: 02177 case OPR_LABEL: 02178 case OPR_LOOP_INFO: 02179 case OPR_MSTORE: 02180 case OPR_OPT_CHI: 02181 case OPR_OPT_RESERVE2: 02182 case OPR_PRAGMA: 02183 case OPR_PREFETCH: 02184 case OPR_PREFETCHX: 02185 case OPR_REGION: 02186 case OPR_REGION_EXIT: 02187 case OPR_RETURN: 02188 case OPR_SWITCH: 02189 case OPR_TRAP: 02190 case OPR_TRUEBR: 02191 case OPR_WHERE: 02192 case OPR_WHILE_DO: 02193 case OPR_XGOTO: 02194 case OPR_XPRAGMA: 02195 case OPR_AFFIRM: 02196 case OPR_DEALLOCA: 02197 case OPR_ASM_STMT: 02198 case OPR_ASM_INPUT: 02199 case OPR_GOTO_OUTER_BLOCK: 02200 case OPR_NAMELIST: 02201 case OPR_IMPLICIT_BND: 02202 case OPR_NULLIFY: 02203 case OPR_INTERFACE: 02204 02205 // [RTYPE] : V [DESC] : V 02206 valid = rtype == MTYPE_V && desc == MTYPE_V; 02207 break; 02208 02209 case OPR_USE: 02210 // [RTYPE] : V,B [DESC] : V 02211 valid = (rtype == MTYPE_V || rtype == MTYPE_B) && desc == MTYPE_V; 02212 break; 02213 02214 case OPR_ARRAY: 02215 case OPR_ARRSECTION: 02216 case OPR_LDA: 02217 case OPR_ILDA: 02218 case OPR_LDMA: 02219 case OPR_LDA_LABEL: 02220 // [RTYPE] : p [DESC] : V 02221 valid = Is_MTYPE_p [rtype] && desc == MTYPE_V; 02222 break; 02223 02224 case OPR_ARRAYEXP: 02225 case OPR_ARRAY_CONSTRUCT: 02226 // [RTYPE] : f,i,M,z [DESC] : V 02227 valid = Is_MTYPE_f_i_M_z [rtype] && desc == MTYPE_V; 02228 break; 02229 02230 case OPR_ASHR: 02231 case OPR_BAND: 02232 case OPR_BIOR: 02233 case OPR_BNOR: 02234 case OPR_BNOT: 02235 case OPR_BXOR: 02236 case OPR_COMPOSE_BITS: 02237 case OPR_CVTL: 02238 case OPR_DIVREM: 02239 case OPR_EXTRACT_BITS: 02240 case OPR_HIGHMPY: 02241 case OPR_HIGHPART: 02242 case OPR_LOWPART: 02243 case OPR_LSHR: 02244 case OPR_MOD: 02245 case OPR_REM: 02246 case OPR_SHL: 02247 case OPR_TRIPLET: 02248 case OPR_SRCTRIPLET: 02249 case OPR_XMPY: 02250 case OPR_IMPLIED_DO: 02251 02252 // [RTYPE] : i [DESC] : V 02253 valid = Is_MTYPE_i [rtype] && desc == MTYPE_V; 02254 break; 02255 02256 case OPR_CALL: 02257 case OPR_ICALL: 02258 case OPR_INTRINSIC_CALL: 02259 case OPR_PICCALL: 02260 case OPR_VFCALL: 02261 // [RTYPE] : f,i,M,p,s,V,z [DESC] : V,extra 02262 valid = (Is_MTYPE_f_i_M_p_s_V_z [rtype] && desc == MTYPE_V) 02263 || (rtype == MTYPE_I4 && desc == MTYPE_I4) 02264 || (rtype == MTYPE_U4 && desc == MTYPE_U4) 02265 || (rtype == MTYPE_I8 && desc == MTYPE_I8) 02266 || (rtype == MTYPE_U8 && desc == MTYPE_U8) 02267 || (rtype == MTYPE_F4 && desc == MTYPE_F4) 02268 || (rtype == MTYPE_F4 && desc == MTYPE_F8) 02269 || (rtype == MTYPE_F8 && desc == MTYPE_F4) 02270 || (rtype == MTYPE_F8 && desc == MTYPE_F8); 02271 break; 02272 02273 case OPR_CAND: 02274 case OPR_CIOR: 02275 case OPR_LAND: 02276 case OPR_LIOR: 02277 /* [RTYPE] : b : [DESC] : V */ 02278 valid = Is_MTYPE_b [rtype] && desc == MTYPE_V; 02279 break; 02280 02281 #ifndef FRONT_END_FORTRAN 02282 /* In Fortran, the rtype of floor() is int, but is double in C/C++. */ 02283 02284 case OPR_FLOOR: 02285 /* [RTYPE] : f,i [DESC] : f */ 02286 valid = Is_MTYPE_f_i[rtype] && Is_MTYPE_f[desc]; 02287 break; 02288 #endif 02289 02290 02291 case OPR_CEIL: 02292 #ifdef FRONT_END_FORTRAN 02293 case OPR_FLOOR: 02294 #endif 02295 case OPR_RND: 02296 // [RTYPE] : i [DESC] : f 02297 valid = Is_MTYPE_i [rtype] && Is_MTYPE_f [desc]; 02298 break; 02299 02300 case OPR_TRUNC: 02301 // [RTYPE] : i 02302 valid = Is_MTYPE_i [rtype]; 02303 break; 02304 02305 case OPR_COMMA: 02306 case OPR_RCOMMA: 02307 // [RTYPE] : f,i,M,p,z [DESC] : V 02308 valid = Is_MTYPE_f_i_M_p_z [rtype] && desc == MTYPE_V; 02309 break; 02310 02311 case OPR_PAIR: 02312 // [RTYPE] : z [DESC] : V 02313 valid = Is_MTYPE_z [rtype] && desc == MTYPE_V; 02314 break; 02315 02316 case OPR_CSELECT: 02317 // [RTYPE] : b,f,i,M,p,V,z [DESC] : V 02318 valid = Is_MTYPE_b_f_i_M_p_V_z [rtype] && desc == MTYPE_V; 02319 break; 02320 02321 case OPR_CVT: 02322 // [RTYPE] : f,i,p [DESC] : f,i,p extra 02323 valid = Is_MTYPE_f_i_p [rtype] && 02324 (Is_MTYPE_f_i_p [desc] || desc == MTYPE_B) && 02325 (rtype != desc); 02326 break; 02327 02328 case OPR_MPY: 02329 // [RTYPE] : f,i,z,s [DESC] : V 02330 valid = (Is_MTYPE_f_i_z [rtype] || Is_MTYPE_s [rtype]) && 02331 desc == MTYPE_V; 02332 break; 02333 02334 case OPR_DIV: 02335 case OPR_NEG: 02336 case OPR_OPTPARM: 02337 // [RTYPE] : f,i,z [DESC] : V 02338 valid = Is_MTYPE_f_i_z [rtype] && desc == MTYPE_V; 02339 break; 02340 02341 case OPR_EQ: 02342 case OPR_NE: 02343 // [RTYPE] : b [DESC] : f,i,p,z 02344 valid = Is_MTYPE_b [rtype] && Is_MTYPE_b_f_i_p_z [desc]; 02345 break; 02346 02347 case OPR_LNOT: 02348 // [RTYPE] : b : [DESC] : b,V 02349 valid = Is_MTYPE_b [rtype] && (desc == MTYPE_V || desc == MTYPE_B); 02350 break; 02351 02352 case OPR_GE: 02353 case OPR_GT: 02354 case OPR_LE: 02355 case OPR_LT: 02356 // [RTYPE] : b [DESC] : f,i,p 02357 valid = Is_MTYPE_b [rtype] && Is_MTYPE_f_i_p [desc]; 02358 break; 02359 02360 case OPR_LDBITS: 02361 case OPR_ILDBITS: 02362 // [RTYPE] : i [DESC] : s 02363 valid = Is_MTYPE_i [rtype] && Is_MTYPE_b_i_s [desc]; 02364 break; 02365 02366 case OPR_ILOAD: 02367 case OPR_LDID: 02368 if (WHIRL_Mldid_Mstid_On) { 02369 02370 // [RTYPE] : f,i,M,p,z [DESC] : bs,f,i,M,p,s,z 02371 valid = ( (rtype == MTYPE_I4 || rtype == MTYPE_I8) 02372 && Is_MTYPE_bs_I1_I2_I4_I8 [desc]) 02373 || ( (rtype == MTYPE_U4 || rtype == MTYPE_U8) 02374 && Is_MTYPE_bs_U1_U2_U4_U8 [desc]) 02375 || (Is_MTYPE_b_f_i_M_p_z [rtype] && rtype == desc); 02376 } 02377 02378 else { 02379 02380 // [RTYPE] : f,i,p,z [DESC] : bs,f,i,p,s,z 02381 valid = ( (rtype == MTYPE_I4 || rtype == MTYPE_I8) 02382 && Is_MTYPE_bs_I1_I2_I4_I8 [desc]) 02383 || ( (rtype == MTYPE_U4 || rtype == MTYPE_U8) 02384 && Is_MTYPE_bs_U1_U2_U4_U8 [desc]) 02385 || (Is_MTYPE_b_f_i_p_z [rtype] && rtype == desc); 02386 } 02387 break; 02388 02389 case OPR_ILOADX: 02390 case OPR_SECONDPART: 02391 case OPR_MADD: 02392 case OPR_MSUB: 02393 case OPR_NMADD: 02394 case OPR_NMSUB: 02395 case OPR_FIRSTPART: 02396 // [RTYPE] : f [DESC] : V 02397 valid = Is_MTYPE_f [rtype] && desc == MTYPE_V; 02398 break; 02399 02400 case OPR_INTCONST: 02401 // [RTYPE] : i,p [DESC] : V 02402 valid = Is_MTYPE_b_i_p [rtype] && desc == MTYPE_V; 02403 break; 02404 02405 case OPR_INTRINSIC_OP: 02406 // [RTYPE] : b,f,i,M,p,s,z [DESC] : V 02407 valid = Is_MTYPE_b_f_i_M_p_s_z [rtype] && desc == MTYPE_V; 02408 break; 02409 02410 case OPR_ISTBITS: 02411 case OPR_STBITS: 02412 // [RTYPE] : V [DESC] : s 02413 valid = rtype == MTYPE_V && Is_MTYPE_b_i_s [desc]; 02414 break; 02415 02416 case OPR_ISTORE: 02417 case OPR_PSTORE: 02418 case OPR_STID: 02419 case OPR_PSTID: 02420 02421 if (WHIRL_Mldid_Mstid_On) { 02422 02423 // [RTYPE] : V [DESC] : bs,f,i,M,p,s,z 02424 valid = rtype == MTYPE_V && Is_MTYPE_b_bs_f_i_M_p_s_z [desc]; 02425 } 02426 02427 else { 02428 02429 // [RTYPE] : V [DESC] : bs,f,i,p,s,z 02430 valid = rtype == MTYPE_V && Is_MTYPE_b_bs_f_i_p_s_z [desc]; 02431 } 02432 break; 02433 02434 case OPR_ISTOREX: 02435 // [RTYPE] : V [DESC] : f 02436 valid = rtype == MTYPE_V && Is_MTYPE_f [desc]; 02437 break; 02438 02439 case OPR_MAX: 02440 case OPR_MIN: 02441 case OPR_MINMAX: 02442 // [RTYPE] : f,i,p [DESC] : V 02443 valid = Is_MTYPE_f_i_p [rtype] && desc == MTYPE_V; 02444 break; 02445 02446 case OPR_MAXPART: 02447 case OPR_MINPART: 02448 // [RTYPE] : f,i [DESC] : V 02449 valid = Is_MTYPE_f_i [rtype] && desc == MTYPE_V; 02450 break; 02451 02452 case OPR_MLOAD: 02453 // [RTYPE] : M [DESC] : V,M 02454 valid = rtype == MTYPE_M && 02455 (desc == MTYPE_V || desc == MTYPE_M); 02456 break; 02457 02458 case OPR_PAREN: 02459 // [RTYPE] : f,i,z [DESC] : V 02460 valid = Is_MTYPE_f_i_z [rtype] && desc == MTYPE_V; 02461 break; 02462 02463 case OPR_RECIP: 02464 case OPR_RSQRT: 02465 case OPR_SQRT: 02466 // [RTYPE] : f,z [DESC] : V 02467 valid = Is_MTYPE_f_z [rtype] && desc == MTYPE_V; 02468 break; 02469 02470 case OPR_PARM: 02471 // [RTYPE] : f,i,M,p,V,z [DESC] : V 02472 valid = Is_MTYPE_f_i_M_p_V_z [rtype] && desc == MTYPE_V; 02473 break; 02474 02475 case OPR_RETURN_VAL: 02476 // [RTYPE] : f,i,M,p,s,z [DESC] : V 02477 valid = Is_MTYPE_f_i_M_p_s_z [rtype] && desc == MTYPE_V; 02478 break; 02479 02480 case OPR_SELECT: 02481 // [RTYPE] : b,f,i,p,z [DESC] : V,B 02482 valid = Is_MTYPE_b_f_i_p_z [rtype] && 02483 (desc == MTYPE_V || desc == MTYPE_B); 02484 break; 02485 02486 case OPR_TAS: 02487 // [RTYPE] : f,i,p,s,z [DESC] : V 02488 valid = Is_MTYPE_f_i_p_s_z [rtype] && desc == MTYPE_V; 02489 break; 02490 02491 case OPR_ALLOCA: 02492 // [RTYPE] : p [DESC] : V 02493 valid = Is_MTYPE_p [rtype] && desc == MTYPE_V; 02494 break; 02495 02496 case OPR_RROTATE: 02497 // [RTYPE] : U1,U2,U4,U8 [DESC] : V 02498 valid = ((rtype == MTYPE_U4) && ( desc == MTYPE_U1 02499 || desc == MTYPE_U2 02500 || desc == MTYPE_U4)) 02501 || ((rtype == MTYPE_U8) && (desc == MTYPE_U8)); 02502 break; 02503 02504 case OPR_STRCTFLD: 02505 // [RTYPE]: U8 [DESC]: U8 02506 valid = (rtype == MTYPE_U8) && (desc == MTYPE_U8); 02507 break; 02508 02509 default: 02510 valid = FALSE; 02511 break; 02512 } 02513 } 02514 02515 if (valid == FALSE) 02516 breakpoint (); 02517 02518 return valid; 02519 } 02520 02521 BOOL 02522 Is_Valid_Opcode_FUNC (OPCODE opc) 02523 { 02524 OPERATOR opr = (OPERATOR) (((UINT32) opc) & 0xFF); 02525 TYPE_ID rtype = (TYPE_ID) ((((UINT32) opc) >> 8) & 0x1F); 02526 TYPE_ID desc = (TYPE_ID) ((((UINT32) opc) >> 13) & 0x1F); 02527 02528 return Is_Valid_Opcode_Parts (opr, rtype, desc); 02529 } 02530 02531 char* 02532 OPCODE_name (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc) 02533 { 02534 static char buffer [64]; 02535 02536 Is_True(Is_Valid_Opcode_Parts (opr, rtype, desc), 02537 ("Bad opcode %d %d %d", opr, rtype, desc)); 02538 02539 switch (opr) { 02540 02541 case OPR_ABS: 02542 // [RTYPE] : f,I4,I8,I16 [DESC] : V 02543 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02544 break; 02545 02546 case OPR_ADD: 02547 case OPR_CONST: 02548 case OPR_SUB: 02549 case OPR_ASM_EXPR: 02550 // [RTYPE] : f,i,p,z [DESC] : V 02551 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02552 break; 02553 02554 case OPR_AGOTO: 02555 case OPR_ALTENTRY: 02556 case OPR_ASSERT: 02557 case OPR_BACKWARD_BARRIER: 02558 case OPR_BLOCK: 02559 case OPR_CASEGOTO: 02560 case OPR_COMMENT: 02561 case OPR_COMPGOTO: 02562 case OPR_DO_LOOP: 02563 case OPR_DO_WHILE: 02564 case OPR_EVAL: 02565 case OPR_EXC_SCOPE_BEGIN: 02566 case OPR_EXC_SCOPE_END: 02567 case OPR_FALSEBR: 02568 case OPR_FORWARD_BARRIER: 02569 case OPR_FUNC_ENTRY: 02570 case OPR_GOTO: 02571 case OPR_IDNAME: 02572 case OPR_IF: 02573 case OPR_IO: 02574 case OPR_IO_ITEM: 02575 case OPR_LABEL: 02576 case OPR_LOOP_INFO: 02577 case OPR_MSTORE: 02578 case OPR_OPT_CHI: 02579 case OPR_OPT_RESERVE2: 02580 case OPR_PRAGMA: 02581 case OPR_PREFETCH: 02582 case OPR_PREFETCHX: 02583 case OPR_REGION: 02584 case OPR_REGION_EXIT: 02585 case OPR_RETURN: 02586 case OPR_SWITCH: 02587 case OPR_TRAP: 02588 case OPR_TRUEBR: 02589 case OPR_WHERE: 02590 case OPR_WHILE_DO: 02591 case OPR_XGOTO: 02592 case OPR_XPRAGMA: 02593 case OPR_AFFIRM: 02594 case OPR_DEALLOCA: 02595 case OPR_ASM_STMT: 02596 case OPR_ASM_INPUT: 02597 case OPR_GOTO_OUTER_BLOCK: 02598 case OPR_NAMELIST: 02599 case OPR_IMPLICIT_BND: 02600 case OPR_NULLIFY: 02601 case OPR_INTERFACE: 02602 02603 // [RTYPE] : V [DESC] : V 02604 sprintf (buffer, "OPC_%s", &OPERATOR_info [opr]._name [4]); 02605 break; 02606 02607 case OPR_USE: 02608 case OPR_ARRAY: 02609 case OPR_ARRSECTION: 02610 case OPR_LDA: 02611 case OPR_LDMA: 02612 case OPR_ILDA: 02613 case OPR_LDA_LABEL: 02614 // [RTYPE] : p [DESC] : V 02615 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02616 break; 02617 02618 case OPR_ARRAYEXP: 02619 case OPR_ARRAY_CONSTRUCT: 02620 // [RTYPE] : f,i,M,z [DESC] : V 02621 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02622 break; 02623 02624 case OPR_ASHR: 02625 case OPR_BAND: 02626 case OPR_BIOR: 02627 case OPR_BNOR: 02628 case OPR_BNOT: 02629 case OPR_BXOR: 02630 case OPR_COMPOSE_BITS: 02631 case OPR_CVTL: 02632 case OPR_DIVREM: 02633 case OPR_EXTRACT_BITS: 02634 case OPR_HIGHMPY: 02635 case OPR_HIGHPART: 02636 case OPR_LOWPART: 02637 case OPR_LSHR: 02638 case OPR_MOD: 02639 case OPR_REM: 02640 case OPR_SHL: 02641 case OPR_TRIPLET: 02642 case OPR_SRCTRIPLET: 02643 case OPR_XMPY: 02644 case OPR_IMPLIED_DO: 02645 02646 // [RTYPE] : i [DESC] : V 02647 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02648 break; 02649 02650 case OPR_CALL: 02651 case OPR_ICALL: 02652 case OPR_INTRINSIC_CALL: 02653 case OPR_PICCALL: 02654 case OPR_VFCALL: 02655 // [RTYPE] : f,i,M,p,s,V,z [DESC] : V,extra 02656 if (desc == MTYPE_V) 02657 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02658 else 02659 sprintf (buffer, "OPC_%s%s%s", MTYPE_name(rtype), MTYPE_name(desc), &OPERATOR_info [opr]._name [4]); 02660 break; 02661 02662 case OPR_CAND: 02663 case OPR_CIOR: 02664 case OPR_LAND: 02665 case OPR_LIOR: 02666 case OPR_LNOT: 02667 // [RTYPE] : b : [DESC] : V 02668 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02669 break; 02670 02671 case OPR_CEIL: 02672 case OPR_FLOOR: 02673 case OPR_RND: 02674 case OPR_TRUNC: 02675 // [RTYPE] : i [DESC] : f 02676 sprintf (buffer, "OPC_%s%s%s", MTYPE_name(rtype), MTYPE_name(desc), &OPERATOR_info [opr]._name [4]); 02677 break; 02678 02679 case OPR_COMMA: 02680 case OPR_RCOMMA: 02681 // [RTYPE] : f,i,M,p,z [DESC] : V 02682 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02683 break; 02684 02685 case OPR_PAIR: 02686 // [RTYPE] : z [DESC] : V 02687 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02688 break; 02689 02690 case OPR_CSELECT: 02691 // [RTYPE] : b,f,i,M,p,V,z [DESC] : V 02692 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02693 break; 02694 02695 case OPR_CVT: 02696 // [RTYPE] : f,i,p [DESC] : f,i,p extra 02697 sprintf (buffer, "OPC_%s%s%s", MTYPE_name(rtype), MTYPE_name(desc), &OPERATOR_info [opr]._name [4]); 02698 break; 02699 02700 case OPR_DIV: 02701 case OPR_MPY: 02702 case OPR_NEG: 02703 case OPR_OPTPARM: 02704 // [RTYPE] : f,i,z [DESC] : V 02705 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02706 break; 02707 02708 case OPR_EQ: 02709 case OPR_NE: 02710 // [RTYPE] : b [DESC] : f,i,p,z 02711 sprintf (buffer, "OPC_%s%s%s", MTYPE_name(rtype), MTYPE_name(desc), &OPERATOR_info [opr]._name [4]); 02712 break; 02713 02714 case OPR_GE: 02715 case OPR_GT: 02716 case OPR_LE: 02717 case OPR_LT: 02718 // [RTYPE] : b [DESC] : f,i,p 02719 sprintf (buffer, "OPC_%s%s%s", MTYPE_name(rtype), MTYPE_name(desc), &OPERATOR_info [opr]._name [4]); 02720 break; 02721 02722 case OPR_ILDBITS: 02723 case OPR_LDBITS: 02724 // [RTYPE] : i [DESC] : s 02725 sprintf (buffer, "OPC_%s%s%s", MTYPE_name(rtype), MTYPE_name(desc), &OPERATOR_info [opr]._name [4]); 02726 break; 02727 02728 case OPR_ILOAD: 02729 case OPR_LDID: 02730 case OPR_STRCTFLD: 02731 // [RTYPE] : f,i,M,p,z [DESC] : bs,f,i,M,p,s,z 02732 sprintf (buffer, "OPC_%s%s%s", MTYPE_name(rtype), MTYPE_name(desc), &OPERATOR_info [opr]._name [4]); 02733 break; 02734 02735 case OPR_ILOADX: 02736 case OPR_SECONDPART: 02737 case OPR_MADD: 02738 case OPR_MSUB: 02739 case OPR_NMADD: 02740 case OPR_NMSUB: 02741 case OPR_FIRSTPART: 02742 // [RTYPE] : f [DESC] : V 02743 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02744 break; 02745 02746 case OPR_INTCONST: 02747 // [RTYPE] : i,p [DESC] : V 02748 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02749 break; 02750 02751 case OPR_INTRINSIC_OP: 02752 // [RTYPE] : b,f,i,M,p,s,z [DESC] : V 02753 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02754 break; 02755 02756 case OPR_ISTBITS: 02757 case OPR_STBITS: 02758 // [RTYPE] : V [DESC] : s 02759 sprintf (buffer, "OPC_%s%s", MTYPE_name(desc), &OPERATOR_info [opr]._name [4]); 02760 break; 02761 02762 case OPR_ISTORE: 02763 case OPR_PSTORE: 02764 case OPR_STID: 02765 case OPR_PSTID: 02766 // [RTYPE] : V [DESC] : bs,f,i,M,p,s,z 02767 sprintf (buffer, "OPC_%s%s", MTYPE_name(desc), &OPERATOR_info [opr]._name [4]); 02768 break; 02769 02770 case OPR_ISTOREX: 02771 // [RTYPE] : V [DESC] : f 02772 sprintf (buffer, "OPC_%s%s", MTYPE_name(desc), &OPERATOR_info [opr]._name [4]); 02773 break; 02774 02775 case OPR_MAX: 02776 case OPR_MIN: 02777 case OPR_MINMAX: 02778 // [RTYPE] : f,i,p [DESC] : V 02779 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02780 break; 02781 02782 case OPR_MAXPART: 02783 case OPR_MINPART: 02784 // [RTYPE] : f,i [DESC] : V 02785 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02786 break; 02787 02788 case OPR_MLOAD: 02789 // [RTYPE] : M [DESC] : V 02790 sprintf (buffer, "OPC_%s", &OPERATOR_info [opr]._name [4]); 02791 break; 02792 02793 case OPR_PAREN: 02794 // [RTYPE] : f,i,z [DESC] : V 02795 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02796 break; 02797 02798 case OPR_RECIP: 02799 case OPR_RSQRT: 02800 case OPR_SQRT: 02801 // [RTYPE] : f,z [DESC] : V 02802 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02803 break; 02804 02805 case OPR_PARM: 02806 // [RTYPE] : f,i,M,p,V,z [DESC] : V 02807 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02808 break; 02809 02810 case OPR_RETURN_VAL: 02811 // [RTYPE] : f,i,M,p,s,z [DESC] : V 02812 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02813 break; 02814 02815 case OPR_SELECT: 02816 // [RTYPE] : b,f,i,p,z [DESC] : V,b 02817 sprintf (buffer, "OPC_%s%s%s", MTYPE_name(rtype), 02818 desc == MTYPE_V ? "" : MTYPE_name(desc), &OPERATOR_info [opr]._name [4]); 02819 break; 02820 02821 case OPR_TAS: 02822 // [RTYPE] : f,i,p,s,z [DESC] : V 02823 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02824 break; 02825 02826 case OPR_ALLOCA: 02827 // [RTYPE] : p [DESC] : V 02828 sprintf (buffer, "OPC_%s%s", MTYPE_name(rtype), &OPERATOR_info [opr]._name [4]); 02829 break; 02830 02831 case OPR_RROTATE: 02832 // [RTYPE] : U4,U8 [DESC] : U1,U2,U4,U8 02833 sprintf (buffer, "OPC_%s%s%s", MTYPE_name(rtype), MTYPE_name(desc), &OPERATOR_info [opr]._name [4]); 02834 break; 02835 02836 default: 02837 buffer [0] = 0; 02838 break; 02839 } 02840 02841 return buffer; 02842 } 02843 02844 char* 02845 OPCODE_name (OPCODE opc) 02846 { 02847 OPERATOR opr = (OPERATOR) (((UINT32) opc) & 0xFF); 02848 TYPE_ID rtype = (TYPE_ID) ((((UINT32) opc) >> 8) & 0x1F); 02849 TYPE_ID desc = (TYPE_ID) ((((UINT32) opc) >> 13) & 0x1F); 02850 02851 return OPCODE_name (opr, rtype, desc); 02852 } 02853 02854 02855 #if 0 02856 // This stuff sets up a fast OPCODE_is_valid_opcode_table lookup table 02857 // If an opcode is valid, it contains the opcode. Otherwise, is contains OPCODE_UNKNOWN. 02858 OPCODE OPCODE_is_valid_opcode_table[OPCODE_LAST+1]; 02859 02860 static struct setup_the_opcode_valid_table { 02861 public: 02862 setup_the_opcode_valid_table() { 02863 INT i; 02864 for (i=0; i <= OPCODE_LAST; i++) { 02865 if (Is_Valid_Opcode_FUNC((OPCODE) i)) { 02866 OPCODE_is_valid_opcode_table[i] = (OPCODE) i; 02867 } else { 02868 OPCODE_is_valid_opcode_table[i] = OPCODE_UNKNOWN; 02869 } 02870 } 02871 } 02872 } dummy_setup_the_opcode; 02873 #endif 02874 02875 02876