Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
opcode_gen_core.cxx
Go to the documentation of this file.
00001 /*
00002 
00003   Copyright (C) 2000, 2001 Silicon Graphics, Inc.  All Rights Reserved.
00004 
00005   This program is free software; you can redistribute it and/or modify it
00006   under the terms of version 2 of the GNU General Public License as
00007   published by the Free Software Foundation.
00008 
00009   This program is distributed in the hope that it would be useful, but
00010   WITHOUT ANY WARRANTY; without even the implied warranty of
00011   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
00012 
00013   Further, this software is distributed without any warranty that it is
00014   free of the rightful claim of any third person regarding infringement 
00015   or the like.  Any license provided herein, whether implied or 
00016   otherwise, applies only to this software file.  Patent licenses, if 
00017   any, provided herein do not apply to combinations of this program with 
00018   other software, or any other product whatsoever.  
00019 
00020   You should have received a copy of the GNU General Public License along
00021   with this program; if not, write the Free Software Foundation, Inc., 59
00022   Temple Place - Suite 330, Boston MA 02111-1307, USA.
00023 
00024   Contact information:  Silicon Graphics, Inc., 1600 Amphitheatre Pky,
00025   Mountain View, CA 94043, or:
00026 
00027   http://www.sgi.com
00028 
00029   For further information regarding this notice, see:
00030 
00031   http://oss.sgi.com/projects/GenInfo/NoticeExplan
00032 
00033 */
00034 
00035 
00036 /* 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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines