1 /* DO NOT EDIT! -*- buffer-read-only: t -*- vi:set ro: */
2 /* Semantic operand instances for m32r.
4 THIS FILE IS MACHINE GENERATED WITH CGEN.
6 Copyright (C) 1996-2024 Free Software Foundation, Inc.
8 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
10 This file is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 3, or (at your option)
15 It is distributed in the hope that it will be useful, but WITHOUT
16 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
18 License for more details.
20 You should have received a copy of the GNU General Public License along
21 with this program; if not, write to the Free Software Foundation, Inc.,
22 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
30 #include "m32r-desc.h"
33 /* Operand references. */
35 #define OP_ENT(op) M32R_OPERAND_##op
36 #define INPUT CGEN_OPINST_INPUT
37 #define OUTPUT CGEN_OPINST_OUTPUT
38 #define END CGEN_OPINST_END
39 #define COND_REF CGEN_OPINST_COND_REF
41 static const CGEN_OPINST sfmt_empty_ops
[] ATTRIBUTE_UNUSED
= {
42 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
45 static const CGEN_OPINST sfmt_add_ops
[] ATTRIBUTE_UNUSED
= {
46 { INPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
47 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
48 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
49 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
52 static const CGEN_OPINST sfmt_add3_ops
[] ATTRIBUTE_UNUSED
= {
53 { INPUT
, "slo16", HW_H_SLO16
, CGEN_MODE_INT
, OP_ENT (SLO16
), 0, 0 },
54 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
55 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
56 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
59 static const CGEN_OPINST sfmt_and3_ops
[] ATTRIBUTE_UNUSED
= {
60 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
61 { INPUT
, "uimm16", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (UIMM16
), 0, 0 },
62 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
63 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
66 static const CGEN_OPINST sfmt_or3_ops
[] ATTRIBUTE_UNUSED
= {
67 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
68 { INPUT
, "ulo16", HW_H_ULO16
, CGEN_MODE_UINT
, OP_ENT (ULO16
), 0, 0 },
69 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
70 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
73 static const CGEN_OPINST sfmt_addi_ops
[] ATTRIBUTE_UNUSED
= {
74 { INPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
75 { INPUT
, "simm8", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (SIMM8
), 0, 0 },
76 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
77 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
80 static const CGEN_OPINST sfmt_addv_ops
[] ATTRIBUTE_UNUSED
= {
81 { INPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
82 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
83 { OUTPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
84 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
85 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
88 static const CGEN_OPINST sfmt_addv3_ops
[] ATTRIBUTE_UNUSED
= {
89 { INPUT
, "simm16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (SIMM16
), 0, 0 },
90 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
91 { OUTPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
92 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
93 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
96 static const CGEN_OPINST sfmt_addx_ops
[] ATTRIBUTE_UNUSED
= {
97 { INPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
98 { INPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
99 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
100 { OUTPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
101 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
102 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
105 static const CGEN_OPINST sfmt_bc8_ops
[] ATTRIBUTE_UNUSED
= {
106 { INPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
107 { INPUT
, "disp8", HW_H_IADDR
, CGEN_MODE_USI
, OP_ENT (DISP8
), 0, COND_REF
},
108 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, COND_REF
},
109 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
112 static const CGEN_OPINST sfmt_bc24_ops
[] ATTRIBUTE_UNUSED
= {
113 { INPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
114 { INPUT
, "disp24", HW_H_IADDR
, CGEN_MODE_USI
, OP_ENT (DISP24
), 0, COND_REF
},
115 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, COND_REF
},
116 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
119 static const CGEN_OPINST sfmt_beq_ops
[] ATTRIBUTE_UNUSED
= {
120 { INPUT
, "disp16", HW_H_IADDR
, CGEN_MODE_USI
, OP_ENT (DISP16
), 0, COND_REF
},
121 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
122 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
123 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, COND_REF
},
124 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
127 static const CGEN_OPINST sfmt_beqz_ops
[] ATTRIBUTE_UNUSED
= {
128 { INPUT
, "disp16", HW_H_IADDR
, CGEN_MODE_USI
, OP_ENT (DISP16
), 0, COND_REF
},
129 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
130 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, COND_REF
},
131 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
134 static const CGEN_OPINST sfmt_bl8_ops
[] ATTRIBUTE_UNUSED
= {
135 { INPUT
, "disp8", HW_H_IADDR
, CGEN_MODE_USI
, OP_ENT (DISP8
), 0, 0 },
136 { INPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
137 { OUTPUT
, "h_gr_SI_14", HW_H_GR
, CGEN_MODE_SI
, 0, 14, 0 },
138 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
139 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
142 static const CGEN_OPINST sfmt_bl24_ops
[] ATTRIBUTE_UNUSED
= {
143 { INPUT
, "disp24", HW_H_IADDR
, CGEN_MODE_USI
, OP_ENT (DISP24
), 0, 0 },
144 { INPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
145 { OUTPUT
, "h_gr_SI_14", HW_H_GR
, CGEN_MODE_SI
, 0, 14, 0 },
146 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
147 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
150 static const CGEN_OPINST sfmt_bcl8_ops
[] ATTRIBUTE_UNUSED
= {
151 { INPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
152 { INPUT
, "disp8", HW_H_IADDR
, CGEN_MODE_USI
, OP_ENT (DISP8
), 0, COND_REF
},
153 { INPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, COND_REF
},
154 { OUTPUT
, "h_gr_SI_14", HW_H_GR
, CGEN_MODE_SI
, 0, 14, COND_REF
},
155 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, COND_REF
},
156 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
159 static const CGEN_OPINST sfmt_bcl24_ops
[] ATTRIBUTE_UNUSED
= {
160 { INPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
161 { INPUT
, "disp24", HW_H_IADDR
, CGEN_MODE_USI
, OP_ENT (DISP24
), 0, COND_REF
},
162 { INPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, COND_REF
},
163 { OUTPUT
, "h_gr_SI_14", HW_H_GR
, CGEN_MODE_SI
, 0, 14, COND_REF
},
164 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, COND_REF
},
165 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
168 static const CGEN_OPINST sfmt_bra8_ops
[] ATTRIBUTE_UNUSED
= {
169 { INPUT
, "disp8", HW_H_IADDR
, CGEN_MODE_USI
, OP_ENT (DISP8
), 0, 0 },
170 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
171 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
174 static const CGEN_OPINST sfmt_bra24_ops
[] ATTRIBUTE_UNUSED
= {
175 { INPUT
, "disp24", HW_H_IADDR
, CGEN_MODE_USI
, OP_ENT (DISP24
), 0, 0 },
176 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
177 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
180 static const CGEN_OPINST sfmt_cmp_ops
[] ATTRIBUTE_UNUSED
= {
181 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
182 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
183 { OUTPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
184 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
187 static const CGEN_OPINST sfmt_cmpi_ops
[] ATTRIBUTE_UNUSED
= {
188 { INPUT
, "simm16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (SIMM16
), 0, 0 },
189 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
190 { OUTPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
191 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
194 static const CGEN_OPINST sfmt_cmpz_ops
[] ATTRIBUTE_UNUSED
= {
195 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
196 { OUTPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
197 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
200 static const CGEN_OPINST sfmt_div_ops
[] ATTRIBUTE_UNUSED
= {
201 { INPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, COND_REF
},
202 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
203 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, COND_REF
},
204 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
207 static const CGEN_OPINST sfmt_jc_ops
[] ATTRIBUTE_UNUSED
= {
208 { INPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
209 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, COND_REF
},
210 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, COND_REF
},
211 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
214 static const CGEN_OPINST sfmt_jl_ops
[] ATTRIBUTE_UNUSED
= {
215 { INPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
216 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
217 { OUTPUT
, "h_gr_SI_14", HW_H_GR
, CGEN_MODE_SI
, 0, 14, 0 },
218 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
219 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
222 static const CGEN_OPINST sfmt_jmp_ops
[] ATTRIBUTE_UNUSED
= {
223 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
224 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
225 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
228 static const CGEN_OPINST sfmt_ld_ops
[] ATTRIBUTE_UNUSED
= {
229 { INPUT
, "h_memory_SI_sr", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
230 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
231 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
232 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
235 static const CGEN_OPINST sfmt_ld_d_ops
[] ATTRIBUTE_UNUSED
= {
236 { INPUT
, "h_memory_SI_add__SI_sr_slo16", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
237 { INPUT
, "slo16", HW_H_SLO16
, CGEN_MODE_INT
, OP_ENT (SLO16
), 0, 0 },
238 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
239 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
240 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
243 static const CGEN_OPINST sfmt_ldb_ops
[] ATTRIBUTE_UNUSED
= {
244 { INPUT
, "h_memory_QI_sr", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
245 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
246 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
247 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
250 static const CGEN_OPINST sfmt_ldb_d_ops
[] ATTRIBUTE_UNUSED
= {
251 { INPUT
, "h_memory_QI_add__SI_sr_slo16", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
252 { INPUT
, "slo16", HW_H_SLO16
, CGEN_MODE_INT
, OP_ENT (SLO16
), 0, 0 },
253 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
254 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
255 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
258 static const CGEN_OPINST sfmt_ldh_ops
[] ATTRIBUTE_UNUSED
= {
259 { INPUT
, "h_memory_HI_sr", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
260 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
261 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
262 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
265 static const CGEN_OPINST sfmt_ldh_d_ops
[] ATTRIBUTE_UNUSED
= {
266 { INPUT
, "h_memory_HI_add__SI_sr_slo16", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
267 { INPUT
, "slo16", HW_H_SLO16
, CGEN_MODE_INT
, OP_ENT (SLO16
), 0, 0 },
268 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
269 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
270 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
273 static const CGEN_OPINST sfmt_ld_plus_ops
[] ATTRIBUTE_UNUSED
= {
274 { INPUT
, "h_memory_SI_sr", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
275 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
276 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
277 { OUTPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
278 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
281 static const CGEN_OPINST sfmt_ld24_ops
[] ATTRIBUTE_UNUSED
= {
282 { INPUT
, "uimm24", HW_H_ADDR
, CGEN_MODE_USI
, OP_ENT (UIMM24
), 0, 0 },
283 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
284 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
287 static const CGEN_OPINST sfmt_ldi8_ops
[] ATTRIBUTE_UNUSED
= {
288 { INPUT
, "simm8", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (SIMM8
), 0, 0 },
289 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
290 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
293 static const CGEN_OPINST sfmt_ldi16_ops
[] ATTRIBUTE_UNUSED
= {
294 { INPUT
, "slo16", HW_H_SLO16
, CGEN_MODE_INT
, OP_ENT (SLO16
), 0, 0 },
295 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
296 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
299 static const CGEN_OPINST sfmt_lock_ops
[] ATTRIBUTE_UNUSED
= {
300 { INPUT
, "h_memory_SI_sr", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
301 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
302 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
303 { OUTPUT
, "h_lock_BI", HW_H_LOCK
, CGEN_MODE_BI
, 0, 0, 0 },
304 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
307 static const CGEN_OPINST sfmt_machi_ops
[] ATTRIBUTE_UNUSED
= {
308 { INPUT
, "accum", HW_H_ACCUM
, CGEN_MODE_DI
, 0, 0, 0 },
309 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
310 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
311 { OUTPUT
, "accum", HW_H_ACCUM
, CGEN_MODE_DI
, 0, 0, 0 },
312 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
315 static const CGEN_OPINST sfmt_machi_a_ops
[] ATTRIBUTE_UNUSED
= {
316 { INPUT
, "acc", HW_H_ACCUMS
, CGEN_MODE_DI
, OP_ENT (ACC
), 0, 0 },
317 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
318 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
319 { OUTPUT
, "acc", HW_H_ACCUMS
, CGEN_MODE_DI
, OP_ENT (ACC
), 0, 0 },
320 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
323 static const CGEN_OPINST sfmt_mulhi_ops
[] ATTRIBUTE_UNUSED
= {
324 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
325 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
326 { OUTPUT
, "accum", HW_H_ACCUM
, CGEN_MODE_DI
, 0, 0, 0 },
327 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
330 static const CGEN_OPINST sfmt_mulhi_a_ops
[] ATTRIBUTE_UNUSED
= {
331 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
332 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
333 { OUTPUT
, "acc", HW_H_ACCUMS
, CGEN_MODE_DI
, OP_ENT (ACC
), 0, 0 },
334 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
337 static const CGEN_OPINST sfmt_mv_ops
[] ATTRIBUTE_UNUSED
= {
338 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
339 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
340 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
343 static const CGEN_OPINST sfmt_mvfachi_ops
[] ATTRIBUTE_UNUSED
= {
344 { INPUT
, "accum", HW_H_ACCUM
, CGEN_MODE_DI
, 0, 0, 0 },
345 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
346 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
349 static const CGEN_OPINST sfmt_mvfachi_a_ops
[] ATTRIBUTE_UNUSED
= {
350 { INPUT
, "accs", HW_H_ACCUMS
, CGEN_MODE_DI
, OP_ENT (ACCS
), 0, 0 },
351 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
352 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
355 static const CGEN_OPINST sfmt_mvfc_ops
[] ATTRIBUTE_UNUSED
= {
356 { INPUT
, "scr", HW_H_CR
, CGEN_MODE_USI
, OP_ENT (SCR
), 0, 0 },
357 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
358 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
361 static const CGEN_OPINST sfmt_mvtachi_ops
[] ATTRIBUTE_UNUSED
= {
362 { INPUT
, "accum", HW_H_ACCUM
, CGEN_MODE_DI
, 0, 0, 0 },
363 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
364 { OUTPUT
, "accum", HW_H_ACCUM
, CGEN_MODE_DI
, 0, 0, 0 },
365 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
368 static const CGEN_OPINST sfmt_mvtachi_a_ops
[] ATTRIBUTE_UNUSED
= {
369 { INPUT
, "accs", HW_H_ACCUMS
, CGEN_MODE_DI
, OP_ENT (ACCS
), 0, 0 },
370 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
371 { OUTPUT
, "accs", HW_H_ACCUMS
, CGEN_MODE_DI
, OP_ENT (ACCS
), 0, 0 },
372 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
375 static const CGEN_OPINST sfmt_mvtc_ops
[] ATTRIBUTE_UNUSED
= {
376 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
377 { OUTPUT
, "dcr", HW_H_CR
, CGEN_MODE_USI
, OP_ENT (DCR
), 0, 0 },
378 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
381 static const CGEN_OPINST sfmt_nop_ops
[] ATTRIBUTE_UNUSED
= {
382 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
385 static const CGEN_OPINST sfmt_rac_ops
[] ATTRIBUTE_UNUSED
= {
386 { INPUT
, "accum", HW_H_ACCUM
, CGEN_MODE_DI
, 0, 0, 0 },
387 { OUTPUT
, "accum", HW_H_ACCUM
, CGEN_MODE_DI
, 0, 0, 0 },
388 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
391 static const CGEN_OPINST sfmt_rac_dsi_ops
[] ATTRIBUTE_UNUSED
= {
392 { INPUT
, "accs", HW_H_ACCUMS
, CGEN_MODE_DI
, OP_ENT (ACCS
), 0, 0 },
393 { INPUT
, "imm1", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (IMM1
), 0, 0 },
394 { OUTPUT
, "accd", HW_H_ACCUMS
, CGEN_MODE_DI
, OP_ENT (ACCD
), 0, 0 },
395 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
398 static const CGEN_OPINST sfmt_rte_ops
[] ATTRIBUTE_UNUSED
= {
399 { INPUT
, "h_bbpsw_UQI", HW_H_BBPSW
, CGEN_MODE_UQI
, 0, 0, 0 },
400 { INPUT
, "h_bpsw_UQI", HW_H_BPSW
, CGEN_MODE_UQI
, 0, 0, 0 },
401 { INPUT
, "h_cr_USI_14", HW_H_CR
, CGEN_MODE_USI
, 0, 14, 0 },
402 { INPUT
, "h_cr_USI_6", HW_H_CR
, CGEN_MODE_USI
, 0, 6, 0 },
403 { OUTPUT
, "h_bpsw_UQI", HW_H_BPSW
, CGEN_MODE_UQI
, 0, 0, 0 },
404 { OUTPUT
, "h_cr_USI_6", HW_H_CR
, CGEN_MODE_USI
, 0, 6, 0 },
405 { OUTPUT
, "h_psw_UQI", HW_H_PSW
, CGEN_MODE_UQI
, 0, 0, 0 },
406 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
407 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
410 static const CGEN_OPINST sfmt_seth_ops
[] ATTRIBUTE_UNUSED
= {
411 { INPUT
, "hi16", HW_H_HI16
, CGEN_MODE_UINT
, OP_ENT (HI16
), 0, 0 },
412 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
413 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
416 static const CGEN_OPINST sfmt_sll3_ops
[] ATTRIBUTE_UNUSED
= {
417 { INPUT
, "simm16", HW_H_SINT
, CGEN_MODE_INT
, OP_ENT (SIMM16
), 0, 0 },
418 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
419 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
420 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
423 static const CGEN_OPINST sfmt_slli_ops
[] ATTRIBUTE_UNUSED
= {
424 { INPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
425 { INPUT
, "uimm5", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (UIMM5
), 0, 0 },
426 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
427 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
430 static const CGEN_OPINST sfmt_st_ops
[] ATTRIBUTE_UNUSED
= {
431 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
432 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
433 { OUTPUT
, "h_memory_SI_src2", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
434 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
437 static const CGEN_OPINST sfmt_st_d_ops
[] ATTRIBUTE_UNUSED
= {
438 { INPUT
, "slo16", HW_H_SLO16
, CGEN_MODE_INT
, OP_ENT (SLO16
), 0, 0 },
439 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
440 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
441 { OUTPUT
, "h_memory_SI_add__SI_src2_slo16", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
442 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
445 static const CGEN_OPINST sfmt_stb_ops
[] ATTRIBUTE_UNUSED
= {
446 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
447 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
448 { OUTPUT
, "h_memory_QI_src2", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
449 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
452 static const CGEN_OPINST sfmt_stb_d_ops
[] ATTRIBUTE_UNUSED
= {
453 { INPUT
, "slo16", HW_H_SLO16
, CGEN_MODE_INT
, OP_ENT (SLO16
), 0, 0 },
454 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
455 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
456 { OUTPUT
, "h_memory_QI_add__SI_src2_slo16", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
457 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
460 static const CGEN_OPINST sfmt_sth_ops
[] ATTRIBUTE_UNUSED
= {
461 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
462 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
463 { OUTPUT
, "h_memory_HI_src2", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
464 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
467 static const CGEN_OPINST sfmt_sth_d_ops
[] ATTRIBUTE_UNUSED
= {
468 { INPUT
, "slo16", HW_H_SLO16
, CGEN_MODE_INT
, OP_ENT (SLO16
), 0, 0 },
469 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
470 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
471 { OUTPUT
, "h_memory_HI_add__SI_src2_slo16", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
472 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
475 static const CGEN_OPINST sfmt_st_plus_ops
[] ATTRIBUTE_UNUSED
= {
476 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
477 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
478 { OUTPUT
, "h_memory_SI_new_src2", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, 0 },
479 { OUTPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
480 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
483 static const CGEN_OPINST sfmt_sth_plus_ops
[] ATTRIBUTE_UNUSED
= {
484 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
485 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
486 { OUTPUT
, "h_memory_HI_new_src2", HW_H_MEMORY
, CGEN_MODE_HI
, 0, 0, 0 },
487 { OUTPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
488 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
491 static const CGEN_OPINST sfmt_stb_plus_ops
[] ATTRIBUTE_UNUSED
= {
492 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
493 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
494 { OUTPUT
, "h_memory_QI_new_src2", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
495 { OUTPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
496 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
499 static const CGEN_OPINST sfmt_trap_ops
[] ATTRIBUTE_UNUSED
= {
500 { INPUT
, "h_bpsw_UQI", HW_H_BPSW
, CGEN_MODE_UQI
, 0, 0, 0 },
501 { INPUT
, "h_cr_USI_6", HW_H_CR
, CGEN_MODE_USI
, 0, 6, 0 },
502 { INPUT
, "h_psw_UQI", HW_H_PSW
, CGEN_MODE_UQI
, 0, 0, 0 },
503 { INPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
504 { INPUT
, "uimm4", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (UIMM4
), 0, 0 },
505 { OUTPUT
, "h_bbpsw_UQI", HW_H_BBPSW
, CGEN_MODE_UQI
, 0, 0, 0 },
506 { OUTPUT
, "h_bpsw_UQI", HW_H_BPSW
, CGEN_MODE_UQI
, 0, 0, 0 },
507 { OUTPUT
, "h_cr_USI_14", HW_H_CR
, CGEN_MODE_USI
, 0, 14, 0 },
508 { OUTPUT
, "h_cr_USI_6", HW_H_CR
, CGEN_MODE_USI
, 0, 6, 0 },
509 { OUTPUT
, "h_psw_UQI", HW_H_PSW
, CGEN_MODE_UQI
, 0, 0, 0 },
510 { OUTPUT
, "pc", HW_H_PC
, CGEN_MODE_USI
, 0, 0, 0 },
511 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
514 static const CGEN_OPINST sfmt_unlock_ops
[] ATTRIBUTE_UNUSED
= {
515 { INPUT
, "h_lock_BI", HW_H_LOCK
, CGEN_MODE_BI
, 0, 0, 0 },
516 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, COND_REF
},
517 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, COND_REF
},
518 { OUTPUT
, "h_lock_BI", HW_H_LOCK
, CGEN_MODE_BI
, 0, 0, 0 },
519 { OUTPUT
, "h_memory_SI_src2", HW_H_MEMORY
, CGEN_MODE_SI
, 0, 0, COND_REF
},
520 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
523 static const CGEN_OPINST sfmt_satb_ops
[] ATTRIBUTE_UNUSED
= {
524 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
525 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
526 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
529 static const CGEN_OPINST sfmt_sat_ops
[] ATTRIBUTE_UNUSED
= {
530 { INPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
531 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, COND_REF
},
532 { OUTPUT
, "dr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (DR
), 0, 0 },
533 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
536 static const CGEN_OPINST sfmt_sadd_ops
[] ATTRIBUTE_UNUSED
= {
537 { INPUT
, "h_accums_DI_0", HW_H_ACCUMS
, CGEN_MODE_DI
, 0, 0, 0 },
538 { INPUT
, "h_accums_DI_1", HW_H_ACCUMS
, CGEN_MODE_DI
, 0, 1, 0 },
539 { OUTPUT
, "h_accums_DI_0", HW_H_ACCUMS
, CGEN_MODE_DI
, 0, 0, 0 },
540 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
543 static const CGEN_OPINST sfmt_macwu1_ops
[] ATTRIBUTE_UNUSED
= {
544 { INPUT
, "h_accums_DI_1", HW_H_ACCUMS
, CGEN_MODE_DI
, 0, 1, 0 },
545 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
546 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
547 { OUTPUT
, "h_accums_DI_1", HW_H_ACCUMS
, CGEN_MODE_DI
, 0, 1, 0 },
548 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
551 static const CGEN_OPINST sfmt_mulwu1_ops
[] ATTRIBUTE_UNUSED
= {
552 { INPUT
, "src1", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC1
), 0, 0 },
553 { INPUT
, "src2", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SRC2
), 0, 0 },
554 { OUTPUT
, "h_accums_DI_1", HW_H_ACCUMS
, CGEN_MODE_DI
, 0, 1, 0 },
555 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
558 static const CGEN_OPINST sfmt_sc_ops
[] ATTRIBUTE_UNUSED
= {
559 { INPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
560 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
563 static const CGEN_OPINST sfmt_clrpsw_ops
[] ATTRIBUTE_UNUSED
= {
564 { INPUT
, "h_cr_USI_0", HW_H_CR
, CGEN_MODE_USI
, 0, 0, 0 },
565 { INPUT
, "uimm8", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (UIMM8
), 0, 0 },
566 { OUTPUT
, "h_cr_USI_0", HW_H_CR
, CGEN_MODE_USI
, 0, 0, 0 },
567 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
570 static const CGEN_OPINST sfmt_setpsw_ops
[] ATTRIBUTE_UNUSED
= {
571 { INPUT
, "uimm8", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (UIMM8
), 0, 0 },
572 { OUTPUT
, "h_cr_USI_0", HW_H_CR
, CGEN_MODE_USI
, 0, 0, 0 },
573 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
576 static const CGEN_OPINST sfmt_bset_ops
[] ATTRIBUTE_UNUSED
= {
577 { INPUT
, "h_memory_QI_add__SI_sr_slo16", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
578 { INPUT
, "slo16", HW_H_SLO16
, CGEN_MODE_INT
, OP_ENT (SLO16
), 0, 0 },
579 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
580 { INPUT
, "uimm3", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (UIMM3
), 0, 0 },
581 { OUTPUT
, "h_memory_QI_add__SI_sr_slo16", HW_H_MEMORY
, CGEN_MODE_QI
, 0, 0, 0 },
582 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
585 static const CGEN_OPINST sfmt_btst_ops
[] ATTRIBUTE_UNUSED
= {
586 { INPUT
, "sr", HW_H_GR
, CGEN_MODE_SI
, OP_ENT (SR
), 0, 0 },
587 { INPUT
, "uimm3", HW_H_UINT
, CGEN_MODE_UINT
, OP_ENT (UIMM3
), 0, 0 },
588 { OUTPUT
, "condbit", HW_H_COND
, CGEN_MODE_BI
, 0, 0, 0 },
589 { END
, (const char *)0, (enum cgen_hw_type
)0, (enum cgen_mode
)0, (enum cgen_operand_type
)0, 0, 0 }
598 /* Operand instance lookup table. */
600 static const CGEN_OPINST
*m32r_cgen_opinst_table
[MAX_INSNS
] = {
666 & sfmt_ld_plus_ops
[0],
672 & sfmt_machi_a_ops
[0],
674 & sfmt_machi_a_ops
[0],
676 & sfmt_machi_a_ops
[0],
678 & sfmt_machi_a_ops
[0],
681 & sfmt_mulhi_a_ops
[0],
683 & sfmt_mulhi_a_ops
[0],
685 & sfmt_mulhi_a_ops
[0],
687 & sfmt_mulhi_a_ops
[0],
689 & sfmt_mvfachi_ops
[0],
690 & sfmt_mvfachi_a_ops
[0],
691 & sfmt_mvfachi_ops
[0],
692 & sfmt_mvfachi_a_ops
[0],
693 & sfmt_mvfachi_ops
[0],
694 & sfmt_mvfachi_a_ops
[0],
696 & sfmt_mvtachi_ops
[0],
697 & sfmt_mvtachi_a_ops
[0],
698 & sfmt_mvtachi_ops
[0],
699 & sfmt_mvtachi_a_ops
[0],
705 & sfmt_rac_dsi_ops
[0],
707 & sfmt_rac_dsi_ops
[0],
725 & sfmt_st_plus_ops
[0],
726 & sfmt_sth_plus_ops
[0],
727 & sfmt_stb_plus_ops
[0],
728 & sfmt_st_plus_ops
[0],
733 & sfmt_unlock_ops
[0],
739 & sfmt_macwu1_ops
[0],
741 & sfmt_mulwu1_ops
[0],
742 & sfmt_macwu1_ops
[0],
745 & sfmt_clrpsw_ops
[0],
746 & sfmt_setpsw_ops
[0],
752 /* Function to call before using the operand instance table. */
755 m32r_cgen_init_opinst_table (CGEN_CPU_DESC cd
)
758 const CGEN_OPINST
**oi
= & m32r_cgen_opinst_table
[0];
759 CGEN_INSN
*insns
= (CGEN_INSN
*) cd
->insn_table
.init_entries
;
760 for (i
= 0; i
< MAX_INSNS
; ++i
)
761 insns
[i
].opinst
= oi
[i
];