Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
isa_bundle.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 bundle information
00039 
00040 
00041 #include <stddef.h>
00042 #include "topcode.h"
00043 #include "isa_bundle_gen.h"
00044 
00045 main()
00046 {
00047   ISA_EXEC_UNIT_TYPE
00048     R_Unit,  // Reserved unit type
00049     I_Unit,  // Integer execution type
00050     M_Unit,  // Memory execution type
00051     F_Unit,  // Floating-point execution type
00052     B_Unit,  // Branch execution type
00053     L_Unit,  // Long immediate type
00054     B2_Unit, // specific B-unit category in which instruction can occupy
00055              // only in slot2 position. 
00056     I2_Unit; // specific I-unit category for template2 specification. Only
00057              // movl, break and nop fall in this category and occupy slot2
00058              // position.
00059 
00060   ISA_Bundle_Begin("ia64", 128);
00061 
00062   /* ===== Specification for bundle packing  ===== */
00063   ISA_Bundle_Pack_Create(ISA_Bundle_Pack_Little_Endian);
00064   Pack_Template(0, 0, 5);
00065   Pack_Slot(0, 0, 5, 41);
00066   Pack_Slot(1, 0, 46, 41);
00067   Pack_Slot(2, 0, 87, 41);
00068 
00069   /* ===== Specification for R_Unit Type ===== */
00070   R_Unit = ISA_Exec_Unit_Type_Create("R_Unit", NULL);
00071   Instruction_Exec_Unit_Group(R_Unit,
00072                               TOP_UNDEFINED);
00073 
00074   /* ===== Specification for I_Unit Type ===== */
00075   I_Unit = ISA_Exec_Unit_Type_Create("I_Unit", NULL);
00076   Instruction_Exec_Unit_Group(I_Unit,
00077 
00078                               // Integer:
00079                               TOP_pmpyshr2,
00080                               TOP_pmpyshr2_u,
00081                               TOP_pmpy2_r,
00082                               TOP_pmpy2_l,
00083                               TOP_mix1_r,
00084                               TOP_mix2_r,
00085                               TOP_mix4_r,
00086                               TOP_mix1_l,
00087                               TOP_mix2_l,
00088                               TOP_mix4_l,
00089                               TOP_pack2_uss,
00090                               TOP_pack2_sss,
00091                               TOP_pack4_sss,
00092                               TOP_unpack1_h,
00093                               TOP_unpack2_h,
00094                               TOP_unpack4_h,
00095                               TOP_unpack1_l,
00096                               TOP_unpack2_l,
00097                               TOP_unpack4_l,
00098                               TOP_pmin1_u,
00099                               TOP_pmax1_u,
00100                               TOP_pmin2,
00101                               TOP_pmax2,
00102                               TOP_psad1,
00103                               TOP_mux1,
00104                               TOP_mux2,
00105                               TOP_pshr2,
00106                               TOP_pshr4,
00107                               TOP_shr,
00108                               TOP_pshr2_u,
00109                               TOP_pshr4_u,
00110                               TOP_shr_u,
00111                               TOP_pshr2_i,
00112                               TOP_pshr4_i,
00113                               TOP_pshr2_i_u,
00114                               TOP_pshr4_i_u,
00115                               TOP_pshl2,
00116                               TOP_pshl4,
00117                               TOP_shl,
00118                               TOP_pshl2_i,
00119                               TOP_pshl4_i,
00120                               TOP_popcnt,
00121                               TOP_shrp,
00122                               TOP_extr_u,
00123                               TOP_extr,
00124                               TOP_dep_z,
00125                               TOP_dep_i_z,
00126                               TOP_dep_i,
00127                               TOP_dep,
00128                               TOP_tbit_z,
00129                               TOP_tbit_z_unc,
00130                               TOP_tbit_z_and,
00131                               TOP_tbit_nz_and,
00132                               TOP_tbit_z_or,
00133                               TOP_tbit_nz_or,
00134                               TOP_tbit_z_or_andcm,
00135                               TOP_tbit_nz_or_andcm,
00136                               TOP_tnat_z,
00137                               TOP_tnat_z_unc,
00138                               TOP_tnat_z_and,
00139                               TOP_tnat_nz_and,
00140                               TOP_tnat_z_or,
00141                               TOP_tnat_nz_or,
00142                               TOP_tnat_z_or_andcm,
00143                               TOP_tnat_nz_or_andcm,
00144                               TOP_break_i,
00145                               TOP_break,
00146                               TOP_nop_i,
00147                               TOP_nop,
00148                               TOP_chk_s_i,
00149                               TOP_chk_s,
00150                               TOP_mov_t_br_i,
00151                               TOP_mov_t_br_ret,
00152                               TOP_mov_f_br,
00153                               TOP_mov_t_pr,
00154                               TOP_mov_t_pr_i,
00155                               TOP_mov_f_ip,
00156                               TOP_mov_f_pr,
00157                               TOP_mov_t_ar_r_i,
00158                               TOP_mov_t_ar_r, // Simulated OP, I- or M- unit.
00159                               TOP_mov_t_ar_i_i,
00160                               TOP_mov_t_ar_i,
00161                               TOP_mov_f_ar_i,
00162                               TOP_mov_f_ar,
00163                               TOP_zxt1,
00164                               TOP_zxt2,
00165                               TOP_zxt4,
00166                               TOP_sxt1,
00167                               TOP_sxt2,
00168                               TOP_sxt4,
00169                               TOP_czx1_l,
00170                               TOP_czx2_l,
00171                               TOP_czx1_r,
00172                               TOP_czx2_r,
00173                               TOP_mov_t_br,
00174                               TOP_tbit_nz,
00175                               TOP_tbit_nz_unc,
00176                               TOP_tnat_nz,
00177                               TOP_tnat_nz_unc,
00178                               TOP_shl_i,
00179                               TOP_shr_i_u,
00180                               TOP_shr_i,
00181 
00182                               // ALU:
00183                               TOP_add,
00184                               TOP_add_1,
00185                               TOP_sub,
00186                               TOP_sub_1,
00187                               TOP_addp4,
00188                               TOP_and,
00189                               TOP_andcm,
00190                               TOP_or,
00191                               TOP_xor,
00192                               TOP_shladd,
00193                               TOP_shladdp4,
00194                               TOP_sub_i,
00195                               TOP_and_i,
00196                               TOP_andcm_i,
00197                               TOP_or_i,
00198                               TOP_xor_i,
00199                               TOP_adds,
00200                               TOP_addp4_i,
00201                               TOP_addl,
00202                               TOP_cmp_lt,
00203                               TOP_cmp_ltu,
00204                               TOP_cmp_eq,
00205                               TOP_cmp_lt_unc,
00206                               TOP_cmp_lt_and,
00207                               TOP_cmp_lt_or,
00208                               TOP_cmp_lt_or_andcm,
00209                               TOP_cmp_le_and,
00210                               TOP_cmp_le_or,
00211                               TOP_cmp_le_or_andcm,
00212                               TOP_cmp_ltu_unc,
00213                               TOP_cmp_eq_unc,
00214                               TOP_cmp_eq_and,
00215                               TOP_cmp_eq_or,
00216                               TOP_cmp_eq_or_andcm,
00217                               TOP_cmp_gt_and,
00218                               TOP_cmp_gt_or,
00219                               TOP_cmp_gt_orcm,
00220                               TOP_cmp_gt_andcm,
00221                               TOP_cmp_gt_and_orcm,
00222                               TOP_cmp_ge_orcm,
00223                               TOP_cmp_ge_andcm,
00224                               TOP_cmp_ge_and_orcm,
00225                               TOP_cmp_gt_or_andcm,
00226                               TOP_cmp_ge_and,
00227                               TOP_cmp_ge_or,
00228                               TOP_cmp_ge_or_andcm,
00229                               TOP_cmp_ne_and,
00230                               TOP_cmp_ne_or,
00231                               TOP_cmp_ne_or_andcm,
00232                               TOP_cmp4_lt,
00233                               TOP_cmp4_lt_and,
00234                               TOP_cmp4_lt_or,
00235                               TOP_cmp4_lt_or_andcm,
00236                               TOP_cmp_lt_orcm,
00237                               TOP_cmp_lt_andcm,
00238                               TOP_cmp_lt_and_orcm,
00239                               TOP_cmp_le_orcm,
00240                               TOP_cmp_le_andcm,
00241                               TOP_cmp_le_and_orcm,
00242                               TOP_cmp4_le_and,
00243                               TOP_cmp4_le_or,
00244                               TOP_cmp4_le_or_andcm,
00245                               TOP_cmp4_gt_and,
00246                               TOP_cmp4_gt_or,
00247                               TOP_cmp4_gt_or_andcm,
00248                               TOP_cmp4_ge_and,
00249                               TOP_cmp4_ge_and,
00250                               TOP_cmp4_ge_or,
00251                               TOP_cmp4_ge_or_andcm,
00252                               TOP_cmp4_lt_orcm,
00253                               TOP_cmp4_lt_andcm,
00254                               TOP_cmp4_lt_and_orcm,
00255                               TOP_cmp4_le_orcm,
00256                               TOP_cmp4_le_andcm,
00257                               TOP_cmp4_le_and_orcm,
00258                               TOP_cmp4_gt_orcm,
00259                               TOP_cmp4_gt_andcm,
00260                               TOP_cmp4_gt_and_orcm,
00261                               TOP_cmp4_gt_and_orcm,
00262                               TOP_cmp4_ge_orcm,
00263                               TOP_cmp4_ge_andcm,
00264                               TOP_cmp4_ge_and_orcm,
00265                               TOP_cmp4_ltu,
00266                               TOP_cmp4_eq,
00267                               TOP_cmp4_lt_unc,
00268                               TOP_cmp4_ltu_unc,
00269                               TOP_cmp4_eq_unc,
00270                               TOP_cmp4_eq_and,
00271                               TOP_cmp4_eq_or,
00272                               TOP_cmp4_eq_or_andcm,
00273                               TOP_cmp4_ne_and,
00274                               TOP_cmp4_ne_or,
00275                               TOP_cmp4_ne_or_andcm,
00276                               TOP_cmp_z1_gt_and,
00277                               TOP_cmp_z1_gt_or,
00278                               TOP_cmp_z1_gt_or_andcm,
00279                               TOP_cmp_z1_le_and,
00280                               TOP_cmp_z1_le_or,
00281                               TOP_cmp_z1_le_or_andcm,
00282                               TOP_cmp_z1_ge_and,
00283                               TOP_cmp_z1_ge_or,
00284                               TOP_cmp_z1_ge_or_andcm,
00285                               TOP_cmp_z1_lt_and,
00286                               TOP_cmp_z1_lt_or,
00287                               TOP_cmp_z1_lt_or_andcm,
00288                               TOP_cmp4_z1_gt_and,
00289                               TOP_cmp4_z1_gt_or,
00290                               TOP_cmp4_z1_gt_or_andcm,
00291                               TOP_cmp4_z1_le_and,
00292                               TOP_cmp4_z1_le_or,
00293                               TOP_cmp4_z1_le_or_andcm,
00294                               TOP_cmp4_z1_ge_and,
00295                               TOP_cmp4_z1_ge_or,
00296                               TOP_cmp4_z1_ge_or_andcm,
00297                               TOP_cmp4_z1_lt_and,
00298                               TOP_cmp4_z1_lt_or,
00299                               TOP_cmp4_z1_lt_or_andcm,
00300                               TOP_cmp_i_lt,
00301                               TOP_cmp_i_ltu,
00302                               TOP_cmp_i_eq,
00303                               TOP_cmp_i_lt_unc,
00304                               TOP_cmp_i_ltu_unc,
00305                               TOP_cmp_i_eq_unc,
00306                               TOP_cmp_i_eq_and,
00307                               TOP_cmp_i_eq_or,
00308                               TOP_cmp_i_eq_or_andcm,
00309                               TOP_cmp_i_ne_and,
00310                               TOP_cmp_i_ne_or,
00311                               TOP_cmp_i_ne_or_andcm,
00312                               TOP_cmp4_i_lt,
00313                               TOP_cmp4_i_ltu,
00314                               TOP_cmp4_i_eq,
00315                               TOP_cmp4_i_lt_unc,
00316                               TOP_cmp4_i_ltu_unc,
00317                               TOP_cmp4_i_eq_unc,
00318                               TOP_cmp4_i_eq_and,
00319                               TOP_cmp4_i_eq_or,
00320                               TOP_cmp4_i_eq_or_andcm,
00321                               TOP_cmp4_i_ne_and,
00322                               TOP_cmp4_i_ne_or,
00323                               TOP_cmp4_i_ne_or_andcm,
00324                               TOP_padd1,
00325                               TOP_padd2,
00326                               TOP_padd4,
00327                               TOP_padd1_sss,
00328                               TOP_padd2_sss,
00329                               TOP_padd1_uuu,
00330                               TOP_padd2_uuu,
00331                               TOP_padd1_uus,
00332                               TOP_padd2_uus,
00333                               TOP_psub1,
00334                               TOP_psub2,
00335                               TOP_psub4,
00336                               TOP_psub1_sss,
00337                               TOP_psub2_sss,
00338                               TOP_psub1_uuu,
00339                               TOP_psub2_uuu,
00340                               TOP_psub1_uus,
00341                               TOP_psub2_uus,
00342                               TOP_pavg1,
00343                               TOP_pavg2,
00344                               TOP_pavg1_raz,
00345                               TOP_pavg2_raz,
00346                               TOP_pavgsub1,
00347                               TOP_pavgsub2,
00348                               TOP_pcmp1_eq,
00349                               TOP_pcmp2_eq,
00350                               TOP_pcmp4_eq,
00351                               TOP_pcmp1_gt,
00352                               TOP_pcmp2_gt,
00353                               TOP_pcmp4_gt,
00354                               TOP_pshladd2,
00355                               TOP_pshradd2,
00356                               TOP_mov,
00357                               TOP_mov_i,
00358                               TOP_cmp_eq_and_orcm,
00359                               TOP_cmp_eq_andcm,
00360                               TOP_cmp_eq_orcm,
00361                               TOP_cmp_ge,
00362                               TOP_cmp_ge_unc,
00363                               TOP_cmp_geu,
00364                               TOP_cmp_geu_unc,
00365                               TOP_cmp_ne,
00366                               TOP_cmp_ne_and_orcm,
00367                               TOP_cmp_ne_andcm,
00368                               TOP_cmp_ne_orcm,
00369                               TOP_cmp_ne_unc,
00370                               TOP_cmp4_eq_and_orcm,
00371                               TOP_cmp4_eq_andcm,
00372                               TOP_cmp4_eq_orcm,
00373                               TOP_cmp4_ge,
00374                               TOP_cmp4_ge_unc,
00375                               TOP_cmp4_geu,
00376                               TOP_cmp4_geu_unc,
00377                               TOP_cmp4_ne,
00378                               TOP_cmp4_ne_and_orcm,
00379                               TOP_cmp4_ne_orcm,
00380                               TOP_cmp4_ne_andcm,
00381                               TOP_cmp4_ne_unc,
00382                               TOP_cmp_gt,
00383                               TOP_cmp_gt_unc,
00384                               TOP_cmp_gtu,
00385                               TOP_cmp_gtu_unc,
00386                               TOP_cmp4_gt,
00387                               TOP_cmp4_gt_unc,
00388                               TOP_cmp4_gtu,
00389                               TOP_cmp4_gtu_unc,
00390                               TOP_cmp_le,
00391                               TOP_cmp_le_unc,
00392                               TOP_cmp_leu,
00393                               TOP_cmp_leu_unc,
00394                               TOP_cmp4_le,
00395                               TOP_cmp4_le_unc,
00396                               TOP_cmp4_leu,
00397                               TOP_cmp4_leu_unc,
00398                               TOP_cmp_i_eq_and_orcm,
00399                               TOP_cmp_i_eq_andcm,
00400                               TOP_cmp_i_eq_orcm,
00401                               TOP_cmp_i_ge,
00402                               TOP_cmp_i_ge_unc,
00403                               TOP_cmp_i_geu,
00404                               TOP_cmp_i_geu_unc,
00405                               TOP_cmp_i_ne,
00406                               TOP_cmp_i_ne_and_orcm,
00407                               TOP_cmp_i_ne_andcm,
00408                               TOP_cmp_i_ne_orcm,
00409                               TOP_cmp_i_ne_unc,
00410                               TOP_cmp4_i_eq_and_orcm,
00411                               TOP_cmp4_i_eq_andcm,
00412                               TOP_cmp4_i_eq_orcm,
00413                               TOP_cmp4_i_ge,
00414                               TOP_cmp4_i_ge_unc,
00415                               TOP_cmp4_i_geu,
00416                               TOP_cmp4_i_geu_unc,
00417                               TOP_cmp4_i_ne,
00418                               TOP_cmp4_i_ne_and_orcm,
00419                               TOP_cmp4_i_ne_andcm,
00420                               TOP_cmp4_i_ne_orcm,
00421                               TOP_cmp4_i_ne_unc,
00422                               TOP_cmp_i_le,
00423                               TOP_cmp_i_le_unc,
00424                               TOP_cmp_i_leu,
00425                               TOP_cmp_i_leu_unc,
00426                               TOP_cmp4_i_le,
00427                               TOP_cmp4_i_le_unc,
00428                               TOP_cmp4_i_leu,
00429                               TOP_cmp4_i_leu_unc,
00430                               TOP_cmp_i_gt,
00431                               TOP_cmp_i_gt_unc,
00432                               TOP_cmp_i_gtu,
00433                               TOP_cmp_i_gtu_unc,
00434                               TOP_cmp4_i_gt,
00435                               TOP_cmp4_i_gt_unc,
00436                               TOP_cmp4_i_gtu,
00437                               TOP_cmp4_i_gtu_unc,
00438                               TOP_cmp_z1_gt_andcm,
00439                               TOP_cmp_z1_gt_orcm,
00440                               TOP_cmp_z1_gt_and_orcm,
00441                               TOP_cmp_z1_le_andcm,
00442                               TOP_cmp_z1_le_orcm,
00443                               TOP_cmp_z1_le_and_orcm,
00444                               TOP_cmp_z1_ge_andcm,
00445                               TOP_cmp_z1_ge_orcm,
00446                               TOP_cmp_z1_ge_and_orcm,
00447                               TOP_cmp_z1_lt_andcm,
00448                               TOP_cmp_z1_lt_orcm,
00449                               TOP_cmp_z1_lt_and_orcm,
00450                               TOP_cmp4_z1_gt_andcm,
00451                               TOP_cmp4_z1_gt_orcm,
00452                               TOP_cmp4_z1_gt_and_orcm,
00453                               TOP_cmp4_z1_le_andcm,
00454                               TOP_cmp4_z1_le_orcm,
00455                               TOP_cmp4_z1_le_and_orcm,
00456                               TOP_cmp4_z1_ge_andcm,
00457                               TOP_cmp4_z1_ge_orcm,
00458                               TOP_cmp4_z1_ge_and_orcm,
00459                               TOP_cmp4_z1_lt_andcm,
00460                               TOP_cmp4_z1_lt_orcm,
00461                               TOP_cmp4_z1_lt_and_orcm,
00462                               TOP_cmp_z2_gt_andcm,
00463                               TOP_cmp_z2_gt_orcm,
00464                               TOP_cmp_z2_gt_and_orcm,
00465                               TOP_cmp_z2_le_andcm,
00466                               TOP_cmp_z2_le_orcm,
00467                               TOP_cmp_z2_le_and_orcm,
00468                               TOP_cmp_z2_ge_andcm,
00469                               TOP_cmp_z2_ge_orcm,
00470                               TOP_cmp_z2_ge_and_orcm,
00471                               TOP_cmp_z2_lt_andcm,
00472                               TOP_cmp_z2_lt_orcm,
00473                               TOP_cmp_z2_lt_and_orcm,
00474                               TOP_cmp4_z2_gt_andcm,
00475                               TOP_cmp4_z2_gt_orcm,
00476                               TOP_cmp4_z2_gt_and_orcm,
00477                               TOP_cmp4_z2_le_andcm,
00478                               TOP_cmp4_z2_le_orcm,
00479                               TOP_cmp4_z2_le_and_orcm,
00480                               TOP_cmp4_z2_ge_andcm,
00481                               TOP_cmp4_z2_ge_orcm,
00482                               TOP_cmp4_z2_ge_and_orcm,
00483                               TOP_cmp4_z2_lt_andcm,
00484                               TOP_cmp4_z2_lt_orcm,
00485                               TOP_cmp4_z2_lt_and_orcm,
00486                               TOP_cmp_z2_gt_and,
00487                               TOP_cmp_z2_gt_or,
00488                               TOP_cmp_z2_gt_or_andcm,
00489                               TOP_cmp_z2_le_and,
00490                               TOP_cmp_z2_le_or,
00491                               TOP_cmp_z2_le_or_andcm,
00492                               TOP_cmp_z2_ge_and,
00493                               TOP_cmp_z2_ge_or,
00494                               TOP_cmp_z2_ge_or_andcm,
00495                               TOP_cmp_z2_lt_and,
00496                               TOP_cmp_z2_lt_or,
00497                               TOP_cmp_z2_lt_or_andcm,
00498                               TOP_cmp4_z2_gt_and,
00499                               TOP_cmp4_z2_gt_or,
00500                               TOP_cmp4_z2_gt_or_andcm,
00501                               TOP_cmp4_z2_le_and,
00502                               TOP_cmp4_z2_le_or,
00503                               TOP_cmp4_z2_le_or_andcm,
00504                               TOP_cmp4_z2_ge_and,
00505                               TOP_cmp4_z2_ge_or,
00506                               TOP_cmp4_z2_ge_or_andcm,
00507                               TOP_cmp4_z2_lt_and,
00508                               TOP_cmp4_z2_lt_or,
00509                               TOP_cmp4_z2_lt_or_andcm,
00510                               TOP_UNDEFINED);
00511 
00512   /* ===== Specification for M_Unit Type ===== */
00513   M_Unit = ISA_Exec_Unit_Type_Create("M_Unit", NULL);
00514   Instruction_Exec_Unit_Group(M_Unit,
00515 
00516                               // Memory:
00517                               TOP_ld1,
00518                               TOP_ld2,
00519                               TOP_ld4,
00520                               TOP_ld8,
00521                               TOP_ld8_fill,
00522                               TOP_ld1_r,
00523                               TOP_ld2_r,
00524                               TOP_ld4_r,
00525                               TOP_ld8_r,
00526                               TOP_ld8_r_fill,
00527                               TOP_ld1_i,
00528                               TOP_ld2_i,
00529                               TOP_ld4_i,
00530                               TOP_ld8_i,
00531                               TOP_ld8_i_fill,
00532                               TOP_st1,
00533                               TOP_st2,
00534                               TOP_st4,
00535                               TOP_st8,
00536                               TOP_st8_spill,
00537                               TOP_st1_i,
00538                               TOP_st2_i,
00539                               TOP_st4_i,
00540                               TOP_st8_i,
00541                               TOP_st8_i_spill,
00542                               TOP_ldfs,
00543                               TOP_ldfd,
00544                               TOP_ldf8,
00545                               TOP_ldfe,
00546                               TOP_ldf_fill,
00547                               TOP_ldfs_r,
00548                               TOP_ldfd_r,
00549                               TOP_ldf8_r,
00550                               TOP_ldfe_r,
00551                               TOP_ldf_r_fill,
00552                               TOP_ldfs_i,
00553                               TOP_ldfd_i,
00554                               TOP_ldf8_i,
00555                               TOP_ldfe_i,
00556                               TOP_ldf_i_fill,
00557                               TOP_stfs,
00558                               TOP_stfd,
00559                               TOP_stf8,
00560                               TOP_stfe,
00561                               TOP_stf_spill,
00562                               TOP_stfs_i,
00563                               TOP_stfd_i,
00564                               TOP_stf8_i,
00565                               TOP_stfe_i,
00566                               TOP_stf_i_spill,
00567                               TOP_ldfps,
00568                               TOP_ldfpd,
00569                               TOP_ldfp8,
00570                               TOP_ldfps_i,
00571                               TOP_ldfpd_i,
00572                               TOP_ldfp8_i,
00573                               TOP_lfetch,
00574                               TOP_lfetch_excl,
00575                               TOP_lfetch_fault,
00576                               TOP_lfetch_fault_excl,
00577                               TOP_lfetch_r,
00578                               TOP_lfetch_r_excl,
00579                               TOP_lfetch_r_fault,
00580                               TOP_lfetch_r_fault_excl,
00581                               TOP_lfetch_i,
00582                               TOP_lfetch_i_excl,
00583                               TOP_lfetch_i_fault,
00584                               TOP_lfetch_i_fault_excl,
00585                               TOP_cmpxchg1,
00586                               TOP_cmpxchg2,
00587                               TOP_cmpxchg4,
00588                               TOP_cmpxchg8,
00589                               TOP_xchg1,
00590                               TOP_xchg2,
00591                               TOP_xchg4,
00592                               TOP_xchg8,
00593                               TOP_fetchadd4,
00594                               TOP_fetchadd8,
00595                               TOP_setf_sig,
00596                               TOP_setf_exp,
00597                               TOP_setf_s,
00598                               TOP_setf_d,
00599                               TOP_getf_sig,
00600                               TOP_getf_exp,
00601                               TOP_getf_s,
00602                               TOP_getf_d,
00603                               TOP_chk_s_m,
00604                               TOP_chk_s,
00605                               TOP_chk_f_s,
00606                               TOP_chk_a,
00607                               TOP_chk_f_a,
00608                               TOP_invala,
00609                               TOP_fwb,
00610                               TOP_mf,
00611                               TOP_mf_a,
00612                               TOP_srlz_d,
00613                               TOP_srlz_i,
00614                               TOP_sync_i,
00615                               TOP_flushrs,
00616                               TOP_loadrs,
00617                               TOP_invala_e,
00618                               TOP_invala_f_e,
00619                               TOP_fc,
00620                               TOP_ptc_e,
00621                               TOP_mov_t_ar_r_m,
00622                               TOP_mov_t_ar_r, // Simulated OP, I- or M- unit
00623                               TOP_mov_t_ar_i_m,
00624                               TOP_mov_t_ar_i,
00625                               TOP_mov_f_ar_m,
00626                               TOP_mov_f_ar,
00627                               TOP_mov_t_cr,
00628                               TOP_mov_f_cr,
00629                               TOP_alloc,
00630                               TOP_alloc_3,
00631                               TOP_mov_t_psr,
00632                               TOP_mov_t_psrum,
00633                               TOP_mov_f_psr,
00634                               TOP_mov_f_psrum,
00635                               TOP_break_m,
00636                               TOP_break,
00637                               TOP_nop_m,
00638                               TOP_nop,
00639                               TOP_probe_r,
00640                               TOP_probe_w,
00641                               TOP_probe_i_r,
00642                               TOP_probe_i_w,
00643                               TOP_probe_r_fault,
00644                               TOP_probe_w_fault,
00645                               TOP_probe_rw_fault,
00646                               TOP_itc_d,
00647                               TOP_itc_i,
00648                               TOP_mov_t_rr,
00649                               TOP_mov_t_dbr,
00650                               TOP_mov_t_ibr,
00651                               TOP_mov_t_pkr,
00652                               TOP_mov_t_pmc,
00653                               TOP_mov_t_pmd,
00654                               TOP_mov_t_msr,
00655                               TOP_itr_d,
00656                               TOP_itr_i,
00657                               TOP_mov_f_rr,
00658                               TOP_mov_f_dbr,
00659                               TOP_mov_f_ibr,
00660                               TOP_mov_f_pkr,
00661                               TOP_mov_f_pmc,
00662                               TOP_mov_f_pmd,
00663                               TOP_mov_f_msr,
00664                               TOP_mov_f_cpuid,
00665                               TOP_sum,
00666                               TOP_rum,
00667                               TOP_ssm,
00668                               TOP_rsm,
00669                               TOP_ptc_l,
00670                               TOP_ptc_g,
00671                               TOP_ptc_ga,
00672                               TOP_ptr_d,
00673                               TOP_ptr_i,
00674                               TOP_thash,
00675                               TOP_ttag,
00676                               TOP_tpa,
00677                               TOP_tak,
00678 
00679                               // ALU:
00680                               TOP_add,
00681                               TOP_add_1,
00682                               TOP_sub,
00683                               TOP_sub_1,
00684                               TOP_addp4,
00685                               TOP_and,
00686                               TOP_andcm,
00687                               TOP_or,
00688                               TOP_xor,
00689                               TOP_shladd,
00690                               TOP_shladdp4,
00691                               TOP_sub_i,
00692                               TOP_and_i,
00693                               TOP_andcm_i,
00694                               TOP_or_i,
00695                               TOP_xor_i,
00696                               TOP_adds,
00697                               TOP_addp4_i,
00698                               TOP_addl,
00699                               TOP_cmp_lt,
00700                               TOP_cmp_ltu,
00701                               TOP_cmp_eq,
00702                               TOP_cmp_lt_unc,
00703                               TOP_cmp_ltu_unc,
00704                               TOP_cmp_eq_unc,
00705                               TOP_cmp_eq_and,
00706                               TOP_cmp_eq_or,
00707                               TOP_cmp_eq_or_andcm,
00708                               TOP_cmp_ne_and,
00709                               TOP_cmp_ne_or,
00710                               TOP_cmp_ne_or_andcm,
00711                               TOP_cmp4_lt,
00712                               TOP_cmp4_ltu,
00713                               TOP_cmp4_eq,
00714                               TOP_cmp4_lt_unc,
00715                               TOP_cmp4_ltu_unc,
00716                               TOP_cmp4_eq_unc,
00717                               TOP_cmp4_eq_and,
00718                               TOP_cmp4_eq_or,
00719                               TOP_cmp4_eq_or_andcm,
00720                               TOP_cmp4_ne_and,
00721                               TOP_cmp4_ne_or,
00722                               TOP_cmp4_ne_or_andcm,
00723                               TOP_cmp_z1_gt_and,
00724                               TOP_cmp_z1_gt_or,
00725                               TOP_cmp_z1_gt_or_andcm,
00726                               TOP_cmp_z1_le_and,
00727                               TOP_cmp_z1_le_or,
00728                               TOP_cmp_z1_le_or_andcm,
00729                               TOP_cmp_z1_ge_and,
00730                               TOP_cmp_z1_ge_or,
00731                               TOP_cmp_z1_ge_or_andcm,
00732                               TOP_cmp_z1_lt_and,
00733                               TOP_cmp_z1_lt_or,
00734                               TOP_cmp_z1_lt_or_andcm,
00735                               TOP_cmp4_z1_gt_and,
00736                               TOP_cmp4_z1_gt_or,
00737                               TOP_cmp4_z1_gt_or_andcm,
00738                               TOP_cmp4_z1_le_and,
00739                               TOP_cmp4_z1_le_or,
00740                               TOP_cmp4_z1_le_or_andcm,
00741                               TOP_cmp4_z1_ge_and,
00742                               TOP_cmp4_z1_ge_or,
00743                               TOP_cmp4_z1_ge_or_andcm,
00744                               TOP_cmp4_z1_lt_and,
00745                               TOP_cmp4_z1_lt_or,
00746                               TOP_cmp4_z1_lt_or_andcm,
00747                               TOP_cmp_i_lt,
00748                               TOP_cmp_i_ltu,
00749                               TOP_cmp_i_eq,
00750                               TOP_cmp_i_lt_unc,
00751                               TOP_cmp_i_ltu_unc,
00752                               TOP_cmp_i_eq_unc,
00753                               TOP_cmp_i_eq_and,
00754                               TOP_cmp_i_eq_or,
00755                               TOP_cmp_i_eq_or_andcm,
00756                               TOP_cmp_i_ne_and,
00757                               TOP_cmp_i_ne_or,
00758                               TOP_cmp_i_ne_or_andcm,
00759                               TOP_cmp4_i_lt,
00760                               TOP_cmp4_i_ltu,
00761                               TOP_cmp4_i_eq,
00762                               TOP_cmp4_i_lt_unc,
00763                               TOP_cmp4_i_ltu_unc,
00764                               TOP_cmp4_i_eq_unc,
00765                               TOP_cmp4_i_eq_and,
00766                               TOP_cmp4_i_eq_or,
00767                               TOP_cmp4_i_eq_or_andcm,
00768                               TOP_cmp4_i_ne_and,
00769                               TOP_cmp4_i_ne_or,
00770                               TOP_cmp4_i_ne_or_andcm,
00771                               TOP_padd1,
00772                               TOP_padd2,
00773                               TOP_padd4,
00774                               TOP_padd1_sss,
00775                               TOP_padd2_sss,
00776                               TOP_padd1_uuu,
00777                               TOP_padd2_uuu,
00778                               TOP_padd1_uus,
00779                               TOP_padd2_uus,
00780                               TOP_psub1,
00781                               TOP_psub2,
00782                               TOP_psub4,
00783                               TOP_psub1_sss,
00784                               TOP_psub2_sss,
00785                               TOP_psub1_uuu,
00786                               TOP_psub2_uuu,
00787                               TOP_psub1_uus,
00788                               TOP_psub2_uus,
00789                               TOP_pavg1,
00790                               TOP_pavg2,
00791                               TOP_pavg1_raz,
00792                               TOP_pavg2_raz,
00793                               TOP_pavgsub1,
00794                               TOP_pavgsub2,
00795                               TOP_pcmp1_eq,
00796                               TOP_pcmp2_eq,
00797                               TOP_pcmp4_eq,
00798                               TOP_pcmp1_gt,
00799                               TOP_pcmp2_gt,
00800                               TOP_pcmp4_gt,
00801                               TOP_pshladd2,
00802                               TOP_pshradd2,
00803                               TOP_mov,
00804                               TOP_mov_i,
00805                               TOP_cmp_eq_and_orcm,
00806                               TOP_cmp_eq_andcm,
00807                               TOP_cmp_eq_orcm,
00808                               TOP_cmp_ge,
00809                               TOP_cmp_ge_unc,
00810                               TOP_cmp_geu,
00811                               TOP_cmp_geu_unc,
00812                               TOP_cmp_ne,
00813                               TOP_cmp_ne_and_orcm,
00814                               TOP_cmp_ne_andcm,
00815                               TOP_cmp_ne_orcm,
00816                               TOP_cmp_ne_unc,
00817                               TOP_cmp4_eq_and_orcm,
00818                               TOP_cmp4_eq_andcm,
00819                               TOP_cmp4_eq_orcm,
00820                               TOP_cmp4_ge,
00821                               TOP_cmp4_ge_unc,
00822                               TOP_cmp4_geu,
00823                               TOP_cmp4_geu_unc,
00824                               TOP_cmp4_ne,
00825                               TOP_cmp4_ne_and_orcm,
00826                               TOP_cmp4_ne_orcm,
00827                               TOP_cmp4_ne_andcm,
00828                               TOP_cmp4_ne_unc,
00829                               TOP_cmp_gt,
00830                               TOP_cmp_gt_unc,
00831                               TOP_cmp_gtu,
00832                               TOP_cmp_gtu_unc,
00833                               TOP_cmp4_gt,
00834                               TOP_cmp4_gt_unc,
00835                               TOP_cmp4_gtu,
00836                               TOP_cmp4_gtu_unc,
00837                               TOP_cmp_le,
00838                               TOP_cmp_le_unc,
00839                               TOP_cmp_leu,
00840                               TOP_cmp_leu_unc,
00841                               TOP_cmp4_le,
00842                               TOP_cmp4_le_unc,
00843                               TOP_cmp4_leu,
00844                               TOP_cmp4_leu_unc,
00845                               TOP_cmp_i_eq_and_orcm,
00846                               TOP_cmp_i_eq_andcm,
00847                               TOP_cmp_i_eq_orcm,
00848                               TOP_cmp_i_ge,
00849                               TOP_cmp_i_ge_unc,
00850                               TOP_cmp_i_geu,
00851                               TOP_cmp_i_geu_unc,
00852                               TOP_cmp_i_ne,
00853                               TOP_cmp_i_ne_and_orcm,
00854                               TOP_cmp_i_ne_andcm,
00855                               TOP_cmp_i_ne_orcm,
00856                               TOP_cmp_i_ne_unc,
00857                               TOP_cmp4_i_eq_and_orcm,
00858                               TOP_cmp4_i_eq_andcm,
00859                               TOP_cmp4_i_eq_orcm,
00860                               TOP_cmp4_i_ge,
00861                               TOP_cmp4_i_ge_unc,
00862                               TOP_cmp4_i_geu,
00863                               TOP_cmp4_i_geu_unc,
00864                               TOP_cmp4_i_ne,
00865                               TOP_cmp4_i_ne_and_orcm,
00866                               TOP_cmp4_i_ne_andcm,
00867                               TOP_cmp4_i_ne_orcm,
00868                               TOP_cmp4_i_ne_unc,
00869                               TOP_cmp_i_le,
00870                               TOP_cmp_i_le_unc,
00871                               TOP_cmp_i_leu,
00872                               TOP_cmp_i_leu_unc,
00873                               TOP_cmp4_i_le,
00874                               TOP_cmp4_i_le_unc,
00875                               TOP_cmp4_i_leu,
00876                               TOP_cmp4_i_leu_unc,
00877                               TOP_cmp_i_gt,
00878                               TOP_cmp_i_gt_unc,
00879                               TOP_cmp_i_gtu,
00880                               TOP_cmp_i_gtu_unc,
00881                               TOP_cmp4_i_gt,
00882                               TOP_cmp4_i_gt_unc,
00883                               TOP_cmp4_i_gtu,
00884                               TOP_cmp4_i_gtu_unc,
00885                               TOP_cmp_z1_gt_andcm,
00886                               TOP_cmp_z1_gt_orcm,
00887                               TOP_cmp_z1_gt_and_orcm,
00888                               TOP_cmp_z1_le_andcm,
00889                               TOP_cmp_z1_le_orcm,
00890                               TOP_cmp_z1_le_and_orcm,
00891                               TOP_cmp_z1_ge_andcm,
00892                               TOP_cmp_z1_ge_orcm,
00893                               TOP_cmp_z1_ge_and_orcm,
00894                               TOP_cmp_z1_lt_andcm,
00895                               TOP_cmp_z1_lt_orcm,
00896                               TOP_cmp_z1_lt_and_orcm,
00897                               TOP_cmp4_z1_gt_andcm,
00898                               TOP_cmp4_z1_gt_orcm,
00899                               TOP_cmp4_z1_gt_and_orcm,
00900                               TOP_cmp4_z1_le_andcm,
00901                               TOP_cmp4_z1_le_orcm,
00902                               TOP_cmp4_z1_le_and_orcm,
00903                               TOP_cmp4_z1_ge_andcm,
00904                               TOP_cmp4_z1_ge_orcm,
00905                               TOP_cmp4_z1_ge_and_orcm,
00906                               TOP_cmp4_z1_lt_andcm,
00907                               TOP_cmp4_z1_lt_orcm,
00908                               TOP_cmp4_z1_lt_and_orcm,
00909                               TOP_cmp_z2_gt_andcm,
00910                               TOP_cmp_z2_gt_orcm,
00911                               TOP_cmp_z2_gt_and_orcm,
00912                               TOP_cmp_z2_le_andcm,
00913                               TOP_cmp_z2_le_orcm,
00914                               TOP_cmp_z2_le_and_orcm,
00915                               TOP_cmp_z2_ge_andcm,
00916                               TOP_cmp_z2_ge_orcm,
00917                               TOP_cmp_z2_ge_and_orcm,
00918                               TOP_cmp_z2_lt_andcm,
00919                               TOP_cmp_z2_lt_orcm,
00920                               TOP_cmp_z2_lt_and_orcm,
00921                               TOP_cmp4_z2_gt_andcm,
00922                               TOP_cmp4_z2_gt_orcm,
00923                               TOP_cmp4_z2_gt_and_orcm,
00924                               TOP_cmp4_z2_le_andcm,
00925                               TOP_cmp4_z2_le_orcm,
00926                               TOP_cmp4_z2_le_and_orcm,
00927                               TOP_cmp4_z2_ge_andcm,
00928                               TOP_cmp4_z2_ge_orcm,
00929                               TOP_cmp4_z2_ge_and_orcm,
00930                               TOP_cmp4_z2_lt_andcm,
00931                               TOP_cmp4_z2_lt_orcm,
00932                               TOP_cmp4_z2_lt_and_orcm,
00933                               TOP_cmp_z2_gt_and,
00934                               TOP_cmp_z2_gt_or,
00935                               TOP_cmp_z2_gt_or_andcm,
00936                               TOP_cmp_z2_le_and,
00937                               TOP_cmp_z2_le_or,
00938                               TOP_cmp_z2_le_or_andcm,
00939                               TOP_cmp_z2_ge_and,
00940                               TOP_cmp_z2_ge_or,
00941                               TOP_cmp_z2_ge_or_andcm,
00942                               TOP_cmp_z2_lt_and,
00943                               TOP_cmp_z2_lt_or,
00944                               TOP_cmp_z2_lt_or_andcm,
00945                               TOP_cmp4_z2_gt_and,
00946                               TOP_cmp4_z2_gt_or,
00947                               TOP_cmp4_z2_gt_or_andcm,
00948                               TOP_cmp4_z2_le_and,
00949                               TOP_cmp4_z2_le_or,
00950                               TOP_cmp4_z2_le_or_andcm,
00951                               TOP_cmp4_z2_ge_and,
00952                               TOP_cmp4_z2_ge_or,
00953                               TOP_cmp4_z2_ge_or_andcm,
00954                               TOP_cmp4_z2_lt_and,
00955                               TOP_cmp4_z2_lt_or,
00956                               TOP_cmp4_z2_lt_or_andcm,
00957                               TOP_UNDEFINED);
00958 
00959   /* ===== Specification for B_Unit Type ===== */
00960   B_Unit = ISA_Exec_Unit_Type_Create("B_Unit", NULL);
00961   Instruction_Exec_Unit_Group(B_Unit,
00962                               TOP_br_cond,
00963                               TOP_br_call,
00964                               TOP_br_r_cond,
00965                               TOP_br_ia,
00966                               TOP_br_ret,
00967                               TOP_br_r_call,
00968                               TOP_cover,
00969                               TOP_clrrrb,
00970                               TOP_clrrrb_pr,
00971                               TOP_rfi,
00972                               TOP_bsw_0,
00973                               TOP_bsw_1,
00974                               TOP_epc,
00975                               TOP_break_b,
00976                               TOP_break,
00977                               TOP_nop_b,
00978                               TOP_nop,
00979                               TOP_br,
00980                               TOP_br_r,
00981                               TOP_UNDEFINED);
00982 
00983   /* ===== Specification for F_Unit Type ===== */
00984   F_Unit = ISA_Exec_Unit_Type_Create("F_Unit", NULL);
00985   Instruction_Exec_Unit_Group(F_Unit,
00986                               TOP_fma,
00987                               TOP_fma_s,
00988                               TOP_fma_d,
00989                               TOP_fpma,
00990                               TOP_fms,
00991                               TOP_fms_s,
00992                               TOP_fms_d,
00993                               TOP_fpms,
00994                               TOP_fnma,
00995                               TOP_fnma_s,
00996                               TOP_fnma_d,
00997                               TOP_fpnma,
00998                               TOP_xma_l,
00999                               TOP_xma_h,
01000                               TOP_xma_hu,
01001                               TOP_fselect,
01002                               TOP_fcmp_eq,
01003                               TOP_fcmp_lt,
01004                               TOP_fcmp_le,
01005                               TOP_fcmp_unord,
01006                               TOP_fcmp_eq_unc,
01007                               TOP_fcmp_lt_unc,
01008                               TOP_fcmp_le_unc,
01009                               TOP_fcmp_unord_unc,
01010                               TOP_fcmp_gt,
01011                               TOP_fcmp_gt_unc,
01012                               TOP_fcmp_ge,
01013                               TOP_fcmp_ge_unc,
01014                               TOP_fcmp_neq,
01015                               TOP_fcmp_neq_unc,
01016                               TOP_fcmp_nlt,
01017                               TOP_fcmp_nlt_unc,
01018                               TOP_fcmp_nle,
01019                               TOP_fcmp_nle_unc,
01020                               TOP_fcmp_ngt,
01021                               TOP_fcmp_ngt_unc,
01022                               TOP_fcmp_nge,
01023                               TOP_fcmp_nge_unc,
01024                               TOP_fcmp_ord,
01025                               TOP_fcmp_ord_unc,
01026                               TOP_fclass_m,
01027                               TOP_fclass_m_unc,
01028                               TOP_frcpa,
01029                               TOP_fprcpa,
01030                               TOP_frsqrta,
01031                               TOP_fprsqrta,
01032                               TOP_fmin,
01033                               TOP_fmax,
01034                               TOP_famin,
01035                               TOP_famax,
01036                               TOP_fpmin,
01037                               TOP_fpmax,
01038                               TOP_fpamin,
01039                               TOP_fpamax,
01040                               TOP_fpcmp_eq,
01041                               TOP_fpcmp_lt,
01042                               TOP_fpcmp_le,
01043                               TOP_fpcmp_gt,
01044                               TOP_fpcmp_ge,
01045                               TOP_fpcmp_unord,
01046                               TOP_fpcmp_neq,
01047                               TOP_fpcmp_nlt,
01048                               TOP_fpcmp_nle,
01049                               TOP_fpcmp_ngt,
01050                               TOP_fpcmp_nge,
01051                               TOP_fpcmp_ord,
01052                               TOP_fmerge_s,
01053                               TOP_fmerge_ns,
01054                               TOP_fmerge_se,
01055                               TOP_fmix_lr,
01056                               TOP_fmix_r,
01057                               TOP_fmix_l,
01058                               TOP_fsxt_r,
01059                               TOP_fsxt_l,
01060                               TOP_fpack,
01061                               TOP_fswap,
01062                               TOP_fswap_nl,
01063                               TOP_fswap_nr,
01064                               TOP_fand,
01065                               TOP_fandcm,
01066                               TOP_for,
01067                               TOP_fxor,
01068                               TOP_fpmerge_s,
01069                               TOP_fpmerge_ns,
01070                               TOP_fpmerge_se,
01071                               TOP_fcvt_fx,
01072                               TOP_fcvt_fxu,
01073                               TOP_fcvt_fx_trunc,
01074                               TOP_fcvt_fxu_trunc,
01075                               TOP_fpcvt_fx,
01076                               TOP_fpcvt_fxu,
01077                               TOP_fpcvt_fx_trunc,
01078                               TOP_fpcvt_fxu_trunc,
01079                               TOP_fcvt_xf,
01080                               TOP_fsetc,
01081                               TOP_fclrf,
01082                               TOP_fchkf,
01083                               TOP_break_f,
01084                               TOP_break,
01085                               TOP_nop_f,
01086                               TOP_nop,
01087                               TOP_fabs,
01088                               TOP_fnegabs,
01089                               TOP_fpabs,
01090                               TOP_fpnegabs,
01091                               TOP_fneg,
01092                               TOP_fpneg,
01093                               TOP_mov_f,
01094                               TOP_xma_lu,
01095                               TOP_xmpy_l,
01096                               TOP_xmpy_lu,
01097                               TOP_xmpy_h,
01098                               TOP_xmpy_hu,
01099                               TOP_fcvt_xuf,
01100                               TOP_fcvt_xuf_d,
01101                               TOP_fcvt_xuf_s,
01102                               TOP_fnorm,
01103                               TOP_fnorm_d,
01104                               TOP_fnorm_s,
01105                               TOP_fadd,
01106                               TOP_fadd_d,
01107                               TOP_fadd_s,
01108                               TOP_fsub,
01109                               TOP_fsub_d,
01110                               TOP_fsub_s,
01111                               TOP_fmpy,
01112                               TOP_fmpy_d,
01113                               TOP_fmpy_s,
01114                               TOP_fnmpy,
01115                               TOP_fnmpy_d,
01116                               TOP_fnmpy_s,
01117                               TOP_fpmpy,
01118                               TOP_fpnmpy,
01119                               TOP_fclass_nm,
01120                               TOP_fclass_nm_unc,
01121                               TOP_UNDEFINED);
01122 
01123   /* ===== Specification for L_Unit Type ===== */
01124   L_Unit = ISA_Exec_Unit_Type_Create("L_Unit", NULL);
01125   Instruction_Exec_Unit_Group(L_Unit,
01126                               TOP_movl,
01127                               TOP_break_x,
01128                               TOP_nop_x,
01129                               TOP_UNDEFINED);
01130 
01131   /* ===== Specification for I2_Unit Type ===== */
01132   I2_Unit = ISA_Exec_Unit_Type_Create("I2_Unit", I_Unit);
01133   Instruction_Exec_Unit_Group(I2_Unit,
01134                               TOP_movl,
01135                               TOP_break,
01136                               TOP_break_i,
01137                               TOP_break_x,
01138                               TOP_nop,
01139                               TOP_nop_i,
01140                               TOP_nop_x,
01141                               TOP_UNDEFINED);
01142  
01143   /* ===== Specification for B2_Unit Type ===== */
01144   B2_Unit = ISA_Exec_Unit_Type_Create("B2_Unit", B_Unit);
01145   Instruction_Exec_Unit_Group(B2_Unit,
01146                               TOP_br_wexit,
01147                               TOP_br_wtop,
01148                               TOP_br_cloop,
01149                               TOP_br_cexit,
01150                               TOP_br_ctop,
01151                               TOP_br_cond,
01152                               TOP_br_call,
01153                               TOP_br_r_cond,
01154                               TOP_br_ia,
01155                               TOP_br_ret,
01156                               TOP_br_r_call,
01157                               TOP_brp,
01158                               TOP_brp_r,
01159                               TOP_brp_ret,
01160                               TOP_cover,
01161                               TOP_clrrrb,
01162                               TOP_clrrrb_pr,
01163                               TOP_rfi,
01164                               TOP_bsw_0,
01165                               TOP_bsw_1,
01166                               TOP_epc,
01167                               TOP_break_b,
01168                               TOP_break,
01169                               TOP_nop_b,
01170                               TOP_nop,
01171                               TOP_br,
01172                               TOP_br_r,
01173                               TOP_UNDEFINED);
01174  
01175   /* === All legal bundle orderings (32 of them) are specified below. */
01176 
01177   /* ===== Template 0x00 ===== */
01178   ISA_Bundle_Type_Create("mii", ".mii", 3);
01179   Slot(0, M_Unit);
01180   Slot(1, I_Unit);
01181   Slot(2, I_Unit);
01182 
01183   /* ===== Template 0x01 ===== */
01184   ISA_Bundle_Type_Create("mii_", ".mii", 3);
01185   Slot(0, M_Unit);
01186   Slot(1, I_Unit);
01187   Slot(2, I_Unit);
01188   Stop(2);
01189 
01190   /* ===== Template 0x02 ===== */
01191   ISA_Bundle_Type_Create("mi_i", ".mii", 3);
01192   Slot(0, M_Unit);
01193   Slot(1, I_Unit);
01194   Stop(1);
01195   Slot(2, I_Unit);
01196 
01197   /* ===== Template 0x03 ===== */
01198   ISA_Bundle_Type_Create("mi_i_", ".mii", 3);
01199   Slot(0, M_Unit);
01200   Slot(1, I_Unit);
01201   Stop(1);
01202   Slot(2, I_Unit);
01203   Stop(2);
01204 
01205   /* ===== Template 0x04 ===== */
01206   ISA_Bundle_Type_Create("mlx", ".mlx", 3);
01207   Slot(0, M_Unit);
01208   Slot(1, L_Unit);
01209   Slot(2, L_Unit);
01210 
01211   /* ===== Template 0x05 ===== */
01212   ISA_Bundle_Type_Create("mlx_", ".mlx", 3);
01213   Slot(0, M_Unit);
01214   Slot(1, L_Unit);
01215   Slot(2, L_Unit);
01216   Stop(2);
01217 
01218   /* ===== Template 0x06 ===== */
01219   ISA_Bundle_Type_Create("reserved_06", ".0x06", 3);
01220   Slot(0, R_Unit);
01221   Slot(1, R_Unit);
01222   Slot(2, R_Unit);
01223 
01224   /* ===== Template 0x07 ===== */
01225   ISA_Bundle_Type_Create("reserved_07", ".0x07", 3);
01226   Slot(0, R_Unit);
01227   Slot(1, R_Unit);
01228   Slot(2, R_Unit);
01229 
01230   /* ===== Template 0x08 ===== */
01231   ISA_Bundle_Type_Create("mmi", ".mmi", 3);
01232   Slot(0, M_Unit);
01233   Slot(1, M_Unit);
01234   Slot(2, I_Unit);
01235 
01236   /* ===== Template 0x09 ===== */
01237   ISA_Bundle_Type_Create("mmi_", ".mmi", 3);
01238   Slot(0, M_Unit);
01239   Slot(1, M_Unit);
01240   Slot(2, I_Unit);
01241   Stop(2);
01242 
01243   /* ===== Template 0x0A ===== */
01244   ISA_Bundle_Type_Create("m_mi", ".mmi", 3);
01245   Slot(0, M_Unit);
01246   Stop(0);
01247   Slot(1, M_Unit);
01248   Slot(2, I_Unit);
01249 
01250   /* ===== Template 0x0B ===== */
01251   ISA_Bundle_Type_Create("m_mi_", ".mmi", 3);
01252   Slot(0, M_Unit);
01253   Stop(0);
01254   Slot(1, M_Unit);
01255   Slot(2, I_Unit);
01256   Stop(2);
01257 
01258   /* ===== Template 0x0C ===== */
01259   ISA_Bundle_Type_Create("mfi", ".mfi", 3);
01260   Slot(0, M_Unit);
01261   Slot(1, F_Unit);
01262   Slot(2, I_Unit);
01263 
01264   /* ===== Template 0x0D ===== */
01265   ISA_Bundle_Type_Create("mfi_", ".mfi", 3);
01266   Slot(0, M_Unit);
01267   Slot(1, F_Unit);
01268   Slot(2, I_Unit);
01269   Stop(2);
01270 
01271   /* ===== Template 0x0E ===== */
01272   ISA_Bundle_Type_Create("mmf", ".mmf", 3);
01273   Slot(0, M_Unit);
01274   Slot(1, M_Unit);
01275   Slot(2, F_Unit);
01276 
01277   /* ===== Template 0x0F ===== */
01278   ISA_Bundle_Type_Create("mmf_", ".mmf", 3);
01279   Slot(0, M_Unit);
01280   Slot(1, M_Unit);
01281   Slot(2, F_Unit);
01282   Stop(2);
01283 
01284   /* ===== Template 0x10 ===== */
01285   ISA_Bundle_Type_Create("mib", ".mib", 3);
01286   Slot(0, M_Unit);
01287   Slot(1, I_Unit);
01288   Slot(2, B2_Unit);
01289 
01290   /* ===== Template 0x11 ===== */
01291   ISA_Bundle_Type_Create("mib_", ".mib", 3);
01292   Slot(0, M_Unit);
01293   Slot(1, I_Unit);
01294   Slot(2, B2_Unit);
01295   Stop(2);
01296 
01297   /* ===== Template 0x12 ===== */
01298   ISA_Bundle_Type_Create("mbb", ".mbb", 3);
01299   Slot(0, M_Unit);
01300   Slot(1, B_Unit);
01301   Slot(2, B2_Unit);
01302 
01303   /* ===== Template 0x13 ===== */
01304   ISA_Bundle_Type_Create("mbb_", ".mbb", 3);
01305   Slot(0, M_Unit);
01306   Slot(1, B_Unit);
01307   Slot(2, B2_Unit);
01308   Stop(2);
01309 
01310   /* ===== Template 0x14 ===== */
01311   ISA_Bundle_Type_Create("reserved_14", ".0x14", 3);
01312   Slot(0, R_Unit);
01313   Slot(1, R_Unit);
01314   Slot(2, R_Unit);
01315 
01316   /* ===== Template 0x15 ===== */
01317   ISA_Bundle_Type_Create("reserved_15", ".0x15", 3);
01318   Slot(0, R_Unit);
01319   Slot(1, R_Unit);
01320   Slot(2, R_Unit);
01321 
01322   /* ===== Template 0x16 ===== */
01323   ISA_Bundle_Type_Create("bbb", ".bbb", 3);
01324   Slot(0, B_Unit);
01325   Slot(1, B_Unit);
01326   Slot(2, B2_Unit);
01327 
01328   /* ===== Template 0x17 ===== */
01329   ISA_Bundle_Type_Create("bbb_", ".bbb", 3);
01330   Slot(0, B_Unit);
01331   Slot(1, B_Unit);
01332   Slot(2, B2_Unit);
01333   Stop(2);
01334 
01335   /* ===== Template 0x18 ===== */
01336   ISA_Bundle_Type_Create("mmb", ".mmb", 3);
01337   Slot(0, M_Unit);
01338   Slot(1, M_Unit);
01339   Slot(2, B2_Unit);
01340 
01341   /* ===== Template 0x19 ===== */
01342   ISA_Bundle_Type_Create("mmb_", ".mmb", 3);
01343   Slot(0, M_Unit);
01344   Slot(1, M_Unit);
01345   Slot(2, B2_Unit);
01346   Stop(2);
01347 
01348   /* ===== Template 0x1A ===== */
01349   ISA_Bundle_Type_Create("reserved_1a", ".0x1a", 3);
01350   Slot(0, R_Unit);
01351   Slot(1, R_Unit);
01352   Slot(2, R_Unit);
01353 
01354   /* ===== Template 0x1B ===== */
01355   ISA_Bundle_Type_Create("reserved_1b", ".0x1b", 3);
01356   Slot(0, R_Unit);
01357   Slot(1, R_Unit);
01358   Slot(2, R_Unit);
01359 
01360   /* ===== Template 0x1C ===== */
01361   ISA_Bundle_Type_Create("mfb", ".mfb", 3);
01362   Slot(0, M_Unit);
01363   Slot(1, F_Unit);
01364   Slot(2, B2_Unit);
01365 
01366   /* ===== Template 0x1D ===== */
01367   ISA_Bundle_Type_Create("mfb_", ".mfb", 3);
01368   Slot(0, M_Unit);
01369   Slot(1, F_Unit);
01370   Slot(2, B2_Unit);
01371   Stop(2);
01372 
01373   /* ===== Template 0x1E ===== */
01374   ISA_Bundle_Type_Create("reserved_1e", ".0x1e", 3);
01375   Slot(0, R_Unit);
01376   Slot(1, R_Unit);
01377   Slot(2, R_Unit);
01378 
01379   /* ===== Template 0x1F ===== */
01380   ISA_Bundle_Type_Create("reserved_1f", ".0x1f", 3);
01381   Slot(0, R_Unit);
01382   Slot(1, R_Unit);
01383   Slot(2, R_Unit);
01384 
01385   ISA_Bundle_End();
01386   return 0;
01387 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines