/*
 *  Copyright (C) 2007, 2008 PathScale, LLC.  All Rights Reserved.
 */

/*
 *  Copyright (C) 2007. QLogic Corporation. All Rights Reserved.
 */

/*

  Copyright (C) 2000, 2001 Silicon Graphics, Inc.  All Rights Reserved.

   Path64 is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   Path64 is distributed in the hope that it will be useful, but WITHOUT
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
   License for more details.

   You should have received a copy of the GNU General Public License
   along with Path64; see the file COPYING.  If not, write to the Free
   Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
   02110-1301, USA.

   Special thanks goes to SGI for their continued support to open source

*/

//  
//  Generate ISA subset desdriptions
/////////////////////////////////////
// The instructions are listed by category. The different categories of
// instructions are:
//
//   1. MIPS64 instructions (including IceT instructions)
//
// Within each ISA_SUBSET instructions are listed in alphabetical order and
// as shown in the ISA manual
/////////////////////////////////////
//
//  $Revision: 1.4 $
//  $Date: 05/03/02 15:27:56-08:00 $
//  $Author: bos@eng-24.internal.keyresearch.com $
//  $Source: common/targ_info/isa/mips/SCCS/s.isa_subset.cxx $

#include <stddef.h>
#include "topcode.h"
#include "isa_subset_gen.h"

int
main()
{
  ISA_SUBSET mips4, mipst;

  ISA_Subset_Begin("MIPS");
  mips4 = ISA_Subset_Create(NULL, "MIPS4");

  Instruction_Group(mips4,
      TOP_lb,
      TOP_lbu,
      TOP_lh,
      TOP_lhu,
      TOP_lw,
      TOP_lwl,
      TOP_lwr,
      TOP_sb,
      TOP_sh,
      TOP_sw,
      TOP_swl,
      TOP_swr,
      TOP_ll,
      TOP_sc,
      TOP_sync,
      TOP_lwu,
      TOP_ld,
      TOP_ldl,
      TOP_ldr,
      TOP_lld,
      TOP_sd,
      TOP_sdl,
      TOP_sdr,
      TOP_scd,
      TOP_pref,
      TOP_prefx,
      TOP_add,
      TOP_addi,
      TOP_addiu,
      TOP_addu,
      TOP_div,
      TOP_divu,
      TOP_mul,
      TOP_mult,
      TOP_multu,
      TOP_slt,
      TOP_slti,
      TOP_sltiu,
      TOP_sltu,
      TOP_sub,
      TOP_subu,
      TOP_dadd,
      TOP_daddi,
      TOP_daddiu,
      TOP_daddu,
      TOP_ddiv,
      TOP_ddivu,
      TOP_dmult,
      TOP_dmultu,
      TOP_dsub,
      TOP_dsubu,
      TOP_and,
      TOP_andi,
      TOP_lui,
      TOP_nor,
      TOP_or,
      TOP_ori,
      TOP_xor,
      TOP_xori,
      TOP_clo,
      TOP_clz,
      TOP_dclo,
      TOP_dclz,
      TOP_mfhi,
      TOP_mflo,
      TOP_mthi,
      TOP_mtlo,
      TOP_movf,
      TOP_movn,
      TOP_movt,
      TOP_movz,
      TOP_sll,
      TOP_sllv,
      TOP_sra,
      TOP_srav,
      TOP_srl,
      TOP_srlv,
      TOP_dsll,
      TOP_dsll32,
      TOP_dsllv,
      TOP_dsra,
      TOP_dsra32,
      TOP_dsrav,
      TOP_dsrl,
      TOP_dsrl32,
      TOP_dsrlv,
      TOP_beq,
      TOP_bgez,
      TOP_bgezal,
      TOP_bgtz,
      TOP_blez,
      TOP_bltz,
      TOP_bltzal,
      TOP_bne,
      TOP_j,
      TOP_jal,
      TOP_jalr,
      TOP_jr,
      TOP_break,
      TOP_syscall,
      TOP_teq,
      TOP_teqi,
      TOP_tge,
      TOP_tgei,
      TOP_tgeiu,
      TOP_tgeu,
      TOP_tlt,
      TOP_tlti,
      TOP_tltiu,
      TOP_tltu,
      TOP_tne,
      TOP_tnei,
      TOP_lwc1,
      TOP_ldc1,
      TOP_lwxc1,
      TOP_ldxc1,
      TOP_swc1,
      TOP_sdc1,
      TOP_swxc1,
      TOP_sdxc1,
      TOP_abs_s,
      TOP_abs_d,
      TOP_abs_ps,
      TOP_add_s,
      TOP_add_d,
      TOP_add_ps,
      TOP_c_f_s,
      TOP_c_f_d,
      TOP_c_f_ps,
      TOP_c_t_s,
      TOP_c_t_d,
      TOP_c_t_ps,
      TOP_c_un_s,
      TOP_c_un_d,
      TOP_c_un_ps,
      TOP_c_or_s,
      TOP_c_or_d,
      TOP_c_or_ps,
      TOP_c_eq_s,
      TOP_c_eq_d,
      TOP_c_eq_ps,
      TOP_c_neq_s,
      TOP_c_neq_d,
      TOP_c_neq_ps,
      TOP_c_ueq_s,
      TOP_c_ueq_d,
      TOP_c_ueq_ps,
      TOP_c_ogl_s,
      TOP_c_ogl_d,
      TOP_c_ogl_ps,
      TOP_c_olt_s,
      TOP_c_olt_d,
      TOP_c_olt_ps,
      TOP_c_uge_s,
      TOP_c_uge_d,
      TOP_c_uge_ps,
      TOP_c_ult_s,
      TOP_c_ult_d,
      TOP_c_ult_ps,
      TOP_c_oge_s,
      TOP_c_oge_d,
      TOP_c_oge_ps,
      TOP_c_ole_s,
      TOP_c_ole_d,
      TOP_c_ole_ps,
      TOP_c_ugt_s,
      TOP_c_ugt_d,
      TOP_c_ugt_ps,
      TOP_c_ule_s,
      TOP_c_ule_d,
      TOP_c_ule_ps,
      TOP_c_ogt_s,
      TOP_c_ogt_d,
      TOP_c_ogt_ps,
      TOP_c_sf_s,
      TOP_c_sf_d,
      TOP_c_sf_ps,
      TOP_c_st_s,
      TOP_c_st_d,
      TOP_c_st_ps,
      TOP_c_ngle_s,
      TOP_c_ngle_d,
      TOP_c_ngle_ps,
      TOP_c_gle_s,
      TOP_c_gle_d,
      TOP_c_gle_ps,
      TOP_c_seq_s,
      TOP_c_seq_d,
      TOP_c_seq_ps,
      TOP_c_sne_s,
      TOP_c_sne_d,
      TOP_c_sne_ps,
      TOP_c_ngl_s,
      TOP_c_ngl_d,
      TOP_c_ngl_ps,
      TOP_c_gl_s,
      TOP_c_gl_d,
      TOP_c_gl_ps,
      TOP_c_lt_s,
      TOP_c_lt_d,
      TOP_c_lt_ps,
      TOP_c_nlt_s,
      TOP_c_nlt_d,
      TOP_c_nlt_ps,
      TOP_c_nge_s,
      TOP_c_nge_d,
      TOP_c_nge_ps,
      TOP_c_ge_s,
      TOP_c_ge_d,
      TOP_c_ge_ps,
      TOP_c_le_s,
      TOP_c_le_d,
      TOP_c_le_ps,
      TOP_c_nle_s,
      TOP_c_nle_d,
      TOP_c_nle_ps,
      TOP_c_ngt_s,
      TOP_c_ngt_d,
      TOP_c_ngt_ps,
      TOP_c_gt_s,
      TOP_c_gt_d,
      TOP_c_gt_ps,
      TOP_div_s,
      TOP_div_d,
      TOP_mul_s,
      TOP_mul_d,
      TOP_mul_ps,
      TOP_neg_s,
      TOP_neg_d,
      TOP_neg_ps,
      TOP_sub_s,
      TOP_sub_d,
      TOP_sub_ps,
      TOP_sqrt_s,
      TOP_sqrt_d,
      TOP_madd_s,
      TOP_madd_d,
      TOP_madd_ps,
      TOP_msub_s,
      TOP_msub_d,
      TOP_msub_ps,
      TOP_nmadd_s,
      TOP_nmadd_d,
      TOP_nmadd_ps,
      TOP_nmsub_s,
      TOP_nmsub_d,
      TOP_nmsub_ps,
      TOP_recip_s,
      TOP_recip_d,
      TOP_rsqrt_s,
      TOP_rsqrt_d,
      TOP_cfc1,
      TOP_ctc1,
      TOP_mfc1,
      TOP_mtc1,
      TOP_dmfc1,
      TOP_dmtc1,
      TOP_mov_s,
      TOP_mov_d,
      TOP_mov_ps,
      TOP_movf_s,
      TOP_movf_d,
      TOP_movf_ps,
      TOP_movn_s,
      TOP_movn_d,
      TOP_movn_ps,
      TOP_movt_s,
      TOP_movt_d,
      TOP_movt_ps,
      TOP_movz_s,
      TOP_movz_d,
      TOP_movz_ps,
      TOP_cvt_d_s,
      TOP_cvt_d_w,
      TOP_cvt_d_l,
      TOP_cvt_l_s,
      TOP_cvt_l_d,
      TOP_cvt_s_d,
      TOP_cvt_s_w,
      TOP_cvt_s_l,
      TOP_cvt_w_s,
      TOP_cvt_w_d,
      TOP_cvt_ps_s,
      TOP_cvt_s_pl,
      TOP_cvt_s_pu,
      TOP_ceil_w_s,
      TOP_ceil_w_d,
      TOP_ceil_l_s,
      TOP_ceil_l_d,
      TOP_floor_w_s,
      TOP_floor_w_d,
      TOP_floor_l_s,
      TOP_floor_l_d,
      TOP_round_w_s,
      TOP_round_w_d,
      TOP_round_l_s,
      TOP_round_l_d,
      TOP_trunc_w_s,
      TOP_trunc_w_d,
      TOP_trunc_l_s,
      TOP_trunc_l_d,
      TOP_bc1f,
      TOP_bc1t,
      TOP_sext,
      TOP_asm,
      TOP_intrncall,
      TOP_spadjust,
      TOP_mov_hilo,
      TOP_mov_fcc,
      TOP_begin_pregtn,
      TOP_end_pregtn,
      TOP_bwd_bar,
      TOP_fwd_bar,
      TOP_dfixup,
      TOP_ffixup,
      TOP_ifixup,
      TOP_swp_start,
      TOP_swp_stop,
      TOP_label,
      TOP_nop,
      TOP_noop,
      TOP_dsbh,
      TOP_dshd,
      TOP_seb,
      TOP_seh,
      TOP_wsbh,
      TOP_dext,
      TOP_dextm,
      TOP_dextu,
      TOP_dins,
      TOP_dinsm,
      TOP_dinsu,
      TOP_drotr,
      TOP_drotr32,
      TOP_drotrv,
      TOP_ext,
      TOP_ins,
      TOP_rotr,
      TOP_rotrv,
      TOP_alnv_ps,
      TOP_pll_ps,
      TOP_plu_ps,
      TOP_pul_ps,
      TOP_puu_ps,
      TOP_lbx,
      TOP_ldx,
      TOP_lhx,
      TOP_lwx,
      TOP_madd,
      TOP_maddu,
      TOP_msub,
      TOP_msubu,
      TOP_dmadd,
      TOP_dmaddu,
      TOP_dmsub,
      TOP_dmsubu,
      TOP_dmulg,
      TOP_dmulgu,
      TOP_mfacx,
      TOP_mtacx,
      TOP_dperm,
      TOP_pop,
      TOP_dpop,
      TOP_luxc1,
      TOP_suxc1,
      TOP_addred_ps,
      TOP_mulred_ps,
      TOP_ma_nlupuu_ps,
      TOP_ma_plunuu_ps,
      TOP_ma_plupll_ps,
      TOP_ma_puupul_ps,
      TOP_recipit1_d,
      TOP_recipit1_s,
      TOP_recipit1_ps,
      TOP_recipit2_d,
      TOP_recipit2_s,
      TOP_recipit2_ps,
      TOP_rsqrtit1_d,
      TOP_rsqrtit1_s,
      TOP_rsqrtit1_ps,
      TOP_rsqrtit2_d,
      TOP_rsqrtit2_s,
      TOP_rsqrtit2_ps,
      TOP_mfhc1,
      TOP_mthc1,
      TOP_bc2any2f,
      TOP_bc2any2t,
      TOP_perfctl,
      TOP_tlbwir,
      TOP_tlbwrr,
      TOP_UNDEFINED);

  ISA_Subset_End();
  return 0;
}

