Commit | Line | Data |
---|---|---|
6e51bfa7 SH |
1 | /* Simulator instruction decoder for or1k32bf. |
2 | ||
3 | THIS FILE IS MACHINE GENERATED WITH CGEN. | |
4 | ||
e2882c85 | 5 | Copyright 1996-2018 Free Software Foundation, Inc. |
6e51bfa7 SH |
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 | } |