Home | History | Annotate | Download | only in opcodes
      1 /* Semantic operand instances for m32r.
      2 
      3 THIS FILE IS MACHINE GENERATED WITH CGEN.
      4 
      5 Copyright (C) 1996-2016 Free Software Foundation, Inc.
      6 
      7 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
      8 
      9    This file is free software; you can redistribute it and/or modify
     10    it under the terms of the GNU General Public License as published by
     11    the Free Software Foundation; either version 3, or (at your option)
     12    any later version.
     13 
     14    It is distributed in the hope that it will be useful, but WITHOUT
     15    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     16    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     17    License for more details.
     18 
     19    You should have received a copy of the GNU General Public License along
     20    with this program; if not, write to the Free Software Foundation, Inc.,
     21    51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
     22 
     23 */
     24 
     25 #include "sysdep.h"
     26 #include "ansidecl.h"
     27 #include "bfd.h"
     28 #include "symcat.h"
     29 #include "m32r-desc.h"
     30 #include "m32r-opc.h"
     31 
     32 /* Operand references.  */
     33 
     34 #define OP_ENT(op) M32R_OPERAND_##op
     35 #define INPUT CGEN_OPINST_INPUT
     36 #define OUTPUT CGEN_OPINST_OUTPUT
     37 #define END CGEN_OPINST_END
     38 #define COND_REF CGEN_OPINST_COND_REF
     39 
     40 static const CGEN_OPINST sfmt_empty_ops[] ATTRIBUTE_UNUSED = {
     41   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     42 };
     43 
     44 static const CGEN_OPINST sfmt_add_ops[] ATTRIBUTE_UNUSED = {
     45   { INPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
     46   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
     47   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
     48   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     49 };
     50 
     51 static const CGEN_OPINST sfmt_add3_ops[] ATTRIBUTE_UNUSED = {
     52   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
     53   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
     54   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
     55   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     56 };
     57 
     58 static const CGEN_OPINST sfmt_and3_ops[] ATTRIBUTE_UNUSED = {
     59   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
     60   { INPUT, "uimm16", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (UIMM16), 0, 0 },
     61   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
     62   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     63 };
     64 
     65 static const CGEN_OPINST sfmt_or3_ops[] ATTRIBUTE_UNUSED = {
     66   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
     67   { INPUT, "ulo16", HW_H_ULO16, CGEN_MODE_UINT, OP_ENT (ULO16), 0, 0 },
     68   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
     69   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     70 };
     71 
     72 static const CGEN_OPINST sfmt_addi_ops[] ATTRIBUTE_UNUSED = {
     73   { INPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
     74   { INPUT, "simm8", HW_H_SINT, CGEN_MODE_INT, OP_ENT (SIMM8), 0, 0 },
     75   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
     76   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     77 };
     78 
     79 static const CGEN_OPINST sfmt_addv_ops[] ATTRIBUTE_UNUSED = {
     80   { INPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
     81   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
     82   { OUTPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
     83   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
     84   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     85 };
     86 
     87 static const CGEN_OPINST sfmt_addv3_ops[] ATTRIBUTE_UNUSED = {
     88   { INPUT, "simm16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
     89   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
     90   { OUTPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
     91   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
     92   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     93 };
     94 
     95 static const CGEN_OPINST sfmt_addx_ops[] ATTRIBUTE_UNUSED = {
     96   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
     97   { INPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
     98   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
     99   { OUTPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
    100   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    101   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    102 };
    103 
    104 static const CGEN_OPINST sfmt_bc8_ops[] ATTRIBUTE_UNUSED = {
    105   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
    106   { INPUT, "disp8", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP8), 0, COND_REF },
    107   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
    108   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    109 };
    110 
    111 static const CGEN_OPINST sfmt_bc24_ops[] ATTRIBUTE_UNUSED = {
    112   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
    113   { INPUT, "disp24", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP24), 0, COND_REF },
    114   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
    115   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    116 };
    117 
    118 static const CGEN_OPINST sfmt_beq_ops[] ATTRIBUTE_UNUSED = {
    119   { INPUT, "disp16", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP16), 0, COND_REF },
    120   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    121   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    122   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
    123   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    124 };
    125 
    126 static const CGEN_OPINST sfmt_beqz_ops[] ATTRIBUTE_UNUSED = {
    127   { INPUT, "disp16", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP16), 0, COND_REF },
    128   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    129   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
    130   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    131 };
    132 
    133 static const CGEN_OPINST sfmt_bl8_ops[] ATTRIBUTE_UNUSED = {
    134   { INPUT, "disp8", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP8), 0, 0 },
    135   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    136   { OUTPUT, "h_gr_SI_14", HW_H_GR, CGEN_MODE_SI, 0, 14, 0 },
    137   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    138   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    139 };
    140 
    141 static const CGEN_OPINST sfmt_bl24_ops[] ATTRIBUTE_UNUSED = {
    142   { INPUT, "disp24", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP24), 0, 0 },
    143   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    144   { OUTPUT, "h_gr_SI_14", HW_H_GR, CGEN_MODE_SI, 0, 14, 0 },
    145   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    146   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    147 };
    148 
    149 static const CGEN_OPINST sfmt_bcl8_ops[] ATTRIBUTE_UNUSED = {
    150   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
    151   { INPUT, "disp8", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP8), 0, COND_REF },
    152   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
    153   { OUTPUT, "h_gr_SI_14", HW_H_GR, CGEN_MODE_SI, 0, 14, COND_REF },
    154   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
    155   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    156 };
    157 
    158 static const CGEN_OPINST sfmt_bcl24_ops[] ATTRIBUTE_UNUSED = {
    159   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
    160   { INPUT, "disp24", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP24), 0, COND_REF },
    161   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
    162   { OUTPUT, "h_gr_SI_14", HW_H_GR, CGEN_MODE_SI, 0, 14, COND_REF },
    163   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
    164   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    165 };
    166 
    167 static const CGEN_OPINST sfmt_bra8_ops[] ATTRIBUTE_UNUSED = {
    168   { INPUT, "disp8", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP8), 0, 0 },
    169   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    170   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    171 };
    172 
    173 static const CGEN_OPINST sfmt_bra24_ops[] ATTRIBUTE_UNUSED = {
    174   { INPUT, "disp24", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (DISP24), 0, 0 },
    175   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    176   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    177 };
    178 
    179 static const CGEN_OPINST sfmt_cmp_ops[] ATTRIBUTE_UNUSED = {
    180   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    181   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    182   { OUTPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
    183   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    184 };
    185 
    186 static const CGEN_OPINST sfmt_cmpi_ops[] ATTRIBUTE_UNUSED = {
    187   { INPUT, "simm16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
    188   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    189   { OUTPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
    190   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    191 };
    192 
    193 static const CGEN_OPINST sfmt_cmpz_ops[] ATTRIBUTE_UNUSED = {
    194   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    195   { OUTPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
    196   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    197 };
    198 
    199 static const CGEN_OPINST sfmt_div_ops[] ATTRIBUTE_UNUSED = {
    200   { INPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, COND_REF },
    201   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    202   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, COND_REF },
    203   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    204 };
    205 
    206 static const CGEN_OPINST sfmt_jc_ops[] ATTRIBUTE_UNUSED = {
    207   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
    208   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, COND_REF },
    209   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
    210   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    211 };
    212 
    213 static const CGEN_OPINST sfmt_jl_ops[] ATTRIBUTE_UNUSED = {
    214   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    215   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    216   { OUTPUT, "h_gr_SI_14", HW_H_GR, CGEN_MODE_SI, 0, 14, 0 },
    217   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    218   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    219 };
    220 
    221 static const CGEN_OPINST sfmt_jmp_ops[] ATTRIBUTE_UNUSED = {
    222   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    223   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    224   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    225 };
    226 
    227 static const CGEN_OPINST sfmt_ld_ops[] ATTRIBUTE_UNUSED = {
    228   { INPUT, "h_memory_SI_sr", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
    229   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    230   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    231   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    232 };
    233 
    234 static const CGEN_OPINST sfmt_ld_d_ops[] ATTRIBUTE_UNUSED = {
    235   { INPUT, "h_memory_SI_add__SI_sr_slo16", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
    236   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
    237   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    238   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    239   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    240 };
    241 
    242 static const CGEN_OPINST sfmt_ldb_ops[] ATTRIBUTE_UNUSED = {
    243   { INPUT, "h_memory_QI_sr", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
    244   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    245   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    246   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    247 };
    248 
    249 static const CGEN_OPINST sfmt_ldb_d_ops[] ATTRIBUTE_UNUSED = {
    250   { INPUT, "h_memory_QI_add__SI_sr_slo16", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
    251   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
    252   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    253   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    254   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    255 };
    256 
    257 static const CGEN_OPINST sfmt_ldh_ops[] ATTRIBUTE_UNUSED = {
    258   { INPUT, "h_memory_HI_sr", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
    259   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    260   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    261   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    262 };
    263 
    264 static const CGEN_OPINST sfmt_ldh_d_ops[] ATTRIBUTE_UNUSED = {
    265   { INPUT, "h_memory_HI_add__SI_sr_slo16", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
    266   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
    267   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    268   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    269   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    270 };
    271 
    272 static const CGEN_OPINST sfmt_ld_plus_ops[] ATTRIBUTE_UNUSED = {
    273   { INPUT, "h_memory_SI_sr", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
    274   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    275   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    276   { OUTPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    277   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    278 };
    279 
    280 static const CGEN_OPINST sfmt_ld24_ops[] ATTRIBUTE_UNUSED = {
    281   { INPUT, "uimm24", HW_H_ADDR, CGEN_MODE_USI, OP_ENT (UIMM24), 0, 0 },
    282   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    283   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    284 };
    285 
    286 static const CGEN_OPINST sfmt_ldi8_ops[] ATTRIBUTE_UNUSED = {
    287   { INPUT, "simm8", HW_H_SINT, CGEN_MODE_INT, OP_ENT (SIMM8), 0, 0 },
    288   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    289   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    290 };
    291 
    292 static const CGEN_OPINST sfmt_ldi16_ops[] ATTRIBUTE_UNUSED = {
    293   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
    294   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    295   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    296 };
    297 
    298 static const CGEN_OPINST sfmt_lock_ops[] ATTRIBUTE_UNUSED = {
    299   { INPUT, "h_memory_SI_sr", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
    300   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    301   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    302   { OUTPUT, "h_lock_BI", HW_H_LOCK, CGEN_MODE_BI, 0, 0, 0 },
    303   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    304 };
    305 
    306 static const CGEN_OPINST sfmt_machi_ops[] ATTRIBUTE_UNUSED = {
    307   { INPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
    308   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    309   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    310   { OUTPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
    311   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    312 };
    313 
    314 static const CGEN_OPINST sfmt_machi_a_ops[] ATTRIBUTE_UNUSED = {
    315   { INPUT, "acc", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACC), 0, 0 },
    316   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    317   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    318   { OUTPUT, "acc", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACC), 0, 0 },
    319   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    320 };
    321 
    322 static const CGEN_OPINST sfmt_mulhi_ops[] ATTRIBUTE_UNUSED = {
    323   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    324   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    325   { OUTPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
    326   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    327 };
    328 
    329 static const CGEN_OPINST sfmt_mulhi_a_ops[] ATTRIBUTE_UNUSED = {
    330   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    331   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    332   { OUTPUT, "acc", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACC), 0, 0 },
    333   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    334 };
    335 
    336 static const CGEN_OPINST sfmt_mv_ops[] ATTRIBUTE_UNUSED = {
    337   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    338   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    339   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    340 };
    341 
    342 static const CGEN_OPINST sfmt_mvfachi_ops[] ATTRIBUTE_UNUSED = {
    343   { INPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
    344   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    345   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    346 };
    347 
    348 static const CGEN_OPINST sfmt_mvfachi_a_ops[] ATTRIBUTE_UNUSED = {
    349   { INPUT, "accs", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACCS), 0, 0 },
    350   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    351   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    352 };
    353 
    354 static const CGEN_OPINST sfmt_mvfc_ops[] ATTRIBUTE_UNUSED = {
    355   { INPUT, "scr", HW_H_CR, CGEN_MODE_USI, OP_ENT (SCR), 0, 0 },
    356   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    357   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    358 };
    359 
    360 static const CGEN_OPINST sfmt_mvtachi_ops[] ATTRIBUTE_UNUSED = {
    361   { INPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
    362   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    363   { OUTPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
    364   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    365 };
    366 
    367 static const CGEN_OPINST sfmt_mvtachi_a_ops[] ATTRIBUTE_UNUSED = {
    368   { INPUT, "accs", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACCS), 0, 0 },
    369   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    370   { OUTPUT, "accs", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACCS), 0, 0 },
    371   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    372 };
    373 
    374 static const CGEN_OPINST sfmt_mvtc_ops[] ATTRIBUTE_UNUSED = {
    375   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    376   { OUTPUT, "dcr", HW_H_CR, CGEN_MODE_USI, OP_ENT (DCR), 0, 0 },
    377   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    378 };
    379 
    380 static const CGEN_OPINST sfmt_nop_ops[] ATTRIBUTE_UNUSED = {
    381   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    382 };
    383 
    384 static const CGEN_OPINST sfmt_rac_ops[] ATTRIBUTE_UNUSED = {
    385   { INPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
    386   { OUTPUT, "accum", HW_H_ACCUM, CGEN_MODE_DI, 0, 0, 0 },
    387   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    388 };
    389 
    390 static const CGEN_OPINST sfmt_rac_dsi_ops[] ATTRIBUTE_UNUSED = {
    391   { INPUT, "accs", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACCS), 0, 0 },
    392   { INPUT, "imm1", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (IMM1), 0, 0 },
    393   { OUTPUT, "accd", HW_H_ACCUMS, CGEN_MODE_DI, OP_ENT (ACCD), 0, 0 },
    394   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    395 };
    396 
    397 static const CGEN_OPINST sfmt_rte_ops[] ATTRIBUTE_UNUSED = {
    398   { INPUT, "h_bbpsw_UQI", HW_H_BBPSW, CGEN_MODE_UQI, 0, 0, 0 },
    399   { INPUT, "h_bpsw_UQI", HW_H_BPSW, CGEN_MODE_UQI, 0, 0, 0 },
    400   { INPUT, "h_cr_USI_14", HW_H_CR, CGEN_MODE_USI, 0, 14, 0 },
    401   { INPUT, "h_cr_USI_6", HW_H_CR, CGEN_MODE_USI, 0, 6, 0 },
    402   { OUTPUT, "h_bpsw_UQI", HW_H_BPSW, CGEN_MODE_UQI, 0, 0, 0 },
    403   { OUTPUT, "h_cr_USI_6", HW_H_CR, CGEN_MODE_USI, 0, 6, 0 },
    404   { OUTPUT, "h_psw_UQI", HW_H_PSW, CGEN_MODE_UQI, 0, 0, 0 },
    405   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    406   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    407 };
    408 
    409 static const CGEN_OPINST sfmt_seth_ops[] ATTRIBUTE_UNUSED = {
    410   { INPUT, "hi16", HW_H_HI16, CGEN_MODE_UINT, OP_ENT (HI16), 0, 0 },
    411   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    412   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    413 };
    414 
    415 static const CGEN_OPINST sfmt_sll3_ops[] ATTRIBUTE_UNUSED = {
    416   { INPUT, "simm16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (SIMM16), 0, 0 },
    417   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    418   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    419   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    420 };
    421 
    422 static const CGEN_OPINST sfmt_slli_ops[] ATTRIBUTE_UNUSED = {
    423   { INPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    424   { INPUT, "uimm5", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (UIMM5), 0, 0 },
    425   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    426   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    427 };
    428 
    429 static const CGEN_OPINST sfmt_st_ops[] ATTRIBUTE_UNUSED = {
    430   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    431   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    432   { OUTPUT, "h_memory_SI_src2", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
    433   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    434 };
    435 
    436 static const CGEN_OPINST sfmt_st_d_ops[] ATTRIBUTE_UNUSED = {
    437   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
    438   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    439   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    440   { OUTPUT, "h_memory_SI_add__SI_src2_slo16", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
    441   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    442 };
    443 
    444 static const CGEN_OPINST sfmt_stb_ops[] ATTRIBUTE_UNUSED = {
    445   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    446   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    447   { OUTPUT, "h_memory_QI_src2", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
    448   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    449 };
    450 
    451 static const CGEN_OPINST sfmt_stb_d_ops[] ATTRIBUTE_UNUSED = {
    452   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
    453   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    454   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    455   { OUTPUT, "h_memory_QI_add__SI_src2_slo16", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
    456   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    457 };
    458 
    459 static const CGEN_OPINST sfmt_sth_ops[] ATTRIBUTE_UNUSED = {
    460   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    461   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    462   { OUTPUT, "h_memory_HI_src2", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
    463   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    464 };
    465 
    466 static const CGEN_OPINST sfmt_sth_d_ops[] ATTRIBUTE_UNUSED = {
    467   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
    468   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    469   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    470   { OUTPUT, "h_memory_HI_add__SI_src2_slo16", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
    471   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    472 };
    473 
    474 static const CGEN_OPINST sfmt_st_plus_ops[] ATTRIBUTE_UNUSED = {
    475   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    476   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    477   { OUTPUT, "h_memory_SI_new_src2", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
    478   { OUTPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    479   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    480 };
    481 
    482 static const CGEN_OPINST sfmt_sth_plus_ops[] ATTRIBUTE_UNUSED = {
    483   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    484   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    485   { OUTPUT, "h_memory_HI_new_src2", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
    486   { OUTPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    487   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    488 };
    489 
    490 static const CGEN_OPINST sfmt_stb_plus_ops[] ATTRIBUTE_UNUSED = {
    491   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    492   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    493   { OUTPUT, "h_memory_QI_new_src2", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
    494   { OUTPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    495   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    496 };
    497 
    498 static const CGEN_OPINST sfmt_trap_ops[] ATTRIBUTE_UNUSED = {
    499   { INPUT, "h_bpsw_UQI", HW_H_BPSW, CGEN_MODE_UQI, 0, 0, 0 },
    500   { INPUT, "h_cr_USI_6", HW_H_CR, CGEN_MODE_USI, 0, 6, 0 },
    501   { INPUT, "h_psw_UQI", HW_H_PSW, CGEN_MODE_UQI, 0, 0, 0 },
    502   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    503   { INPUT, "uimm4", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (UIMM4), 0, 0 },
    504   { OUTPUT, "h_bbpsw_UQI", HW_H_BBPSW, CGEN_MODE_UQI, 0, 0, 0 },
    505   { OUTPUT, "h_bpsw_UQI", HW_H_BPSW, CGEN_MODE_UQI, 0, 0, 0 },
    506   { OUTPUT, "h_cr_USI_14", HW_H_CR, CGEN_MODE_USI, 0, 14, 0 },
    507   { OUTPUT, "h_cr_USI_6", HW_H_CR, CGEN_MODE_USI, 0, 6, 0 },
    508   { OUTPUT, "h_psw_UQI", HW_H_PSW, CGEN_MODE_UQI, 0, 0, 0 },
    509   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    510   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    511 };
    512 
    513 static const CGEN_OPINST sfmt_unlock_ops[] ATTRIBUTE_UNUSED = {
    514   { INPUT, "h_lock_BI", HW_H_LOCK, CGEN_MODE_BI, 0, 0, 0 },
    515   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, COND_REF },
    516   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, COND_REF },
    517   { OUTPUT, "h_lock_BI", HW_H_LOCK, CGEN_MODE_BI, 0, 0, 0 },
    518   { OUTPUT, "h_memory_SI_src2", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, COND_REF },
    519   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    520 };
    521 
    522 static const CGEN_OPINST sfmt_satb_ops[] ATTRIBUTE_UNUSED = {
    523   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    524   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    525   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    526 };
    527 
    528 static const CGEN_OPINST sfmt_sat_ops[] ATTRIBUTE_UNUSED = {
    529   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
    530   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, COND_REF },
    531   { OUTPUT, "dr", HW_H_GR, CGEN_MODE_SI, OP_ENT (DR), 0, 0 },
    532   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    533 };
    534 
    535 static const CGEN_OPINST sfmt_sadd_ops[] ATTRIBUTE_UNUSED = {
    536   { INPUT, "h_accums_DI_0", HW_H_ACCUMS, CGEN_MODE_DI, 0, 0, 0 },
    537   { INPUT, "h_accums_DI_1", HW_H_ACCUMS, CGEN_MODE_DI, 0, 1, 0 },
    538   { OUTPUT, "h_accums_DI_0", HW_H_ACCUMS, CGEN_MODE_DI, 0, 0, 0 },
    539   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    540 };
    541 
    542 static const CGEN_OPINST sfmt_macwu1_ops[] ATTRIBUTE_UNUSED = {
    543   { INPUT, "h_accums_DI_1", HW_H_ACCUMS, CGEN_MODE_DI, 0, 1, 0 },
    544   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    545   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    546   { OUTPUT, "h_accums_DI_1", HW_H_ACCUMS, CGEN_MODE_DI, 0, 1, 0 },
    547   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    548 };
    549 
    550 static const CGEN_OPINST sfmt_mulwu1_ops[] ATTRIBUTE_UNUSED = {
    551   { INPUT, "src1", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC1), 0, 0 },
    552   { INPUT, "src2", HW_H_GR, CGEN_MODE_SI, OP_ENT (SRC2), 0, 0 },
    553   { OUTPUT, "h_accums_DI_1", HW_H_ACCUMS, CGEN_MODE_DI, 0, 1, 0 },
    554   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    555 };
    556 
    557 static const CGEN_OPINST sfmt_sc_ops[] ATTRIBUTE_UNUSED = {
    558   { INPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
    559   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    560 };
    561 
    562 static const CGEN_OPINST sfmt_clrpsw_ops[] ATTRIBUTE_UNUSED = {
    563   { INPUT, "h_cr_USI_0", HW_H_CR, CGEN_MODE_USI, 0, 0, 0 },
    564   { INPUT, "uimm8", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (UIMM8), 0, 0 },
    565   { OUTPUT, "h_cr_USI_0", HW_H_CR, CGEN_MODE_USI, 0, 0, 0 },
    566   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    567 };
    568 
    569 static const CGEN_OPINST sfmt_setpsw_ops[] ATTRIBUTE_UNUSED = {
    570   { INPUT, "uimm8", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (UIMM8), 0, 0 },
    571   { OUTPUT, "h_cr_USI_0", HW_H_CR, CGEN_MODE_USI, 0, 0, 0 },
    572   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    573 };
    574 
    575 static const CGEN_OPINST sfmt_bset_ops[] ATTRIBUTE_UNUSED = {
    576   { INPUT, "h_memory_QI_add__SI_sr_slo16", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
    577   { INPUT, "slo16", HW_H_SLO16, CGEN_MODE_INT, OP_ENT (SLO16), 0, 0 },
    578   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    579   { INPUT, "uimm3", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (UIMM3), 0, 0 },
    580   { OUTPUT, "h_memory_QI_add__SI_sr_slo16", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
    581   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    582 };
    583 
    584 static const CGEN_OPINST sfmt_btst_ops[] ATTRIBUTE_UNUSED = {
    585   { INPUT, "sr", HW_H_GR, CGEN_MODE_SI, OP_ENT (SR), 0, 0 },
    586   { INPUT, "uimm3", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (UIMM3), 0, 0 },
    587   { OUTPUT, "condbit", HW_H_COND, CGEN_MODE_BI, 0, 0, 0 },
    588   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    589 };
    590 
    591 #undef OP_ENT
    592 #undef INPUT
    593 #undef OUTPUT
    594 #undef END
    595 #undef COND_REF
    596 
    597 /* Operand instance lookup table.  */
    598 
    599 static const CGEN_OPINST *m32r_cgen_opinst_table[MAX_INSNS] = {
    600   0,
    601   & sfmt_add_ops[0],
    602   & sfmt_add3_ops[0],
    603   & sfmt_add_ops[0],
    604   & sfmt_and3_ops[0],
    605   & sfmt_add_ops[0],
    606   & sfmt_or3_ops[0],
    607   & sfmt_add_ops[0],
    608   & sfmt_and3_ops[0],
    609   & sfmt_addi_ops[0],
    610   & sfmt_addv_ops[0],
    611   & sfmt_addv3_ops[0],
    612   & sfmt_addx_ops[0],
    613   & sfmt_bc8_ops[0],
    614   & sfmt_bc24_ops[0],
    615   & sfmt_beq_ops[0],
    616   & sfmt_beqz_ops[0],
    617   & sfmt_beqz_ops[0],
    618   & sfmt_beqz_ops[0],
    619   & sfmt_beqz_ops[0],
    620   & sfmt_beqz_ops[0],
    621   & sfmt_beqz_ops[0],
    622   & sfmt_bl8_ops[0],
    623   & sfmt_bl24_ops[0],
    624   & sfmt_bcl8_ops[0],
    625   & sfmt_bcl24_ops[0],
    626   & sfmt_bc8_ops[0],
    627   & sfmt_bc24_ops[0],
    628   & sfmt_beq_ops[0],
    629   & sfmt_bra8_ops[0],
    630   & sfmt_bra24_ops[0],
    631   & sfmt_bcl8_ops[0],
    632   & sfmt_bcl24_ops[0],
    633   & sfmt_cmp_ops[0],
    634   & sfmt_cmpi_ops[0],
    635   & sfmt_cmp_ops[0],
    636   & sfmt_cmpi_ops[0],
    637   & sfmt_cmp_ops[0],
    638   & sfmt_cmpz_ops[0],
    639   & sfmt_div_ops[0],
    640   & sfmt_div_ops[0],
    641   & sfmt_div_ops[0],
    642   & sfmt_div_ops[0],
    643   & sfmt_div_ops[0],
    644   & sfmt_div_ops[0],
    645   & sfmt_div_ops[0],
    646   & sfmt_div_ops[0],
    647   & sfmt_div_ops[0],
    648   & sfmt_div_ops[0],
    649   & sfmt_div_ops[0],
    650   & sfmt_div_ops[0],
    651   & sfmt_jc_ops[0],
    652   & sfmt_jc_ops[0],
    653   & sfmt_jl_ops[0],
    654   & sfmt_jmp_ops[0],
    655   & sfmt_ld_ops[0],
    656   & sfmt_ld_d_ops[0],
    657   & sfmt_ldb_ops[0],
    658   & sfmt_ldb_d_ops[0],
    659   & sfmt_ldh_ops[0],
    660   & sfmt_ldh_d_ops[0],
    661   & sfmt_ldb_ops[0],
    662   & sfmt_ldb_d_ops[0],
    663   & sfmt_ldh_ops[0],
    664   & sfmt_ldh_d_ops[0],
    665   & sfmt_ld_plus_ops[0],
    666   & sfmt_ld24_ops[0],
    667   & sfmt_ldi8_ops[0],
    668   & sfmt_ldi16_ops[0],
    669   & sfmt_lock_ops[0],
    670   & sfmt_machi_ops[0],
    671   & sfmt_machi_a_ops[0],
    672   & sfmt_machi_ops[0],
    673   & sfmt_machi_a_ops[0],
    674   & sfmt_machi_ops[0],
    675   & sfmt_machi_a_ops[0],
    676   & sfmt_machi_ops[0],
    677   & sfmt_machi_a_ops[0],
    678   & sfmt_add_ops[0],
    679   & sfmt_mulhi_ops[0],
    680   & sfmt_mulhi_a_ops[0],
    681   & sfmt_mulhi_ops[0],
    682   & sfmt_mulhi_a_ops[0],
    683   & sfmt_mulhi_ops[0],
    684   & sfmt_mulhi_a_ops[0],
    685   & sfmt_mulhi_ops[0],
    686   & sfmt_mulhi_a_ops[0],
    687   & sfmt_mv_ops[0],
    688   & sfmt_mvfachi_ops[0],
    689   & sfmt_mvfachi_a_ops[0],
    690   & sfmt_mvfachi_ops[0],
    691   & sfmt_mvfachi_a_ops[0],
    692   & sfmt_mvfachi_ops[0],
    693   & sfmt_mvfachi_a_ops[0],
    694   & sfmt_mvfc_ops[0],
    695   & sfmt_mvtachi_ops[0],
    696   & sfmt_mvtachi_a_ops[0],
    697   & sfmt_mvtachi_ops[0],
    698   & sfmt_mvtachi_a_ops[0],
    699   & sfmt_mvtc_ops[0],
    700   & sfmt_mv_ops[0],
    701   & sfmt_nop_ops[0],
    702   & sfmt_mv_ops[0],
    703   & sfmt_rac_ops[0],
    704   & sfmt_rac_dsi_ops[0],
    705   & sfmt_rac_ops[0],
    706   & sfmt_rac_dsi_ops[0],
    707   & sfmt_rte_ops[0],
    708   & sfmt_seth_ops[0],
    709   & sfmt_add_ops[0],
    710   & sfmt_sll3_ops[0],
    711   & sfmt_slli_ops[0],
    712   & sfmt_add_ops[0],
    713   & sfmt_sll3_ops[0],
    714   & sfmt_slli_ops[0],
    715   & sfmt_add_ops[0],
    716   & sfmt_sll3_ops[0],
    717   & sfmt_slli_ops[0],
    718   & sfmt_st_ops[0],
    719   & sfmt_st_d_ops[0],
    720   & sfmt_stb_ops[0],
    721   & sfmt_stb_d_ops[0],
    722   & sfmt_sth_ops[0],
    723   & sfmt_sth_d_ops[0],
    724   & sfmt_st_plus_ops[0],
    725   & sfmt_sth_plus_ops[0],
    726   & sfmt_stb_plus_ops[0],
    727   & sfmt_st_plus_ops[0],
    728   & sfmt_add_ops[0],
    729   & sfmt_addv_ops[0],
    730   & sfmt_addx_ops[0],
    731   & sfmt_trap_ops[0],
    732   & sfmt_unlock_ops[0],
    733   & sfmt_satb_ops[0],
    734   & sfmt_satb_ops[0],
    735   & sfmt_sat_ops[0],
    736   & sfmt_cmpz_ops[0],
    737   & sfmt_sadd_ops[0],
    738   & sfmt_macwu1_ops[0],
    739   & sfmt_machi_ops[0],
    740   & sfmt_mulwu1_ops[0],
    741   & sfmt_macwu1_ops[0],
    742   & sfmt_sc_ops[0],
    743   & sfmt_sc_ops[0],
    744   & sfmt_clrpsw_ops[0],
    745   & sfmt_setpsw_ops[0],
    746   & sfmt_bset_ops[0],
    747   & sfmt_bset_ops[0],
    748   & sfmt_btst_ops[0],
    749 };
    750 
    751 /* Function to call before using the operand instance table.  */
    752 
    753 void
    754 m32r_cgen_init_opinst_table (CGEN_CPU_DESC cd)
    755 {
    756   int i;
    757   const CGEN_OPINST **oi = & m32r_cgen_opinst_table[0];
    758   CGEN_INSN *insns = (CGEN_INSN *) cd->insn_table.init_entries;
    759   for (i = 0; i < MAX_INSNS; ++i)
    760     insns[i].opinst = oi[i];
    761 }
    762