]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/or1k/decode.c
Update copyright year range in all GDB files
[thirdparty/binutils-gdb.git] / sim / or1k / decode.c
1 /* Simulator instruction decoder for or1k32bf.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright 1996-2018 Free Software Foundation, Inc.
6
7 This file is part of the GNU simulators.
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 #define WANT_CPU or1k32bf
26 #define WANT_CPU_OR1K32BF
27
28 #include "sim-main.h"
29 #include "sim-assert.h"
30
31 /* The instruction descriptor array.
32 This is computed at runtime. Space for it is not malloc'd to save a
33 teensy bit of cpu in the decoder. Moving it to malloc space is trivial
34 but won't be done until necessary (we don't currently support the runtime
35 addition of instructions nor an SMP machine with different cpus). */
36 static IDESC or1k32bf_insn_data[OR1K32BF_INSN__MAX];
37
38 /* Commas between elements are contained in the macros.
39 Some of these are conditionally compiled out. */
40
41 static const struct insn_sem or1k32bf_insn_sem[] =
42 {
43 { VIRTUAL_INSN_X_INVALID, OR1K32BF_INSN_X_INVALID, OR1K32BF_SFMT_EMPTY },
44 { VIRTUAL_INSN_X_AFTER, OR1K32BF_INSN_X_AFTER, OR1K32BF_SFMT_EMPTY },
45 { VIRTUAL_INSN_X_BEFORE, OR1K32BF_INSN_X_BEFORE, OR1K32BF_SFMT_EMPTY },
46 { VIRTUAL_INSN_X_CTI_CHAIN, OR1K32BF_INSN_X_CTI_CHAIN, OR1K32BF_SFMT_EMPTY },
47 { VIRTUAL_INSN_X_CHAIN, OR1K32BF_INSN_X_CHAIN, OR1K32BF_SFMT_EMPTY },
48 { VIRTUAL_INSN_X_BEGIN, OR1K32BF_INSN_X_BEGIN, OR1K32BF_SFMT_EMPTY },
49 { OR1K_INSN_L_J, OR1K32BF_INSN_L_J, OR1K32BF_SFMT_L_J },
50 { OR1K_INSN_L_JAL, OR1K32BF_INSN_L_JAL, OR1K32BF_SFMT_L_JAL },
51 { OR1K_INSN_L_JR, OR1K32BF_INSN_L_JR, OR1K32BF_SFMT_L_JR },
52 { OR1K_INSN_L_JALR, OR1K32BF_INSN_L_JALR, OR1K32BF_SFMT_L_JALR },
53 { OR1K_INSN_L_BNF, OR1K32BF_INSN_L_BNF, OR1K32BF_SFMT_L_BNF },
54 { OR1K_INSN_L_BF, OR1K32BF_INSN_L_BF, OR1K32BF_SFMT_L_BNF },
55 { OR1K_INSN_L_TRAP, OR1K32BF_INSN_L_TRAP, OR1K32BF_SFMT_L_TRAP },
56 { OR1K_INSN_L_SYS, OR1K32BF_INSN_L_SYS, OR1K32BF_SFMT_L_TRAP },
57 { OR1K_INSN_L_MSYNC, OR1K32BF_INSN_L_MSYNC, OR1K32BF_SFMT_L_MSYNC },
58 { OR1K_INSN_L_PSYNC, OR1K32BF_INSN_L_PSYNC, OR1K32BF_SFMT_L_MSYNC },
59 { OR1K_INSN_L_CSYNC, OR1K32BF_INSN_L_CSYNC, OR1K32BF_SFMT_L_MSYNC },
60 { OR1K_INSN_L_RFE, OR1K32BF_INSN_L_RFE, OR1K32BF_SFMT_L_MSYNC },
61 { OR1K_INSN_L_NOP_IMM, OR1K32BF_INSN_L_NOP_IMM, OR1K32BF_SFMT_L_NOP_IMM },
62 { OR1K_INSN_L_MOVHI, OR1K32BF_INSN_L_MOVHI, OR1K32BF_SFMT_L_MOVHI },
63 { OR1K_INSN_L_MACRC, OR1K32BF_INSN_L_MACRC, OR1K32BF_SFMT_L_MACRC },
64 { OR1K_INSN_L_MFSPR, OR1K32BF_INSN_L_MFSPR, OR1K32BF_SFMT_L_MFSPR },
65 { OR1K_INSN_L_MTSPR, OR1K32BF_INSN_L_MTSPR, OR1K32BF_SFMT_L_MTSPR },
66 { OR1K_INSN_L_LWZ, OR1K32BF_INSN_L_LWZ, OR1K32BF_SFMT_L_LWZ },
67 { OR1K_INSN_L_LWS, OR1K32BF_INSN_L_LWS, OR1K32BF_SFMT_L_LWS },
68 { OR1K_INSN_L_LWA, OR1K32BF_INSN_L_LWA, OR1K32BF_SFMT_L_LWA },
69 { OR1K_INSN_L_LBZ, OR1K32BF_INSN_L_LBZ, OR1K32BF_SFMT_L_LBZ },
70 { OR1K_INSN_L_LBS, OR1K32BF_INSN_L_LBS, OR1K32BF_SFMT_L_LBS },
71 { OR1K_INSN_L_LHZ, OR1K32BF_INSN_L_LHZ, OR1K32BF_SFMT_L_LHZ },
72 { OR1K_INSN_L_LHS, OR1K32BF_INSN_L_LHS, OR1K32BF_SFMT_L_LHS },
73 { OR1K_INSN_L_SW, OR1K32BF_INSN_L_SW, OR1K32BF_SFMT_L_SW },
74 { OR1K_INSN_L_SB, OR1K32BF_INSN_L_SB, OR1K32BF_SFMT_L_SB },
75 { OR1K_INSN_L_SH, OR1K32BF_INSN_L_SH, OR1K32BF_SFMT_L_SH },
76 { OR1K_INSN_L_SWA, OR1K32BF_INSN_L_SWA, OR1K32BF_SFMT_L_SWA },
77 { OR1K_INSN_L_SLL, OR1K32BF_INSN_L_SLL, OR1K32BF_SFMT_L_SLL },
78 { OR1K_INSN_L_SLLI, OR1K32BF_INSN_L_SLLI, OR1K32BF_SFMT_L_SLLI },
79 { OR1K_INSN_L_SRL, OR1K32BF_INSN_L_SRL, OR1K32BF_SFMT_L_SLL },
80 { OR1K_INSN_L_SRLI, OR1K32BF_INSN_L_SRLI, OR1K32BF_SFMT_L_SLLI },
81 { OR1K_INSN_L_SRA, OR1K32BF_INSN_L_SRA, OR1K32BF_SFMT_L_SLL },
82 { OR1K_INSN_L_SRAI, OR1K32BF_INSN_L_SRAI, OR1K32BF_SFMT_L_SLLI },
83 { OR1K_INSN_L_ROR, OR1K32BF_INSN_L_ROR, OR1K32BF_SFMT_L_SLL },
84 { OR1K_INSN_L_RORI, OR1K32BF_INSN_L_RORI, OR1K32BF_SFMT_L_SLLI },
85 { OR1K_INSN_L_AND, OR1K32BF_INSN_L_AND, OR1K32BF_SFMT_L_AND },
86 { OR1K_INSN_L_OR, OR1K32BF_INSN_L_OR, OR1K32BF_SFMT_L_AND },
87 { OR1K_INSN_L_XOR, OR1K32BF_INSN_L_XOR, OR1K32BF_SFMT_L_AND },
88 { OR1K_INSN_L_ADD, OR1K32BF_INSN_L_ADD, OR1K32BF_SFMT_L_ADD },
89 { OR1K_INSN_L_SUB, OR1K32BF_INSN_L_SUB, OR1K32BF_SFMT_L_ADD },
90 { OR1K_INSN_L_ADDC, OR1K32BF_INSN_L_ADDC, OR1K32BF_SFMT_L_ADDC },
91 { OR1K_INSN_L_MUL, OR1K32BF_INSN_L_MUL, OR1K32BF_SFMT_L_ADD },
92 { OR1K_INSN_L_MULU, OR1K32BF_INSN_L_MULU, OR1K32BF_SFMT_L_ADD },
93 { OR1K_INSN_L_DIV, OR1K32BF_INSN_L_DIV, OR1K32BF_SFMT_L_DIV },
94 { OR1K_INSN_L_DIVU, OR1K32BF_INSN_L_DIVU, OR1K32BF_SFMT_L_DIV },
95 { OR1K_INSN_L_FF1, OR1K32BF_INSN_L_FF1, OR1K32BF_SFMT_L_FF1 },
96 { OR1K_INSN_L_FL1, OR1K32BF_INSN_L_FL1, OR1K32BF_SFMT_L_FF1 },
97 { OR1K_INSN_L_ANDI, OR1K32BF_INSN_L_ANDI, OR1K32BF_SFMT_L_MFSPR },
98 { OR1K_INSN_L_ORI, OR1K32BF_INSN_L_ORI, OR1K32BF_SFMT_L_MFSPR },
99 { OR1K_INSN_L_XORI, OR1K32BF_INSN_L_XORI, OR1K32BF_SFMT_L_XORI },
100 { OR1K_INSN_L_ADDI, OR1K32BF_INSN_L_ADDI, OR1K32BF_SFMT_L_ADDI },
101 { OR1K_INSN_L_ADDIC, OR1K32BF_INSN_L_ADDIC, OR1K32BF_SFMT_L_ADDIC },
102 { OR1K_INSN_L_MULI, OR1K32BF_INSN_L_MULI, OR1K32BF_SFMT_L_ADDI },
103 { OR1K_INSN_L_EXTHS, OR1K32BF_INSN_L_EXTHS, OR1K32BF_SFMT_L_EXTHS },
104 { OR1K_INSN_L_EXTBS, OR1K32BF_INSN_L_EXTBS, OR1K32BF_SFMT_L_EXTHS },
105 { OR1K_INSN_L_EXTHZ, OR1K32BF_INSN_L_EXTHZ, OR1K32BF_SFMT_L_EXTHS },
106 { OR1K_INSN_L_EXTBZ, OR1K32BF_INSN_L_EXTBZ, OR1K32BF_SFMT_L_EXTHS },
107 { OR1K_INSN_L_EXTWS, OR1K32BF_INSN_L_EXTWS, OR1K32BF_SFMT_L_EXTHS },
108 { OR1K_INSN_L_EXTWZ, OR1K32BF_INSN_L_EXTWZ, OR1K32BF_SFMT_L_EXTHS },
109 { OR1K_INSN_L_CMOV, OR1K32BF_INSN_L_CMOV, OR1K32BF_SFMT_L_CMOV },
110 { OR1K_INSN_L_SFGTS, OR1K32BF_INSN_L_SFGTS, OR1K32BF_SFMT_L_SFGTS },
111 { OR1K_INSN_L_SFGTSI, OR1K32BF_INSN_L_SFGTSI, OR1K32BF_SFMT_L_SFGTSI },
112 { OR1K_INSN_L_SFGTU, OR1K32BF_INSN_L_SFGTU, OR1K32BF_SFMT_L_SFGTS },
113 { OR1K_INSN_L_SFGTUI, OR1K32BF_INSN_L_SFGTUI, OR1K32BF_SFMT_L_SFGTSI },
114 { OR1K_INSN_L_SFGES, OR1K32BF_INSN_L_SFGES, OR1K32BF_SFMT_L_SFGTS },
115 { OR1K_INSN_L_SFGESI, OR1K32BF_INSN_L_SFGESI, OR1K32BF_SFMT_L_SFGTSI },
116 { OR1K_INSN_L_SFGEU, OR1K32BF_INSN_L_SFGEU, OR1K32BF_SFMT_L_SFGTS },
117 { OR1K_INSN_L_SFGEUI, OR1K32BF_INSN_L_SFGEUI, OR1K32BF_SFMT_L_SFGTSI },
118 { OR1K_INSN_L_SFLTS, OR1K32BF_INSN_L_SFLTS, OR1K32BF_SFMT_L_SFGTS },
119 { OR1K_INSN_L_SFLTSI, OR1K32BF_INSN_L_SFLTSI, OR1K32BF_SFMT_L_SFGTSI },
120 { OR1K_INSN_L_SFLTU, OR1K32BF_INSN_L_SFLTU, OR1K32BF_SFMT_L_SFGTS },
121 { OR1K_INSN_L_SFLTUI, OR1K32BF_INSN_L_SFLTUI, OR1K32BF_SFMT_L_SFGTSI },
122 { OR1K_INSN_L_SFLES, OR1K32BF_INSN_L_SFLES, OR1K32BF_SFMT_L_SFGTS },
123 { OR1K_INSN_L_SFLESI, OR1K32BF_INSN_L_SFLESI, OR1K32BF_SFMT_L_SFGTSI },
124 { OR1K_INSN_L_SFLEU, OR1K32BF_INSN_L_SFLEU, OR1K32BF_SFMT_L_SFGTS },
125 { OR1K_INSN_L_SFLEUI, OR1K32BF_INSN_L_SFLEUI, OR1K32BF_SFMT_L_SFGTSI },
126 { OR1K_INSN_L_SFEQ, OR1K32BF_INSN_L_SFEQ, OR1K32BF_SFMT_L_SFGTS },
127 { OR1K_INSN_L_SFEQI, OR1K32BF_INSN_L_SFEQI, OR1K32BF_SFMT_L_SFGTSI },
128 { OR1K_INSN_L_SFNE, OR1K32BF_INSN_L_SFNE, OR1K32BF_SFMT_L_SFGTS },
129 { OR1K_INSN_L_SFNEI, OR1K32BF_INSN_L_SFNEI, OR1K32BF_SFMT_L_SFGTSI },
130 { OR1K_INSN_L_MAC, OR1K32BF_INSN_L_MAC, OR1K32BF_SFMT_L_MAC },
131 { OR1K_INSN_L_MSB, OR1K32BF_INSN_L_MSB, OR1K32BF_SFMT_L_MAC },
132 { OR1K_INSN_L_MACI, OR1K32BF_INSN_L_MACI, OR1K32BF_SFMT_L_MACI },
133 { OR1K_INSN_L_CUST1, OR1K32BF_INSN_L_CUST1, OR1K32BF_SFMT_L_MSYNC },
134 { OR1K_INSN_L_CUST2, OR1K32BF_INSN_L_CUST2, OR1K32BF_SFMT_L_MSYNC },
135 { OR1K_INSN_L_CUST3, OR1K32BF_INSN_L_CUST3, OR1K32BF_SFMT_L_MSYNC },
136 { OR1K_INSN_L_CUST4, OR1K32BF_INSN_L_CUST4, OR1K32BF_SFMT_L_MSYNC },
137 { OR1K_INSN_L_CUST5, OR1K32BF_INSN_L_CUST5, OR1K32BF_SFMT_L_MSYNC },
138 { OR1K_INSN_L_CUST6, OR1K32BF_INSN_L_CUST6, OR1K32BF_SFMT_L_MSYNC },
139 { OR1K_INSN_L_CUST7, OR1K32BF_INSN_L_CUST7, OR1K32BF_SFMT_L_MSYNC },
140 { OR1K_INSN_L_CUST8, OR1K32BF_INSN_L_CUST8, OR1K32BF_SFMT_L_MSYNC },
141 { OR1K_INSN_LF_ADD_S, OR1K32BF_INSN_LF_ADD_S, OR1K32BF_SFMT_LF_ADD_S },
142 { OR1K_INSN_LF_SUB_S, OR1K32BF_INSN_LF_SUB_S, OR1K32BF_SFMT_LF_ADD_S },
143 { OR1K_INSN_LF_MUL_S, OR1K32BF_INSN_LF_MUL_S, OR1K32BF_SFMT_LF_ADD_S },
144 { OR1K_INSN_LF_DIV_S, OR1K32BF_INSN_LF_DIV_S, OR1K32BF_SFMT_LF_ADD_S },
145 { OR1K_INSN_LF_REM_S, OR1K32BF_INSN_LF_REM_S, OR1K32BF_SFMT_LF_ADD_S },
146 { OR1K_INSN_LF_ITOF_S, OR1K32BF_INSN_LF_ITOF_S, OR1K32BF_SFMT_LF_ITOF_S },
147 { OR1K_INSN_LF_FTOI_S, OR1K32BF_INSN_LF_FTOI_S, OR1K32BF_SFMT_LF_FTOI_S },
148 { OR1K_INSN_LF_EQ_S, OR1K32BF_INSN_LF_EQ_S, OR1K32BF_SFMT_LF_EQ_S },
149 { OR1K_INSN_LF_NE_S, OR1K32BF_INSN_LF_NE_S, OR1K32BF_SFMT_LF_EQ_S },
150 { OR1K_INSN_LF_GE_S, OR1K32BF_INSN_LF_GE_S, OR1K32BF_SFMT_LF_EQ_S },
151 { OR1K_INSN_LF_GT_S, OR1K32BF_INSN_LF_GT_S, OR1K32BF_SFMT_LF_EQ_S },
152 { OR1K_INSN_LF_LT_S, OR1K32BF_INSN_LF_LT_S, OR1K32BF_SFMT_LF_EQ_S },
153 { OR1K_INSN_LF_LE_S, OR1K32BF_INSN_LF_LE_S, OR1K32BF_SFMT_LF_EQ_S },
154 { OR1K_INSN_LF_MADD_S, OR1K32BF_INSN_LF_MADD_S, OR1K32BF_SFMT_LF_MADD_S },
155 { OR1K_INSN_LF_CUST1_S, OR1K32BF_INSN_LF_CUST1_S, OR1K32BF_SFMT_L_MSYNC },
156 };
157
158 static const struct insn_sem or1k32bf_insn_sem_invalid =
159 {
160 VIRTUAL_INSN_X_INVALID, OR1K32BF_INSN_X_INVALID, OR1K32BF_SFMT_EMPTY
161 };
162
163 /* Initialize an IDESC from the compile-time computable parts. */
164
165 static INLINE void
166 init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
167 {
168 const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
169
170 id->num = t->index;
171 id->sfmt = t->sfmt;
172 if ((int) t->type <= 0)
173 id->idata = & cgen_virtual_insn_table[- (int) t->type];
174 else
175 id->idata = & insn_table[t->type];
176 id->attrs = CGEN_INSN_ATTRS (id->idata);
177 /* Oh my god, a magic number. */
178 id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
179
180 #if WITH_PROFILE_MODEL_P
181 id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
182 {
183 SIM_DESC sd = CPU_STATE (cpu);
184 SIM_ASSERT (t->index == id->timing->num);
185 }
186 #endif
187
188 /* Semantic pointers are initialized elsewhere. */
189 }
190
191 /* Initialize the instruction descriptor table. */
192
193 void
194 or1k32bf_init_idesc_table (SIM_CPU *cpu)
195 {
196 IDESC *id,*tabend;
197 const struct insn_sem *t,*tend;
198 int tabsize = OR1K32BF_INSN__MAX;
199 IDESC *table = or1k32bf_insn_data;
200
201 memset (table, 0, tabsize * sizeof (IDESC));
202
203 /* First set all entries to the `invalid insn'. */
204 t = & or1k32bf_insn_sem_invalid;
205 for (id = table, tabend = table + tabsize; id < tabend; ++id)
206 init_idesc (cpu, id, t);
207
208 /* Now fill in the values for the chosen cpu. */
209 for (t = or1k32bf_insn_sem, tend = t + sizeof (or1k32bf_insn_sem) / sizeof (*t);
210 t != tend; ++t)
211 {
212 init_idesc (cpu, & table[t->index], t);
213 }
214
215 /* Link the IDESC table into the cpu. */
216 CPU_IDESC (cpu) = table;
217 }
218
219 /* Given an instruction, return a pointer to its IDESC entry. */
220
221 const IDESC *
222 or1k32bf_decode (SIM_CPU *current_cpu, IADDR pc,
223 CGEN_INSN_WORD base_insn, CGEN_INSN_WORD entire_insn,
224 ARGBUF *abuf)
225 {
226 /* Result of decoder. */
227 OR1K32BF_INSN_TYPE itype;
228
229 {
230 CGEN_INSN_WORD insn = base_insn;
231
232 {
233 unsigned int val = (((insn >> 21) & (63 << 5)) | ((insn >> 2) & (1 << 4)) | ((insn >> 0) & (15 << 0)));
234 switch (val)
235 {
236 case 0 : /* fall through */
237 case 1 : /* fall through */
238 case 2 : /* fall through */
239 case 3 : /* fall through */
240 case 4 : /* fall through */
241 case 5 : /* fall through */
242 case 6 : /* fall through */
243 case 7 : /* fall through */
244 case 8 : /* fall through */
245 case 9 : /* fall through */
246 case 10 : /* fall through */
247 case 11 : /* fall through */
248 case 12 : /* fall through */
249 case 13 : /* fall through */
250 case 14 : /* fall through */
251 case 15 : /* fall through */
252 case 16 : /* fall through */
253 case 17 : /* fall through */
254 case 18 : /* fall through */
255 case 19 : /* fall through */
256 case 20 : /* fall through */
257 case 21 : /* fall through */
258 case 22 : /* fall through */
259 case 23 : /* fall through */
260 case 24 : /* fall through */
261 case 25 : /* fall through */
262 case 26 : /* fall through */
263 case 27 : /* fall through */
264 case 28 : /* fall through */
265 case 29 : /* fall through */
266 case 30 : /* fall through */
267 case 31 : itype = OR1K32BF_INSN_L_J; goto extract_sfmt_l_j;
268 case 32 : /* fall through */
269 case 33 : /* fall through */
270 case 34 : /* fall through */
271 case 35 : /* fall through */
272 case 36 : /* fall through */
273 case 37 : /* fall through */
274 case 38 : /* fall through */
275 case 39 : /* fall through */
276 case 40 : /* fall through */
277 case 41 : /* fall through */
278 case 42 : /* fall through */
279 case 43 : /* fall through */
280 case 44 : /* fall through */
281 case 45 : /* fall through */
282 case 46 : /* fall through */
283 case 47 : /* fall through */
284 case 48 : /* fall through */
285 case 49 : /* fall through */
286 case 50 : /* fall through */
287 case 51 : /* fall through */
288 case 52 : /* fall through */
289 case 53 : /* fall through */
290 case 54 : /* fall through */
291 case 55 : /* fall through */
292 case 56 : /* fall through */
293 case 57 : /* fall through */
294 case 58 : /* fall through */
295 case 59 : /* fall through */
296 case 60 : /* fall through */
297 case 61 : /* fall through */
298 case 62 : /* fall through */
299 case 63 : itype = OR1K32BF_INSN_L_JAL; goto extract_sfmt_l_jal;
300 case 96 : /* fall through */
301 case 97 : /* fall through */
302 case 98 : /* fall through */
303 case 99 : /* fall through */
304 case 100 : /* fall through */
305 case 101 : /* fall through */
306 case 102 : /* fall through */
307 case 103 : /* fall through */
308 case 104 : /* fall through */
309 case 105 : /* fall through */
310 case 106 : /* fall through */
311 case 107 : /* fall through */
312 case 108 : /* fall through */
313 case 109 : /* fall through */
314 case 110 : /* fall through */
315 case 111 : /* fall through */
316 case 112 : /* fall through */
317 case 113 : /* fall through */
318 case 114 : /* fall through */
319 case 115 : /* fall through */
320 case 116 : /* fall through */
321 case 117 : /* fall through */
322 case 118 : /* fall through */
323 case 119 : /* fall through */
324 case 120 : /* fall through */
325 case 121 : /* fall through */
326 case 122 : /* fall through */
327 case 123 : /* fall through */
328 case 124 : /* fall through */
329 case 125 : /* fall through */
330 case 126 : /* fall through */
331 case 127 : itype = OR1K32BF_INSN_L_BNF; goto extract_sfmt_l_bnf;
332 case 128 : /* fall through */
333 case 129 : /* fall through */
334 case 130 : /* fall through */
335 case 131 : /* fall through */
336 case 132 : /* fall through */
337 case 133 : /* fall through */
338 case 134 : /* fall through */
339 case 135 : /* fall through */
340 case 136 : /* fall through */
341 case 137 : /* fall through */
342 case 138 : /* fall through */
343 case 139 : /* fall through */
344 case 140 : /* fall through */
345 case 141 : /* fall through */
346 case 142 : /* fall through */
347 case 143 : /* fall through */
348 case 144 : /* fall through */
349 case 145 : /* fall through */
350 case 146 : /* fall through */
351 case 147 : /* fall through */
352 case 148 : /* fall through */
353 case 149 : /* fall through */
354 case 150 : /* fall through */
355 case 151 : /* fall through */
356 case 152 : /* fall through */
357 case 153 : /* fall through */
358 case 154 : /* fall through */
359 case 155 : /* fall through */
360 case 156 : /* fall through */
361 case 157 : /* fall through */
362 case 158 : /* fall through */
363 case 159 : itype = OR1K32BF_INSN_L_BF; goto extract_sfmt_l_bnf;
364 case 160 : /* fall through */
365 case 161 : /* fall through */
366 case 162 : /* fall through */
367 case 163 : /* fall through */
368 case 164 : /* fall through */
369 case 165 : /* fall through */
370 case 166 : /* fall through */
371 case 167 : /* fall through */
372 case 168 : /* fall through */
373 case 169 : /* fall through */
374 case 170 : /* fall through */
375 case 171 : /* fall through */
376 case 172 : /* fall through */
377 case 173 : /* fall through */
378 case 174 : /* fall through */
379 case 175 : /* fall through */
380 case 176 : /* fall through */
381 case 177 : /* fall through */
382 case 178 : /* fall through */
383 case 179 : /* fall through */
384 case 180 : /* fall through */
385 case 181 : /* fall through */
386 case 182 : /* fall through */
387 case 183 : /* fall through */
388 case 184 : /* fall through */
389 case 185 : /* fall through */
390 case 186 : /* fall through */
391 case 187 : /* fall through */
392 case 188 : /* fall through */
393 case 189 : /* fall through */
394 case 190 : /* fall through */
395 case 191 :
396 if ((entire_insn & 0xffff0000) == 0x15000000)
397 { itype = OR1K32BF_INSN_L_NOP_IMM; goto extract_sfmt_l_nop_imm; }
398 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
399 case 192 :
400 {
401 unsigned int val = (((insn >> 16) & (1 << 0)));
402 switch (val)
403 {
404 case 0 :
405 if ((entire_insn & 0xfc1f0000) == 0x18000000)
406 { itype = OR1K32BF_INSN_L_MOVHI; goto extract_sfmt_l_movhi; }
407 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
408 case 1 :
409 if ((entire_insn & 0xfc1fffff) == 0x18010000)
410 { itype = OR1K32BF_INSN_L_MACRC; goto extract_sfmt_l_macrc; }
411 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
412 default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
413 }
414 }
415 case 193 : /* fall through */
416 case 194 : /* fall through */
417 case 195 : /* fall through */
418 case 196 : /* fall through */
419 case 197 : /* fall through */
420 case 198 : /* fall through */
421 case 199 : /* fall through */
422 case 200 : /* fall through */
423 case 201 : /* fall through */
424 case 202 : /* fall through */
425 case 203 : /* fall through */
426 case 204 : /* fall through */
427 case 205 : /* fall through */
428 case 206 : /* fall through */
429 case 207 : /* fall through */
430 case 208 : /* fall through */
431 case 209 : /* fall through */
432 case 210 : /* fall through */
433 case 211 : /* fall through */
434 case 212 : /* fall through */
435 case 213 : /* fall through */
436 case 214 : /* fall through */
437 case 215 : /* fall through */
438 case 216 : /* fall through */
439 case 217 : /* fall through */
440 case 218 : /* fall through */
441 case 219 : /* fall through */
442 case 220 : /* fall through */
443 case 221 : /* fall through */
444 case 222 : /* fall through */
445 case 223 :
446 if ((entire_insn & 0xfc1f0000) == 0x18000000)
447 { itype = OR1K32BF_INSN_L_MOVHI; goto extract_sfmt_l_movhi; }
448 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
449 case 256 :
450 {
451 unsigned int val = (((insn >> 23) & (7 << 0)));
452 switch (val)
453 {
454 case 0 :
455 if ((entire_insn & 0xffff0000) == 0x20000000)
456 { itype = OR1K32BF_INSN_L_SYS; goto extract_sfmt_l_trap; }
457 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
458 case 2 :
459 if ((entire_insn & 0xffff0000) == 0x21000000)
460 { itype = OR1K32BF_INSN_L_TRAP; goto extract_sfmt_l_trap; }
461 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
462 case 4 :
463 if ((entire_insn & 0xffffffff) == 0x22000000)
464 { itype = OR1K32BF_INSN_L_MSYNC; goto extract_sfmt_l_msync; }
465 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
466 case 5 :
467 if ((entire_insn & 0xffffffff) == 0x22800000)
468 { itype = OR1K32BF_INSN_L_PSYNC; goto extract_sfmt_l_msync; }
469 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
470 case 6 :
471 if ((entire_insn & 0xffffffff) == 0x23000000)
472 { itype = OR1K32BF_INSN_L_CSYNC; goto extract_sfmt_l_msync; }
473 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
474 default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
475 }
476 }
477 case 257 : /* fall through */
478 case 258 : /* fall through */
479 case 259 : /* fall through */
480 case 260 : /* fall through */
481 case 261 : /* fall through */
482 case 262 : /* fall through */
483 case 263 : /* fall through */
484 case 264 : /* fall through */
485 case 265 : /* fall through */
486 case 266 : /* fall through */
487 case 267 : /* fall through */
488 case 268 : /* fall through */
489 case 269 : /* fall through */
490 case 270 : /* fall through */
491 case 271 : /* fall through */
492 case 272 : /* fall through */
493 case 273 : /* fall through */
494 case 274 : /* fall through */
495 case 275 : /* fall through */
496 case 276 : /* fall through */
497 case 277 : /* fall through */
498 case 278 : /* fall through */
499 case 279 : /* fall through */
500 case 280 : /* fall through */
501 case 281 : /* fall through */
502 case 282 : /* fall through */
503 case 283 : /* fall through */
504 case 284 : /* fall through */
505 case 285 : /* fall through */
506 case 286 : /* fall through */
507 case 287 :
508 {
509 unsigned int val = (((insn >> 24) & (1 << 0)));
510 switch (val)
511 {
512 case 0 :
513 if ((entire_insn & 0xffff0000) == 0x20000000)
514 { itype = OR1K32BF_INSN_L_SYS; goto extract_sfmt_l_trap; }
515 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
516 case 1 :
517 if ((entire_insn & 0xffff0000) == 0x21000000)
518 { itype = OR1K32BF_INSN_L_TRAP; goto extract_sfmt_l_trap; }
519 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
520 default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
521 }
522 }
523 case 288 :
524 if ((entire_insn & 0xffffffff) == 0x24000000)
525 { itype = OR1K32BF_INSN_L_RFE; goto extract_sfmt_l_msync; }
526 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
527 case 544 :
528 if ((entire_insn & 0xffff07ff) == 0x44000000)
529 { itype = OR1K32BF_INSN_L_JR; goto extract_sfmt_l_jr; }
530 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
531 case 576 :
532 if ((entire_insn & 0xffff07ff) == 0x48000000)
533 { itype = OR1K32BF_INSN_L_JALR; goto extract_sfmt_l_jalr; }
534 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
535 case 608 : /* fall through */
536 case 609 : /* fall through */
537 case 610 : /* fall through */
538 case 611 : /* fall through */
539 case 612 : /* fall through */
540 case 613 : /* fall through */
541 case 614 : /* fall through */
542 case 615 : /* fall through */
543 case 616 : /* fall through */
544 case 617 : /* fall through */
545 case 618 : /* fall through */
546 case 619 : /* fall through */
547 case 620 : /* fall through */
548 case 621 : /* fall through */
549 case 622 : /* fall through */
550 case 623 : /* fall through */
551 case 624 : /* fall through */
552 case 625 : /* fall through */
553 case 626 : /* fall through */
554 case 627 : /* fall through */
555 case 628 : /* fall through */
556 case 629 : /* fall through */
557 case 630 : /* fall through */
558 case 631 : /* fall through */
559 case 632 : /* fall through */
560 case 633 : /* fall through */
561 case 634 : /* fall through */
562 case 635 : /* fall through */
563 case 636 : /* fall through */
564 case 637 : /* fall through */
565 case 638 : /* fall through */
566 case 639 :
567 if ((entire_insn & 0xffe00000) == 0x4c000000)
568 { itype = OR1K32BF_INSN_L_MACI; goto extract_sfmt_l_maci; }
569 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
570 case 864 : /* fall through */
571 case 865 : /* fall through */
572 case 866 : /* fall through */
573 case 867 : /* fall through */
574 case 868 : /* fall through */
575 case 869 : /* fall through */
576 case 870 : /* fall through */
577 case 871 : /* fall through */
578 case 872 : /* fall through */
579 case 873 : /* fall through */
580 case 874 : /* fall through */
581 case 875 : /* fall through */
582 case 876 : /* fall through */
583 case 877 : /* fall through */
584 case 878 : /* fall through */
585 case 879 : /* fall through */
586 case 880 : /* fall through */
587 case 881 : /* fall through */
588 case 882 : /* fall through */
589 case 883 : /* fall through */
590 case 884 : /* fall through */
591 case 885 : /* fall through */
592 case 886 : /* fall through */
593 case 887 : /* fall through */
594 case 888 : /* fall through */
595 case 889 : /* fall through */
596 case 890 : /* fall through */
597 case 891 : /* fall through */
598 case 892 : /* fall through */
599 case 893 : /* fall through */
600 case 894 : /* fall through */
601 case 895 : itype = OR1K32BF_INSN_L_LWA; goto extract_sfmt_l_lwa;
602 case 896 :
603 if ((entire_insn & 0xffffffff) == 0x70000000)
604 { itype = OR1K32BF_INSN_L_CUST1; goto extract_sfmt_l_msync; }
605 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
606 case 928 :
607 if ((entire_insn & 0xffffffff) == 0x74000000)
608 { itype = OR1K32BF_INSN_L_CUST2; goto extract_sfmt_l_msync; }
609 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
610 case 960 :
611 if ((entire_insn & 0xffffffff) == 0x78000000)
612 { itype = OR1K32BF_INSN_L_CUST3; goto extract_sfmt_l_msync; }
613 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
614 case 992 :
615 if ((entire_insn & 0xffffffff) == 0x7c000000)
616 { itype = OR1K32BF_INSN_L_CUST4; goto extract_sfmt_l_msync; }
617 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
618 case 1056 : /* fall through */
619 case 1057 : /* fall through */
620 case 1058 : /* fall through */
621 case 1059 : /* fall through */
622 case 1060 : /* fall through */
623 case 1061 : /* fall through */
624 case 1062 : /* fall through */
625 case 1063 : /* fall through */
626 case 1064 : /* fall through */
627 case 1065 : /* fall through */
628 case 1066 : /* fall through */
629 case 1067 : /* fall through */
630 case 1068 : /* fall through */
631 case 1069 : /* fall through */
632 case 1070 : /* fall through */
633 case 1071 : /* fall through */
634 case 1072 : /* fall through */
635 case 1073 : /* fall through */
636 case 1074 : /* fall through */
637 case 1075 : /* fall through */
638 case 1076 : /* fall through */
639 case 1077 : /* fall through */
640 case 1078 : /* fall through */
641 case 1079 : /* fall through */
642 case 1080 : /* fall through */
643 case 1081 : /* fall through */
644 case 1082 : /* fall through */
645 case 1083 : /* fall through */
646 case 1084 : /* fall through */
647 case 1085 : /* fall through */
648 case 1086 : /* fall through */
649 case 1087 : itype = OR1K32BF_INSN_L_LWZ; goto extract_sfmt_l_lwz;
650 case 1088 : /* fall through */
651 case 1089 : /* fall through */
652 case 1090 : /* fall through */
653 case 1091 : /* fall through */
654 case 1092 : /* fall through */
655 case 1093 : /* fall through */
656 case 1094 : /* fall through */
657 case 1095 : /* fall through */
658 case 1096 : /* fall through */
659 case 1097 : /* fall through */
660 case 1098 : /* fall through */
661 case 1099 : /* fall through */
662 case 1100 : /* fall through */
663 case 1101 : /* fall through */
664 case 1102 : /* fall through */
665 case 1103 : /* fall through */
666 case 1104 : /* fall through */
667 case 1105 : /* fall through */
668 case 1106 : /* fall through */
669 case 1107 : /* fall through */
670 case 1108 : /* fall through */
671 case 1109 : /* fall through */
672 case 1110 : /* fall through */
673 case 1111 : /* fall through */
674 case 1112 : /* fall through */
675 case 1113 : /* fall through */
676 case 1114 : /* fall through */
677 case 1115 : /* fall through */
678 case 1116 : /* fall through */
679 case 1117 : /* fall through */
680 case 1118 : /* fall through */
681 case 1119 : itype = OR1K32BF_INSN_L_LWS; goto extract_sfmt_l_lws;
682 case 1120 : /* fall through */
683 case 1121 : /* fall through */
684 case 1122 : /* fall through */
685 case 1123 : /* fall through */
686 case 1124 : /* fall through */
687 case 1125 : /* fall through */
688 case 1126 : /* fall through */
689 case 1127 : /* fall through */
690 case 1128 : /* fall through */
691 case 1129 : /* fall through */
692 case 1130 : /* fall through */
693 case 1131 : /* fall through */
694 case 1132 : /* fall through */
695 case 1133 : /* fall through */
696 case 1134 : /* fall through */
697 case 1135 : /* fall through */
698 case 1136 : /* fall through */
699 case 1137 : /* fall through */
700 case 1138 : /* fall through */
701 case 1139 : /* fall through */
702 case 1140 : /* fall through */
703 case 1141 : /* fall through */
704 case 1142 : /* fall through */
705 case 1143 : /* fall through */
706 case 1144 : /* fall through */
707 case 1145 : /* fall through */
708 case 1146 : /* fall through */
709 case 1147 : /* fall through */
710 case 1148 : /* fall through */
711 case 1149 : /* fall through */
712 case 1150 : /* fall through */
713 case 1151 : itype = OR1K32BF_INSN_L_LBZ; goto extract_sfmt_l_lbz;
714 case 1152 : /* fall through */
715 case 1153 : /* fall through */
716 case 1154 : /* fall through */
717 case 1155 : /* fall through */
718 case 1156 : /* fall through */
719 case 1157 : /* fall through */
720 case 1158 : /* fall through */
721 case 1159 : /* fall through */
722 case 1160 : /* fall through */
723 case 1161 : /* fall through */
724 case 1162 : /* fall through */
725 case 1163 : /* fall through */
726 case 1164 : /* fall through */
727 case 1165 : /* fall through */
728 case 1166 : /* fall through */
729 case 1167 : /* fall through */
730 case 1168 : /* fall through */
731 case 1169 : /* fall through */
732 case 1170 : /* fall through */
733 case 1171 : /* fall through */
734 case 1172 : /* fall through */
735 case 1173 : /* fall through */
736 case 1174 : /* fall through */
737 case 1175 : /* fall through */
738 case 1176 : /* fall through */
739 case 1177 : /* fall through */
740 case 1178 : /* fall through */
741 case 1179 : /* fall through */
742 case 1180 : /* fall through */
743 case 1181 : /* fall through */
744 case 1182 : /* fall through */
745 case 1183 : itype = OR1K32BF_INSN_L_LBS; goto extract_sfmt_l_lbs;
746 case 1184 : /* fall through */
747 case 1185 : /* fall through */
748 case 1186 : /* fall through */
749 case 1187 : /* fall through */
750 case 1188 : /* fall through */
751 case 1189 : /* fall through */
752 case 1190 : /* fall through */
753 case 1191 : /* fall through */
754 case 1192 : /* fall through */
755 case 1193 : /* fall through */
756 case 1194 : /* fall through */
757 case 1195 : /* fall through */
758 case 1196 : /* fall through */
759 case 1197 : /* fall through */
760 case 1198 : /* fall through */
761 case 1199 : /* fall through */
762 case 1200 : /* fall through */
763 case 1201 : /* fall through */
764 case 1202 : /* fall through */
765 case 1203 : /* fall through */
766 case 1204 : /* fall through */
767 case 1205 : /* fall through */
768 case 1206 : /* fall through */
769 case 1207 : /* fall through */
770 case 1208 : /* fall through */
771 case 1209 : /* fall through */
772 case 1210 : /* fall through */
773 case 1211 : /* fall through */
774 case 1212 : /* fall through */
775 case 1213 : /* fall through */
776 case 1214 : /* fall through */
777 case 1215 : itype = OR1K32BF_INSN_L_LHZ; goto extract_sfmt_l_lhz;
778 case 1216 : /* fall through */
779 case 1217 : /* fall through */
780 case 1218 : /* fall through */
781 case 1219 : /* fall through */
782 case 1220 : /* fall through */
783 case 1221 : /* fall through */
784 case 1222 : /* fall through */
785 case 1223 : /* fall through */
786 case 1224 : /* fall through */
787 case 1225 : /* fall through */
788 case 1226 : /* fall through */
789 case 1227 : /* fall through */
790 case 1228 : /* fall through */
791 case 1229 : /* fall through */
792 case 1230 : /* fall through */
793 case 1231 : /* fall through */
794 case 1232 : /* fall through */
795 case 1233 : /* fall through */
796 case 1234 : /* fall through */
797 case 1235 : /* fall through */
798 case 1236 : /* fall through */
799 case 1237 : /* fall through */
800 case 1238 : /* fall through */
801 case 1239 : /* fall through */
802 case 1240 : /* fall through */
803 case 1241 : /* fall through */
804 case 1242 : /* fall through */
805 case 1243 : /* fall through */
806 case 1244 : /* fall through */
807 case 1245 : /* fall through */
808 case 1246 : /* fall through */
809 case 1247 : itype = OR1K32BF_INSN_L_LHS; goto extract_sfmt_l_lhs;
810 case 1248 : /* fall through */
811 case 1249 : /* fall through */
812 case 1250 : /* fall through */
813 case 1251 : /* fall through */
814 case 1252 : /* fall through */
815 case 1253 : /* fall through */
816 case 1254 : /* fall through */
817 case 1255 : /* fall through */
818 case 1256 : /* fall through */
819 case 1257 : /* fall through */
820 case 1258 : /* fall through */
821 case 1259 : /* fall through */
822 case 1260 : /* fall through */
823 case 1261 : /* fall through */
824 case 1262 : /* fall through */
825 case 1263 : /* fall through */
826 case 1264 : /* fall through */
827 case 1265 : /* fall through */
828 case 1266 : /* fall through */
829 case 1267 : /* fall through */
830 case 1268 : /* fall through */
831 case 1269 : /* fall through */
832 case 1270 : /* fall through */
833 case 1271 : /* fall through */
834 case 1272 : /* fall through */
835 case 1273 : /* fall through */
836 case 1274 : /* fall through */
837 case 1275 : /* fall through */
838 case 1276 : /* fall through */
839 case 1277 : /* fall through */
840 case 1278 : /* fall through */
841 case 1279 : itype = OR1K32BF_INSN_L_ADDI; goto extract_sfmt_l_addi;
842 case 1280 : /* fall through */
843 case 1281 : /* fall through */
844 case 1282 : /* fall through */
845 case 1283 : /* fall through */
846 case 1284 : /* fall through */
847 case 1285 : /* fall through */
848 case 1286 : /* fall through */
849 case 1287 : /* fall through */
850 case 1288 : /* fall through */
851 case 1289 : /* fall through */
852 case 1290 : /* fall through */
853 case 1291 : /* fall through */
854 case 1292 : /* fall through */
855 case 1293 : /* fall through */
856 case 1294 : /* fall through */
857 case 1295 : /* fall through */
858 case 1296 : /* fall through */
859 case 1297 : /* fall through */
860 case 1298 : /* fall through */
861 case 1299 : /* fall through */
862 case 1300 : /* fall through */
863 case 1301 : /* fall through */
864 case 1302 : /* fall through */
865 case 1303 : /* fall through */
866 case 1304 : /* fall through */
867 case 1305 : /* fall through */
868 case 1306 : /* fall through */
869 case 1307 : /* fall through */
870 case 1308 : /* fall through */
871 case 1309 : /* fall through */
872 case 1310 : /* fall through */
873 case 1311 : itype = OR1K32BF_INSN_L_ADDIC; goto extract_sfmt_l_addic;
874 case 1312 : /* fall through */
875 case 1313 : /* fall through */
876 case 1314 : /* fall through */
877 case 1315 : /* fall through */
878 case 1316 : /* fall through */
879 case 1317 : /* fall through */
880 case 1318 : /* fall through */
881 case 1319 : /* fall through */
882 case 1320 : /* fall through */
883 case 1321 : /* fall through */
884 case 1322 : /* fall through */
885 case 1323 : /* fall through */
886 case 1324 : /* fall through */
887 case 1325 : /* fall through */
888 case 1326 : /* fall through */
889 case 1327 : /* fall through */
890 case 1328 : /* fall through */
891 case 1329 : /* fall through */
892 case 1330 : /* fall through */
893 case 1331 : /* fall through */
894 case 1332 : /* fall through */
895 case 1333 : /* fall through */
896 case 1334 : /* fall through */
897 case 1335 : /* fall through */
898 case 1336 : /* fall through */
899 case 1337 : /* fall through */
900 case 1338 : /* fall through */
901 case 1339 : /* fall through */
902 case 1340 : /* fall through */
903 case 1341 : /* fall through */
904 case 1342 : /* fall through */
905 case 1343 : itype = OR1K32BF_INSN_L_ANDI; goto extract_sfmt_l_mfspr;
906 case 1344 : /* fall through */
907 case 1345 : /* fall through */
908 case 1346 : /* fall through */
909 case 1347 : /* fall through */
910 case 1348 : /* fall through */
911 case 1349 : /* fall through */
912 case 1350 : /* fall through */
913 case 1351 : /* fall through */
914 case 1352 : /* fall through */
915 case 1353 : /* fall through */
916 case 1354 : /* fall through */
917 case 1355 : /* fall through */
918 case 1356 : /* fall through */
919 case 1357 : /* fall through */
920 case 1358 : /* fall through */
921 case 1359 : /* fall through */
922 case 1360 : /* fall through */
923 case 1361 : /* fall through */
924 case 1362 : /* fall through */
925 case 1363 : /* fall through */
926 case 1364 : /* fall through */
927 case 1365 : /* fall through */
928 case 1366 : /* fall through */
929 case 1367 : /* fall through */
930 case 1368 : /* fall through */
931 case 1369 : /* fall through */
932 case 1370 : /* fall through */
933 case 1371 : /* fall through */
934 case 1372 : /* fall through */
935 case 1373 : /* fall through */
936 case 1374 : /* fall through */
937 case 1375 : itype = OR1K32BF_INSN_L_ORI; goto extract_sfmt_l_mfspr;
938 case 1376 : /* fall through */
939 case 1377 : /* fall through */
940 case 1378 : /* fall through */
941 case 1379 : /* fall through */
942 case 1380 : /* fall through */
943 case 1381 : /* fall through */
944 case 1382 : /* fall through */
945 case 1383 : /* fall through */
946 case 1384 : /* fall through */
947 case 1385 : /* fall through */
948 case 1386 : /* fall through */
949 case 1387 : /* fall through */
950 case 1388 : /* fall through */
951 case 1389 : /* fall through */
952 case 1390 : /* fall through */
953 case 1391 : /* fall through */
954 case 1392 : /* fall through */
955 case 1393 : /* fall through */
956 case 1394 : /* fall through */
957 case 1395 : /* fall through */
958 case 1396 : /* fall through */
959 case 1397 : /* fall through */
960 case 1398 : /* fall through */
961 case 1399 : /* fall through */
962 case 1400 : /* fall through */
963 case 1401 : /* fall through */
964 case 1402 : /* fall through */
965 case 1403 : /* fall through */
966 case 1404 : /* fall through */
967 case 1405 : /* fall through */
968 case 1406 : /* fall through */
969 case 1407 : itype = OR1K32BF_INSN_L_XORI; goto extract_sfmt_l_xori;
970 case 1408 : /* fall through */
971 case 1409 : /* fall through */
972 case 1410 : /* fall through */
973 case 1411 : /* fall through */
974 case 1412 : /* fall through */
975 case 1413 : /* fall through */
976 case 1414 : /* fall through */
977 case 1415 : /* fall through */
978 case 1416 : /* fall through */
979 case 1417 : /* fall through */
980 case 1418 : /* fall through */
981 case 1419 : /* fall through */
982 case 1420 : /* fall through */
983 case 1421 : /* fall through */
984 case 1422 : /* fall through */
985 case 1423 : /* fall through */
986 case 1424 : /* fall through */
987 case 1425 : /* fall through */
988 case 1426 : /* fall through */
989 case 1427 : /* fall through */
990 case 1428 : /* fall through */
991 case 1429 : /* fall through */
992 case 1430 : /* fall through */
993 case 1431 : /* fall through */
994 case 1432 : /* fall through */
995 case 1433 : /* fall through */
996 case 1434 : /* fall through */
997 case 1435 : /* fall through */
998 case 1436 : /* fall through */
999 case 1437 : /* fall through */
1000 case 1438 : /* fall through */
1001 case 1439 : itype = OR1K32BF_INSN_L_MULI; goto extract_sfmt_l_addi;
1002 case 1440 : /* fall through */
1003 case 1441 : /* fall through */
1004 case 1442 : /* fall through */
1005 case 1443 : /* fall through */
1006 case 1444 : /* fall through */
1007 case 1445 : /* fall through */
1008 case 1446 : /* fall through */
1009 case 1447 : /* fall through */
1010 case 1448 : /* fall through */
1011 case 1449 : /* fall through */
1012 case 1450 : /* fall through */
1013 case 1451 : /* fall through */
1014 case 1452 : /* fall through */
1015 case 1453 : /* fall through */
1016 case 1454 : /* fall through */
1017 case 1455 : /* fall through */
1018 case 1456 : /* fall through */
1019 case 1457 : /* fall through */
1020 case 1458 : /* fall through */
1021 case 1459 : /* fall through */
1022 case 1460 : /* fall through */
1023 case 1461 : /* fall through */
1024 case 1462 : /* fall through */
1025 case 1463 : /* fall through */
1026 case 1464 : /* fall through */
1027 case 1465 : /* fall through */
1028 case 1466 : /* fall through */
1029 case 1467 : /* fall through */
1030 case 1468 : /* fall through */
1031 case 1469 : /* fall through */
1032 case 1470 : /* fall through */
1033 case 1471 : itype = OR1K32BF_INSN_L_MFSPR; goto extract_sfmt_l_mfspr;
1034 case 1472 : /* fall through */
1035 case 1473 : /* fall through */
1036 case 1474 : /* fall through */
1037 case 1475 : /* fall through */
1038 case 1476 : /* fall through */
1039 case 1477 : /* fall through */
1040 case 1478 : /* fall through */
1041 case 1479 : /* fall through */
1042 case 1480 : /* fall through */
1043 case 1481 : /* fall through */
1044 case 1482 : /* fall through */
1045 case 1483 : /* fall through */
1046 case 1484 : /* fall through */
1047 case 1485 : /* fall through */
1048 case 1486 : /* fall through */
1049 case 1487 :
1050 {
1051 unsigned int val = (((insn >> 7) & (1 << 0)));
1052 switch (val)
1053 {
1054 case 0 :
1055 if ((entire_insn & 0xfc00ffc0) == 0xb8000000)
1056 { itype = OR1K32BF_INSN_L_SLLI; goto extract_sfmt_l_slli; }
1057 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1058 case 1 :
1059 if ((entire_insn & 0xfc00ffc0) == 0xb8000080)
1060 { itype = OR1K32BF_INSN_L_SRAI; goto extract_sfmt_l_slli; }
1061 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1062 default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1063 }
1064 }
1065 case 1488 : /* fall through */
1066 case 1489 : /* fall through */
1067 case 1490 : /* fall through */
1068 case 1491 : /* fall through */
1069 case 1492 : /* fall through */
1070 case 1493 : /* fall through */
1071 case 1494 : /* fall through */
1072 case 1495 : /* fall through */
1073 case 1496 : /* fall through */
1074 case 1497 : /* fall through */
1075 case 1498 : /* fall through */
1076 case 1499 : /* fall through */
1077 case 1500 : /* fall through */
1078 case 1501 : /* fall through */
1079 case 1502 : /* fall through */
1080 case 1503 :
1081 {
1082 unsigned int val = (((insn >> 7) & (1 << 0)));
1083 switch (val)
1084 {
1085 case 0 :
1086 if ((entire_insn & 0xfc00ffc0) == 0xb8000040)
1087 { itype = OR1K32BF_INSN_L_SRLI; goto extract_sfmt_l_slli; }
1088 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1089 case 1 :
1090 if ((entire_insn & 0xfc00ffc0) == 0xb80000c0)
1091 { itype = OR1K32BF_INSN_L_RORI; goto extract_sfmt_l_slli; }
1092 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1093 default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1094 }
1095 }
1096 case 1504 : /* fall through */
1097 case 1505 : /* fall through */
1098 case 1506 : /* fall through */
1099 case 1507 : /* fall through */
1100 case 1508 : /* fall through */
1101 case 1509 : /* fall through */
1102 case 1510 : /* fall through */
1103 case 1511 : /* fall through */
1104 case 1512 : /* fall through */
1105 case 1513 : /* fall through */
1106 case 1514 : /* fall through */
1107 case 1515 : /* fall through */
1108 case 1516 : /* fall through */
1109 case 1517 : /* fall through */
1110 case 1518 : /* fall through */
1111 case 1519 : /* fall through */
1112 case 1520 : /* fall through */
1113 case 1521 : /* fall through */
1114 case 1522 : /* fall through */
1115 case 1523 : /* fall through */
1116 case 1524 : /* fall through */
1117 case 1525 : /* fall through */
1118 case 1526 : /* fall through */
1119 case 1527 : /* fall through */
1120 case 1528 : /* fall through */
1121 case 1529 : /* fall through */
1122 case 1530 : /* fall through */
1123 case 1531 : /* fall through */
1124 case 1532 : /* fall through */
1125 case 1533 : /* fall through */
1126 case 1534 : /* fall through */
1127 case 1535 :
1128 {
1129 unsigned int val = (((insn >> 21) & (15 << 0)));
1130 switch (val)
1131 {
1132 case 0 :
1133 if ((entire_insn & 0xffe00000) == 0xbc000000)
1134 { itype = OR1K32BF_INSN_L_SFEQI; goto extract_sfmt_l_sfgtsi; }
1135 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1136 case 1 :
1137 if ((entire_insn & 0xffe00000) == 0xbc200000)
1138 { itype = OR1K32BF_INSN_L_SFNEI; goto extract_sfmt_l_sfgtsi; }
1139 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1140 case 2 :
1141 if ((entire_insn & 0xffe00000) == 0xbc400000)
1142 { itype = OR1K32BF_INSN_L_SFGTUI; goto extract_sfmt_l_sfgtsi; }
1143 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1144 case 3 :
1145 if ((entire_insn & 0xffe00000) == 0xbc600000)
1146 { itype = OR1K32BF_INSN_L_SFGEUI; goto extract_sfmt_l_sfgtsi; }
1147 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1148 case 4 :
1149 if ((entire_insn & 0xffe00000) == 0xbc800000)
1150 { itype = OR1K32BF_INSN_L_SFLTUI; goto extract_sfmt_l_sfgtsi; }
1151 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1152 case 5 :
1153 if ((entire_insn & 0xffe00000) == 0xbca00000)
1154 { itype = OR1K32BF_INSN_L_SFLEUI; goto extract_sfmt_l_sfgtsi; }
1155 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1156 case 10 :
1157 if ((entire_insn & 0xffe00000) == 0xbd400000)
1158 { itype = OR1K32BF_INSN_L_SFGTSI; goto extract_sfmt_l_sfgtsi; }
1159 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1160 case 11 :
1161 if ((entire_insn & 0xffe00000) == 0xbd600000)
1162 { itype = OR1K32BF_INSN_L_SFGESI; goto extract_sfmt_l_sfgtsi; }
1163 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1164 case 12 :
1165 if ((entire_insn & 0xffe00000) == 0xbd800000)
1166 { itype = OR1K32BF_INSN_L_SFLTSI; goto extract_sfmt_l_sfgtsi; }
1167 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1168 case 13 :
1169 if ((entire_insn & 0xffe00000) == 0xbda00000)
1170 { itype = OR1K32BF_INSN_L_SFLESI; goto extract_sfmt_l_sfgtsi; }
1171 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1172 default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1173 }
1174 }
1175 case 1536 : /* fall through */
1176 case 1537 : /* fall through */
1177 case 1538 : /* fall through */
1178 case 1539 : /* fall through */
1179 case 1540 : /* fall through */
1180 case 1541 : /* fall through */
1181 case 1542 : /* fall through */
1182 case 1543 : /* fall through */
1183 case 1544 : /* fall through */
1184 case 1545 : /* fall through */
1185 case 1546 : /* fall through */
1186 case 1547 : /* fall through */
1187 case 1548 : /* fall through */
1188 case 1549 : /* fall through */
1189 case 1550 : /* fall through */
1190 case 1551 : /* fall through */
1191 case 1552 : /* fall through */
1192 case 1553 : /* fall through */
1193 case 1554 : /* fall through */
1194 case 1555 : /* fall through */
1195 case 1556 : /* fall through */
1196 case 1557 : /* fall through */
1197 case 1558 : /* fall through */
1198 case 1559 : /* fall through */
1199 case 1560 : /* fall through */
1200 case 1561 : /* fall through */
1201 case 1562 : /* fall through */
1202 case 1563 : /* fall through */
1203 case 1564 : /* fall through */
1204 case 1565 : /* fall through */
1205 case 1566 : /* fall through */
1206 case 1567 : itype = OR1K32BF_INSN_L_MTSPR; goto extract_sfmt_l_mtspr;
1207 case 1569 :
1208 if ((entire_insn & 0xffe007ff) == 0xc4000001)
1209 { itype = OR1K32BF_INSN_L_MAC; goto extract_sfmt_l_mac; }
1210 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1211 case 1570 :
1212 if ((entire_insn & 0xffe007ff) == 0xc4000002)
1213 { itype = OR1K32BF_INSN_L_MSB; goto extract_sfmt_l_mac; }
1214 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1215 case 1600 :
1216 if ((entire_insn & 0xfc0007ff) == 0xc8000000)
1217 { itype = OR1K32BF_INSN_LF_ADD_S; goto extract_sfmt_lf_add_s; }
1218 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1219 case 1601 :
1220 if ((entire_insn & 0xfc0007ff) == 0xc8000001)
1221 { itype = OR1K32BF_INSN_LF_SUB_S; goto extract_sfmt_lf_add_s; }
1222 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1223 case 1602 :
1224 if ((entire_insn & 0xfc0007ff) == 0xc8000002)
1225 { itype = OR1K32BF_INSN_LF_MUL_S; goto extract_sfmt_lf_add_s; }
1226 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1227 case 1603 :
1228 if ((entire_insn & 0xfc0007ff) == 0xc8000003)
1229 { itype = OR1K32BF_INSN_LF_DIV_S; goto extract_sfmt_lf_add_s; }
1230 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1231 case 1604 :
1232 if ((entire_insn & 0xfc00ffff) == 0xc8000004)
1233 { itype = OR1K32BF_INSN_LF_ITOF_S; goto extract_sfmt_lf_itof_s; }
1234 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1235 case 1605 :
1236 if ((entire_insn & 0xfc00ffff) == 0xc8000005)
1237 { itype = OR1K32BF_INSN_LF_FTOI_S; goto extract_sfmt_lf_ftoi_s; }
1238 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1239 case 1606 :
1240 if ((entire_insn & 0xfc0007ff) == 0xc8000006)
1241 { itype = OR1K32BF_INSN_LF_REM_S; goto extract_sfmt_lf_add_s; }
1242 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1243 case 1607 :
1244 if ((entire_insn & 0xfc0007ff) == 0xc8000007)
1245 { itype = OR1K32BF_INSN_LF_MADD_S; goto extract_sfmt_lf_madd_s; }
1246 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1247 case 1608 :
1248 if ((entire_insn & 0xffe007ff) == 0xc8000008)
1249 { itype = OR1K32BF_INSN_LF_EQ_S; goto extract_sfmt_lf_eq_s; }
1250 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1251 case 1609 :
1252 if ((entire_insn & 0xffe007ff) == 0xc8000009)
1253 { itype = OR1K32BF_INSN_LF_NE_S; goto extract_sfmt_lf_eq_s; }
1254 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1255 case 1610 :
1256 if ((entire_insn & 0xffe007ff) == 0xc800000a)
1257 { itype = OR1K32BF_INSN_LF_GT_S; goto extract_sfmt_lf_eq_s; }
1258 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1259 case 1611 :
1260 if ((entire_insn & 0xffe007ff) == 0xc800000b)
1261 { itype = OR1K32BF_INSN_LF_GE_S; goto extract_sfmt_lf_eq_s; }
1262 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1263 case 1612 :
1264 if ((entire_insn & 0xffe007ff) == 0xc800000c)
1265 { itype = OR1K32BF_INSN_LF_LT_S; goto extract_sfmt_lf_eq_s; }
1266 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1267 case 1613 :
1268 if ((entire_insn & 0xffe007ff) == 0xc800000d)
1269 { itype = OR1K32BF_INSN_LF_LE_S; goto extract_sfmt_lf_eq_s; }
1270 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1271 case 1616 :
1272 if ((entire_insn & 0xffe007ff) == 0xc80000d0)
1273 { itype = OR1K32BF_INSN_LF_CUST1_S; goto extract_sfmt_l_msync; }
1274 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1275 case 1632 : /* fall through */
1276 case 1633 : /* fall through */
1277 case 1634 : /* fall through */
1278 case 1635 : /* fall through */
1279 case 1636 : /* fall through */
1280 case 1637 : /* fall through */
1281 case 1638 : /* fall through */
1282 case 1639 : /* fall through */
1283 case 1640 : /* fall through */
1284 case 1641 : /* fall through */
1285 case 1642 : /* fall through */
1286 case 1643 : /* fall through */
1287 case 1644 : /* fall through */
1288 case 1645 : /* fall through */
1289 case 1646 : /* fall through */
1290 case 1647 : /* fall through */
1291 case 1648 : /* fall through */
1292 case 1649 : /* fall through */
1293 case 1650 : /* fall through */
1294 case 1651 : /* fall through */
1295 case 1652 : /* fall through */
1296 case 1653 : /* fall through */
1297 case 1654 : /* fall through */
1298 case 1655 : /* fall through */
1299 case 1656 : /* fall through */
1300 case 1657 : /* fall through */
1301 case 1658 : /* fall through */
1302 case 1659 : /* fall through */
1303 case 1660 : /* fall through */
1304 case 1661 : /* fall through */
1305 case 1662 : /* fall through */
1306 case 1663 : itype = OR1K32BF_INSN_L_SWA; goto extract_sfmt_l_swa;
1307 case 1696 : /* fall through */
1308 case 1697 : /* fall through */
1309 case 1698 : /* fall through */
1310 case 1699 : /* fall through */
1311 case 1700 : /* fall through */
1312 case 1701 : /* fall through */
1313 case 1702 : /* fall through */
1314 case 1703 : /* fall through */
1315 case 1704 : /* fall through */
1316 case 1705 : /* fall through */
1317 case 1706 : /* fall through */
1318 case 1707 : /* fall through */
1319 case 1708 : /* fall through */
1320 case 1709 : /* fall through */
1321 case 1710 : /* fall through */
1322 case 1711 : /* fall through */
1323 case 1712 : /* fall through */
1324 case 1713 : /* fall through */
1325 case 1714 : /* fall through */
1326 case 1715 : /* fall through */
1327 case 1716 : /* fall through */
1328 case 1717 : /* fall through */
1329 case 1718 : /* fall through */
1330 case 1719 : /* fall through */
1331 case 1720 : /* fall through */
1332 case 1721 : /* fall through */
1333 case 1722 : /* fall through */
1334 case 1723 : /* fall through */
1335 case 1724 : /* fall through */
1336 case 1725 : /* fall through */
1337 case 1726 : /* fall through */
1338 case 1727 : itype = OR1K32BF_INSN_L_SW; goto extract_sfmt_l_sw;
1339 case 1728 : /* fall through */
1340 case 1729 : /* fall through */
1341 case 1730 : /* fall through */
1342 case 1731 : /* fall through */
1343 case 1732 : /* fall through */
1344 case 1733 : /* fall through */
1345 case 1734 : /* fall through */
1346 case 1735 : /* fall through */
1347 case 1736 : /* fall through */
1348 case 1737 : /* fall through */
1349 case 1738 : /* fall through */
1350 case 1739 : /* fall through */
1351 case 1740 : /* fall through */
1352 case 1741 : /* fall through */
1353 case 1742 : /* fall through */
1354 case 1743 : /* fall through */
1355 case 1744 : /* fall through */
1356 case 1745 : /* fall through */
1357 case 1746 : /* fall through */
1358 case 1747 : /* fall through */
1359 case 1748 : /* fall through */
1360 case 1749 : /* fall through */
1361 case 1750 : /* fall through */
1362 case 1751 : /* fall through */
1363 case 1752 : /* fall through */
1364 case 1753 : /* fall through */
1365 case 1754 : /* fall through */
1366 case 1755 : /* fall through */
1367 case 1756 : /* fall through */
1368 case 1757 : /* fall through */
1369 case 1758 : /* fall through */
1370 case 1759 : itype = OR1K32BF_INSN_L_SB; goto extract_sfmt_l_sb;
1371 case 1760 : /* fall through */
1372 case 1761 : /* fall through */
1373 case 1762 : /* fall through */
1374 case 1763 : /* fall through */
1375 case 1764 : /* fall through */
1376 case 1765 : /* fall through */
1377 case 1766 : /* fall through */
1378 case 1767 : /* fall through */
1379 case 1768 : /* fall through */
1380 case 1769 : /* fall through */
1381 case 1770 : /* fall through */
1382 case 1771 : /* fall through */
1383 case 1772 : /* fall through */
1384 case 1773 : /* fall through */
1385 case 1774 : /* fall through */
1386 case 1775 : /* fall through */
1387 case 1776 : /* fall through */
1388 case 1777 : /* fall through */
1389 case 1778 : /* fall through */
1390 case 1779 : /* fall through */
1391 case 1780 : /* fall through */
1392 case 1781 : /* fall through */
1393 case 1782 : /* fall through */
1394 case 1783 : /* fall through */
1395 case 1784 : /* fall through */
1396 case 1785 : /* fall through */
1397 case 1786 : /* fall through */
1398 case 1787 : /* fall through */
1399 case 1788 : /* fall through */
1400 case 1789 : /* fall through */
1401 case 1790 : /* fall through */
1402 case 1791 : itype = OR1K32BF_INSN_L_SH; goto extract_sfmt_l_sh;
1403 case 1792 :
1404 if ((entire_insn & 0xfc0007ff) == 0xe0000000)
1405 { itype = OR1K32BF_INSN_L_ADD; goto extract_sfmt_l_add; }
1406 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1407 case 1793 :
1408 if ((entire_insn & 0xfc0007ff) == 0xe0000001)
1409 { itype = OR1K32BF_INSN_L_ADDC; goto extract_sfmt_l_addc; }
1410 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1411 case 1794 :
1412 if ((entire_insn & 0xfc0007ff) == 0xe0000002)
1413 { itype = OR1K32BF_INSN_L_SUB; goto extract_sfmt_l_add; }
1414 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1415 case 1795 :
1416 if ((entire_insn & 0xfc0007ff) == 0xe0000003)
1417 { itype = OR1K32BF_INSN_L_AND; goto extract_sfmt_l_and; }
1418 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1419 case 1796 :
1420 if ((entire_insn & 0xfc0007ff) == 0xe0000004)
1421 { itype = OR1K32BF_INSN_L_OR; goto extract_sfmt_l_and; }
1422 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1423 case 1797 :
1424 if ((entire_insn & 0xfc0007ff) == 0xe0000005)
1425 { itype = OR1K32BF_INSN_L_XOR; goto extract_sfmt_l_and; }
1426 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1427 case 1798 :
1428 if ((entire_insn & 0xfc0007ff) == 0xe0000306)
1429 { itype = OR1K32BF_INSN_L_MUL; goto extract_sfmt_l_add; }
1430 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1431 case 1800 :
1432 {
1433 unsigned int val = (((insn >> 7) & (1 << 0)));
1434 switch (val)
1435 {
1436 case 0 :
1437 if ((entire_insn & 0xfc0007ff) == 0xe0000008)
1438 { itype = OR1K32BF_INSN_L_SLL; goto extract_sfmt_l_sll; }
1439 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1440 case 1 :
1441 if ((entire_insn & 0xfc0007ff) == 0xe0000088)
1442 { itype = OR1K32BF_INSN_L_SRA; goto extract_sfmt_l_sll; }
1443 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1444 default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1445 }
1446 }
1447 case 1801 :
1448 if ((entire_insn & 0xfc0007ff) == 0xe0000309)
1449 { itype = OR1K32BF_INSN_L_DIV; goto extract_sfmt_l_div; }
1450 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1451 case 1802 :
1452 if ((entire_insn & 0xfc0007ff) == 0xe000030a)
1453 { itype = OR1K32BF_INSN_L_DIVU; goto extract_sfmt_l_div; }
1454 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1455 case 1803 :
1456 if ((entire_insn & 0xfc0007ff) == 0xe000030b)
1457 { itype = OR1K32BF_INSN_L_MULU; goto extract_sfmt_l_add; }
1458 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1459 case 1804 :
1460 {
1461 unsigned int val = (((insn >> 7) & (1 << 0)));
1462 switch (val)
1463 {
1464 case 0 :
1465 if ((entire_insn & 0xfc00ffff) == 0xe000000c)
1466 { itype = OR1K32BF_INSN_L_EXTHS; goto extract_sfmt_l_exths; }
1467 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1468 case 1 :
1469 if ((entire_insn & 0xfc00ffff) == 0xe000008c)
1470 { itype = OR1K32BF_INSN_L_EXTHZ; goto extract_sfmt_l_exths; }
1471 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1472 default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1473 }
1474 }
1475 case 1805 :
1476 if ((entire_insn & 0xfc00ffff) == 0xe000000d)
1477 { itype = OR1K32BF_INSN_L_EXTWS; goto extract_sfmt_l_exths; }
1478 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1479 case 1806 :
1480 if ((entire_insn & 0xfc0007ff) == 0xe000000e)
1481 { itype = OR1K32BF_INSN_L_CMOV; goto extract_sfmt_l_cmov; }
1482 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1483 case 1807 :
1484 {
1485 unsigned int val = (((insn >> 8) & (1 << 0)));
1486 switch (val)
1487 {
1488 case 0 :
1489 if ((entire_insn & 0xfc0007ff) == 0xe000000f)
1490 { itype = OR1K32BF_INSN_L_FF1; goto extract_sfmt_l_ff1; }
1491 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1492 case 1 :
1493 if ((entire_insn & 0xfc0007ff) == 0xe000010f)
1494 { itype = OR1K32BF_INSN_L_FL1; goto extract_sfmt_l_ff1; }
1495 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1496 default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1497 }
1498 }
1499 case 1816 :
1500 {
1501 unsigned int val = (((insn >> 7) & (1 << 0)));
1502 switch (val)
1503 {
1504 case 0 :
1505 if ((entire_insn & 0xfc0007ff) == 0xe0000048)
1506 { itype = OR1K32BF_INSN_L_SRL; goto extract_sfmt_l_sll; }
1507 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1508 case 1 :
1509 if ((entire_insn & 0xfc0007ff) == 0xe00000c8)
1510 { itype = OR1K32BF_INSN_L_ROR; goto extract_sfmt_l_sll; }
1511 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1512 default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1513 }
1514 }
1515 case 1820 :
1516 {
1517 unsigned int val = (((insn >> 7) & (1 << 0)));
1518 switch (val)
1519 {
1520 case 0 :
1521 if ((entire_insn & 0xfc00ffff) == 0xe000004c)
1522 { itype = OR1K32BF_INSN_L_EXTBS; goto extract_sfmt_l_exths; }
1523 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1524 case 1 :
1525 if ((entire_insn & 0xfc00ffff) == 0xe00000cc)
1526 { itype = OR1K32BF_INSN_L_EXTBZ; goto extract_sfmt_l_exths; }
1527 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1528 default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1529 }
1530 }
1531 case 1821 :
1532 if ((entire_insn & 0xfc00ffff) == 0xe000004d)
1533 { itype = OR1K32BF_INSN_L_EXTWZ; goto extract_sfmt_l_exths; }
1534 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1535 case 1824 :
1536 {
1537 unsigned int val = (((insn >> 21) & (15 << 0)));
1538 switch (val)
1539 {
1540 case 0 :
1541 if ((entire_insn & 0xffe007ff) == 0xe4000000)
1542 { itype = OR1K32BF_INSN_L_SFEQ; goto extract_sfmt_l_sfgts; }
1543 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1544 case 1 :
1545 if ((entire_insn & 0xffe007ff) == 0xe4200000)
1546 { itype = OR1K32BF_INSN_L_SFNE; goto extract_sfmt_l_sfgts; }
1547 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1548 case 2 :
1549 if ((entire_insn & 0xffe007ff) == 0xe4400000)
1550 { itype = OR1K32BF_INSN_L_SFGTU; goto extract_sfmt_l_sfgts; }
1551 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1552 case 3 :
1553 if ((entire_insn & 0xffe007ff) == 0xe4600000)
1554 { itype = OR1K32BF_INSN_L_SFGEU; goto extract_sfmt_l_sfgts; }
1555 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1556 case 4 :
1557 if ((entire_insn & 0xffe007ff) == 0xe4800000)
1558 { itype = OR1K32BF_INSN_L_SFLTU; goto extract_sfmt_l_sfgts; }
1559 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1560 case 5 :
1561 if ((entire_insn & 0xffe007ff) == 0xe4a00000)
1562 { itype = OR1K32BF_INSN_L_SFLEU; goto extract_sfmt_l_sfgts; }
1563 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1564 case 10 :
1565 if ((entire_insn & 0xffe007ff) == 0xe5400000)
1566 { itype = OR1K32BF_INSN_L_SFGTS; goto extract_sfmt_l_sfgts; }
1567 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1568 case 11 :
1569 if ((entire_insn & 0xffe007ff) == 0xe5600000)
1570 { itype = OR1K32BF_INSN_L_SFGES; goto extract_sfmt_l_sfgts; }
1571 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1572 case 12 :
1573 if ((entire_insn & 0xffe007ff) == 0xe5800000)
1574 { itype = OR1K32BF_INSN_L_SFLTS; goto extract_sfmt_l_sfgts; }
1575 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1576 case 13 :
1577 if ((entire_insn & 0xffe007ff) == 0xe5a00000)
1578 { itype = OR1K32BF_INSN_L_SFLES; goto extract_sfmt_l_sfgts; }
1579 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1580 default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1581 }
1582 }
1583 case 1920 :
1584 if ((entire_insn & 0xffffffff) == 0xf0000000)
1585 { itype = OR1K32BF_INSN_L_CUST5; goto extract_sfmt_l_msync; }
1586 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1587 case 1952 :
1588 if ((entire_insn & 0xffffffff) == 0xf4000000)
1589 { itype = OR1K32BF_INSN_L_CUST6; goto extract_sfmt_l_msync; }
1590 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1591 case 1984 :
1592 if ((entire_insn & 0xffffffff) == 0xf8000000)
1593 { itype = OR1K32BF_INSN_L_CUST7; goto extract_sfmt_l_msync; }
1594 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1595 case 2016 :
1596 if ((entire_insn & 0xffffffff) == 0xfc000000)
1597 { itype = OR1K32BF_INSN_L_CUST8; goto extract_sfmt_l_msync; }
1598 itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1599 default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
1600 }
1601 }
1602 }
1603
1604 /* The instruction has been decoded, now extract the fields. */
1605
1606 extract_sfmt_empty:
1607 {
1608 const IDESC *idesc = &or1k32bf_insn_data[itype];
1609 #define FLD(f) abuf->fields.sfmt_empty.f
1610
1611
1612 /* Record the fields for the semantic handler. */
1613 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
1614
1615 #undef FLD
1616 return idesc;
1617 }
1618
1619 extract_sfmt_l_j:
1620 {
1621 const IDESC *idesc = &or1k32bf_insn_data[itype];
1622 CGEN_INSN_WORD insn = entire_insn;
1623 #define FLD(f) abuf->fields.sfmt_l_j.f
1624 USI f_disp26;
1625
1626 f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
1627
1628 /* Record the fields for the semantic handler. */
1629 FLD (i_disp26) = f_disp26;
1630 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_j", "disp26 0x%x", 'x', f_disp26, (char *) 0));
1631
1632 #undef FLD
1633 return idesc;
1634 }
1635
1636 extract_sfmt_l_jal:
1637 {
1638 const IDESC *idesc = &or1k32bf_insn_data[itype];
1639 CGEN_INSN_WORD insn = entire_insn;
1640 #define FLD(f) abuf->fields.sfmt_l_j.f
1641 USI f_disp26;
1642
1643 f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
1644
1645 /* Record the fields for the semantic handler. */
1646 FLD (i_disp26) = f_disp26;
1647 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jal", "disp26 0x%x", 'x', f_disp26, (char *) 0));
1648
1649 #undef FLD
1650 return idesc;
1651 }
1652
1653 extract_sfmt_l_jr:
1654 {
1655 const IDESC *idesc = &or1k32bf_insn_data[itype];
1656 CGEN_INSN_WORD insn = entire_insn;
1657 #define FLD(f) abuf->fields.sfmt_l_sll.f
1658 UINT f_r3;
1659
1660 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
1661
1662 /* Record the fields for the semantic handler. */
1663 FLD (f_r3) = f_r3;
1664 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jr", "f_r3 0x%x", 'x', f_r3, (char *) 0));
1665
1666 #undef FLD
1667 return idesc;
1668 }
1669
1670 extract_sfmt_l_jalr:
1671 {
1672 const IDESC *idesc = &or1k32bf_insn_data[itype];
1673 CGEN_INSN_WORD insn = entire_insn;
1674 #define FLD(f) abuf->fields.sfmt_l_sll.f
1675 UINT f_r3;
1676
1677 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
1678
1679 /* Record the fields for the semantic handler. */
1680 FLD (f_r3) = f_r3;
1681 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jalr", "f_r3 0x%x", 'x', f_r3, (char *) 0));
1682
1683 #undef FLD
1684 return idesc;
1685 }
1686
1687 extract_sfmt_l_bnf:
1688 {
1689 const IDESC *idesc = &or1k32bf_insn_data[itype];
1690 CGEN_INSN_WORD insn = entire_insn;
1691 #define FLD(f) abuf->fields.sfmt_l_j.f
1692 USI f_disp26;
1693
1694 f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
1695
1696 /* Record the fields for the semantic handler. */
1697 FLD (i_disp26) = f_disp26;
1698 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_bnf", "disp26 0x%x", 'x', f_disp26, (char *) 0));
1699
1700 #undef FLD
1701 return idesc;
1702 }
1703
1704 extract_sfmt_l_trap:
1705 {
1706 const IDESC *idesc = &or1k32bf_insn_data[itype];
1707 #define FLD(f) abuf->fields.sfmt_empty.f
1708
1709
1710 /* Record the fields for the semantic handler. */
1711 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_trap", (char *) 0));
1712
1713 #undef FLD
1714 return idesc;
1715 }
1716
1717 extract_sfmt_l_msync:
1718 {
1719 const IDESC *idesc = &or1k32bf_insn_data[itype];
1720 #define FLD(f) abuf->fields.sfmt_empty.f
1721
1722
1723 /* Record the fields for the semantic handler. */
1724 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_msync", (char *) 0));
1725
1726 #undef FLD
1727 return idesc;
1728 }
1729
1730 extract_sfmt_l_nop_imm:
1731 {
1732 const IDESC *idesc = &or1k32bf_insn_data[itype];
1733 CGEN_INSN_WORD insn = entire_insn;
1734 #define FLD(f) abuf->fields.sfmt_l_mfspr.f
1735 UINT f_uimm16;
1736
1737 f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
1738
1739 /* Record the fields for the semantic handler. */
1740 FLD (f_uimm16) = f_uimm16;
1741 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_nop_imm", "f_uimm16 0x%x", 'x', f_uimm16, (char *) 0));
1742
1743 #undef FLD
1744 return idesc;
1745 }
1746
1747 extract_sfmt_l_movhi:
1748 {
1749 const IDESC *idesc = &or1k32bf_insn_data[itype];
1750 CGEN_INSN_WORD insn = entire_insn;
1751 #define FLD(f) abuf->fields.sfmt_l_mfspr.f
1752 UINT f_r1;
1753 UINT f_uimm16;
1754
1755 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
1756 f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
1757
1758 /* Record the fields for the semantic handler. */
1759 FLD (f_uimm16) = f_uimm16;
1760 FLD (f_r1) = f_r1;
1761 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_movhi", "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
1762
1763 #undef FLD
1764 return idesc;
1765 }
1766
1767 extract_sfmt_l_macrc:
1768 {
1769 const IDESC *idesc = &or1k32bf_insn_data[itype];
1770 CGEN_INSN_WORD insn = entire_insn;
1771 #define FLD(f) abuf->fields.sfmt_l_slli.f
1772 UINT f_r1;
1773
1774 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
1775
1776 /* Record the fields for the semantic handler. */
1777 FLD (f_r1) = f_r1;
1778 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_macrc", "f_r1 0x%x", 'x', f_r1, (char *) 0));
1779
1780 #undef FLD
1781 return idesc;
1782 }
1783
1784 extract_sfmt_l_mfspr:
1785 {
1786 const IDESC *idesc = &or1k32bf_insn_data[itype];
1787 CGEN_INSN_WORD insn = entire_insn;
1788 #define FLD(f) abuf->fields.sfmt_l_mfspr.f
1789 UINT f_r1;
1790 UINT f_r2;
1791 UINT f_uimm16;
1792
1793 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
1794 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
1795 f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
1796
1797 /* Record the fields for the semantic handler. */
1798 FLD (f_r2) = f_r2;
1799 FLD (f_uimm16) = f_uimm16;
1800 FLD (f_r1) = f_r1;
1801 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mfspr", "f_r2 0x%x", 'x', f_r2, "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
1802
1803 #undef FLD
1804 return idesc;
1805 }
1806
1807 extract_sfmt_l_mtspr:
1808 {
1809 const IDESC *idesc = &or1k32bf_insn_data[itype];
1810 CGEN_INSN_WORD insn = entire_insn;
1811 #define FLD(f) abuf->fields.sfmt_l_mtspr.f
1812 UINT f_imm16_25_5;
1813 UINT f_r2;
1814 UINT f_r3;
1815 UINT f_imm16_10_11;
1816 UINT f_uimm16_split;
1817
1818 f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
1819 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
1820 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
1821 f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
1822 f_uimm16_split = ((UHI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
1823
1824 /* Record the fields for the semantic handler. */
1825 FLD (f_r2) = f_r2;
1826 FLD (f_r3) = f_r3;
1827 FLD (f_uimm16_split) = f_uimm16_split;
1828 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mtspr", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_uimm16_split 0x%x", 'x', f_uimm16_split, (char *) 0));
1829
1830 #undef FLD
1831 return idesc;
1832 }
1833
1834 extract_sfmt_l_lwz:
1835 {
1836 const IDESC *idesc = &or1k32bf_insn_data[itype];
1837 CGEN_INSN_WORD insn = entire_insn;
1838 #define FLD(f) abuf->fields.sfmt_l_lwz.f
1839 UINT f_r1;
1840 UINT f_r2;
1841 INT f_simm16;
1842
1843 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
1844 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
1845 f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
1846
1847 /* Record the fields for the semantic handler. */
1848 FLD (f_r2) = f_r2;
1849 FLD (f_simm16) = f_simm16;
1850 FLD (f_r1) = f_r1;
1851 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lwz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
1852
1853 #undef FLD
1854 return idesc;
1855 }
1856
1857 extract_sfmt_l_lws:
1858 {
1859 const IDESC *idesc = &or1k32bf_insn_data[itype];
1860 CGEN_INSN_WORD insn = entire_insn;
1861 #define FLD(f) abuf->fields.sfmt_l_lwz.f
1862 UINT f_r1;
1863 UINT f_r2;
1864 INT f_simm16;
1865
1866 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
1867 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
1868 f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
1869
1870 /* Record the fields for the semantic handler. */
1871 FLD (f_r2) = f_r2;
1872 FLD (f_simm16) = f_simm16;
1873 FLD (f_r1) = f_r1;
1874 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lws", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
1875
1876 #undef FLD
1877 return idesc;
1878 }
1879
1880 extract_sfmt_l_lwa:
1881 {
1882 const IDESC *idesc = &or1k32bf_insn_data[itype];
1883 CGEN_INSN_WORD insn = entire_insn;
1884 #define FLD(f) abuf->fields.sfmt_l_lwz.f
1885 UINT f_r1;
1886 UINT f_r2;
1887 INT f_simm16;
1888
1889 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
1890 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
1891 f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
1892
1893 /* Record the fields for the semantic handler. */
1894 FLD (f_r2) = f_r2;
1895 FLD (f_simm16) = f_simm16;
1896 FLD (f_r1) = f_r1;
1897 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lwa", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
1898
1899 #undef FLD
1900 return idesc;
1901 }
1902
1903 extract_sfmt_l_lbz:
1904 {
1905 const IDESC *idesc = &or1k32bf_insn_data[itype];
1906 CGEN_INSN_WORD insn = entire_insn;
1907 #define FLD(f) abuf->fields.sfmt_l_lwz.f
1908 UINT f_r1;
1909 UINT f_r2;
1910 INT f_simm16;
1911
1912 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
1913 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
1914 f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
1915
1916 /* Record the fields for the semantic handler. */
1917 FLD (f_r2) = f_r2;
1918 FLD (f_simm16) = f_simm16;
1919 FLD (f_r1) = f_r1;
1920 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lbz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
1921
1922 #undef FLD
1923 return idesc;
1924 }
1925
1926 extract_sfmt_l_lbs:
1927 {
1928 const IDESC *idesc = &or1k32bf_insn_data[itype];
1929 CGEN_INSN_WORD insn = entire_insn;
1930 #define FLD(f) abuf->fields.sfmt_l_lwz.f
1931 UINT f_r1;
1932 UINT f_r2;
1933 INT f_simm16;
1934
1935 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
1936 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
1937 f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
1938
1939 /* Record the fields for the semantic handler. */
1940 FLD (f_r2) = f_r2;
1941 FLD (f_simm16) = f_simm16;
1942 FLD (f_r1) = f_r1;
1943 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lbs", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
1944
1945 #undef FLD
1946 return idesc;
1947 }
1948
1949 extract_sfmt_l_lhz:
1950 {
1951 const IDESC *idesc = &or1k32bf_insn_data[itype];
1952 CGEN_INSN_WORD insn = entire_insn;
1953 #define FLD(f) abuf->fields.sfmt_l_lwz.f
1954 UINT f_r1;
1955 UINT f_r2;
1956 INT f_simm16;
1957
1958 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
1959 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
1960 f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
1961
1962 /* Record the fields for the semantic handler. */
1963 FLD (f_r2) = f_r2;
1964 FLD (f_simm16) = f_simm16;
1965 FLD (f_r1) = f_r1;
1966 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lhz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
1967
1968 #undef FLD
1969 return idesc;
1970 }
1971
1972 extract_sfmt_l_lhs:
1973 {
1974 const IDESC *idesc = &or1k32bf_insn_data[itype];
1975 CGEN_INSN_WORD insn = entire_insn;
1976 #define FLD(f) abuf->fields.sfmt_l_lwz.f
1977 UINT f_r1;
1978 UINT f_r2;
1979 INT f_simm16;
1980
1981 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
1982 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
1983 f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
1984
1985 /* Record the fields for the semantic handler. */
1986 FLD (f_r2) = f_r2;
1987 FLD (f_simm16) = f_simm16;
1988 FLD (f_r1) = f_r1;
1989 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lhs", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
1990
1991 #undef FLD
1992 return idesc;
1993 }
1994
1995 extract_sfmt_l_sw:
1996 {
1997 const IDESC *idesc = &or1k32bf_insn_data[itype];
1998 CGEN_INSN_WORD insn = entire_insn;
1999 #define FLD(f) abuf->fields.sfmt_l_sw.f
2000 UINT f_imm16_25_5;
2001 UINT f_r2;
2002 UINT f_r3;
2003 UINT f_imm16_10_11;
2004 INT f_simm16_split;
2005
2006 f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2007 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2008 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2009 f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
2010 f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
2011
2012 /* Record the fields for the semantic handler. */
2013 FLD (f_r2) = f_r2;
2014 FLD (f_r3) = f_r3;
2015 FLD (f_simm16_split) = f_simm16_split;
2016 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sw", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
2017
2018 #undef FLD
2019 return idesc;
2020 }
2021
2022 extract_sfmt_l_sb:
2023 {
2024 const IDESC *idesc = &or1k32bf_insn_data[itype];
2025 CGEN_INSN_WORD insn = entire_insn;
2026 #define FLD(f) abuf->fields.sfmt_l_sw.f
2027 UINT f_imm16_25_5;
2028 UINT f_r2;
2029 UINT f_r3;
2030 UINT f_imm16_10_11;
2031 INT f_simm16_split;
2032
2033 f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2034 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2035 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2036 f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
2037 f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
2038
2039 /* Record the fields for the semantic handler. */
2040 FLD (f_r2) = f_r2;
2041 FLD (f_r3) = f_r3;
2042 FLD (f_simm16_split) = f_simm16_split;
2043 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sb", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
2044
2045 #undef FLD
2046 return idesc;
2047 }
2048
2049 extract_sfmt_l_sh:
2050 {
2051 const IDESC *idesc = &or1k32bf_insn_data[itype];
2052 CGEN_INSN_WORD insn = entire_insn;
2053 #define FLD(f) abuf->fields.sfmt_l_sw.f
2054 UINT f_imm16_25_5;
2055 UINT f_r2;
2056 UINT f_r3;
2057 UINT f_imm16_10_11;
2058 INT f_simm16_split;
2059
2060 f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2061 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2062 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2063 f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
2064 f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
2065
2066 /* Record the fields for the semantic handler. */
2067 FLD (f_r2) = f_r2;
2068 FLD (f_r3) = f_r3;
2069 FLD (f_simm16_split) = f_simm16_split;
2070 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sh", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
2071
2072 #undef FLD
2073 return idesc;
2074 }
2075
2076 extract_sfmt_l_swa:
2077 {
2078 const IDESC *idesc = &or1k32bf_insn_data[itype];
2079 CGEN_INSN_WORD insn = entire_insn;
2080 #define FLD(f) abuf->fields.sfmt_l_sw.f
2081 UINT f_imm16_25_5;
2082 UINT f_r2;
2083 UINT f_r3;
2084 UINT f_imm16_10_11;
2085 INT f_simm16_split;
2086
2087 f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2088 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2089 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2090 f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
2091 f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
2092
2093 /* Record the fields for the semantic handler. */
2094 FLD (f_r2) = f_r2;
2095 FLD (f_r3) = f_r3;
2096 FLD (f_simm16_split) = f_simm16_split;
2097 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_swa", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
2098
2099 #undef FLD
2100 return idesc;
2101 }
2102
2103 extract_sfmt_l_sll:
2104 {
2105 const IDESC *idesc = &or1k32bf_insn_data[itype];
2106 CGEN_INSN_WORD insn = entire_insn;
2107 #define FLD(f) abuf->fields.sfmt_l_sll.f
2108 UINT f_r1;
2109 UINT f_r2;
2110 UINT f_r3;
2111
2112 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2113 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2114 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2115
2116 /* Record the fields for the semantic handler. */
2117 FLD (f_r2) = f_r2;
2118 FLD (f_r3) = f_r3;
2119 FLD (f_r1) = f_r1;
2120 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sll", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2121
2122 #undef FLD
2123 return idesc;
2124 }
2125
2126 extract_sfmt_l_slli:
2127 {
2128 const IDESC *idesc = &or1k32bf_insn_data[itype];
2129 CGEN_INSN_WORD insn = entire_insn;
2130 #define FLD(f) abuf->fields.sfmt_l_slli.f
2131 UINT f_r1;
2132 UINT f_r2;
2133 UINT f_uimm6;
2134
2135 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2136 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2137 f_uimm6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6);
2138
2139 /* Record the fields for the semantic handler. */
2140 FLD (f_r2) = f_r2;
2141 FLD (f_uimm6) = f_uimm6;
2142 FLD (f_r1) = f_r1;
2143 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_slli", "f_r2 0x%x", 'x', f_r2, "f_uimm6 0x%x", 'x', f_uimm6, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2144
2145 #undef FLD
2146 return idesc;
2147 }
2148
2149 extract_sfmt_l_and:
2150 {
2151 const IDESC *idesc = &or1k32bf_insn_data[itype];
2152 CGEN_INSN_WORD insn = entire_insn;
2153 #define FLD(f) abuf->fields.sfmt_l_sll.f
2154 UINT f_r1;
2155 UINT f_r2;
2156 UINT f_r3;
2157
2158 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2159 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2160 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2161
2162 /* Record the fields for the semantic handler. */
2163 FLD (f_r2) = f_r2;
2164 FLD (f_r3) = f_r3;
2165 FLD (f_r1) = f_r1;
2166 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_and", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2167
2168 #undef FLD
2169 return idesc;
2170 }
2171
2172 extract_sfmt_l_add:
2173 {
2174 const IDESC *idesc = &or1k32bf_insn_data[itype];
2175 CGEN_INSN_WORD insn = entire_insn;
2176 #define FLD(f) abuf->fields.sfmt_l_sll.f
2177 UINT f_r1;
2178 UINT f_r2;
2179 UINT f_r3;
2180
2181 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2182 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2183 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2184
2185 /* Record the fields for the semantic handler. */
2186 FLD (f_r2) = f_r2;
2187 FLD (f_r3) = f_r3;
2188 FLD (f_r1) = f_r1;
2189 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_add", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2190
2191 #undef FLD
2192 return idesc;
2193 }
2194
2195 extract_sfmt_l_addc:
2196 {
2197 const IDESC *idesc = &or1k32bf_insn_data[itype];
2198 CGEN_INSN_WORD insn = entire_insn;
2199 #define FLD(f) abuf->fields.sfmt_l_sll.f
2200 UINT f_r1;
2201 UINT f_r2;
2202 UINT f_r3;
2203
2204 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2205 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2206 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2207
2208 /* Record the fields for the semantic handler. */
2209 FLD (f_r2) = f_r2;
2210 FLD (f_r3) = f_r3;
2211 FLD (f_r1) = f_r1;
2212 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addc", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2213
2214 #undef FLD
2215 return idesc;
2216 }
2217
2218 extract_sfmt_l_div:
2219 {
2220 const IDESC *idesc = &or1k32bf_insn_data[itype];
2221 CGEN_INSN_WORD insn = entire_insn;
2222 #define FLD(f) abuf->fields.sfmt_l_sll.f
2223 UINT f_r1;
2224 UINT f_r2;
2225 UINT f_r3;
2226
2227 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2228 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2229 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2230
2231 /* Record the fields for the semantic handler. */
2232 FLD (f_r2) = f_r2;
2233 FLD (f_r3) = f_r3;
2234 FLD (f_r1) = f_r1;
2235 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_div", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2236
2237 #undef FLD
2238 return idesc;
2239 }
2240
2241 extract_sfmt_l_ff1:
2242 {
2243 const IDESC *idesc = &or1k32bf_insn_data[itype];
2244 CGEN_INSN_WORD insn = entire_insn;
2245 #define FLD(f) abuf->fields.sfmt_l_slli.f
2246 UINT f_r1;
2247 UINT f_r2;
2248
2249 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2250 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2251
2252 /* Record the fields for the semantic handler. */
2253 FLD (f_r2) = f_r2;
2254 FLD (f_r1) = f_r1;
2255 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_ff1", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2256
2257 #undef FLD
2258 return idesc;
2259 }
2260
2261 extract_sfmt_l_xori:
2262 {
2263 const IDESC *idesc = &or1k32bf_insn_data[itype];
2264 CGEN_INSN_WORD insn = entire_insn;
2265 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2266 UINT f_r1;
2267 UINT f_r2;
2268 INT f_simm16;
2269
2270 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2271 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2272 f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2273
2274 /* Record the fields for the semantic handler. */
2275 FLD (f_r2) = f_r2;
2276 FLD (f_simm16) = f_simm16;
2277 FLD (f_r1) = f_r1;
2278 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_xori", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2279
2280 #undef FLD
2281 return idesc;
2282 }
2283
2284 extract_sfmt_l_addi:
2285 {
2286 const IDESC *idesc = &or1k32bf_insn_data[itype];
2287 CGEN_INSN_WORD insn = entire_insn;
2288 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2289 UINT f_r1;
2290 UINT f_r2;
2291 INT f_simm16;
2292
2293 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2294 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2295 f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2296
2297 /* Record the fields for the semantic handler. */
2298 FLD (f_r2) = f_r2;
2299 FLD (f_simm16) = f_simm16;
2300 FLD (f_r1) = f_r1;
2301 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addi", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2302
2303 #undef FLD
2304 return idesc;
2305 }
2306
2307 extract_sfmt_l_addic:
2308 {
2309 const IDESC *idesc = &or1k32bf_insn_data[itype];
2310 CGEN_INSN_WORD insn = entire_insn;
2311 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2312 UINT f_r1;
2313 UINT f_r2;
2314 INT f_simm16;
2315
2316 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2317 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2318 f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2319
2320 /* Record the fields for the semantic handler. */
2321 FLD (f_r2) = f_r2;
2322 FLD (f_simm16) = f_simm16;
2323 FLD (f_r1) = f_r1;
2324 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addic", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2325
2326 #undef FLD
2327 return idesc;
2328 }
2329
2330 extract_sfmt_l_exths:
2331 {
2332 const IDESC *idesc = &or1k32bf_insn_data[itype];
2333 CGEN_INSN_WORD insn = entire_insn;
2334 #define FLD(f) abuf->fields.sfmt_l_slli.f
2335 UINT f_r1;
2336 UINT f_r2;
2337
2338 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2339 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2340
2341 /* Record the fields for the semantic handler. */
2342 FLD (f_r2) = f_r2;
2343 FLD (f_r1) = f_r1;
2344 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_exths", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2345
2346 #undef FLD
2347 return idesc;
2348 }
2349
2350 extract_sfmt_l_cmov:
2351 {
2352 const IDESC *idesc = &or1k32bf_insn_data[itype];
2353 CGEN_INSN_WORD insn = entire_insn;
2354 #define FLD(f) abuf->fields.sfmt_l_sll.f
2355 UINT f_r1;
2356 UINT f_r2;
2357 UINT f_r3;
2358
2359 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2360 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2361 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2362
2363 /* Record the fields for the semantic handler. */
2364 FLD (f_r2) = f_r2;
2365 FLD (f_r3) = f_r3;
2366 FLD (f_r1) = f_r1;
2367 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_cmov", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2368
2369 #undef FLD
2370 return idesc;
2371 }
2372
2373 extract_sfmt_l_sfgts:
2374 {
2375 const IDESC *idesc = &or1k32bf_insn_data[itype];
2376 CGEN_INSN_WORD insn = entire_insn;
2377 #define FLD(f) abuf->fields.sfmt_l_sll.f
2378 UINT f_r2;
2379 UINT f_r3;
2380
2381 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2382 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2383
2384 /* Record the fields for the semantic handler. */
2385 FLD (f_r2) = f_r2;
2386 FLD (f_r3) = f_r3;
2387 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sfgts", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
2388
2389 #undef FLD
2390 return idesc;
2391 }
2392
2393 extract_sfmt_l_sfgtsi:
2394 {
2395 const IDESC *idesc = &or1k32bf_insn_data[itype];
2396 CGEN_INSN_WORD insn = entire_insn;
2397 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2398 UINT f_r2;
2399 INT f_simm16;
2400
2401 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2402 f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2403
2404 /* Record the fields for the semantic handler. */
2405 FLD (f_r2) = f_r2;
2406 FLD (f_simm16) = f_simm16;
2407 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sfgtsi", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, (char *) 0));
2408
2409 #undef FLD
2410 return idesc;
2411 }
2412
2413 extract_sfmt_l_mac:
2414 {
2415 const IDESC *idesc = &or1k32bf_insn_data[itype];
2416 CGEN_INSN_WORD insn = entire_insn;
2417 #define FLD(f) abuf->fields.sfmt_l_sll.f
2418 UINT f_r2;
2419 UINT f_r3;
2420
2421 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2422 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2423
2424 /* Record the fields for the semantic handler. */
2425 FLD (f_r2) = f_r2;
2426 FLD (f_r3) = f_r3;
2427 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mac", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
2428
2429 #undef FLD
2430 return idesc;
2431 }
2432
2433 extract_sfmt_l_maci:
2434 {
2435 const IDESC *idesc = &or1k32bf_insn_data[itype];
2436 CGEN_INSN_WORD insn = entire_insn;
2437 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2438 UINT f_r2;
2439 INT f_simm16;
2440
2441 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2442 f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
2443
2444 /* Record the fields for the semantic handler. */
2445 FLD (f_r2) = f_r2;
2446 FLD (f_simm16) = f_simm16;
2447 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_maci", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, (char *) 0));
2448
2449 #undef FLD
2450 return idesc;
2451 }
2452
2453 extract_sfmt_lf_add_s:
2454 {
2455 const IDESC *idesc = &or1k32bf_insn_data[itype];
2456 CGEN_INSN_WORD insn = entire_insn;
2457 #define FLD(f) abuf->fields.sfmt_l_sll.f
2458 UINT f_r1;
2459 UINT f_r2;
2460 UINT f_r3;
2461
2462 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2463 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2464 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2465
2466 /* Record the fields for the semantic handler. */
2467 FLD (f_r2) = f_r2;
2468 FLD (f_r3) = f_r3;
2469 FLD (f_r1) = f_r1;
2470 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_add_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2471
2472 #undef FLD
2473 return idesc;
2474 }
2475
2476 extract_sfmt_lf_itof_s:
2477 {
2478 const IDESC *idesc = &or1k32bf_insn_data[itype];
2479 CGEN_INSN_WORD insn = entire_insn;
2480 #define FLD(f) abuf->fields.sfmt_l_slli.f
2481 UINT f_r1;
2482 UINT f_r2;
2483
2484 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2485 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2486
2487 /* Record the fields for the semantic handler. */
2488 FLD (f_r2) = f_r2;
2489 FLD (f_r1) = f_r1;
2490 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_itof_s", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2491
2492 #undef FLD
2493 return idesc;
2494 }
2495
2496 extract_sfmt_lf_ftoi_s:
2497 {
2498 const IDESC *idesc = &or1k32bf_insn_data[itype];
2499 CGEN_INSN_WORD insn = entire_insn;
2500 #define FLD(f) abuf->fields.sfmt_l_slli.f
2501 UINT f_r1;
2502 UINT f_r2;
2503
2504 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2505 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2506
2507 /* Record the fields for the semantic handler. */
2508 FLD (f_r2) = f_r2;
2509 FLD (f_r1) = f_r1;
2510 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_ftoi_s", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2511
2512 #undef FLD
2513 return idesc;
2514 }
2515
2516 extract_sfmt_lf_eq_s:
2517 {
2518 const IDESC *idesc = &or1k32bf_insn_data[itype];
2519 CGEN_INSN_WORD insn = entire_insn;
2520 #define FLD(f) abuf->fields.sfmt_l_sll.f
2521 UINT f_r2;
2522 UINT f_r3;
2523
2524 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2525 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2526
2527 /* Record the fields for the semantic handler. */
2528 FLD (f_r2) = f_r2;
2529 FLD (f_r3) = f_r3;
2530 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_eq_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
2531
2532 #undef FLD
2533 return idesc;
2534 }
2535
2536 extract_sfmt_lf_madd_s:
2537 {
2538 const IDESC *idesc = &or1k32bf_insn_data[itype];
2539 CGEN_INSN_WORD insn = entire_insn;
2540 #define FLD(f) abuf->fields.sfmt_l_sll.f
2541 UINT f_r1;
2542 UINT f_r2;
2543 UINT f_r3;
2544
2545 f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
2546 f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
2547 f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
2548
2549 /* Record the fields for the semantic handler. */
2550 FLD (f_r2) = f_r2;
2551 FLD (f_r3) = f_r3;
2552 FLD (f_r1) = f_r1;
2553 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_madd_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
2554
2555 #undef FLD
2556 return idesc;
2557 }
2558
2559 }