Back to index

cell-binutils  2.17cvs20070401
m32r-opinst.c
Go to the documentation of this file.
00001 /* Semantic operand instances for m32r.
00002 
00003 THIS FILE IS MACHINE GENERATED WITH CGEN.
00004 
00005 Copyright 1996-2005 Free Software Foundation, Inc.
00006 
00007 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
00008 
00009 This program is free software; you can redistribute it and/or modify
00010 it under the terms of the GNU General Public License as published by
00011 the Free Software Foundation; either version 2, or (at your option)
00012 any later version.
00013 
00014 This program is distributed in the hope that it will be useful,
00015 but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017 GNU General Public License for more details.
00018 
00019 You should have received a copy of the GNU General Public License along
00020 with this program; if not, write to the Free Software Foundation, Inc.,
00021 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
00022 
00023 */
00024 
00025 #include "sysdep.h"
00026 #include "ansidecl.h"
00027 #include "bfd.h"
00028 #include "symcat.h"
00029 #include "m32r-desc.h"
00030 #include "m32r-opc.h"
00031 
00032 /* Operand references.  */
00033 
00034 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
00035 #define OP_ENT(op) M32R_OPERAND_##op
00036 #else
00037 #define OP_ENT(op) M32R_OPERAND_op
00038 #endif
00039 #define INPUT CGEN_OPINST_INPUT
00040 #define OUTPUT CGEN_OPINST_OUTPUT
00041 #define END CGEN_OPINST_END
00042 #define COND_REF CGEN_OPINST_COND_REF
00043 
00044 static const CGEN_OPINST sfmt_empty_ops[] ATTRIBUTE_UNUSED = {
00045   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00046 };
00047 
00048 static const CGEN_OPINST sfmt_add_ops[] ATTRIBUTE_UNUSED = {
00049   { INPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00050   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00051   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00052   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00053 };
00054 
00055 static const CGEN_OPINST sfmt_add3_ops[] ATTRIBUTE_UNUSED = {
00056   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
00057   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00058   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00059   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00060 };
00061 
00062 static const CGEN_OPINST sfmt_and3_ops[] ATTRIBUTE_UNUSED = {
00063   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00064   { INPUT, "uimm16", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (UIMM16), 0, 0 },
00065   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00066   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00067 };
00068 
00069 static const CGEN_OPINST sfmt_or3_ops[] ATTRIBUTE_UNUSED = {
00070   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00071   { INPUT, "ulo16", HW_H_ULO16, CGEN_MODE_UINT, OP_ENT (ULO16), 0, 0 },
00072   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00073   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00074 };
00075 
00076 static const CGEN_OPINST sfmt_addi_ops[] ATTRIBUTE_UNUSED = {
00077   { INPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00078   { INPUT, "simm8", HW_H_SINT, CGEN_MODE_INT, OP_ENT (SIMM8), 0, 0 },
00079   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00080   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00081 };
00082 
00083 static const CGEN_OPINST sfmt_addv_ops[] ATTRIBUTE_UNUSED = {
00084   { INPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00085   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00086   { OUTPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00087   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00088   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00089 };
00090 
00091 static const CGEN_OPINST sfmt_addv3_ops[] ATTRIBUTE_UNUSED = {
00092   { INPUT, "simm16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
00093   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00094   { OUTPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00095   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00096   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00097 };
00098 
00099 static const CGEN_OPINST sfmt_addx_ops[] ATTRIBUTE_UNUSED = {
00100   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00101   { INPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00102   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00103   { OUTPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00104   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00105   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00106 };
00107 
00108 static const CGEN_OPINST sfmt_bc8_ops[] ATTRIBUTE_UNUSED = {
00109   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00110   { INPUT, "disp8", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP8), 0, COND_REF },
00111   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
00112   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00113 };
00114 
00115 static const CGEN_OPINST sfmt_bc24_ops[] ATTRIBUTE_UNUSED = {
00116   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00117   { INPUT, "disp24", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP24), 0, COND_REF },
00118   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
00119   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00120 };
00121 
00122 static const CGEN_OPINST sfmt_beq_ops[] ATTRIBUTE_UNUSED = {
00123   { INPUT, "disp16", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP16), 0, COND_REF },
00124   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00125   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00126   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
00127   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00128 };
00129 
00130 static const CGEN_OPINST sfmt_beqz_ops[] ATTRIBUTE_UNUSED = {
00131   { INPUT, "disp16", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP16), 0, COND_REF },
00132   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00133   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
00134   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00135 };
00136 
00137 static const CGEN_OPINST sfmt_bl8_ops[] ATTRIBUTE_UNUSED = {
00138   { INPUT, "disp8", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP8), 0, 0 },
00139   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
00140   { OUTPUT, "h_gr_SI_14", HW_H_GR, CGEN_MODE_SI, 0, 14, 0 },
00141   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
00142   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00143 };
00144 
00145 static const CGEN_OPINST sfmt_bl24_ops[] ATTRIBUTE_UNUSED = {
00146   { INPUT, "disp24", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP24), 0, 0 },
00147   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
00148   { OUTPUT, "h_gr_SI_14", HW_H_GR, CGEN_MODE_SI, 0, 14, 0 },
00149   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
00150   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00151 };
00152 
00153 static const CGEN_OPINST sfmt_bcl8_ops[] ATTRIBUTE_UNUSED = {
00154   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00155   { INPUT, "disp8", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP8), 0, COND_REF },
00156   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
00157   { OUTPUT, "h_gr_SI_14", HW_H_GR, CGEN_MODE_SI, 0, 14, COND_REF },
00158   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
00159   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00160 };
00161 
00162 static const CGEN_OPINST sfmt_bcl24_ops[] ATTRIBUTE_UNUSED = {
00163   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00164   { INPUT, "disp24", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP24), 0, COND_REF },
00165   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
00166   { OUTPUT, "h_gr_SI_14", HW_H_GR, CGEN_MODE_SI, 0, 14, COND_REF },
00167   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
00168   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00169 };
00170 
00171 static const CGEN_OPINST sfmt_bra8_ops[] ATTRIBUTE_UNUSED = {
00172   { INPUT, "disp8", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP8), 0, 0 },
00173   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
00174   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00175 };
00176 
00177 static const CGEN_OPINST sfmt_bra24_ops[] ATTRIBUTE_UNUSED = {
00178   { INPUT, "disp24", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP24), 0, 0 },
00179   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
00180   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00181 };
00182 
00183 static const CGEN_OPINST sfmt_cmp_ops[] ATTRIBUTE_UNUSED = {
00184   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00185   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00186   { OUTPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00187   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00188 };
00189 
00190 static const CGEN_OPINST sfmt_cmpi_ops[] ATTRIBUTE_UNUSED = {
00191   { INPUT, "simm16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
00192   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00193   { OUTPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00194   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00195 };
00196 
00197 static const CGEN_OPINST sfmt_cmpz_ops[] ATTRIBUTE_UNUSED = {
00198   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00199   { OUTPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00200   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00201 };
00202 
00203 static const CGEN_OPINST sfmt_div_ops[] ATTRIBUTE_UNUSED = {
00204   { INPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, COND_REF },
00205   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00206   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, COND_REF },
00207   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00208 };
00209 
00210 static const CGEN_OPINST sfmt_jc_ops[] ATTRIBUTE_UNUSED = {
00211   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00212   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, COND_REF },
00213   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
00214   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00215 };
00216 
00217 static const CGEN_OPINST sfmt_jl_ops[] ATTRIBUTE_UNUSED = {
00218   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
00219   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00220   { OUTPUT, "h_gr_SI_14", HW_H_GR, CGEN_MODE_SI, 0, 14, 0 },
00221   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
00222   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00223 };
00224 
00225 static const CGEN_OPINST sfmt_jmp_ops[] ATTRIBUTE_UNUSED = {
00226   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00227   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
00228   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00229 };
00230 
00231 static const CGEN_OPINST sfmt_ld_ops[] ATTRIBUTE_UNUSED = {
00232   { INPUT, "h_memory_SI_sr", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
00233   { INPUT, "sr", HW_H_GR, CGEN_MODE_USI, OP_ENT (SR), 0, 0 },
00234   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00235   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00236 };
00237 
00238 static const CGEN_OPINST sfmt_ld_d_ops[] ATTRIBUTE_UNUSED = {
00239   { INPUT, "h_memory_SI_add__DFLT_sr_slo16", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
00240   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
00241   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00242   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00243   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00244 };
00245 
00246 static const CGEN_OPINST sfmt_ldb_ops[] ATTRIBUTE_UNUSED = {
00247   { INPUT, "h_memory_QI_sr", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
00248   { INPUT, "sr", HW_H_GR, CGEN_MODE_USI, OP_ENT (SR), 0, 0 },
00249   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00250   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00251 };
00252 
00253 static const CGEN_OPINST sfmt_ldb_d_ops[] ATTRIBUTE_UNUSED = {
00254   { INPUT, "h_memory_QI_add__DFLT_sr_slo16", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
00255   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
00256   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00257   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00258   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00259 };
00260 
00261 static const CGEN_OPINST sfmt_ldh_ops[] ATTRIBUTE_UNUSED = {
00262   { INPUT, "h_memory_HI_sr", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
00263   { INPUT, "sr", HW_H_GR, CGEN_MODE_USI, OP_ENT (SR), 0, 0 },
00264   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00265   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00266 };
00267 
00268 static const CGEN_OPINST sfmt_ldh_d_ops[] ATTRIBUTE_UNUSED = {
00269   { INPUT, "h_memory_HI_add__DFLT_sr_slo16", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
00270   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
00271   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00272   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00273   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00274 };
00275 
00276 static const CGEN_OPINST sfmt_ld_plus_ops[] ATTRIBUTE_UNUSED = {
00277   { INPUT, "h_memory_SI_sr", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
00278   { INPUT, "sr", HW_H_GR, CGEN_MODE_USI, OP_ENT (SR), 0, 0 },
00279   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00280   { OUTPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00281   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00282 };
00283 
00284 static const CGEN_OPINST sfmt_ld24_ops[] ATTRIBUTE_UNUSED = {
00285   { INPUT, "uimm24", HW_H_ADDR, CGEN_MODE_USI, OP_ENT (UIMM24), 0, 0 },
00286   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00287   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00288 };
00289 
00290 static const CGEN_OPINST sfmt_ldi8_ops[] ATTRIBUTE_UNUSED = {
00291   { INPUT, "simm8", HW_H_SINT, CGEN_MODE_INT, OP_ENT (SIMM8), 0, 0 },
00292   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00293   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00294 };
00295 
00296 static const CGEN_OPINST sfmt_ldi16_ops[] ATTRIBUTE_UNUSED = {
00297   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
00298   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00299   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00300 };
00301 
00302 static const CGEN_OPINST sfmt_lock_ops[] ATTRIBUTE_UNUSED = {
00303   { INPUT, "h_memory_SI_sr", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
00304   { INPUT, "sr", HW_H_GR, CGEN_MODE_USI, OP_ENT (SR), 0, 0 },
00305   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00306   { OUTPUT, "h_lock_BI", HW_H_LOCK, CGEN_MODE_BI, 0, 0, 0 },
00307   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00308 };
00309 
00310 static const CGEN_OPINST sfmt_machi_ops[] ATTRIBUTE_UNUSED = {
00311   { INPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
00312   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00313   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00314   { OUTPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
00315   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00316 };
00317 
00318 static const CGEN_OPINST sfmt_machi_a_ops[] ATTRIBUTE_UNUSED = {
00319   { INPUT, "acc", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACC), 0, 0 },
00320   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00321   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00322   { OUTPUT, "acc", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACC), 0, 0 },
00323   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00324 };
00325 
00326 static const CGEN_OPINST sfmt_mulhi_ops[] ATTRIBUTE_UNUSED = {
00327   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00328   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00329   { OUTPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
00330   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00331 };
00332 
00333 static const CGEN_OPINST sfmt_mulhi_a_ops[] ATTRIBUTE_UNUSED = {
00334   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00335   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00336   { OUTPUT, "acc", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACC), 0, 0 },
00337   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00338 };
00339 
00340 static const CGEN_OPINST sfmt_mv_ops[] ATTRIBUTE_UNUSED = {
00341   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00342   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00343   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00344 };
00345 
00346 static const CGEN_OPINST sfmt_mvfachi_ops[] ATTRIBUTE_UNUSED = {
00347   { INPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
00348   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00349   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00350 };
00351 
00352 static const CGEN_OPINST sfmt_mvfachi_a_ops[] ATTRIBUTE_UNUSED = {
00353   { INPUT, "accs", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACCS), 0, 0 },
00354   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00355   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00356 };
00357 
00358 static const CGEN_OPINST sfmt_mvfc_ops[] ATTRIBUTE_UNUSED = {
00359   { INPUT, "scr", HW_H_CR, CGEN_MODE_USI, OP_ENT (SCR), 0, 0 },
00360   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00361   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00362 };
00363 
00364 static const CGEN_OPINST sfmt_mvtachi_ops[] ATTRIBUTE_UNUSED = {
00365   { INPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
00366   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00367   { OUTPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
00368   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00369 };
00370 
00371 static const CGEN_OPINST sfmt_mvtachi_a_ops[] ATTRIBUTE_UNUSED = {
00372   { INPUT, "accs", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACCS), 0, 0 },
00373   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00374   { OUTPUT, "accs", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACCS), 0, 0 },
00375   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00376 };
00377 
00378 static const CGEN_OPINST sfmt_mvtc_ops[] ATTRIBUTE_UNUSED = {
00379   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00380   { OUTPUT, "dcr", HW_H_CR, CGEN_MODE_USI, OP_ENT (DCR), 0, 0 },
00381   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00382 };
00383 
00384 static const CGEN_OPINST sfmt_nop_ops[] ATTRIBUTE_UNUSED = {
00385   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00386 };
00387 
00388 static const CGEN_OPINST sfmt_rac_ops[] ATTRIBUTE_UNUSED = {
00389   { INPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
00390   { OUTPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
00391   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00392 };
00393 
00394 static const CGEN_OPINST sfmt_rac_dsi_ops[] ATTRIBUTE_UNUSED = {
00395   { INPUT, "accs", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACCS), 0, 0 },
00396   { INPUT, "imm1", HW_H_UINT, CGEN_MODE_INT, OP_ENT (IMM1), 0, 0 },
00397   { OUTPUT, "accd", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACCD), 0, 0 },
00398   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00399 };
00400 
00401 static const CGEN_OPINST sfmt_rte_ops[] ATTRIBUTE_UNUSED = {
00402   { INPUT, "h_bbpsw_UQI", HW_H_BBPSW, CGEN_MODE_UQI, 0, 0, 0 },
00403   { INPUT, "h_bpsw_UQI", HW_H_BPSW, CGEN_MODE_UQI, 0, 0, 0 },
00404   { INPUT, "h_cr_USI_14", HW_H_CR, CGEN_MODE_USI, 0, 14, 0 },
00405   { INPUT, "h_cr_USI_6", HW_H_CR, CGEN_MODE_USI, 0, 6, 0 },
00406   { OUTPUT, "h_bpsw_UQI", HW_H_BPSW, CGEN_MODE_UQI, 0, 0, 0 },
00407   { OUTPUT, "h_cr_USI_6", HW_H_CR, CGEN_MODE_USI, 0, 6, 0 },
00408   { OUTPUT, "h_psw_UQI", HW_H_PSW, CGEN_MODE_UQI, 0, 0, 0 },
00409   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
00410   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00411 };
00412 
00413 static const CGEN_OPINST sfmt_seth_ops[] ATTRIBUTE_UNUSED = {
00414   { INPUT, "hi16", HW_H_HI16, CGEN_MODE_SI, OP_ENT (HI16), 0, 0 },
00415   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00416   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00417 };
00418 
00419 static const CGEN_OPINST sfmt_sll3_ops[] ATTRIBUTE_UNUSED = {
00420   { INPUT, "simm16", HW_H_SINT, CGEN_MODE_SI, OP_ENT (SIMM16), 0, 0 },
00421   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00422   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00423   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00424 };
00425 
00426 static const CGEN_OPINST sfmt_slli_ops[] ATTRIBUTE_UNUSED = {
00427   { INPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00428   { INPUT, "uimm5", HW_H_UINT, CGEN_MODE_INT, OP_ENT (UIMM5), 0, 0 },
00429   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00430   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00431 };
00432 
00433 static const CGEN_OPINST sfmt_st_ops[] ATTRIBUTE_UNUSED = {
00434   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00435   { INPUT, "src2", HW_H_GR, CGEN_MODE_USI, OP_ENT (SRC2), 0, 0 },
00436   { OUTPUT, "h_memory_SI_src2", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
00437   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00438 };
00439 
00440 static const CGEN_OPINST sfmt_st_d_ops[] ATTRIBUTE_UNUSED = {
00441   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
00442   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00443   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00444   { OUTPUT, "h_memory_SI_add__DFLT_src2_slo16", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
00445   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00446 };
00447 
00448 static const CGEN_OPINST sfmt_stb_ops[] ATTRIBUTE_UNUSED = {
00449   { INPUT, "src1", HW_H_GR, CGEN_MODE_QI, OP_ENT (SRC1), 0, 0 },
00450   { INPUT, "src2", HW_H_GR, CGEN_MODE_USI, OP_ENT (SRC2), 0, 0 },
00451   { OUTPUT, "h_memory_QI_src2", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
00452   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00453 };
00454 
00455 static const CGEN_OPINST sfmt_stb_d_ops[] ATTRIBUTE_UNUSED = {
00456   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
00457   { INPUT, "src1", HW_H_GR, CGEN_MODE_QI, OP_ENT (SRC1), 0, 0 },
00458   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00459   { OUTPUT, "h_memory_QI_add__DFLT_src2_slo16", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
00460   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00461 };
00462 
00463 static const CGEN_OPINST sfmt_sth_ops[] ATTRIBUTE_UNUSED = {
00464   { INPUT, "src1", HW_H_GR, CGEN_MODE_HI, OP_ENT (SRC1), 0, 0 },
00465   { INPUT, "src2", HW_H_GR, CGEN_MODE_USI, OP_ENT (SRC2), 0, 0 },
00466   { OUTPUT, "h_memory_HI_src2", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
00467   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00468 };
00469 
00470 static const CGEN_OPINST sfmt_sth_d_ops[] ATTRIBUTE_UNUSED = {
00471   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
00472   { INPUT, "src1", HW_H_GR, CGEN_MODE_HI, OP_ENT (SRC1), 0, 0 },
00473   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00474   { OUTPUT, "h_memory_HI_add__DFLT_src2_slo16", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
00475   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00476 };
00477 
00478 static const CGEN_OPINST sfmt_st_plus_ops[] ATTRIBUTE_UNUSED = {
00479   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00480   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00481   { OUTPUT, "h_memory_SI_new_src2", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
00482   { OUTPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00483   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00484 };
00485 
00486 static const CGEN_OPINST sfmt_sth_plus_ops[] ATTRIBUTE_UNUSED = {
00487   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00488   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00489   { OUTPUT, "h_memory_HI_new_src2", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
00490   { OUTPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00491   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00492 };
00493 
00494 static const CGEN_OPINST sfmt_stb_plus_ops[] ATTRIBUTE_UNUSED = {
00495   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00496   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00497   { OUTPUT, "h_memory_QI_new_src2", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
00498   { OUTPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00499   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00500 };
00501 
00502 static const CGEN_OPINST sfmt_trap_ops[] ATTRIBUTE_UNUSED = {
00503   { INPUT, "h_bpsw_UQI", HW_H_BPSW, CGEN_MODE_UQI, 0, 0, 0 },
00504   { INPUT, "h_cr_USI_6", HW_H_CR, CGEN_MODE_USI, 0, 6, 0 },
00505   { INPUT, "h_psw_UQI", HW_H_PSW, CGEN_MODE_UQI, 0, 0, 0 },
00506   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
00507   { INPUT, "uimm4", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (UIMM4), 0, 0 },
00508   { OUTPUT, "h_bbpsw_UQI", HW_H_BBPSW, CGEN_MODE_UQI, 0, 0, 0 },
00509   { OUTPUT, "h_bpsw_UQI", HW_H_BPSW, CGEN_MODE_UQI, 0, 0, 0 },
00510   { OUTPUT, "h_cr_USI_14", HW_H_CR, CGEN_MODE_USI, 0, 14, 0 },
00511   { OUTPUT, "h_cr_USI_6", HW_H_CR, CGEN_MODE_USI, 0, 6, 0 },
00512   { OUTPUT, "h_psw_UQI", HW_H_PSW, CGEN_MODE_UQI, 0, 0, 0 },
00513   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_SI, 0, 0, 0 },
00514   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00515 };
00516 
00517 static const CGEN_OPINST sfmt_unlock_ops[] ATTRIBUTE_UNUSED = {
00518   { INPUT, "h_lock_BI", HW_H_LOCK, CGEN_MODE_BI, 0, 0, 0 },
00519   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, COND_REF },
00520   { INPUT, "src2", HW_H_GR, CGEN_MODE_USI, OP_ENT (SRC2), 0, COND_REF },
00521   { OUTPUT, "h_lock_BI", HW_H_LOCK, CGEN_MODE_BI, 0, 0, 0 },
00522   { OUTPUT, "h_memory_SI_src2", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, COND_REF },
00523   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00524 };
00525 
00526 static const CGEN_OPINST sfmt_satb_ops[] ATTRIBUTE_UNUSED = {
00527   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00528   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00529   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00530 };
00531 
00532 static const CGEN_OPINST sfmt_sat_ops[] ATTRIBUTE_UNUSED = {
00533   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00534   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, COND_REF },
00535   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
00536   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00537 };
00538 
00539 static const CGEN_OPINST sfmt_sadd_ops[] ATTRIBUTE_UNUSED = {
00540   { INPUT, "h_accums_DI_0", HW_H_ACCUMS, CGEN_MODE_DI, 0, 0, 0 },
00541   { INPUT, "h_accums_DI_1", HW_H_ACCUMS, CGEN_MODE_DI, 0, 1, 0 },
00542   { OUTPUT, "h_accums_DI_0", HW_H_ACCUMS, CGEN_MODE_DI, 0, 0, 0 },
00543   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00544 };
00545 
00546 static const CGEN_OPINST sfmt_macwu1_ops[] ATTRIBUTE_UNUSED = {
00547   { INPUT, "h_accums_DI_1", HW_H_ACCUMS, CGEN_MODE_DI, 0, 1, 0 },
00548   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00549   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00550   { OUTPUT, "h_accums_DI_1", HW_H_ACCUMS, CGEN_MODE_DI, 0, 1, 0 },
00551   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00552 };
00553 
00554 static const CGEN_OPINST sfmt_mulwu1_ops[] ATTRIBUTE_UNUSED = {
00555   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
00556   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
00557   { OUTPUT, "h_accums_DI_1", HW_H_ACCUMS, CGEN_MODE_DI, 0, 1, 0 },
00558   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00559 };
00560 
00561 static const CGEN_OPINST sfmt_sc_ops[] ATTRIBUTE_UNUSED = {
00562   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00563   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00564 };
00565 
00566 static const CGEN_OPINST sfmt_clrpsw_ops[] ATTRIBUTE_UNUSED = {
00567   { INPUT, "h_cr_USI_0", HW_H_CR, CGEN_MODE_USI, 0, 0, 0 },
00568   { INPUT, "uimm8", HW_H_UINT, CGEN_MODE_BI, OP_ENT (UIMM8), 0, 0 },
00569   { OUTPUT, "h_cr_USI_0", HW_H_CR, CGEN_MODE_USI, 0, 0, 0 },
00570   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00571 };
00572 
00573 static const CGEN_OPINST sfmt_setpsw_ops[] ATTRIBUTE_UNUSED = {
00574   { INPUT, "uimm8", HW_H_UINT, CGEN_MODE_USI, OP_ENT (UIMM8), 0, 0 },
00575   { OUTPUT, "h_cr_USI_0", HW_H_CR, CGEN_MODE_USI, 0, 0, 0 },
00576   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00577 };
00578 
00579 static const CGEN_OPINST sfmt_bset_ops[] ATTRIBUTE_UNUSED = {
00580   { INPUT, "h_memory_QI_add__DFLT_sr_slo16", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
00581   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
00582   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
00583   { INPUT, "uimm3", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (UIMM3), 0, 0 },
00584   { OUTPUT, "h_memory_QI_add__DFLT_sr_slo16", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
00585   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00586 };
00587 
00588 static const CGEN_OPINST sfmt_btst_ops[] ATTRIBUTE_UNUSED = {
00589   { INPUT, "sr", HW_H_GR, CGEN_MODE_USI, OP_ENT (SR), 0, 0 },
00590   { INPUT, "uimm3", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (UIMM3), 0, 0 },
00591   { OUTPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
00592   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
00593 };
00594 
00595 #undef OP_ENT
00596 #undef INPUT
00597 #undef OUTPUT
00598 #undef END
00599 #undef COND_REF
00600 
00601 /* Operand instance lookup table.  */
00602 
00603 static const CGEN_OPINST *m32r_cgen_opinst_table[MAX_INSNS] = {
00604   0,
00605   & sfmt_add_ops[0],
00606   & sfmt_add3_ops[0],
00607   & sfmt_add_ops[0],
00608   & sfmt_and3_ops[0],
00609   & sfmt_add_ops[0],
00610   & sfmt_or3_ops[0],
00611   & sfmt_add_ops[0],
00612   & sfmt_and3_ops[0],
00613   & sfmt_addi_ops[0],
00614   & sfmt_addv_ops[0],
00615   & sfmt_addv3_ops[0],
00616   & sfmt_addx_ops[0],
00617   & sfmt_bc8_ops[0],
00618   & sfmt_bc24_ops[0],
00619   & sfmt_beq_ops[0],
00620   & sfmt_beqz_ops[0],
00621   & sfmt_beqz_ops[0],
00622   & sfmt_beqz_ops[0],
00623   & sfmt_beqz_ops[0],
00624   & sfmt_beqz_ops[0],
00625   & sfmt_beqz_ops[0],
00626   & sfmt_bl8_ops[0],
00627   & sfmt_bl24_ops[0],
00628   & sfmt_bcl8_ops[0],
00629   & sfmt_bcl24_ops[0],
00630   & sfmt_bc8_ops[0],
00631   & sfmt_bc24_ops[0],
00632   & sfmt_beq_ops[0],
00633   & sfmt_bra8_ops[0],
00634   & sfmt_bra24_ops[0],
00635   & sfmt_bcl8_ops[0],
00636   & sfmt_bcl24_ops[0],
00637   & sfmt_cmp_ops[0],
00638   & sfmt_cmpi_ops[0],
00639   & sfmt_cmp_ops[0],
00640   & sfmt_cmpi_ops[0],
00641   & sfmt_cmp_ops[0],
00642   & sfmt_cmpz_ops[0],
00643   & sfmt_div_ops[0],
00644   & sfmt_div_ops[0],
00645   & sfmt_div_ops[0],
00646   & sfmt_div_ops[0],
00647   & sfmt_div_ops[0],
00648   & sfmt_div_ops[0],
00649   & sfmt_div_ops[0],
00650   & sfmt_div_ops[0],
00651   & sfmt_div_ops[0],
00652   & sfmt_div_ops[0],
00653   & sfmt_div_ops[0],
00654   & sfmt_div_ops[0],
00655   & sfmt_jc_ops[0],
00656   & sfmt_jc_ops[0],
00657   & sfmt_jl_ops[0],
00658   & sfmt_jmp_ops[0],
00659   & sfmt_ld_ops[0],
00660   & sfmt_ld_d_ops[0],
00661   & sfmt_ldb_ops[0],
00662   & sfmt_ldb_d_ops[0],
00663   & sfmt_ldh_ops[0],
00664   & sfmt_ldh_d_ops[0],
00665   & sfmt_ldb_ops[0],
00666   & sfmt_ldb_d_ops[0],
00667   & sfmt_ldh_ops[0],
00668   & sfmt_ldh_d_ops[0],
00669   & sfmt_ld_plus_ops[0],
00670   & sfmt_ld24_ops[0],
00671   & sfmt_ldi8_ops[0],
00672   & sfmt_ldi16_ops[0],
00673   & sfmt_lock_ops[0],
00674   & sfmt_machi_ops[0],
00675   & sfmt_machi_a_ops[0],
00676   & sfmt_machi_ops[0],
00677   & sfmt_machi_a_ops[0],
00678   & sfmt_machi_ops[0],
00679   & sfmt_machi_a_ops[0],
00680   & sfmt_machi_ops[0],
00681   & sfmt_machi_a_ops[0],
00682   & sfmt_add_ops[0],
00683   & sfmt_mulhi_ops[0],
00684   & sfmt_mulhi_a_ops[0],
00685   & sfmt_mulhi_ops[0],
00686   & sfmt_mulhi_a_ops[0],
00687   & sfmt_mulhi_ops[0],
00688   & sfmt_mulhi_a_ops[0],
00689   & sfmt_mulhi_ops[0],
00690   & sfmt_mulhi_a_ops[0],
00691   & sfmt_mv_ops[0],
00692   & sfmt_mvfachi_ops[0],
00693   & sfmt_mvfachi_a_ops[0],
00694   & sfmt_mvfachi_ops[0],
00695   & sfmt_mvfachi_a_ops[0],
00696   & sfmt_mvfachi_ops[0],
00697   & sfmt_mvfachi_a_ops[0],
00698   & sfmt_mvfc_ops[0],
00699   & sfmt_mvtachi_ops[0],
00700   & sfmt_mvtachi_a_ops[0],
00701   & sfmt_mvtachi_ops[0],
00702   & sfmt_mvtachi_a_ops[0],
00703   & sfmt_mvtc_ops[0],
00704   & sfmt_mv_ops[0],
00705   & sfmt_nop_ops[0],
00706   & sfmt_mv_ops[0],
00707   & sfmt_rac_ops[0],
00708   & sfmt_rac_dsi_ops[0],
00709   & sfmt_rac_ops[0],
00710   & sfmt_rac_dsi_ops[0],
00711   & sfmt_rte_ops[0],
00712   & sfmt_seth_ops[0],
00713   & sfmt_add_ops[0],
00714   & sfmt_sll3_ops[0],
00715   & sfmt_slli_ops[0],
00716   & sfmt_add_ops[0],
00717   & sfmt_sll3_ops[0],
00718   & sfmt_slli_ops[0],
00719   & sfmt_add_ops[0],
00720   & sfmt_sll3_ops[0],
00721   & sfmt_slli_ops[0],
00722   & sfmt_st_ops[0],
00723   & sfmt_st_d_ops[0],
00724   & sfmt_stb_ops[0],
00725   & sfmt_stb_d_ops[0],
00726   & sfmt_sth_ops[0],
00727   & sfmt_sth_d_ops[0],
00728   & sfmt_st_plus_ops[0],
00729   & sfmt_sth_plus_ops[0],
00730   & sfmt_stb_plus_ops[0],
00731   & sfmt_st_plus_ops[0],
00732   & sfmt_add_ops[0],
00733   & sfmt_addv_ops[0],
00734   & sfmt_addx_ops[0],
00735   & sfmt_trap_ops[0],
00736   & sfmt_unlock_ops[0],
00737   & sfmt_satb_ops[0],
00738   & sfmt_satb_ops[0],
00739   & sfmt_sat_ops[0],
00740   & sfmt_cmpz_ops[0],
00741   & sfmt_sadd_ops[0],
00742   & sfmt_macwu1_ops[0],
00743   & sfmt_machi_ops[0],
00744   & sfmt_mulwu1_ops[0],
00745   & sfmt_macwu1_ops[0],
00746   & sfmt_sc_ops[0],
00747   & sfmt_sc_ops[0],
00748   & sfmt_clrpsw_ops[0],
00749   & sfmt_setpsw_ops[0],
00750   & sfmt_bset_ops[0],
00751   & sfmt_bset_ops[0],
00752   & sfmt_btst_ops[0],
00753 };
00754 
00755 /* Function to call before using the operand instance table.  */
00756 
00757 void
00758 m32r_cgen_init_opinst_table (cd)
00759      CGEN_CPU_DESC cd;
00760 {
00761   int i;
00762   const CGEN_OPINST **oi = & m32r_cgen_opinst_table[0];
00763   CGEN_INSN *insns = (CGEN_INSN *) cd->insn_table.init_entries;
00764   for (i = 0; i < MAX_INSNS; ++i)
00765     insns[i].opinst = oi[i];
00766 }