OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [binutils-2.20.1/] [opcodes/] [m32r-opinst.c] - Blame information for rev 205

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.