Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
isa_properties.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 //  
00037 //  Generate ISA properties information
00039 // The instructions are listed by category. The different categories of
00040 // instructions are:
00041 //
00042 //   1. Operator attributes descriptors
00043 //   2. Exception classification descriptors
00044 //   3. Other operator descriptors (mostly for global optimization). 
00045 //
00046 // Within each ISA_PROPERTY instructions are listed in alphabetical order and
00047 // as shown in the ISA manual
00049 
00050 
00051 #include <stddef.h>
00052 #include "topcode.h"
00053 #include "isa_properties_gen.h"
00054 
00055 main()
00056 {
00057   ISA_PROPERTY 
00058     load,               /* Memory load operator */
00059     store,              /* Memory store operator */
00060     prefetch,           /* Prefetch operator */
00061     xfer,               /* Control transfer operator */
00062     call,               /* Subprogram call operator */
00063     cond,               /* Call/xfer is conditional */
00064     likely,             /* Cond call/xfer is likely */
00065     unalign_ld,         /* Unaligned load operator */
00066     unalign_store,      /* Unaligned store operator */
00067     cond_move,          /* conditional move */
00068     uniq_res,           /* Result must not be opnd */
00069     same_res,           /* Result must be same as opnd */
00070     noop,               /* No-op operator */
00071     select,             /* Operator is a machine level select */
00072     dummy,              /* No-op doesn't get emitted */
00073     iadd,               /* Integer add operator */
00074     isub,               /* Integer subtract operator */
00075     imul,               /* Integer multiply operator */
00076     idiv,               /* Integer divide operator */
00077     flop,               /* Any proper floating point op */
00078     fadd,               /* FP add operator */
00079     fsub,               /* FP subtract operator */
00080     fmul,               /* FP multiply operator */
00081     fmisc,              /* FP miscellaneous class type */
00082     madd,               /* The kind that do two at once */
00083     mmalu,              /* Multimedia ALU operator */
00084     mmmul,              /* Multimedia multiply operator */
00085     mmshf,              /* Multimedia shift operator */
00086     itrap,              /* Integer trap potential */
00087     safe,               /* Never traps -- always safe */
00088     ftrap,              /* Floating point trap potential */
00089     fdiv,               /* Floating point divides */
00090     sqrt,               /* Square root operator */
00091     memtrap,            /* Memory trap potential */
00092     unsafe,             /* Unsafe always */
00093     defs_fp,            /* Operator defines FP reg */
00094     defs_fcc,           /* Operator defines FP CC reg */
00095     defs_fcr,           /* Operator defines FCR reg */
00096     refs_fcr,           /* Operator uses FCR reg */
00097     defs_fpu_int,       /* Operator defs int val in FP reg */
00098     ior,                /* Integer logical OR operator */
00099     jump,               /* Jump operator */
00100     ijump,              /* Indirect jump operator */
00101     ixor,               /* Integer logical exclusive OR operator */
00102     iand,               /* Integer logical AND operator */
00103     icmp,               /* Integer compare operator */
00104     f_group,            /* Instruction must be first in an instruction group */
00105     l_group,            /* Instruction must be last in an instruction group */
00106     privileged,         /* Instruction is a privileged instruction */
00107     simulated,          /* Instruction is simulated, i.e. a macro */    
00108     predicated,         /* Instruction is predicated */
00109     access_reg_bank,    /* Instruction accesses rotating register banks */
00110     side_effects,       /* Instruction has side effects */
00111     mem_fill_type,      /* Memory instructions which are fill/spill type */
00112     branch_predict,     /* Branch prediction (but not actual xfer) */
00113     var_opnds;          /* Variable number of operands AND/OR results */
00114 
00115   ISA_Properties_Begin ("ia64");
00116 
00117 /* ====================================================================
00118  *              Operator attributes descriptors
00119  * ====================================================================
00120  */
00121 
00122 /* ===== Memory load operator ====== */
00123   load = ISA_Property_Create ("load");
00124   Instruction_Group (load, 
00125                         TOP_ld1_r,
00126                         TOP_ld1_i,
00127                         TOP_ld2_r,
00128                         TOP_ld2_i,
00129                         TOP_ld4_r,
00130                         TOP_ld4_i,
00131                         TOP_ld8_r,
00132                         TOP_ld8_i,
00133                         TOP_ld8_r_fill,
00134                         TOP_ld8_i_fill,
00135                         TOP_ldfs_r,
00136                         TOP_ldfs_i,
00137                         TOP_ldfd_r,
00138                         TOP_ldfd_i,
00139                         TOP_ldfe_r,
00140                         TOP_ldfe_i,
00141                         TOP_ldf8_r,
00142                         TOP_ldf8_i,
00143                         TOP_ldf_r_fill,
00144                         TOP_ldf_i_fill,
00145                         TOP_ldfps,
00146                         TOP_ldfps_i,
00147                         TOP_ldfpd,
00148                         TOP_ldfpd_i,
00149                         TOP_ldfp8,
00150                         TOP_ldfp8_i,
00151                         TOP_ld1,
00152                         TOP_ld2,
00153                         TOP_ld4,
00154                         TOP_ld8,
00155                         TOP_ld8_fill,
00156                         TOP_ldfs,
00157                         TOP_ldfd,
00158                         TOP_ldfe,
00159                         TOP_ldf8,
00160                         TOP_ldf_fill,
00161                         TOP_UNDEFINED);
00162 
00163 /* ===== Memory store operator ====== */
00164   store = ISA_Property_Create ("store");
00165   Instruction_Group (store, 
00166                         TOP_st1,
00167                         TOP_st1_i,
00168                         TOP_st2,
00169                         TOP_st2_i,
00170                         TOP_st4,
00171                         TOP_st4_i,
00172                         TOP_st8,
00173                         TOP_st8_i,
00174                         TOP_st8_spill,
00175                         TOP_st8_i_spill,
00176                         TOP_stfs,
00177                         TOP_stfs_i,
00178                         TOP_stfd,
00179                         TOP_stfd_i,
00180                         TOP_stfe,
00181                         TOP_stfe_i,
00182                         TOP_stf8,
00183                         TOP_stf8_i,
00184                         TOP_stf_spill,
00185                         TOP_stf_i_spill,
00186                         TOP_UNDEFINED);
00187 
00188 /* ===== Prefetch operator ====== */
00189   prefetch = ISA_Property_Create ("prefetch");
00190   Instruction_Group (prefetch, 
00191                         TOP_lfetch_r,
00192                         TOP_lfetch_r_excl,
00193                         TOP_lfetch_i,
00194                         TOP_lfetch_i_excl,
00195                         TOP_lfetch,
00196                         TOP_lfetch_excl,
00197                         TOP_UNDEFINED);
00198 
00199 /* ===== Memory fill/spill type instructions ====== */
00200   mem_fill_type = ISA_Property_Create ("mem_fill_type");
00201   Instruction_Group (mem_fill_type, 
00202                      TOP_ld8_fill,
00203                      TOP_ld8_r_fill,
00204                      TOP_ld8_i_fill,
00205                      TOP_ldf_fill,
00206                      TOP_ldf_r_fill,
00207                      TOP_ldf_i_fill,
00208                      TOP_st8_spill,
00209                      TOP_st8_i_spill,
00210                      TOP_stf_spill,
00211                      TOP_stf_i_spill,
00212                      TOP_UNDEFINED);
00213 
00214 /* ===== Control transfer operator ====== */
00215   xfer = ISA_Property_Create ("xfer");
00216   Instruction_Group (xfer,  
00217                         TOP_br_cond,
00218                         TOP_br_r_cond,
00219                         TOP_br_call,
00220                         TOP_br_r_call,
00221                         TOP_br_ret,
00222                         TOP_br_ia,
00223                         TOP_br_cloop,
00224                         TOP_br_ctop,
00225                         TOP_br_cexit,
00226                         TOP_br_wtop,
00227                         TOP_br_wexit,
00228                         TOP_br,
00229                         TOP_br_r,
00230                         TOP_break_i,
00231                         TOP_break_b,
00232                         TOP_break_m,
00233                         TOP_break_f,
00234                         TOP_break_x,
00235                         TOP_break,
00236                         TOP_brl_cond,
00237                         TOP_brl_call,
00238                         TOP_brl,
00239                         TOP_UNDEFINED);
00240 
00241 /* ===== Subprogram call operator ====== */
00242   call = ISA_Property_Create ("call");
00243   Instruction_Group (call,  
00244                         TOP_br_call,
00245                         TOP_br_r_call,
00246                         TOP_UNDEFINED);
00247 
00248 /* ===== Call/xfer is conditional ====== */
00249   cond = ISA_Property_Create ("cond");
00250   Instruction_Group (cond,  
00251                         TOP_br_cond,
00252                         TOP_br_r_cond,
00253                         TOP_br_cloop,
00254                         TOP_br_ctop,
00255                         TOP_br_cexit,
00256                         TOP_br_wtop,
00257                         TOP_br_wexit,
00258                         TOP_brl_cond,
00259                         TOP_UNDEFINED);
00260 
00261 /* ===== Cond call/xfer is likely ====== */
00262   likely = ISA_Property_Create ("likely");
00263   Instruction_Group (likely, 
00264                         TOP_UNDEFINED);
00265 
00266 /* ===== Result def is conditional ====== */
00267   cond_move = ISA_Property_Create ("cond_move");
00268   Instruction_Group (cond_move,
00269                         TOP_UNDEFINED);
00270 
00271 /* ===== Result must not be opnd ====== */
00272   uniq_res = ISA_Property_Create ("uniq_res");
00273   Instruction_Group (uniq_res,
00274                         TOP_intrncall,
00275                         TOP_UNDEFINED);
00276 
00277 /* ===== Result must be same as opnd ====== */
00278   same_res = ISA_Property_Create ("same_res");
00279   Instruction_Group (same_res,
00280                         TOP_ld1_r,
00281                         TOP_ld1_i,
00282                         TOP_ld2_r,
00283                         TOP_ld2_i,
00284                         TOP_ld4_r,
00285                         TOP_ld4_i,
00286                         TOP_ld8_r,
00287                         TOP_ld8_i,
00288                         TOP_ld8_r_fill,
00289                         TOP_ld8_i_fill,
00290                         TOP_ldfs_r,
00291                         TOP_ldfs_i,
00292                         TOP_ldfd_r,
00293                         TOP_ldfd_i,
00294                         TOP_ldfe_r,
00295                         TOP_ldfe_i,
00296                         TOP_ldf8_r,
00297                         TOP_ldf8_i,
00298                         TOP_ldf_r_fill,
00299                         TOP_ldf_i_fill,
00300                         TOP_lfetch_r,
00301                         TOP_lfetch_r_excl,
00302                         TOP_lfetch_r_fault,
00303                         TOP_lfetch_r_fault_excl,
00304                         TOP_lfetch_i,
00305                         TOP_lfetch_i_excl,
00306                         TOP_lfetch_i_fault,
00307                         TOP_lfetch_i_fault_excl,
00308                         TOP_st1_i,
00309                         TOP_st2_i,
00310                         TOP_st4_i,
00311                         TOP_st8_i,
00312                         TOP_st8_i_spill,
00313                         TOP_stfs_i,
00314                         TOP_stfd_i,
00315                         TOP_stfe_i,
00316                         TOP_stf8_i,
00317                         TOP_stf_i_spill,
00318                         TOP_UNDEFINED);
00319 
00320 /* ===== Operator is a machine level select ====== */
00321   select = ISA_Property_Create ("select");
00322   Instruction_Group (select,
00323                         TOP_UNDEFINED);
00324 
00325 /* ===== Unaligned load operator ====== */
00326   unalign_ld = ISA_Property_Create ("unalign_ld");
00327   Instruction_Group (unalign_ld,
00328                         TOP_UNDEFINED);
00329 
00330 /* ===== Unaligned store operator ====== */
00331   unalign_store = ISA_Property_Create ("unalign_store");
00332   Instruction_Group (unalign_store,
00333                         TOP_UNDEFINED);
00334 
00335 /* ===== Integer add operator ====== */
00336   iadd = ISA_Property_Create ("iadd");
00337   Instruction_Group (iadd,
00338                         TOP_add,
00339                         TOP_adds,
00340                         TOP_addl,
00341                         TOP_addp4,
00342                         TOP_addp4_i,
00343                         TOP_spadjust,
00344                         TOP_UNDEFINED);
00345 
00346 /* ===== Integer subtract operator ====== */
00347   isub = ISA_Property_Create ("isub");
00348   Instruction_Group (isub,
00349                         TOP_sub,
00350                         TOP_sub_i,
00351                         TOP_UNDEFINED);
00352 
00353 /* ===== Integer multiply operator ====== */
00354   imul = ISA_Property_Create ("imul");
00355   Instruction_Group (imul,
00356                         TOP_xma_l,
00357                         TOP_xma_h,
00358                         TOP_xma_hu,
00359                         TOP_xma_lu,
00360                         TOP_xmpy_l,
00361                         TOP_xmpy_h,
00362                         TOP_xmpy_hu,
00363                         TOP_xmpy_lu,
00364                         TOP_UNDEFINED);
00365 
00366 /* ===== Integer divide operator ====== */
00367   idiv = ISA_Property_Create ("idiv");
00368   Instruction_Group (idiv,
00369                         TOP_UNDEFINED);
00370 
00371 /* ===== Any proper floating point op ====== */
00372   flop = ISA_Property_Create ("flop");
00373   Instruction_Group (flop,
00374                         TOP_fabs,
00375                         TOP_fadd,
00376                         TOP_fadd_d,
00377                         TOP_fadd_s,
00378                         TOP_famax,
00379                         TOP_famin,
00380                         TOP_fcmp_eq,
00381                         TOP_fcmp_eq_unc,
00382                         TOP_fcmp_ge,
00383                         TOP_fcmp_ge_unc,
00384                         TOP_fcmp_gt,
00385                         TOP_fcmp_gt_unc,
00386                         TOP_fcmp_le,
00387                         TOP_fcmp_le_unc,
00388                         TOP_fcmp_lt,
00389                         TOP_fcmp_lt_unc,
00390                         TOP_fcmp_neq,
00391                         TOP_fcmp_neq_unc,
00392                         TOP_fcmp_nge,
00393                         TOP_fcmp_nge_unc,
00394                         TOP_fcmp_ngt,
00395                         TOP_fcmp_ngt_unc,
00396                         TOP_fcmp_nle,
00397                         TOP_fcmp_nle_unc,
00398                         TOP_fcmp_nlt,
00399                         TOP_fcmp_nlt_unc,
00400                         TOP_fcmp_ord,
00401                         TOP_fcmp_ord_unc,
00402                         TOP_fcmp_unord,
00403                         TOP_fcmp_unord_unc,
00404                         TOP_fcvt_fx,
00405                         TOP_fcvt_fx_trunc,
00406                         TOP_fcvt_fxu,
00407                         TOP_fcvt_fxu_trunc,
00408                         TOP_fcvt_xf,
00409                         TOP_fma,
00410                         TOP_fma_d,
00411                         TOP_fma_s,
00412                         TOP_fmax,
00413                         TOP_fmerge_ns,
00414                         TOP_fmerge_s,
00415                         TOP_fmerge_se,
00416                         TOP_fmin,
00417                         TOP_fmix_l,
00418                         TOP_fmix_lr,
00419                         TOP_fmix_r,
00420                         TOP_fmpy,
00421                         TOP_fmpy_d,
00422                         TOP_fmpy_s,
00423                         TOP_fms,
00424                         TOP_fms_d,
00425                         TOP_fms_s,
00426                         TOP_fneg,
00427                         TOP_fnegabs,
00428                         TOP_fnma,
00429                         TOP_fnma_d,
00430                         TOP_fnma_s,
00431                         TOP_fnmpy,
00432                         TOP_fnmpy_d,
00433                         TOP_fnmpy_s,
00434                         TOP_fnorm,
00435                         TOP_fnorm_d,
00436                         TOP_fnorm_s,
00437                         TOP_fpabs,
00438                         TOP_fpamax,
00439                         TOP_fpamin,
00440                         TOP_fpcmp_eq,
00441                         TOP_fpcmp_ge,
00442                         TOP_fpcmp_gt,
00443                         TOP_fpcmp_le,
00444                         TOP_fpcmp_lt,
00445                         TOP_fpcmp_neq,
00446                         TOP_fpcmp_nge,
00447                         TOP_fpcmp_ngt,
00448                         TOP_fpcmp_nle,
00449                         TOP_fpcmp_nlt,
00450                         TOP_fpcmp_ord,
00451                         TOP_fpcmp_unord,
00452                         TOP_fpma,
00453                         TOP_fpmax,
00454                         TOP_fpmerge_ns,
00455                         TOP_fpmerge_s,
00456                         TOP_fpmerge_se,
00457                         TOP_fpmin,
00458                         TOP_fpmpy,
00459                         TOP_fpms,
00460                         TOP_fpneg,
00461                         TOP_fpnegabs,
00462                         TOP_fpnma,
00463                         TOP_fpnmpy,
00464                         TOP_fprcpa,
00465                         TOP_fprsqrta,
00466                         TOP_frcpa,
00467                         TOP_frsqrta,
00468                         TOP_fsub,
00469                         TOP_fsub_d,
00470                         TOP_fsub_s,
00471                         TOP_mov_f,
00472                         TOP_UNDEFINED);
00473 
00474 /* ===== FP add operator ====== */
00475   fadd = ISA_Property_Create ("fadd");
00476   Instruction_Group (fadd,
00477                         TOP_fadd,
00478                         TOP_fadd_s,
00479                         TOP_fadd_d,
00480                         TOP_UNDEFINED);
00481 
00482 /* ===== FP subtract operator ====== */
00483   fsub = ISA_Property_Create ("fsub");
00484   Instruction_Group (fsub,
00485                         TOP_fsub,
00486                         TOP_fsub_s,
00487                         TOP_fsub_d,
00488                         TOP_UNDEFINED);
00489 
00490 /* ===== FP multiply operator ====== */
00491   fmul = ISA_Property_Create ("fmul");
00492   Instruction_Group (fmul,
00493                         TOP_fmpy,
00494                         TOP_fmpy_s,
00495                         TOP_fmpy_d,
00496                         TOP_fnmpy,
00497                         TOP_fnmpy_s,
00498                         TOP_fnmpy_d,
00499                         TOP_fpmpy,
00500                         TOP_fpnmpy,
00501                         TOP_UNDEFINED);
00502 
00503 /* ===== FP miscellaneous operator ====== */
00504   fmisc = ISA_Property_Create ("fmisc");
00505   Instruction_Group (fmisc,
00506                      TOP_famax,
00507                      TOP_famin,
00508                      TOP_fand,
00509                      TOP_fandcm,
00510                      TOP_fmax,
00511                      TOP_fmerge_ns,
00512                      TOP_fmerge_s,
00513                      TOP_fmerge_se,
00514                      TOP_fmin,
00515                      TOP_fmix_l,
00516                      TOP_fmix_lr,
00517                      TOP_fmix_r,
00518                      TOP_for,
00519                      TOP_fpack,
00520                      TOP_frcpa,
00521                      TOP_frsqrta,
00522                      TOP_fselect,
00523                      TOP_fswap,
00524                      TOP_fswap_nl,
00525                      TOP_fswap_nr,
00526                      TOP_fsxt_l,
00527                      TOP_fsxt_r,
00528                      TOP_fxor,
00529                      TOP_fabs,          // pseudo of fmerge_s
00530                      TOP_fnegabs,       // pseudo of fmerge_ns
00531                      TOP_fneg,          // pseudo of fmerge_ns
00532                      TOP_mov_f,         // pseudo of fmerge_s
00533                      TOP_UNDEFINED);
00534 
00535 /* ===== The kind that do two at once ====== */
00536   madd = ISA_Property_Create ("madd");
00537   Instruction_Group (madd,
00538                         TOP_fma,
00539                         TOP_fma_s,
00540                         TOP_fma_d,
00541                         TOP_fnma,
00542                         TOP_fnma_s,
00543                         TOP_fnma_d,
00544                         TOP_fpma,
00545                         TOP_fpnma,
00546                         TOP_fms,
00547                         TOP_fms_s,
00548                         TOP_fms_d,
00549                         TOP_UNDEFINED);
00550 
00551 /* ===== Instructions belonging to Multimedia ALU type ====== */
00552   mmalu = ISA_Property_Create ("mmalu");
00553   Instruction_Group (mmalu,
00554                      TOP_padd1,
00555                      TOP_padd2,
00556                      TOP_padd1_sss,
00557                      TOP_padd2_sss,
00558                      TOP_padd1_uuu,
00559                      TOP_padd2_uuu,
00560                      TOP_padd1_uus,
00561                      TOP_padd2_uus,
00562                      TOP_padd4,
00563                      TOP_pavg1,
00564                      TOP_pavg1_raz,
00565                      TOP_pavg2,
00566                      TOP_pavg2_raz,
00567                      TOP_pavgsub1,
00568                      TOP_pavgsub2,
00569                      TOP_pcmp1_eq,
00570                      TOP_pcmp2_eq,
00571                      TOP_pcmp4_eq,
00572                      TOP_pcmp1_gt,
00573                      TOP_pcmp2_gt,
00574                      TOP_pcmp4_gt,
00575                      TOP_pshladd2,
00576                      TOP_pshradd2,
00577                      TOP_psub1,
00578                      TOP_psub2,
00579                      TOP_psub1_sss,
00580                      TOP_psub2_sss,
00581                      TOP_psub1_uuu,
00582                      TOP_psub2_uuu,
00583                      TOP_psub1_uus,
00584                      TOP_psub2_uus,
00585                      TOP_psub4,
00586                      TOP_pmax1_u,
00587                      TOP_pmax2,
00588                      TOP_pmin1_u,
00589                      TOP_pmin2,
00590                      TOP_psad1,
00591                      TOP_UNDEFINED);
00592 
00593 /* ===== Instructions belonging to Multimedia shift (MMSHF) type ====== */
00594   mmshf = ISA_Property_Create ("mmshf");
00595   Instruction_Group (mmshf,
00596                      TOP_mix1_l,
00597                      TOP_mix1_r,
00598                      TOP_mix2_l,
00599                      TOP_mix2_r,
00600                      TOP_mix4_l,
00601                      TOP_mix4_r,
00602                      TOP_mux1,
00603                      TOP_mux2,
00604                      TOP_pack2_sss,
00605                      TOP_pack2_uss,
00606                      TOP_pack4_sss,
00607                      TOP_pshl2,
00608                      TOP_pshl2_i,
00609                      TOP_pshl4,
00610                      TOP_pshl4_i,
00611                      TOP_pshr2,
00612                      TOP_pshr2_u,
00613                      TOP_pshr2_i,
00614                      TOP_pshr2_i_u,
00615                      TOP_pshr4,
00616                      TOP_pshr4_u,
00617                      TOP_pshr4_i,
00618                      TOP_pshr4_i_u,
00619                      TOP_shl,
00620                      TOP_shr,
00621                      TOP_shr_u,
00622                      TOP_unpack1_h,
00623                      TOP_unpack1_l,
00624                      TOP_unpack2_h,
00625                      TOP_unpack2_l,
00626                      TOP_unpack4_h,
00627                      TOP_unpack4_l,
00628                      TOP_UNDEFINED);
00629 
00630 /* ===== Instructions belonging to Multimedia multiply (MMMUL) type ====== */
00631   mmmul = ISA_Property_Create ("mmmul");
00632   Instruction_Group (mmmul,
00633                      TOP_pmpy2_l,
00634                      TOP_pmpy2_r,
00635                      TOP_pmpyshr2,
00636                      TOP_pmpyshr2_u,
00637                      TOP_popcnt,
00638                      TOP_UNDEFINED);
00639 
00640   noop = ISA_Property_Create ("noop");
00641   Instruction_Group (noop,
00642                         TOP_nop_i,
00643                         TOP_nop_b,
00644                         TOP_nop_m,
00645                         TOP_nop_f,
00646                         TOP_nop_x,
00647                         TOP_nop,
00648                         TOP_noop,
00649                         TOP_UNDEFINED);
00650 
00651   dummy = ISA_Property_Create ("dummy");
00652   Instruction_Group (dummy,
00653                         TOP_dfixup,
00654                         TOP_ffixup,
00655                         TOP_ifixup,
00656                         TOP_begin_pregtn,
00657                         TOP_end_pregtn,
00658                         TOP_fwd_bar,
00659                         TOP_bwd_bar,
00660                         TOP_label,
00661                         TOP_noop,
00662                         TOP_UNDEFINED);
00663 
00664 /* ====================================================================
00665  *              Exception classification descriptors
00666  * ====================================================================
00667  */
00668 
00669   /* ===== Integer trap potential ====== */
00670   itrap = ISA_Property_Create ("itrap");
00671   Instruction_Group (itrap,
00672                         TOP_UNDEFINED);
00673 
00674   /* ===== Never traps -- always safe ====== */
00675   safe = ISA_Property_Create ("safe");
00676   Instruction_Group (safe,
00677                         // TODO
00678                         TOP_UNDEFINED);
00679 
00680   /* ===== Unsafe always ====== */
00681   unsafe = ISA_Property_Create ("unsafe");
00682   Instruction_Group (unsafe, 
00683                         // TODO
00684                         TOP_fwd_bar, TOP_bwd_bar,
00685                         TOP_UNDEFINED);
00686 
00687   /* ===== Floating point trap potential ====== */
00688   ftrap = ISA_Property_Create ("ftrap");
00689   Instruction_Group (ftrap, 
00690                         // TODO
00691                         TOP_UNDEFINED);
00692 
00693   /* ===== Floating point divides ====== */
00694   fdiv = ISA_Property_Create ("fdiv");
00695   Instruction_Group (fdiv, 
00696                         TOP_frcpa,
00697                         TOP_frsqrta,
00698                         TOP_fprcpa,
00699                         TOP_fprsqrta,
00700                         TOP_UNDEFINED);
00701 
00702   /* ===== Square roots ====== */
00703   sqrt = ISA_Property_Create ("sqrt");
00704   Instruction_Group (sqrt, 
00705                         TOP_frsqrta,
00706                         TOP_fprsqrta,
00707                         TOP_UNDEFINED);
00708 
00709   /* ===== Memory trap potential ====== */
00710   memtrap = ISA_Property_Create ("memtrap");
00711   Instruction_Group (memtrap, 
00712                         TOP_ld1_r,
00713                         TOP_ld1_i,
00714                         TOP_ld2_r,
00715                         TOP_ld2_i,
00716                         TOP_ld4_r,
00717                         TOP_ld4_i,
00718                         TOP_ld8_r,
00719                         TOP_ld8_i,
00720                         TOP_ld8_r_fill,
00721                         TOP_ld8_i_fill,
00722                         TOP_ldfs_r,
00723                         TOP_ldfs_i,
00724                         TOP_ldfd_r,
00725                         TOP_ldfd_i,
00726                         TOP_ldfe_r,
00727                         TOP_ldfe_i,
00728                         TOP_ldf8_r,
00729                         TOP_ldf8_i,
00730                         TOP_ldf_r_fill,
00731                         TOP_ldf_i_fill,
00732                         TOP_ldfps,
00733                         TOP_ldfps_i,
00734                         TOP_ldfpd,
00735                         TOP_ldfpd_i,
00736                         TOP_ldfp8,
00737                         TOP_ldfp8_i,
00738                         TOP_ld1,
00739                         TOP_ld2,
00740                         TOP_ld4,
00741                         TOP_ld8,
00742                         TOP_ld8_fill,
00743                         TOP_ldfs,
00744                         TOP_ldfd,
00745                         TOP_ldfe,
00746                         TOP_ldf8,
00747                         TOP_ldf_fill,
00748                         TOP_st1,
00749                         TOP_st1_i,
00750                         TOP_st2,
00751                         TOP_st2_i,
00752                         TOP_st4,
00753                         TOP_st4_i,
00754                         TOP_st8,
00755                         TOP_st8_i,
00756                         TOP_st8_spill,
00757                         TOP_st8_i_spill,
00758                         TOP_stfs,
00759                         TOP_stfs_i,
00760                         TOP_stfd,
00761                         TOP_stfd_i,
00762                         TOP_stfe,
00763                         TOP_stfe_i,
00764                         TOP_stf8,
00765                         TOP_stf8_i,
00766                         TOP_stf_spill,
00767                         TOP_stf_i_spill,
00768                         TOP_UNDEFINED);
00769 
00770   /* ===== Instruction must be first in an instruction group ====== */
00771   f_group = ISA_Property_Create ("f_group");
00772   Instruction_Group (f_group,
00773                      TOP_flushrs,
00774                      TOP_loadrs,
00775                      TOP_alloc,
00776                      TOP_alloc_3,
00777                      TOP_UNDEFINED);
00778 
00779   /* ===== Instruction must be last in an instruction group ====== */
00780   l_group = ISA_Property_Create ("l_group");
00781   Instruction_Group (l_group,
00782                      TOP_cover,
00783                      TOP_clrrrb,
00784                      TOP_clrrrb_pr,
00785                      TOP_rfi,
00786                      TOP_bsw_0,
00787                      TOP_bsw_1,
00788                      TOP_UNDEFINED);
00789 
00790   /* ===== Instruction is a privileged instruction ====== */
00791   privileged = ISA_Property_Create ("privileged");
00792   Instruction_Group (privileged,
00793                      TOP_ptc_e,
00794                      TOP_mov,
00795                      TOP_itc_d,
00796                      TOP_itc_i,
00797                      TOP_itr_d,
00798                      TOP_itr_i,
00799                      TOP_ssm,
00800                      TOP_rsm,
00801                      TOP_ptc_l,
00802                      TOP_ptc_g,
00803                      TOP_ptc_ga,
00804                      TOP_ptr_d,
00805                      TOP_ptr_i,
00806                      TOP_rfi,
00807                      TOP_tpa,
00808                      TOP_tak,
00809                      TOP_bsw_0,
00810                      TOP_bsw_1,
00811                      TOP_UNDEFINED);
00812 
00813 /* ====================================================================
00814  * Other operator descriptors (mostly for global optimization). 
00815  * TODO: These descriptors should actually be determined from mips_operands. 
00816  * ====================================================================
00817  */
00818 
00819 /* ===== Operator defines FP CC reg ====== */
00820   defs_fcc = ISA_Property_Create ("defs_fcc");
00821   Instruction_Group (defs_fcc,
00822                         TOP_UNDEFINED);
00823 
00824 /* ===== Operator defines FCR reg ====== */
00825   defs_fcr = ISA_Property_Create ("defs_fcr");
00826   Instruction_Group (defs_fcr,
00827                         // TODO
00828                         TOP_UNDEFINED);
00829 
00830 /* ===== Operator uses FCR reg ====== */
00831   refs_fcr = ISA_Property_Create ("refs_fcr");
00832   Instruction_Group (refs_fcr, 
00833                         // TODO
00834                         TOP_UNDEFINED);
00835 
00836 /* ===== Operator defs int val in FP reg ====== */
00837   defs_fpu_int = ISA_Property_Create ("defs_fpu_int");
00838   Instruction_Group (defs_fpu_int, 
00839                         TOP_UNDEFINED);
00840 
00841 /* ===== Operator defines FP reg ====== */
00842   defs_fp = ISA_Property_Create ("defs_fp");
00843   Instruction_Group (defs_fp, 
00844                         // TODO
00845                         TOP_UNDEFINED);
00846 
00847 /* ===== Logical OR operator ====== */
00848   ior = ISA_Property_Create ("ior");
00849   Instruction_Group (ior,
00850                         TOP_for,
00851                         TOP_or,
00852                         TOP_or_i,
00853                         TOP_UNDEFINED);
00854 
00855 /* ===== Jump operator ====== */
00856   jump = ISA_Property_Create ("jump");
00857   Instruction_Group (jump,
00858                         TOP_UNDEFINED);
00859 
00860 /* ===== Indirect jump operator ====== */
00861   ijump = ISA_Property_Create ("ijump");
00862   Instruction_Group (ijump,
00863                         TOP_br_r_cond,
00864                         TOP_br_r_call,
00865                         TOP_br_ia,
00866                         TOP_br_r,
00867                         TOP_br_ret,
00868                         TOP_UNDEFINED);
00869 
00870 /* ===== Logical exclusive OR operator ====== */
00871   ixor = ISA_Property_Create ("ixor");
00872   Instruction_Group (ixor,
00873                         TOP_fxor,
00874                         TOP_xor,
00875                         TOP_xor_i,
00876                         TOP_UNDEFINED);
00877 
00878 /* ===== Logical AND operator ====== */
00879   iand = ISA_Property_Create ("iand");
00880   Instruction_Group (iand,
00881                         TOP_and,
00882                         TOP_and_i,
00883                         TOP_fand,
00884                         TOP_UNDEFINED);
00885 
00886 /* ===== Integer compare operator ====== */
00887   icmp = ISA_Property_Create ("icmp");
00888   Instruction_Group (icmp,
00889                         TOP_cmp_eq,
00890                         TOP_cmp_eq_unc,
00891                         TOP_cmp_eq_and,
00892                         TOP_cmp_eq_or,
00893                         TOP_cmp_eq_or_andcm,
00894                         TOP_cmp_ne_and,
00895                         TOP_cmp_ne_or,
00896                         TOP_cmp_ne_or_andcm,
00897                         TOP_cmp_lt,
00898                         TOP_cmp_lt_unc,
00899                         TOP_cmp_ltu,
00900                         TOP_cmp_ltu_unc,
00901                         TOP_cmp_z1_lt_and,
00902                         TOP_cmp_z1_lt_or,
00903                         TOP_cmp_z1_lt_or_andcm,
00904                         TOP_cmp_z1_le_and,
00905                         TOP_cmp_z1_le_or,
00906                         TOP_cmp_z1_le_or_andcm,
00907                         TOP_cmp_z1_gt_and,
00908                         TOP_cmp_z1_gt_or,
00909                         TOP_cmp_z1_gt_or_andcm,
00910                         TOP_cmp_z1_ge_and,
00911                         TOP_cmp_z1_ge_or,
00912                         TOP_cmp_z1_ge_or_andcm,
00913                         TOP_cmp_i_eq,
00914                         TOP_cmp_i_eq_unc,
00915                         TOP_cmp_i_eq_and,
00916                         TOP_cmp_i_eq_or,
00917                         TOP_cmp_i_eq_or_andcm,
00918                         TOP_cmp_i_ne_and,
00919                         TOP_cmp_i_ne_or,
00920                         TOP_cmp_i_ne_or_andcm,
00921                         TOP_cmp_i_lt,
00922                         TOP_cmp_i_lt_unc,
00923                         TOP_cmp_i_ltu,
00924                         TOP_cmp_i_ltu_unc,
00925                         TOP_cmp4_eq,
00926                         TOP_cmp4_eq_unc,
00927                         TOP_cmp4_eq_and,
00928                         TOP_cmp4_eq_or,
00929                         TOP_cmp4_eq_or_andcm,
00930                         TOP_cmp4_ne_and,
00931                         TOP_cmp4_ne_or,
00932                         TOP_cmp4_ne_or_andcm,
00933                         TOP_cmp4_lt,
00934                         TOP_cmp4_lt_unc,
00935                         TOP_cmp4_ltu,
00936                         TOP_cmp4_ltu_unc,
00937                         TOP_cmp4_z1_lt_and,
00938                         TOP_cmp4_z1_lt_or,
00939                         TOP_cmp4_z1_lt_or_andcm,
00940                         TOP_cmp4_z1_le_and,
00941                         TOP_cmp4_z1_le_or,
00942                         TOP_cmp4_z1_le_or_andcm,
00943                         TOP_cmp4_z1_gt_and,
00944                         TOP_cmp4_z1_gt_or,
00945                         TOP_cmp4_z1_gt_or_andcm,
00946                         TOP_cmp4_z1_ge_and,
00947                         TOP_cmp4_z1_ge_or,
00948                         TOP_cmp4_z1_ge_or_andcm,
00949                         TOP_cmp4_i_eq,
00950                         TOP_cmp4_i_eq_unc,
00951                         TOP_cmp4_i_eq_and,
00952                         TOP_cmp4_i_eq_or,
00953                         TOP_cmp4_i_eq_or_andcm,
00954                         TOP_cmp4_i_ne_and,
00955                         TOP_cmp4_i_ne_or,
00956                         TOP_cmp4_i_ne_or_andcm,
00957                         TOP_cmp4_i_lt,
00958                         TOP_cmp4_i_lt_unc,
00959                         TOP_cmp4_i_ltu,
00960                         TOP_cmp4_i_ltu_unc,
00961                         TOP_cmp_eq_orcm,
00962                         TOP_cmp_eq_andcm,
00963                         TOP_cmp_eq_and_orcm,
00964                         TOP_cmp_ne,
00965                         TOP_cmp_ne_unc,
00966                         TOP_cmp_ne_orcm,
00967                         TOP_cmp_ne_andcm,
00968                         TOP_cmp_ne_and_orcm,
00969                         TOP_cmp_le,
00970                         TOP_cmp_le_unc,
00971                         TOP_cmp_gt,
00972                         TOP_cmp_gt_unc,
00973                         TOP_cmp_ge,
00974                         TOP_cmp_ge_unc,
00975                         TOP_cmp_leu,
00976                         TOP_cmp_leu_unc,
00977                         TOP_cmp_gtu,
00978                         TOP_cmp_gtu_unc,
00979                         TOP_cmp_geu,
00980                         TOP_cmp_geu_unc,
00981                         TOP_cmp_z1_lt_orcm,
00982                         TOP_cmp_z1_lt_andcm,
00983                         TOP_cmp_z1_lt_and_orcm,
00984                         TOP_cmp_z1_le_orcm,
00985                         TOP_cmp_z1_le_andcm,
00986                         TOP_cmp_z1_le_and_orcm,
00987                         TOP_cmp_z1_gt_orcm,
00988                         TOP_cmp_z1_gt_andcm,
00989                         TOP_cmp_z1_gt_and_orcm,
00990                         TOP_cmp_z1_ge_orcm,
00991                         TOP_cmp_z1_ge_andcm,
00992                         TOP_cmp_z1_ge_and_orcm,
00993                         TOP_cmp_z2_lt_orcm,
00994                         TOP_cmp_z2_lt_andcm,
00995                         TOP_cmp_z2_lt_and_orcm,
00996                         TOP_cmp_z2_le_orcm,
00997                         TOP_cmp_z2_le_andcm,
00998                         TOP_cmp_z2_le_and_orcm,
00999                         TOP_cmp_z2_gt_orcm,
01000                         TOP_cmp_z2_gt_andcm,
01001                         TOP_cmp_z2_gt_and_orcm,
01002                         TOP_cmp_z2_ge_orcm,
01003                         TOP_cmp_z2_ge_andcm,
01004                         TOP_cmp_z2_ge_and_orcm,
01005                         TOP_cmp_z2_lt_and,
01006                         TOP_cmp_z2_lt_or,
01007                         TOP_cmp_z2_lt_or_andcm,
01008                         TOP_cmp_z2_le_and,
01009                         TOP_cmp_z2_le_or,
01010                         TOP_cmp_z2_le_or_andcm,
01011                         TOP_cmp_z2_gt_and,
01012                         TOP_cmp_z2_gt_or,
01013                         TOP_cmp_z2_gt_or_andcm,
01014                         TOP_cmp_z2_ge_and,
01015                         TOP_cmp_z2_ge_or,
01016                         TOP_cmp_z2_ge_or_andcm,
01017                         TOP_cmp_i_eq_orcm,
01018                         TOP_cmp_i_eq_andcm,
01019                         TOP_cmp_i_eq_and_orcm,
01020                         TOP_cmp_i_ne,
01021                         TOP_cmp_i_ne_unc,
01022                         TOP_cmp_i_ne_orcm,
01023                         TOP_cmp_i_ne_andcm,
01024                         TOP_cmp_i_ne_and_orcm,
01025                         TOP_cmp_i_le,
01026                         TOP_cmp_i_le_unc,
01027                         TOP_cmp_i_gt,
01028                         TOP_cmp_i_gt_unc,
01029                         TOP_cmp_i_ge,
01030                         TOP_cmp_i_ge_unc,
01031                         TOP_cmp_i_leu,
01032                         TOP_cmp_i_leu_unc,
01033                         TOP_cmp_i_gtu,
01034                         TOP_cmp_i_gtu_unc,
01035                         TOP_cmp_i_geu,
01036                         TOP_cmp_i_geu_unc,
01037                         TOP_cmp4_eq_orcm,
01038                         TOP_cmp4_eq_andcm,
01039                         TOP_cmp4_eq_and_orcm,
01040                         TOP_cmp4_ne,
01041                         TOP_cmp4_ne_unc,
01042                         TOP_cmp4_ne_orcm,
01043                         TOP_cmp4_ne_andcm,
01044                         TOP_cmp4_ne_and_orcm,
01045                         TOP_cmp4_le,
01046                         TOP_cmp4_le_unc,
01047                         TOP_cmp4_gt,
01048                         TOP_cmp4_gt_unc,
01049                         TOP_cmp4_ge,
01050                         TOP_cmp4_ge_unc,
01051                         TOP_cmp4_leu,
01052                         TOP_cmp4_leu_unc,
01053                         TOP_cmp4_gtu,
01054                         TOP_cmp4_gtu_unc,
01055                         TOP_cmp4_geu,
01056                         TOP_cmp4_geu_unc,
01057                         TOP_cmp4_z1_lt_orcm,
01058                         TOP_cmp4_z1_lt_andcm,
01059                         TOP_cmp4_z1_lt_and_orcm,
01060                         TOP_cmp4_z1_le_orcm,
01061                         TOP_cmp4_z1_le_andcm,
01062                         TOP_cmp4_z1_le_and_orcm,
01063                         TOP_cmp4_z1_gt_orcm,
01064                         TOP_cmp4_z1_gt_andcm,
01065                         TOP_cmp4_z1_gt_and_orcm,
01066                         TOP_cmp4_z1_ge_orcm,
01067                         TOP_cmp4_z1_ge_andcm,
01068                         TOP_cmp4_z1_ge_and_orcm,
01069                         TOP_cmp4_z2_lt_orcm,
01070                         TOP_cmp4_z2_lt_andcm,
01071                         TOP_cmp4_z2_lt_and_orcm,
01072                         TOP_cmp4_z2_le_orcm,
01073                         TOP_cmp4_z2_le_andcm,
01074                         TOP_cmp4_z2_le_and_orcm,
01075                         TOP_cmp4_z2_gt_orcm,
01076                         TOP_cmp4_z2_gt_andcm,
01077                         TOP_cmp4_z2_gt_and_orcm,
01078                         TOP_cmp4_z2_ge_orcm,
01079                         TOP_cmp4_z2_ge_andcm,
01080                         TOP_cmp4_z2_ge_and_orcm,
01081                         TOP_cmp4_z2_lt_and,
01082                         TOP_cmp4_z2_lt_or,
01083                         TOP_cmp4_z2_lt_or_andcm,
01084                         TOP_cmp4_z2_le_and,
01085                         TOP_cmp4_z2_le_or,
01086                         TOP_cmp4_z2_le_or_andcm,
01087                         TOP_cmp4_z2_gt_and,
01088                         TOP_cmp4_z2_gt_or,
01089                         TOP_cmp4_z2_gt_or_andcm,
01090                         TOP_cmp4_z2_ge_and,
01091                         TOP_cmp4_z2_ge_or,
01092                         TOP_cmp4_z2_ge_or_andcm,
01093                         TOP_cmp4_i_eq_orcm,
01094                         TOP_cmp4_i_eq_andcm,
01095                         TOP_cmp4_i_eq_and_orcm,
01096                         TOP_cmp4_i_ne,
01097                         TOP_cmp4_i_ne_unc,
01098                         TOP_cmp4_i_ne_orcm,
01099                         TOP_cmp4_i_ne_andcm,
01100                         TOP_cmp4_i_ne_and_orcm,
01101                         TOP_cmp4_i_le,
01102                         TOP_cmp4_i_le_unc,
01103                         TOP_cmp4_i_gt,
01104                         TOP_cmp4_i_gt_unc,
01105                         TOP_cmp4_i_ge,
01106                         TOP_cmp4_i_ge_unc,
01107                         TOP_cmp4_i_leu,
01108                         TOP_cmp4_i_leu_unc,
01109                         TOP_cmp4_i_gtu,
01110                         TOP_cmp4_i_gtu_unc,
01111                         TOP_cmp4_i_geu,
01112                         TOP_cmp4_i_geu_unc,
01113                         TOP_cmp_lt_and,
01114                         TOP_cmp_lt_or,
01115                         TOP_cmp_lt_or_andcm,
01116                         TOP_cmp_le_and,
01117                         TOP_cmp_le_or,
01118                         TOP_cmp_le_or_andcm,
01119                         TOP_cmp_gt_and,
01120                         TOP_cmp_gt_or,
01121                         TOP_cmp_gt_or_andcm,
01122                         TOP_cmp_ge_and,
01123                         TOP_cmp_ge_or,
01124                         TOP_cmp_ge_or_andcm,
01125                         TOP_cmp_lt_orcm,
01126                         TOP_cmp_lt_andcm,
01127                         TOP_cmp_lt_and_orcm,
01128                         TOP_cmp_le_orcm,
01129                         TOP_cmp_le_andcm,
01130                         TOP_cmp_le_and_orcm,
01131                         TOP_cmp_gt_orcm,
01132                         TOP_cmp_gt_andcm,
01133                         TOP_cmp_gt_and_orcm,
01134                         TOP_cmp_ge_orcm,
01135                         TOP_cmp_ge_andcm,
01136                         TOP_cmp_ge_and_orcm,
01137                         TOP_cmp4_lt_and,
01138                         TOP_cmp4_lt_or,
01139                         TOP_cmp4_lt_or_andcm,
01140                         TOP_cmp4_le_and,
01141                         TOP_cmp4_le_or,
01142                         TOP_cmp4_le_or_andcm,
01143                         TOP_cmp4_gt_and,
01144                         TOP_cmp4_gt_or,
01145                         TOP_cmp4_gt_or_andcm,
01146                         TOP_cmp4_ge_and,
01147                         TOP_cmp4_ge_or,
01148                         TOP_cmp4_ge_or_andcm,
01149                         TOP_cmp4_lt_orcm,
01150                         TOP_cmp4_lt_andcm,
01151                         TOP_cmp4_lt_and_orcm,
01152                         TOP_cmp4_le_orcm,
01153                         TOP_cmp4_le_andcm,
01154                         TOP_cmp4_le_and_orcm,
01155                         TOP_cmp4_gt_orcm,
01156                         TOP_cmp4_gt_andcm,
01157                         TOP_cmp4_gt_and_orcm,
01158                         TOP_cmp4_ge_orcm,
01159                         TOP_cmp4_ge_andcm,
01160                         TOP_cmp4_ge_and_orcm,
01161                         TOP_UNDEFINED);
01162 
01163 /* ===== Simulated instructions ====== */
01164   simulated = ISA_Property_Create ("simulated");
01165   Instruction_Group (simulated,
01166                         TOP_break,
01167                         TOP_chk_s,
01168                         TOP_cmp_lt_and,
01169                         TOP_cmp_lt_or,
01170                         TOP_cmp_lt_or_andcm,
01171                         TOP_cmp_le_and,
01172                         TOP_cmp_le_or,
01173                         TOP_cmp_le_or_andcm,
01174                         TOP_cmp_gt_and,
01175                         TOP_cmp_gt_or,
01176                         TOP_cmp_gt_or_andcm,
01177                         TOP_cmp_ge_and,
01178                         TOP_cmp_ge_or,
01179                         TOP_cmp_ge_or_andcm,
01180                         TOP_cmp_lt_orcm,
01181                         TOP_cmp_lt_andcm,
01182                         TOP_cmp_lt_and_orcm,
01183                         TOP_cmp_le_orcm,
01184                         TOP_cmp_le_andcm,
01185                         TOP_cmp_le_and_orcm,
01186                         TOP_cmp_gt_orcm,
01187                         TOP_cmp_gt_andcm,
01188                         TOP_cmp_gt_and_orcm,
01189                         TOP_cmp_ge_orcm,
01190                         TOP_cmp_ge_andcm,
01191                         TOP_cmp_ge_and_orcm,
01192                         TOP_cmp4_lt_and,
01193                         TOP_cmp4_lt_or,
01194                         TOP_cmp4_lt_or_andcm,
01195                         TOP_cmp4_le_and,
01196                         TOP_cmp4_le_or,
01197                         TOP_cmp4_le_or_andcm,
01198                         TOP_cmp4_gt_and,
01199                         TOP_cmp4_gt_or,
01200                         TOP_cmp4_gt_or_andcm,
01201                         TOP_cmp4_ge_and,
01202                         TOP_cmp4_ge_or,
01203                         TOP_cmp4_ge_or_andcm,
01204                         TOP_cmp4_lt_orcm,
01205                         TOP_cmp4_lt_andcm,
01206                         TOP_cmp4_lt_and_orcm,
01207                         TOP_cmp4_le_orcm,
01208                         TOP_cmp4_le_andcm,
01209                         TOP_cmp4_le_and_orcm,
01210                         TOP_cmp4_gt_orcm,
01211                         TOP_cmp4_gt_andcm,
01212                         TOP_cmp4_gt_and_orcm,
01213                         TOP_cmp4_ge_orcm,
01214                         TOP_cmp4_ge_andcm,
01215                         TOP_cmp4_ge_and_orcm,
01216                         TOP_mov_f_ar,
01217                         TOP_mov_t_ar_r,
01218                         TOP_mov_t_ar_i,
01219                         TOP_nop,
01220                         TOP_intrncall,
01221                         TOP_asm,
01222                         TOP_spadjust,
01223                         TOP_copy_br,
01224                         TOP_UNDEFINED);
01225 
01226 /* ===== Predicated instructions ====== */
01227   predicated = ISA_Property_Create ("predicated");
01228   Instruction_Group (predicated,
01229                         TOP_add,
01230                         TOP_add_1,
01231                         TOP_adds,
01232                         TOP_addl,
01233                         TOP_addp4,
01234                         TOP_addp4_i,
01235                         TOP_and,
01236                         TOP_and_i,
01237                         TOP_andcm,
01238                         TOP_andcm_i,
01239                         TOP_br_cond,
01240                         TOP_br_r_cond,
01241                         TOP_br_call,
01242                         TOP_br_r_call,
01243                         TOP_br_ret,
01244                         TOP_br_wtop,
01245                         TOP_br_wexit,
01246                         TOP_break_i,
01247                         TOP_break_b,
01248                         TOP_break_m,
01249                         TOP_break_f,
01250                         TOP_break_x,
01251                         TOP_brl_cond,
01252                         TOP_brl_call,
01253                         TOP_chk_s_i,
01254                         TOP_chk_s_m,
01255                         TOP_chk_f_s,
01256                         TOP_chk_a,
01257                         TOP_chk_f_a,
01258                         TOP_cmp_eq,
01259                         TOP_cmp_eq_unc,
01260                         TOP_cmp_eq_and,
01261                         TOP_cmp_eq_or,
01262                         TOP_cmp_eq_or_andcm,
01263                         TOP_cmp_ne_and,
01264                         TOP_cmp_ne_or,
01265                         TOP_cmp_ne_or_andcm,
01266                         TOP_cmp_lt,
01267                         TOP_cmp_lt_unc,
01268                         TOP_cmp_ltu,
01269                         TOP_cmp_ltu_unc,
01270                         TOP_cmp_z1_lt_and,
01271                         TOP_cmp_z1_lt_or,
01272                         TOP_cmp_z1_lt_or_andcm,
01273                         TOP_cmp_z1_le_and,
01274                         TOP_cmp_z1_le_or,
01275                         TOP_cmp_z1_le_or_andcm,
01276                         TOP_cmp_z1_gt_and,
01277                         TOP_cmp_z1_gt_or,
01278                         TOP_cmp_z1_gt_or_andcm,
01279                         TOP_cmp_z1_ge_and,
01280                         TOP_cmp_z1_ge_or,
01281                         TOP_cmp_z1_ge_or_andcm,
01282                         TOP_cmp_i_eq,
01283                         TOP_cmp_i_eq_unc,
01284                         TOP_cmp_i_eq_and,
01285                         TOP_cmp_i_eq_or,
01286                         TOP_cmp_i_eq_or_andcm,
01287                         TOP_cmp_i_ne_and,
01288                         TOP_cmp_i_ne_or,
01289                         TOP_cmp_i_ne_or_andcm,
01290                         TOP_cmp_i_lt,
01291                         TOP_cmp_i_lt_unc,
01292                         TOP_cmp_i_ltu,
01293                         TOP_cmp_i_ltu_unc,
01294                         TOP_cmp4_eq,
01295                         TOP_cmp4_eq_unc,
01296                         TOP_cmp4_eq_and,
01297                         TOP_cmp4_eq_or,
01298                         TOP_cmp4_eq_or_andcm,
01299                         TOP_cmp4_ne_and,
01300                         TOP_cmp4_ne_or,
01301                         TOP_cmp4_ne_or_andcm,
01302                         TOP_cmp4_lt,
01303                         TOP_cmp4_lt_unc,
01304                         TOP_cmp4_ltu,
01305                         TOP_cmp4_ltu_unc,
01306                         TOP_cmp4_z1_lt_and,
01307                         TOP_cmp4_z1_lt_or,
01308                         TOP_cmp4_z1_lt_or_andcm,
01309                         TOP_cmp4_z1_le_and,
01310                         TOP_cmp4_z1_le_or,
01311                         TOP_cmp4_z1_le_or_andcm,
01312                         TOP_cmp4_z1_gt_and,
01313                         TOP_cmp4_z1_gt_or,
01314                         TOP_cmp4_z1_gt_or_andcm,
01315                         TOP_cmp4_z1_ge_and,
01316                         TOP_cmp4_z1_ge_or,
01317                         TOP_cmp4_z1_ge_or_andcm,
01318                         TOP_cmp4_i_eq,
01319                         TOP_cmp4_i_eq_unc,
01320                         TOP_cmp4_i_eq_and,
01321                         TOP_cmp4_i_eq_or,
01322                         TOP_cmp4_i_eq_or_andcm,
01323                         TOP_cmp4_i_ne_and,
01324                         TOP_cmp4_i_ne_or,
01325                         TOP_cmp4_i_ne_or_andcm,
01326                         TOP_cmp4_i_lt,
01327                         TOP_cmp4_i_lt_unc,
01328                         TOP_cmp4_i_ltu,
01329                         TOP_cmp4_i_ltu_unc,
01330                         TOP_cmpxchg1,
01331                         TOP_cmpxchg2,
01332                         TOP_cmpxchg4,
01333                         TOP_cmpxchg8,
01334                         TOP_czx1_l,
01335                         TOP_czx1_r,
01336                         TOP_czx2_l,
01337                         TOP_czx2_r,
01338                         TOP_dep,
01339                         TOP_dep_z,
01340                         TOP_dep_i,
01341                         TOP_dep_i_z,
01342                         TOP_extr,
01343                         TOP_extr_u,
01344                         TOP_famax,
01345                         TOP_famin,
01346                         TOP_fand,
01347                         TOP_fandcm,
01348                         TOP_fc,
01349                         TOP_fchkf,
01350                         TOP_fclass_m,
01351                         TOP_fclass_m_unc,
01352                         TOP_fclrf,
01353                         TOP_fcmp_eq,
01354                         TOP_fcmp_eq_unc,
01355                         TOP_fcmp_lt,
01356                         TOP_fcmp_lt_unc,
01357                         TOP_fcmp_le,
01358                         TOP_fcmp_le_unc,
01359                         TOP_fcmp_unord,
01360                         TOP_fcmp_unord_unc,
01361                         TOP_fcvt_fx,
01362                         TOP_fcvt_fx_trunc,
01363                         TOP_fcvt_fxu,
01364                         TOP_fcvt_fxu_trunc,
01365                         TOP_fcvt_xf,
01366                         TOP_fetchadd4,
01367                         TOP_fetchadd8,
01368                         TOP_fma,
01369                         TOP_fma_s,
01370                         TOP_fma_d,
01371                         TOP_fmax,
01372                         TOP_fmerge_ns,
01373                         TOP_fmerge_s,
01374                         TOP_fmerge_se,
01375                         TOP_fmin,
01376                         TOP_fmix_l,
01377                         TOP_fmix_r,
01378                         TOP_fmix_lr,
01379                         TOP_fms,
01380                         TOP_fms_s,
01381                         TOP_fms_d,
01382                         TOP_fnma,
01383                         TOP_fnma_s,
01384                         TOP_fnma_d,
01385                         TOP_for,
01386                         TOP_fpack,
01387                         TOP_fpamax,
01388                         TOP_fpamin,
01389                         TOP_fpcmp_eq,
01390                         TOP_fpcmp_lt,
01391                         TOP_fpcmp_le,
01392                         TOP_fpcmp_unord,
01393                         TOP_fpcmp_neq,
01394                         TOP_fpcmp_nlt,
01395                         TOP_fpcmp_nle,
01396                         TOP_fpcmp_ord,
01397                         TOP_fpcvt_fx,
01398                         TOP_fpcvt_fx_trunc,
01399                         TOP_fpcvt_fxu,
01400                         TOP_fpcvt_fxu_trunc,
01401                         TOP_fpma,
01402                         TOP_fpmax,
01403                         TOP_fpmerge_ns,
01404                         TOP_fpmerge_s,
01405                         TOP_fpmerge_se,
01406                         TOP_fpmin,
01407                         TOP_fpms,
01408                         TOP_fpnma,
01409                         TOP_fprcpa,
01410                         TOP_fprsqrta,
01411                         TOP_frcpa,
01412                         TOP_frsqrta,
01413                         TOP_fselect,
01414                         TOP_fsetc,
01415                         TOP_fswap,
01416                         TOP_fswap_nl,
01417                         TOP_fswap_nr,
01418                         TOP_fsxt_l,
01419                         TOP_fsxt_r,
01420                         TOP_fwb,
01421                         TOP_fxor,
01422                         TOP_getf_s,
01423                         TOP_getf_d,
01424                         TOP_getf_exp,
01425                         TOP_getf_sig,
01426                         TOP_invala,
01427                         TOP_invala_e,
01428                         TOP_invala_f_e,
01429                         TOP_itc_i,
01430                         TOP_itc_d,
01431                         TOP_itr_i,
01432                         TOP_itr_d,
01433                         TOP_ld1,
01434                         TOP_ld1_r,
01435                         TOP_ld1_i,
01436                         TOP_ld2,
01437                         TOP_ld2_r,
01438                         TOP_ld2_i,
01439                         TOP_ld4,
01440                         TOP_ld4_r,
01441                         TOP_ld4_i,
01442                         TOP_ld8,
01443                         TOP_ld8_r,
01444                         TOP_ld8_i,
01445                         TOP_ld8_fill,
01446                         TOP_ld8_r_fill,
01447                         TOP_ld8_i_fill,
01448                         TOP_ldfs,
01449                         TOP_ldfs_r,
01450                         TOP_ldfs_i,
01451                         TOP_ldfd,
01452                         TOP_ldfd_r,
01453                         TOP_ldfd_i,
01454                         TOP_ldfe,
01455                         TOP_ldfe_r,
01456                         TOP_ldfe_i,
01457                         TOP_ldf8,
01458                         TOP_ldf8_r,
01459                         TOP_ldf8_i,
01460                         TOP_ldf_fill,
01461                         TOP_ldf_r_fill,
01462                         TOP_ldf_i_fill,
01463                         TOP_ldfps,
01464                         TOP_ldfps_i,
01465                         TOP_ldfpd,
01466                         TOP_ldfpd_i,
01467                         TOP_ldfp8,
01468                         TOP_ldfp8_i,
01469                         TOP_lfetch,
01470                         TOP_lfetch_excl,
01471                         TOP_lfetch_fault,
01472                         TOP_lfetch_fault_excl,
01473                         TOP_lfetch_r,
01474                         TOP_lfetch_r_excl,
01475                         TOP_lfetch_r_fault,
01476                         TOP_lfetch_r_fault_excl,
01477                         TOP_lfetch_i,
01478                         TOP_lfetch_i_excl,
01479                         TOP_lfetch_i_fault,
01480                         TOP_lfetch_i_fault_excl,
01481                         TOP_mf,
01482                         TOP_mf_a,
01483                         TOP_mix1_l,
01484                         TOP_mix1_r,
01485                         TOP_mix2_l,
01486                         TOP_mix2_r,
01487                         TOP_mix4_l,
01488                         TOP_mix4_r,
01489                         TOP_mov_f_ar_i,
01490                         TOP_mov_t_ar_r_i,
01491                         TOP_mov_t_ar_i_i,
01492                         TOP_mov_f_ar_m,
01493                         TOP_mov_t_ar_r_m,
01494                         TOP_mov_t_ar_i_m,
01495                         TOP_mov_f_br,
01496                         TOP_mov_t_br_i,
01497                         TOP_mov_t_br_ret,
01498                         TOP_mov_t_cr,
01499                         TOP_mov_f_cr,
01500                         TOP_mov_f_cpuid,
01501                         TOP_mov_t_dbr,
01502                         TOP_mov_f_dbr,
01503                         TOP_mov_t_ibr,
01504                         TOP_mov_f_ibr,
01505                         TOP_mov_t_pkr,
01506                         TOP_mov_f_pkr,
01507                         TOP_mov_t_pmc,
01508                         TOP_mov_f_pmc,
01509                         TOP_mov_t_pmd,
01510                         TOP_mov_f_pmd,
01511                         TOP_mov_t_msr,
01512                         TOP_mov_f_msr,
01513                         TOP_mov_t_rr,
01514                         TOP_mov_f_rr,
01515                         TOP_mov_f_ip,
01516                         TOP_mov_f_pr,
01517                         TOP_mov_t_pr,
01518                         TOP_mov_t_pr_i,
01519                         TOP_mov_t_psr,
01520                         TOP_mov_f_psr,
01521                         TOP_mov_t_psrum,
01522                         TOP_mov_f_psrum,
01523                         TOP_movl,
01524                         TOP_mux1,
01525                         TOP_mux2,
01526                         TOP_nop_i,
01527                         TOP_nop_b,
01528                         TOP_nop_m,
01529                         TOP_nop_f,
01530                         TOP_nop_x,
01531                         TOP_or,
01532                         TOP_or_i,
01533                         TOP_pack2_sss,
01534                         TOP_pack2_uss,
01535                         TOP_pack4_sss,
01536                         TOP_padd1,
01537                         TOP_padd2,
01538                         TOP_padd4,
01539                         TOP_padd1_sss,
01540                         TOP_padd1_uus,
01541                         TOP_padd1_uuu,
01542                         TOP_padd2_sss,
01543                         TOP_padd2_uus,
01544                         TOP_padd2_uuu,
01545                         TOP_pavg1,
01546                         TOP_pavg2,
01547                         TOP_pavg1_raz,
01548                         TOP_pavg2_raz,
01549                         TOP_pavgsub1,
01550                         TOP_pavgsub2,
01551                         TOP_pcmp1_eq,
01552                         TOP_pcmp1_gt,
01553                         TOP_pcmp2_eq,
01554                         TOP_pcmp2_gt,
01555                         TOP_pcmp4_eq,
01556                         TOP_pcmp4_gt,
01557                         TOP_pmax1_u,
01558                         TOP_pmax2,
01559                         TOP_pmin1_u,
01560                         TOP_pmin2,
01561                         TOP_pmpy2_r,
01562                         TOP_pmpy2_l,
01563                         TOP_pmpyshr2,
01564                         TOP_pmpyshr2_u,
01565                         TOP_popcnt,
01566                         TOP_probe_r,
01567                         TOP_probe_w,
01568                         TOP_probe_i_r,
01569                         TOP_probe_i_w,
01570                         TOP_probe_r_fault,
01571                         TOP_probe_w_fault,
01572                         TOP_probe_rw_fault,
01573                         TOP_psad1,
01574                         TOP_pshl2,
01575                         TOP_pshl4,
01576                         TOP_pshl2_i,
01577                         TOP_pshl4_i,
01578                         TOP_pshladd2,
01579                         TOP_pshr2,
01580                         TOP_pshr2_u,
01581                         TOP_pshr4,
01582                         TOP_pshr4_u,
01583                         TOP_pshr2_i,
01584                         TOP_pshr2_i_u,
01585                         TOP_pshr4_i,
01586                         TOP_pshr4_i_u,
01587                         TOP_pshradd2,
01588                         TOP_psub1,
01589                         TOP_psub2,
01590                         TOP_psub4,
01591                         TOP_psub1_sss,
01592                         TOP_psub1_uus,
01593                         TOP_psub1_uuu,
01594                         TOP_psub2_sss,
01595                         TOP_psub2_uus,
01596                         TOP_psub2_uuu,
01597                         TOP_ptc_e,
01598                         TOP_ptc_g,
01599                         TOP_ptc_ga,
01600                         TOP_ptc_l,
01601                         TOP_ptr_d,
01602                         TOP_ptr_i,
01603                         TOP_rsm,
01604                         TOP_rum,
01605                         TOP_setf_s,
01606                         TOP_setf_d,
01607                         TOP_setf_exp,
01608                         TOP_setf_sig,
01609                         TOP_shl,
01610                         TOP_shladd,
01611                         TOP_shladdp4,
01612                         TOP_shr,
01613                         TOP_shr_u,
01614                         TOP_shrp,
01615                         TOP_spadjust,
01616                         TOP_srlz_i,
01617                         TOP_srlz_d,
01618                         TOP_ssm,
01619                         TOP_st1,
01620                         TOP_st1_i,
01621                         TOP_st2,
01622                         TOP_st2_i,
01623                         TOP_st4,
01624                         TOP_st4_i,
01625                         TOP_st8,
01626                         TOP_st8_i,
01627                         TOP_st8_spill,
01628                         TOP_st8_i_spill,
01629                         TOP_stfs,
01630                         TOP_stfs_i,
01631                         TOP_stfd,
01632                         TOP_stfd_i,
01633                         TOP_stfe,
01634                         TOP_stfe_i,
01635                         TOP_stf8,
01636                         TOP_stf8_i,
01637                         TOP_stf_spill,
01638                         TOP_stf_i_spill,
01639                         TOP_sub,
01640                         TOP_sub_1,
01641                         TOP_sub_i,
01642                         TOP_sum,
01643                         TOP_sxt1,
01644                         TOP_sxt2,
01645                         TOP_sxt4,
01646                         TOP_sync_i,
01647                         TOP_tak,
01648                         TOP_tbit_z,
01649                         TOP_tbit_z_unc,
01650                         TOP_tbit_z_and,
01651                         TOP_tbit_z_or,
01652                         TOP_tbit_z_or_andcm,
01653                         TOP_tbit_nz_and,
01654                         TOP_tbit_nz_or,
01655                         TOP_tbit_nz_or_andcm,
01656                         TOP_thash,
01657                         TOP_tnat_z,
01658                         TOP_tnat_z_unc,
01659                         TOP_tnat_z_and,
01660                         TOP_tnat_z_or,
01661                         TOP_tnat_z_or_andcm,
01662                         TOP_tnat_nz_and,
01663                         TOP_tnat_nz_or,
01664                         TOP_tnat_nz_or_andcm,
01665                         TOP_tpa,
01666                         TOP_ttag,
01667                         TOP_unpack1_l,
01668                         TOP_unpack1_h,
01669                         TOP_unpack2_l,
01670                         TOP_unpack2_h,
01671                         TOP_unpack4_l,
01672                         TOP_unpack4_h,
01673                         TOP_xchg1,
01674                         TOP_xchg2,
01675                         TOP_xchg4,
01676                         TOP_xchg8,
01677                         TOP_xma_l,
01678                         TOP_xma_h,
01679                         TOP_xma_hu,
01680                         TOP_xor,
01681                         TOP_xor_i,
01682                         TOP_zxt1,
01683                         TOP_zxt2,
01684                         TOP_zxt4,
01685                         TOP_cmp_eq_orcm,
01686                         TOP_cmp_eq_andcm,
01687                         TOP_cmp_eq_and_orcm,
01688                         TOP_cmp_ne,
01689                         TOP_cmp_ne_unc,
01690                         TOP_cmp_ne_orcm,
01691                         TOP_cmp_ne_andcm,
01692                         TOP_cmp_ne_and_orcm,
01693                         TOP_cmp_le,
01694                         TOP_cmp_le_unc,
01695                         TOP_cmp_gt,
01696                         TOP_cmp_gt_unc,
01697                         TOP_cmp_ge,
01698                         TOP_cmp_ge_unc,
01699                         TOP_cmp_leu,
01700                         TOP_cmp_leu_unc,
01701                         TOP_cmp_gtu,
01702                         TOP_cmp_gtu_unc,
01703                         TOP_cmp_geu,
01704                         TOP_cmp_geu_unc,
01705                         TOP_cmp_z1_lt_orcm,
01706                         TOP_cmp_z1_lt_andcm,
01707                         TOP_cmp_z1_lt_and_orcm,
01708                         TOP_cmp_z1_le_orcm,
01709                         TOP_cmp_z1_le_andcm,
01710                         TOP_cmp_z1_le_and_orcm,
01711                         TOP_cmp_z1_gt_orcm,
01712                         TOP_cmp_z1_gt_andcm,
01713                         TOP_cmp_z1_gt_and_orcm,
01714                         TOP_cmp_z1_ge_orcm,
01715                         TOP_cmp_z1_ge_andcm,
01716                         TOP_cmp_z1_ge_and_orcm,
01717                         TOP_cmp_z2_lt_orcm,
01718                         TOP_cmp_z2_lt_andcm,
01719                         TOP_cmp_z2_lt_and_orcm,
01720                         TOP_cmp_z2_le_orcm,
01721                         TOP_cmp_z2_le_andcm,
01722                         TOP_cmp_z2_le_and_orcm,
01723                         TOP_cmp_z2_gt_orcm,
01724                         TOP_cmp_z2_gt_andcm,
01725                         TOP_cmp_z2_gt_and_orcm,
01726                         TOP_cmp_z2_ge_orcm,
01727                         TOP_cmp_z2_ge_andcm,
01728                         TOP_cmp_z2_ge_and_orcm,
01729                         TOP_cmp_z2_lt_and,
01730                         TOP_cmp_z2_lt_or,
01731                         TOP_cmp_z2_lt_or_andcm,
01732                         TOP_cmp_z2_le_and,
01733                         TOP_cmp_z2_le_or,
01734                         TOP_cmp_z2_le_or_andcm,
01735                         TOP_cmp_z2_gt_and,
01736                         TOP_cmp_z2_gt_or,
01737                         TOP_cmp_z2_gt_or_andcm,
01738                         TOP_cmp_z2_ge_and,
01739                         TOP_cmp_z2_ge_or,
01740                         TOP_cmp_z2_ge_or_andcm,
01741                         TOP_cmp_i_eq_orcm,
01742                         TOP_cmp_i_eq_andcm,
01743                         TOP_cmp_i_eq_and_orcm,
01744                         TOP_cmp_i_ne,
01745                         TOP_cmp_i_ne_unc,
01746                         TOP_cmp_i_ne_orcm,
01747                         TOP_cmp_i_ne_andcm,
01748                         TOP_cmp_i_ne_and_orcm,
01749                         TOP_cmp_i_le,
01750                         TOP_cmp_i_le_unc,
01751                         TOP_cmp_i_gt,
01752                         TOP_cmp_i_gt_unc,
01753                         TOP_cmp_i_ge,
01754                         TOP_cmp_i_ge_unc,
01755                         TOP_cmp_i_leu,
01756                         TOP_cmp_i_leu_unc,
01757                         TOP_cmp_i_gtu,
01758                         TOP_cmp_i_gtu_unc,
01759                         TOP_cmp_i_geu,
01760                         TOP_cmp_i_geu_unc,
01761                         TOP_cmp4_eq_orcm,
01762                         TOP_cmp4_eq_andcm,
01763                         TOP_cmp4_eq_and_orcm,
01764                         TOP_cmp4_ne,
01765                         TOP_cmp4_ne_unc,
01766                         TOP_cmp4_ne_orcm,
01767                         TOP_cmp4_ne_andcm,
01768                         TOP_cmp4_ne_and_orcm,
01769                         TOP_cmp4_le,
01770                         TOP_cmp4_le_unc,
01771                         TOP_cmp4_gt,
01772                         TOP_cmp4_gt_unc,
01773                         TOP_cmp4_ge,
01774                         TOP_cmp4_ge_unc,
01775                         TOP_cmp4_leu,
01776                         TOP_cmp4_leu_unc,
01777                         TOP_cmp4_gtu,
01778                         TOP_cmp4_gtu_unc,
01779                         TOP_cmp4_geu,
01780                         TOP_cmp4_geu_unc,
01781                         TOP_cmp4_z1_lt_orcm,
01782                         TOP_cmp4_z1_lt_andcm,
01783                         TOP_cmp4_z1_lt_and_orcm,
01784                         TOP_cmp4_z1_le_orcm,
01785                         TOP_cmp4_z1_le_andcm,
01786                         TOP_cmp4_z1_le_and_orcm,
01787                         TOP_cmp4_z1_gt_orcm,
01788                         TOP_cmp4_z1_gt_andcm,
01789                         TOP_cmp4_z1_gt_and_orcm,
01790                         TOP_cmp4_z1_ge_orcm,
01791                         TOP_cmp4_z1_ge_andcm,
01792                         TOP_cmp4_z1_ge_and_orcm,
01793                         TOP_cmp4_z2_lt_orcm,
01794                         TOP_cmp4_z2_lt_andcm,
01795                         TOP_cmp4_z2_lt_and_orcm,
01796                         TOP_cmp4_z2_le_orcm,
01797                         TOP_cmp4_z2_le_andcm,
01798                         TOP_cmp4_z2_le_and_orcm,
01799                         TOP_cmp4_z2_gt_orcm,
01800                         TOP_cmp4_z2_gt_andcm,
01801                         TOP_cmp4_z2_gt_and_orcm,
01802                         TOP_cmp4_z2_ge_orcm,
01803                         TOP_cmp4_z2_ge_andcm,
01804                         TOP_cmp4_z2_ge_and_orcm,
01805                         TOP_cmp4_z2_lt_and,
01806                         TOP_cmp4_z2_lt_or,
01807                         TOP_cmp4_z2_lt_or_andcm,
01808                         TOP_cmp4_z2_le_and,
01809                         TOP_cmp4_z2_le_or,
01810                         TOP_cmp4_z2_le_or_andcm,
01811                         TOP_cmp4_z2_gt_and,
01812                         TOP_cmp4_z2_gt_or,
01813                         TOP_cmp4_z2_gt_or_andcm,
01814                         TOP_cmp4_z2_ge_and,
01815                         TOP_cmp4_z2_ge_or,
01816                         TOP_cmp4_z2_ge_or_andcm,
01817                         TOP_cmp4_i_eq_orcm,
01818                         TOP_cmp4_i_eq_andcm,
01819                         TOP_cmp4_i_eq_and_orcm,
01820                         TOP_cmp4_i_ne,
01821                         TOP_cmp4_i_ne_unc,
01822                         TOP_cmp4_i_ne_orcm,
01823                         TOP_cmp4_i_ne_andcm,
01824                         TOP_cmp4_i_ne_and_orcm,
01825                         TOP_cmp4_i_le,
01826                         TOP_cmp4_i_le_unc,
01827                         TOP_cmp4_i_gt,
01828                         TOP_cmp4_i_gt_unc,
01829                         TOP_cmp4_i_ge,
01830                         TOP_cmp4_i_ge_unc,
01831                         TOP_cmp4_i_leu,
01832                         TOP_cmp4_i_leu_unc,
01833                         TOP_cmp4_i_gtu,
01834                         TOP_cmp4_i_gtu_unc,
01835                         TOP_cmp4_i_geu,
01836                         TOP_cmp4_i_geu_unc,
01837                         TOP_fabs,
01838                         TOP_fadd,
01839                         TOP_fadd_s,
01840                         TOP_fadd_d,
01841                         TOP_fclass_nm,
01842                         TOP_fclass_nm_unc,
01843                         TOP_fcmp_gt,
01844                         TOP_fcmp_gt_unc,
01845                         TOP_fcmp_ge,
01846                         TOP_fcmp_ge_unc,
01847                         TOP_fcmp_neq,
01848                         TOP_fcmp_neq_unc,
01849                         TOP_fcmp_nlt,
01850                         TOP_fcmp_nlt_unc,
01851                         TOP_fcmp_nle,
01852                         TOP_fcmp_nle_unc,
01853                         TOP_fcmp_ngt,
01854                         TOP_fcmp_ngt_unc,
01855                         TOP_fcmp_nge,
01856                         TOP_fcmp_nge_unc,
01857                         TOP_fcmp_ord,
01858                         TOP_fcmp_ord_unc,
01859                         TOP_fcvt_xuf,
01860                         TOP_fcvt_xuf_s,
01861                         TOP_fcvt_xuf_d,
01862                         TOP_fmpy,
01863                         TOP_fmpy_s,
01864                         TOP_fmpy_d,
01865                         TOP_fneg,
01866                         TOP_fnegabs,
01867                         TOP_fnmpy,
01868                         TOP_fnmpy_s,
01869                         TOP_fnmpy_d,
01870                         TOP_fnorm,
01871                         TOP_fnorm_s,
01872                         TOP_fnorm_d,
01873                         TOP_fpabs,
01874                         TOP_fpcmp_gt,
01875                         TOP_fpcmp_ge,
01876                         TOP_fpcmp_ngt,
01877                         TOP_fpcmp_nge,
01878                         TOP_fpmpy,
01879                         TOP_fpneg,
01880                         TOP_fpnegabs,
01881                         TOP_fpnmpy,
01882                         TOP_fsub,
01883                         TOP_fsub_s,
01884                         TOP_fsub_d,
01885                         TOP_mov_t_br,
01886                         TOP_mov_f,
01887                         TOP_mov,
01888                         TOP_mov_i,
01889                         TOP_shl_i,
01890                         TOP_shr_i,
01891                         TOP_shr_i_u,
01892                         TOP_tbit_nz,
01893                         TOP_tbit_nz_unc,
01894                         TOP_tnat_nz,
01895                         TOP_tnat_nz_unc,
01896                         TOP_xma_lu,
01897                         TOP_xmpy_l,
01898                         TOP_xmpy_lu,
01899                         TOP_xmpy_h,
01900                         TOP_xmpy_hu,
01901                         TOP_break,
01902                         TOP_chk_s,
01903                         TOP_cmp_lt_and,
01904                         TOP_cmp_lt_or,
01905                         TOP_cmp_lt_or_andcm,
01906                         TOP_cmp_le_and,
01907                         TOP_cmp_le_or,
01908                         TOP_cmp_le_or_andcm,
01909                         TOP_cmp_gt_and,
01910                         TOP_cmp_gt_or,
01911                         TOP_cmp_gt_or_andcm,
01912                         TOP_cmp_ge_and,
01913                         TOP_cmp_ge_or,
01914                         TOP_cmp_ge_or_andcm,
01915                         TOP_cmp_lt_orcm,
01916                         TOP_cmp_lt_andcm,
01917                         TOP_cmp_lt_and_orcm,
01918                         TOP_cmp_le_orcm,
01919                         TOP_cmp_le_andcm,
01920                         TOP_cmp_le_and_orcm,
01921                         TOP_cmp_gt_orcm,
01922                         TOP_cmp_gt_andcm,
01923                         TOP_cmp_gt_and_orcm,
01924                         TOP_cmp_ge_orcm,
01925                         TOP_cmp_ge_andcm,
01926                         TOP_cmp_ge_and_orcm,
01927                         TOP_cmp4_lt_and,
01928                         TOP_cmp4_lt_or,
01929                         TOP_cmp4_lt_or_andcm,
01930                         TOP_cmp4_le_and,
01931                         TOP_cmp4_le_or,
01932                         TOP_cmp4_le_or_andcm,
01933                         TOP_cmp4_gt_and,
01934                         TOP_cmp4_gt_or,
01935                         TOP_cmp4_gt_or_andcm,
01936                         TOP_cmp4_ge_and,
01937                         TOP_cmp4_ge_or,
01938                         TOP_cmp4_ge_or_andcm,
01939                         TOP_cmp4_lt_orcm,
01940                         TOP_cmp4_lt_andcm,
01941                         TOP_cmp4_lt_and_orcm,
01942                         TOP_cmp4_le_orcm,
01943                         TOP_cmp4_le_andcm,
01944                         TOP_cmp4_le_and_orcm,
01945                         TOP_cmp4_gt_orcm,
01946                         TOP_cmp4_gt_andcm,
01947                         TOP_cmp4_gt_and_orcm,
01948                         TOP_cmp4_ge_orcm,
01949                         TOP_cmp4_ge_andcm,
01950                         TOP_cmp4_ge_and_orcm,
01951                         TOP_mov_f_ar,
01952                         TOP_mov_t_ar_r,
01953                         TOP_mov_t_ar_i,
01954                         TOP_nop,
01955                         TOP_copy_br,
01956                         TOP_UNDEFINED);
01957 
01958 /* ===== Instructions access rotating register banks ====== */
01959   access_reg_bank = ISA_Property_Create ("access_reg_bank");
01960   Instruction_Group (access_reg_bank,
01961                      TOP_clrrrb,
01962                      TOP_clrrrb_pr,
01963                      TOP_mov_t_pr,
01964                      TOP_mov_t_pr_i,
01965                      TOP_mov_f_pr,
01966                      TOP_UNDEFINED);
01967 
01968 /* ===== Instructions with side effects ====== */
01969   side_effects = ISA_Property_Create ("side_effects");
01970   Instruction_Group (side_effects,
01971                      TOP_alloc,
01972                      TOP_alloc_3,
01973                      TOP_fsetc,         // it writes a status field reg
01974                      TOP_UNDEFINED);
01975 
01976 /* ===== Instructions that predict branches ====== */
01977   branch_predict = ISA_Property_Create ("branch_predict");
01978   Instruction_Group (branch_predict,
01979                      TOP_brp,
01980                      TOP_brp_r,
01981                      TOP_brp_ret,
01982                      TOP_UNDEFINED);
01983 
01984 /* ===== Instructions with variable number of operands/results ====== */
01985   var_opnds = ISA_Property_Create ("var_opnds");
01986   Instruction_Group (var_opnds,
01987                      TOP_asm,
01988                      TOP_intrncall,
01989                      TOP_UNDEFINED);
01990 
01991   ISA_Properties_End();
01992   return 0;
01993 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines