]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/frv/cpu.h
584eb46ed9f3e0c13530be97e9c7c667de8947ca
[thirdparty/binutils-gdb.git] / sim / frv / cpu.h
1 /* CPU family header for frvbf.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright 1996-2017 Free Software Foundation, Inc.
6
7 This file is part of the GNU simulators.
8
9 This file is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3, or (at your option)
12 any later version.
13
14 It is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
18
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, see <http://www.gnu.org/licenses/>.
21
22 */
23
24 #ifndef CPU_FRVBF_H
25 #define CPU_FRVBF_H
26
27 /* Maximum number of instructions that are fetched at a time.
28 This is for LIW type instructions sets (e.g. m32r). */
29 #define MAX_LIW_INSNS 1
30
31 /* Maximum number of instructions that can be executed in parallel. */
32 #define MAX_PARALLEL_INSNS 8
33
34 /* The size of an "int" needed to hold an instruction word.
35 This is usually 32 bits, but some architectures needs 64 bits. */
36 typedef CGEN_INSN_INT CGEN_INSN_WORD;
37
38 #include "cgen-engine.h"
39
40 /* CPU state information. */
41 typedef struct {
42 /* Hardware elements. */
43 struct {
44 /* relocation annotation */
45 BI h_reloc_ann;
46 #define GET_H_RELOC_ANN() CPU (h_reloc_ann)
47 #define SET_H_RELOC_ANN(x) (CPU (h_reloc_ann) = (x))
48 /* program counter */
49 USI h_pc;
50 #define GET_H_PC() CPU (h_pc)
51 #define SET_H_PC(x) (CPU (h_pc) = (x))
52 /* PSR.IMPLE */
53 UQI h_psr_imple;
54 #define GET_H_PSR_IMPLE() CPU (h_psr_imple)
55 #define SET_H_PSR_IMPLE(x) (CPU (h_psr_imple) = (x))
56 /* PSR.VER */
57 UQI h_psr_ver;
58 #define GET_H_PSR_VER() CPU (h_psr_ver)
59 #define SET_H_PSR_VER(x) (CPU (h_psr_ver) = (x))
60 /* PSR.ICE bit */
61 BI h_psr_ice;
62 #define GET_H_PSR_ICE() CPU (h_psr_ice)
63 #define SET_H_PSR_ICE(x) (CPU (h_psr_ice) = (x))
64 /* PSR.NEM bit */
65 BI h_psr_nem;
66 #define GET_H_PSR_NEM() CPU (h_psr_nem)
67 #define SET_H_PSR_NEM(x) (CPU (h_psr_nem) = (x))
68 /* PSR.CM bit */
69 BI h_psr_cm;
70 #define GET_H_PSR_CM() CPU (h_psr_cm)
71 #define SET_H_PSR_CM(x) (CPU (h_psr_cm) = (x))
72 /* PSR.BE bit */
73 BI h_psr_be;
74 #define GET_H_PSR_BE() CPU (h_psr_be)
75 #define SET_H_PSR_BE(x) (CPU (h_psr_be) = (x))
76 /* PSR.ESR bit */
77 BI h_psr_esr;
78 #define GET_H_PSR_ESR() CPU (h_psr_esr)
79 #define SET_H_PSR_ESR(x) (CPU (h_psr_esr) = (x))
80 /* PSR.EF bit */
81 BI h_psr_ef;
82 #define GET_H_PSR_EF() CPU (h_psr_ef)
83 #define SET_H_PSR_EF(x) (CPU (h_psr_ef) = (x))
84 /* PSR.EM bit */
85 BI h_psr_em;
86 #define GET_H_PSR_EM() CPU (h_psr_em)
87 #define SET_H_PSR_EM(x) (CPU (h_psr_em) = (x))
88 /* PSR.PIL */
89 UQI h_psr_pil;
90 #define GET_H_PSR_PIL() CPU (h_psr_pil)
91 #define SET_H_PSR_PIL(x) (CPU (h_psr_pil) = (x))
92 /* PSR.PS bit */
93 BI h_psr_ps;
94 #define GET_H_PSR_PS() CPU (h_psr_ps)
95 #define SET_H_PSR_PS(x) (CPU (h_psr_ps) = (x))
96 /* PSR.ET bit */
97 BI h_psr_et;
98 #define GET_H_PSR_ET() CPU (h_psr_et)
99 #define SET_H_PSR_ET(x) (CPU (h_psr_et) = (x))
100 /* PSR.S bit */
101 BI h_psr_s;
102 #define GET_H_PSR_S() CPU (h_psr_s)
103 #define SET_H_PSR_S(x) \
104 do { \
105 frvbf_h_psr_s_set_handler (current_cpu, (x));\
106 ;} while (0)
107 /* TBR.TBA */
108 USI h_tbr_tba;
109 #define GET_H_TBR_TBA() CPU (h_tbr_tba)
110 #define SET_H_TBR_TBA(x) (CPU (h_tbr_tba) = (x))
111 /* TBR.TT */
112 UQI h_tbr_tt;
113 #define GET_H_TBR_TT() CPU (h_tbr_tt)
114 #define SET_H_TBR_TT(x) (CPU (h_tbr_tt) = (x))
115 /* PSR.S bit */
116 BI h_bpsr_bs;
117 #define GET_H_BPSR_BS() CPU (h_bpsr_bs)
118 #define SET_H_BPSR_BS(x) (CPU (h_bpsr_bs) = (x))
119 /* PSR.ET bit */
120 BI h_bpsr_bet;
121 #define GET_H_BPSR_BET() CPU (h_bpsr_bet)
122 #define SET_H_BPSR_BET(x) (CPU (h_bpsr_bet) = (x))
123 /* general registers */
124 USI h_gr[64];
125 #define GET_H_GR(index) frvbf_h_gr_get_handler (current_cpu, index)
126 #define SET_H_GR(index, x) \
127 do { \
128 frvbf_h_gr_set_handler (current_cpu, (index), (x));\
129 ;} while (0)
130 /* floating point registers */
131 SF h_fr[64];
132 #define GET_H_FR(index) frvbf_h_fr_get_handler (current_cpu, index)
133 #define SET_H_FR(index, x) \
134 do { \
135 frvbf_h_fr_set_handler (current_cpu, (index), (x));\
136 ;} while (0)
137 /* coprocessor registers */
138 SI h_cpr[64];
139 #define GET_H_CPR(a1) CPU (h_cpr)[a1]
140 #define SET_H_CPR(a1, x) (CPU (h_cpr)[a1] = (x))
141 /* special purpose registers */
142 USI h_spr[4096];
143 #define GET_H_SPR(index) frvbf_h_spr_get_handler (current_cpu, index)
144 #define SET_H_SPR(index, x) \
145 do { \
146 frvbf_h_spr_set_handler (current_cpu, (index), (x));\
147 ;} while (0)
148 /* Integer condition code registers */
149 UQI h_iccr[4];
150 #define GET_H_ICCR(a1) CPU (h_iccr)[a1]
151 #define SET_H_ICCR(a1, x) (CPU (h_iccr)[a1] = (x))
152 /* Floating point condition code registers */
153 UQI h_fccr[4];
154 #define GET_H_FCCR(a1) CPU (h_fccr)[a1]
155 #define SET_H_FCCR(a1, x) (CPU (h_fccr)[a1] = (x))
156 /* Condition code registers */
157 UQI h_cccr[8];
158 #define GET_H_CCCR(a1) CPU (h_cccr)[a1]
159 #define SET_H_CCCR(a1, x) (CPU (h_cccr)[a1] = (x))
160 } hardware;
161 #define CPU_CGEN_HW(cpu) (& (cpu)->cpu_data.hardware)
162 } FRVBF_CPU_DATA;
163
164 /* Virtual regs. */
165
166 #define GET_H_GR_DOUBLE(index) frvbf_h_gr_double_get_handler (current_cpu, index)
167 #define SET_H_GR_DOUBLE(index, x) \
168 do { \
169 frvbf_h_gr_double_set_handler (current_cpu, (index), (x));\
170 ;} while (0)
171 #define GET_H_GR_HI(index) frvbf_h_gr_hi_get_handler (current_cpu, index)
172 #define SET_H_GR_HI(index, x) \
173 do { \
174 frvbf_h_gr_hi_set_handler (current_cpu, (index), (x));\
175 ;} while (0)
176 #define GET_H_GR_LO(index) frvbf_h_gr_lo_get_handler (current_cpu, index)
177 #define SET_H_GR_LO(index, x) \
178 do { \
179 frvbf_h_gr_lo_set_handler (current_cpu, (index), (x));\
180 ;} while (0)
181 #define GET_H_FR_DOUBLE(index) frvbf_h_fr_double_get_handler (current_cpu, index)
182 #define SET_H_FR_DOUBLE(index, x) \
183 do { \
184 frvbf_h_fr_double_set_handler (current_cpu, (index), (x));\
185 ;} while (0)
186 #define GET_H_FR_INT(index) frvbf_h_fr_int_get_handler (current_cpu, index)
187 #define SET_H_FR_INT(index, x) \
188 do { \
189 frvbf_h_fr_int_set_handler (current_cpu, (index), (x));\
190 ;} while (0)
191 #define GET_H_FR_HI(index) SRLSI (GET_H_FR_INT (index), 16)
192 #define SET_H_FR_HI(index, x) \
193 do { \
194 SET_H_FR_INT ((index), ORSI (ANDSI (GET_H_FR_INT ((index)), 65535), SLLHI ((x), 16)));\
195 ;} while (0)
196 #define GET_H_FR_LO(index) ANDSI (GET_H_FR_INT (index), 65535)
197 #define SET_H_FR_LO(index, x) \
198 do { \
199 SET_H_FR_INT ((index), ORSI (ANDSI (GET_H_FR_INT ((index)), 0xffff0000), ANDHI ((x), 65535)));\
200 ;} while (0)
201 #define GET_H_FR_0(index) ANDSI (GET_H_FR_INT (index), 255)
202 #define SET_H_FR_0(index, x) \
203 do { \
204 {\
205 if (GTUSI ((x), 255)) {\
206 (x) = 255;\
207 }\
208 SET_H_FR_INT ((index), ORSI (ANDSI (GET_H_FR_INT ((index)), 0xffffff00), (x)));\
209 }\
210 ;} while (0)
211 #define GET_H_FR_1(index) ANDSI (SRLSI (GET_H_FR_INT (index), 8), 255)
212 #define SET_H_FR_1(index, x) \
213 do { \
214 {\
215 if (GTUSI ((x), 255)) {\
216 (x) = 255;\
217 }\
218 SET_H_FR_INT ((index), ORSI (ANDSI (GET_H_FR_INT ((index)), 0xffff00ff), SLLHI ((x), 8)));\
219 }\
220 ;} while (0)
221 #define GET_H_FR_2(index) ANDSI (SRLSI (GET_H_FR_INT (index), 16), 255)
222 #define SET_H_FR_2(index, x) \
223 do { \
224 {\
225 if (GTUSI ((x), 255)) {\
226 (x) = 255;\
227 }\
228 SET_H_FR_INT ((index), ORSI (ANDSI (GET_H_FR_INT ((index)), 0xff00ffff), SLLHI ((x), 16)));\
229 }\
230 ;} while (0)
231 #define GET_H_FR_3(index) ANDSI (SRLSI (GET_H_FR_INT (index), 24), 255)
232 #define SET_H_FR_3(index, x) \
233 do { \
234 {\
235 if (GTUSI ((x), 255)) {\
236 (x) = 255;\
237 }\
238 SET_H_FR_INT ((index), ORSI (ANDSI (GET_H_FR_INT ((index)), 16777215), SLLHI ((x), 24)));\
239 }\
240 ;} while (0)
241 #define GET_H_CPR_DOUBLE(index) frvbf_h_cpr_double_get_handler (current_cpu, index)
242 #define SET_H_CPR_DOUBLE(index, x) \
243 do { \
244 frvbf_h_cpr_double_set_handler (current_cpu, (index), (x));\
245 ;} while (0)
246 #define GET_H_ACCG(index) ANDSI (GET_H_SPR (((index) + (1472))), 255)
247 #define SET_H_ACCG(index, x) \
248 do { \
249 CPU (h_spr[(((index)) + (1472))]) = ANDSI ((x), 255);\
250 ;} while (0)
251 #define GET_H_ACC40S(index) ORDI (SLLDI (EXTQIDI (TRUNCSIQI (GET_H_SPR (((index) + (1472))))), 32), ZEXTSIDI (GET_H_SPR (((index) + (1408)))))
252 #define SET_H_ACC40S(index, x) \
253 do { \
254 {\
255 frv_check_spr_write_access (current_cpu, (((index)) + (1408)));\
256 CPU (h_spr[(((index)) + (1472))]) = ANDDI (SRLDI ((x), 32), 255);\
257 CPU (h_spr[(((index)) + (1408))]) = TRUNCDISI ((x));\
258 }\
259 ;} while (0)
260 #define GET_H_ACC40U(index) ORDI (SLLDI (ZEXTSIDI (GET_H_SPR (((index) + (1472)))), 32), ZEXTSIDI (GET_H_SPR (((index) + (1408)))))
261 #define SET_H_ACC40U(index, x) \
262 do { \
263 {\
264 frv_check_spr_write_access (current_cpu, (((index)) + (1408)));\
265 CPU (h_spr[(((index)) + (1472))]) = ANDDI (SRLDI ((x), 32), 255);\
266 CPU (h_spr[(((index)) + (1408))]) = TRUNCDISI ((x));\
267 }\
268 ;} while (0)
269 #define GET_H_IACC0(index) ORDI (SLLDI (EXTSIDI (GET_H_SPR (((UINT) 280))), 32), ZEXTSIDI (GET_H_SPR (((UINT) 281))))
270 #define SET_H_IACC0(index, x) \
271 do { \
272 {\
273 SET_H_SPR (((UINT) 280), TRUNCDISI (SRLDI ((x), 32)));\
274 SET_H_SPR (((UINT) 281), TRUNCDISI ((x)));\
275 }\
276 ;} while (0)
277
278 /* Cover fns for register access. */
279 BI frvbf_h_reloc_ann_get (SIM_CPU *);
280 void frvbf_h_reloc_ann_set (SIM_CPU *, BI);
281 USI frvbf_h_pc_get (SIM_CPU *);
282 void frvbf_h_pc_set (SIM_CPU *, USI);
283 UQI frvbf_h_psr_imple_get (SIM_CPU *);
284 void frvbf_h_psr_imple_set (SIM_CPU *, UQI);
285 UQI frvbf_h_psr_ver_get (SIM_CPU *);
286 void frvbf_h_psr_ver_set (SIM_CPU *, UQI);
287 BI frvbf_h_psr_ice_get (SIM_CPU *);
288 void frvbf_h_psr_ice_set (SIM_CPU *, BI);
289 BI frvbf_h_psr_nem_get (SIM_CPU *);
290 void frvbf_h_psr_nem_set (SIM_CPU *, BI);
291 BI frvbf_h_psr_cm_get (SIM_CPU *);
292 void frvbf_h_psr_cm_set (SIM_CPU *, BI);
293 BI frvbf_h_psr_be_get (SIM_CPU *);
294 void frvbf_h_psr_be_set (SIM_CPU *, BI);
295 BI frvbf_h_psr_esr_get (SIM_CPU *);
296 void frvbf_h_psr_esr_set (SIM_CPU *, BI);
297 BI frvbf_h_psr_ef_get (SIM_CPU *);
298 void frvbf_h_psr_ef_set (SIM_CPU *, BI);
299 BI frvbf_h_psr_em_get (SIM_CPU *);
300 void frvbf_h_psr_em_set (SIM_CPU *, BI);
301 UQI frvbf_h_psr_pil_get (SIM_CPU *);
302 void frvbf_h_psr_pil_set (SIM_CPU *, UQI);
303 BI frvbf_h_psr_ps_get (SIM_CPU *);
304 void frvbf_h_psr_ps_set (SIM_CPU *, BI);
305 BI frvbf_h_psr_et_get (SIM_CPU *);
306 void frvbf_h_psr_et_set (SIM_CPU *, BI);
307 BI frvbf_h_psr_s_get (SIM_CPU *);
308 void frvbf_h_psr_s_set (SIM_CPU *, BI);
309 USI frvbf_h_tbr_tba_get (SIM_CPU *);
310 void frvbf_h_tbr_tba_set (SIM_CPU *, USI);
311 UQI frvbf_h_tbr_tt_get (SIM_CPU *);
312 void frvbf_h_tbr_tt_set (SIM_CPU *, UQI);
313 BI frvbf_h_bpsr_bs_get (SIM_CPU *);
314 void frvbf_h_bpsr_bs_set (SIM_CPU *, BI);
315 BI frvbf_h_bpsr_bet_get (SIM_CPU *);
316 void frvbf_h_bpsr_bet_set (SIM_CPU *, BI);
317 USI frvbf_h_gr_get (SIM_CPU *, UINT);
318 void frvbf_h_gr_set (SIM_CPU *, UINT, USI);
319 DI frvbf_h_gr_double_get (SIM_CPU *, UINT);
320 void frvbf_h_gr_double_set (SIM_CPU *, UINT, DI);
321 UHI frvbf_h_gr_hi_get (SIM_CPU *, UINT);
322 void frvbf_h_gr_hi_set (SIM_CPU *, UINT, UHI);
323 UHI frvbf_h_gr_lo_get (SIM_CPU *, UINT);
324 void frvbf_h_gr_lo_set (SIM_CPU *, UINT, UHI);
325 SF frvbf_h_fr_get (SIM_CPU *, UINT);
326 void frvbf_h_fr_set (SIM_CPU *, UINT, SF);
327 DF frvbf_h_fr_double_get (SIM_CPU *, UINT);
328 void frvbf_h_fr_double_set (SIM_CPU *, UINT, DF);
329 USI frvbf_h_fr_int_get (SIM_CPU *, UINT);
330 void frvbf_h_fr_int_set (SIM_CPU *, UINT, USI);
331 UHI frvbf_h_fr_hi_get (SIM_CPU *, UINT);
332 void frvbf_h_fr_hi_set (SIM_CPU *, UINT, UHI);
333 UHI frvbf_h_fr_lo_get (SIM_CPU *, UINT);
334 void frvbf_h_fr_lo_set (SIM_CPU *, UINT, UHI);
335 UHI frvbf_h_fr_0_get (SIM_CPU *, UINT);
336 void frvbf_h_fr_0_set (SIM_CPU *, UINT, UHI);
337 UHI frvbf_h_fr_1_get (SIM_CPU *, UINT);
338 void frvbf_h_fr_1_set (SIM_CPU *, UINT, UHI);
339 UHI frvbf_h_fr_2_get (SIM_CPU *, UINT);
340 void frvbf_h_fr_2_set (SIM_CPU *, UINT, UHI);
341 UHI frvbf_h_fr_3_get (SIM_CPU *, UINT);
342 void frvbf_h_fr_3_set (SIM_CPU *, UINT, UHI);
343 SI frvbf_h_cpr_get (SIM_CPU *, UINT);
344 void frvbf_h_cpr_set (SIM_CPU *, UINT, SI);
345 DI frvbf_h_cpr_double_get (SIM_CPU *, UINT);
346 void frvbf_h_cpr_double_set (SIM_CPU *, UINT, DI);
347 USI frvbf_h_spr_get (SIM_CPU *, UINT);
348 void frvbf_h_spr_set (SIM_CPU *, UINT, USI);
349 USI frvbf_h_accg_get (SIM_CPU *, UINT);
350 void frvbf_h_accg_set (SIM_CPU *, UINT, USI);
351 DI frvbf_h_acc40S_get (SIM_CPU *, UINT);
352 void frvbf_h_acc40S_set (SIM_CPU *, UINT, DI);
353 UDI frvbf_h_acc40U_get (SIM_CPU *, UINT);
354 void frvbf_h_acc40U_set (SIM_CPU *, UINT, UDI);
355 DI frvbf_h_iacc0_get (SIM_CPU *, UINT);
356 void frvbf_h_iacc0_set (SIM_CPU *, UINT, DI);
357 UQI frvbf_h_iccr_get (SIM_CPU *, UINT);
358 void frvbf_h_iccr_set (SIM_CPU *, UINT, UQI);
359 UQI frvbf_h_fccr_get (SIM_CPU *, UINT);
360 void frvbf_h_fccr_set (SIM_CPU *, UINT, UQI);
361 UQI frvbf_h_cccr_get (SIM_CPU *, UINT);
362 void frvbf_h_cccr_set (SIM_CPU *, UINT, UQI);
363
364 /* These must be hand-written. */
365 extern CPUREG_FETCH_FN frvbf_fetch_register;
366 extern CPUREG_STORE_FN frvbf_store_register;
367
368 typedef struct {
369 int empty;
370 } MODEL_FRV_DATA;
371
372 typedef struct {
373 DI prev_fr_load;
374 DI prev_fr_complex_1;
375 DI prev_fr_complex_2;
376 DI prev_ccr_complex;
377 DI prev_acc_mmac;
378 DI cur_fr_load;
379 DI cur_fr_complex_1;
380 DI cur_fr_complex_2;
381 SI cur_ccr_complex;
382 DI cur_acc_mmac;
383 } MODEL_FR550_DATA;
384
385 typedef struct {
386 DI prev_fpop;
387 DI prev_media;
388 DI prev_cc_complex;
389 DI cur_fpop;
390 DI cur_media;
391 DI cur_cc_complex;
392 } MODEL_FR500_DATA;
393
394 typedef struct {
395 int empty;
396 } MODEL_TOMCAT_DATA;
397
398 typedef struct {
399 DI prev_fp_load;
400 DI prev_fr_p4;
401 DI prev_fr_p6;
402 DI prev_acc_p2;
403 DI prev_acc_p4;
404 DI cur_fp_load;
405 DI cur_fr_p4;
406 DI cur_fr_p6;
407 DI cur_acc_p2;
408 DI cur_acc_p4;
409 } MODEL_FR400_DATA;
410
411 typedef struct {
412 DI prev_fp_load;
413 DI prev_fr_p4;
414 DI prev_fr_p6;
415 DI prev_acc_p2;
416 DI prev_acc_p4;
417 DI cur_fp_load;
418 DI cur_fr_p4;
419 DI cur_fr_p6;
420 DI cur_acc_p2;
421 DI cur_acc_p4;
422 } MODEL_FR450_DATA;
423
424 typedef struct {
425 int empty;
426 } MODEL_SIMPLE_DATA;
427
428 /* Instruction argument buffer. */
429
430 union sem_fields {
431 struct { /* no operands */
432 int empty;
433 } sfmt_empty;
434 struct { /* */
435 unsigned short out_h_spr_USI_2;
436 } sfmt_break;
437 struct { /* */
438 UINT f_debug;
439 } sfmt_rett;
440 struct { /* */
441 IADDR i_label24;
442 } sfmt_call;
443 struct { /* */
444 INT f_u12;
445 UINT f_FRk;
446 unsigned char out_FRkhi;
447 } sfmt_mhsethis;
448 struct { /* */
449 INT f_u12;
450 UINT f_FRk;
451 unsigned char out_FRklo;
452 } sfmt_mhsetlos;
453 struct { /* */
454 INT f_s16;
455 UINT f_GRk;
456 unsigned char out_GRk;
457 } sfmt_setlos;
458 struct { /* */
459 UINT f_GRk;
460 UINT f_u16;
461 unsigned char out_GRkhi;
462 } sfmt_sethi;
463 struct { /* */
464 UINT f_GRk;
465 UINT f_u16;
466 unsigned char out_GRklo;
467 } sfmt_setlo;
468 struct { /* */
469 UINT f_ACCGi;
470 UINT f_FRk;
471 unsigned char in_ACCGi;
472 unsigned char out_FRintk;
473 } sfmt_mrdaccg;
474 struct { /* */
475 INT f_s5;
476 UINT f_FRk;
477 unsigned char in_FRkhi;
478 unsigned char out_FRkhi;
479 } sfmt_mhsethih;
480 struct { /* */
481 INT f_s5;
482 UINT f_FRk;
483 unsigned char in_FRklo;
484 unsigned char out_FRklo;
485 } sfmt_mhsetloh;
486 struct { /* */
487 UINT f_FRj;
488 UINT f_FRk;
489 unsigned char in_FRdoublej;
490 unsigned char out_FRintk;
491 } sfmt_fdtoi;
492 struct { /* */
493 UINT f_FRj;
494 UINT f_FRk;
495 unsigned char in_FRintj;
496 unsigned char out_FRdoublek;
497 } sfmt_fitod;
498 struct { /* */
499 INT f_d12;
500 UINT f_GRi;
501 UINT f_LI;
502 unsigned char in_GRi;
503 } sfmt_jmpil;
504 struct { /* */
505 IADDR i_label16;
506 UINT f_FCCi_2;
507 UINT f_hint;
508 unsigned char in_FCCi_2;
509 } sfmt_fbne;
510 struct { /* */
511 IADDR i_label16;
512 UINT f_ICCi_2;
513 UINT f_hint;
514 unsigned char in_ICCi_2;
515 } sfmt_beq;
516 struct { /* */
517 UINT f_GRj;
518 UINT f_spr;
519 unsigned short in_spr;
520 unsigned char out_GRj;
521 } sfmt_movsg;
522 struct { /* */
523 UINT f_GRj;
524 UINT f_spr;
525 unsigned short out_spr;
526 unsigned char in_GRj;
527 } sfmt_movgs;
528 struct { /* */
529 UINT f_ACCGk;
530 UINT f_FRi;
531 unsigned char in_ACCGk;
532 unsigned char in_FRinti;
533 unsigned char out_ACCGk;
534 } sfmt_mwtaccg;
535 struct { /* */
536 INT f_s6;
537 UINT f_ACC40Si;
538 UINT f_FRk;
539 unsigned char in_ACC40Si;
540 unsigned char out_FRintk;
541 } sfmt_mcuti;
542 struct { /* */
543 UINT f_GRi;
544 UINT f_GRj;
545 UINT f_lock;
546 unsigned char in_GRi;
547 unsigned char in_GRj;
548 } sfmt_icpl;
549 struct { /* */
550 UINT f_GRi;
551 UINT f_GRj;
552 UINT f_ae;
553 unsigned char in_GRi;
554 unsigned char in_GRj;
555 } sfmt_icei;
556 struct { /* */
557 INT f_d12;
558 UINT f_FRk;
559 UINT f_GRi;
560 unsigned char in_FRdoublek;
561 unsigned char in_GRi;
562 } sfmt_stdfi;
563 struct { /* */
564 INT f_d12;
565 UINT f_GRi;
566 UINT f_GRk;
567 unsigned char in_GRdoublek;
568 unsigned char in_GRi;
569 } sfmt_stdi;
570 struct { /* */
571 INT f_d12;
572 UINT f_FRk;
573 UINT f_GRi;
574 unsigned char in_FRintk;
575 unsigned char in_GRi;
576 } sfmt_stbfi;
577 struct { /* */
578 INT f_d12;
579 UINT f_FRk;
580 UINT f_GRi;
581 unsigned char in_GRi;
582 unsigned char out_FRdoublek;
583 } sfmt_lddfi;
584 struct { /* */
585 INT f_d12;
586 UINT f_FRk;
587 UINT f_GRi;
588 unsigned char in_GRi;
589 unsigned char out_FRintk;
590 } sfmt_ldbfi;
591 struct { /* */
592 INT f_d12;
593 UINT f_GRi;
594 UINT f_GRk;
595 unsigned char in_GRi;
596 unsigned char out_GRdoublek;
597 } sfmt_smuli;
598 struct { /* */
599 UINT f_GRj;
600 UINT f_GRk;
601 unsigned char in_GRj;
602 unsigned char in_h_iacc0_DI_0;
603 unsigned char out_GRk;
604 } sfmt_scutss;
605 struct { /* */
606 UINT f_ACC40Si;
607 UINT f_FRj;
608 UINT f_FRk;
609 unsigned char in_ACC40Si;
610 unsigned char in_FRintj;
611 unsigned char out_FRintk;
612 } sfmt_mcut;
613 struct { /* */
614 UINT f_FRi;
615 UINT f_FRk;
616 UINT f_u6;
617 unsigned char in_FRinti;
618 unsigned char in_h_fr_int_USI_add__INT_index_of__INT_FRinti_1;
619 unsigned char out_FRintk;
620 } sfmt_mwcuti;
621 struct { /* */
622 INT f_u12;
623 UINT f_FRk;
624 unsigned char in_FRintk;
625 unsigned char out_FRintk;
626 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_0;
627 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_0;
628 } sfmt_mhdsets;
629 struct { /* */
630 UINT f_FCCi_2;
631 UINT f_FRi;
632 UINT f_FRj;
633 unsigned char in_FRdoublei;
634 unsigned char in_FRdoublej;
635 unsigned char out_FCCi_2;
636 } sfmt_fcmpd;
637 struct { /* */
638 UINT f_FRj;
639 UINT f_FRk;
640 unsigned char in_FRj;
641 unsigned char in_h_fr_SF_add__INT_index_of__INT_FRj_1;
642 unsigned char out_FRintk;
643 unsigned char out_h_fr_int_USI_add__INT_index_of__INT_FRintk_1;
644 } sfmt_fdstoi;
645 struct { /* */
646 UINT f_FRj;
647 UINT f_FRk;
648 unsigned char in_FRintj;
649 unsigned char in_h_fr_int_USI_add__INT_index_of__INT_FRintj_1;
650 unsigned char out_FRk;
651 unsigned char out_h_fr_SF_add__INT_index_of__INT_FRk_1;
652 } sfmt_fditos;
653 struct { /* */
654 UINT f_CRi;
655 UINT f_CRj;
656 UINT f_CRk;
657 unsigned char in_CRi;
658 unsigned char in_CRj;
659 unsigned char out_CRk;
660 } sfmt_andcr;
661 struct { /* */
662 INT f_d12;
663 UINT f_GRi;
664 UINT f_GRk;
665 unsigned char in_GRi;
666 unsigned char in_GRk;
667 unsigned char out_GRk;
668 } sfmt_swapi;
669 struct { /* */
670 UINT f_GRi;
671 UINT f_GRj;
672 unsigned char in_GRi;
673 unsigned char in_GRj;
674 unsigned char in_h_iacc0_DI_0;
675 unsigned char out_h_iacc0_DI_0;
676 } sfmt_smass;
677 struct { /* */
678 INT f_s6;
679 UINT f_FRi;
680 UINT f_FRk;
681 unsigned char in_FRintieven;
682 unsigned char in_h_fr_int_USI_add__INT_index_of__INT_FRintieven_1;
683 unsigned char out_FRintkeven;
684 unsigned char out_h_fr_int_USI_add__INT_index_of__INT_FRintkeven_1;
685 } sfmt_mdrotli;
686 struct { /* */
687 INT f_s6;
688 UINT f_ACC40Si;
689 UINT f_FRk;
690 unsigned char in_ACC40Si;
691 unsigned char in_h_acc40S_DI_add__INT_index_of__INT_ACC40Si_1;
692 unsigned char out_FRintkeven;
693 unsigned char out_h_fr_int_USI_add__INT_index_of__INT_FRintkeven_1;
694 } sfmt_mdcutssi;
695 struct { /* */
696 UINT f_FRi;
697 UINT f_FRj;
698 UINT f_FRk;
699 unsigned char in_FRinti;
700 unsigned char in_FRintj;
701 unsigned char in_h_fr_int_USI_add__INT_index_of__INT_FRinti_1;
702 unsigned char out_FRintk;
703 } sfmt_mwcut;
704 struct { /* */
705 UINT f_FRi;
706 UINT f_FRj;
707 UINT f_FRk;
708 unsigned char in_FRdoublei;
709 unsigned char in_FRdoublej;
710 unsigned char in_FRdoublek;
711 unsigned char out_FRdoublek;
712 } sfmt_fmaddd;
713 struct { /* */
714 UINT f_CCi;
715 UINT f_FRj;
716 UINT f_FRk;
717 UINT f_cond;
718 unsigned char in_CCi;
719 unsigned char in_FRj;
720 unsigned char out_FRintk;
721 } sfmt_cfstoi;
722 struct { /* */
723 UINT f_CCi;
724 UINT f_FRj;
725 UINT f_FRk;
726 UINT f_cond;
727 unsigned char in_CCi;
728 unsigned char in_FRintj;
729 unsigned char out_FRk;
730 } sfmt_cfitos;
731 struct { /* */
732 UINT f_CCi;
733 UINT f_CRj_float;
734 UINT f_FCCi_3;
735 UINT f_cond;
736 unsigned char in_CCi;
737 unsigned char in_FCCi_3;
738 unsigned char out_CRj_float;
739 } sfmt_cfckne;
740 struct { /* */
741 SI f_CRj_int;
742 UINT f_CCi;
743 UINT f_ICCi_3;
744 UINT f_cond;
745 unsigned char in_CCi;
746 unsigned char in_ICCi_3;
747 unsigned char out_CRj_int;
748 } sfmt_cckeq;
749 struct { /* */
750 UINT f_FCCi_2;
751 UINT f_ccond;
752 UINT f_hint;
753 unsigned short in_h_spr_USI_272;
754 unsigned short in_h_spr_USI_273;
755 unsigned short out_h_spr_USI_273;
756 unsigned char in_FCCi_2;
757 } sfmt_fcbeqlr;
758 struct { /* */
759 UINT f_ICCi_2;
760 UINT f_ccond;
761 UINT f_hint;
762 unsigned short in_h_spr_USI_272;
763 unsigned short in_h_spr_USI_273;
764 unsigned short out_h_spr_USI_273;
765 unsigned char in_ICCi_2;
766 } sfmt_bceqlr;
767 struct { /* */
768 UINT f_CPRk;
769 UINT f_GRi;
770 UINT f_GRj;
771 unsigned char in_CPRdoublek;
772 unsigned char in_GRi;
773 unsigned char in_GRj;
774 unsigned char out_GRi;
775 } sfmt_stdcu;
776 struct { /* */
777 UINT f_CPRk;
778 UINT f_GRi;
779 UINT f_GRj;
780 unsigned char in_CPRk;
781 unsigned char in_GRi;
782 unsigned char in_GRj;
783 unsigned char out_GRi;
784 } sfmt_stcu;
785 struct { /* */
786 UINT f_CPRk;
787 UINT f_GRi;
788 UINT f_GRj;
789 unsigned char in_GRi;
790 unsigned char in_GRj;
791 unsigned char out_CPRdoublek;
792 unsigned char out_GRi;
793 } sfmt_lddcu;
794 struct { /* */
795 UINT f_CPRk;
796 UINT f_GRi;
797 UINT f_GRj;
798 unsigned char in_GRi;
799 unsigned char in_GRj;
800 unsigned char out_CPRk;
801 unsigned char out_GRi;
802 } sfmt_ldcu;
803 struct { /* */
804 INT f_s5;
805 UINT f_FRk;
806 unsigned char in_FRintk;
807 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_0;
808 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_0;
809 unsigned char out_FRintk;
810 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_0;
811 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_0;
812 } sfmt_mhdseth;
813 struct { /* */
814 UINT f_CCi;
815 UINT f_GRi;
816 UINT f_GRj;
817 UINT f_LI;
818 UINT f_cond;
819 unsigned char in_CCi;
820 unsigned char in_GRi;
821 unsigned char in_GRj;
822 } sfmt_cjmpl;
823 struct { /* */
824 INT f_s10;
825 UINT f_GRi;
826 UINT f_GRk;
827 UINT f_ICCi_1;
828 unsigned char in_GRi;
829 unsigned char in_ICCi_1;
830 unsigned char out_GRdoublek;
831 unsigned char out_ICCi_1;
832 } sfmt_smulicc;
833 struct { /* */
834 INT f_s10;
835 UINT f_GRi;
836 UINT f_GRk;
837 UINT f_ICCi_1;
838 unsigned char in_GRi;
839 unsigned char in_ICCi_1;
840 unsigned char out_GRk;
841 unsigned char out_ICCi_1;
842 } sfmt_addicc;
843 struct { /* */
844 UINT f_CCi;
845 UINT f_FRi;
846 UINT f_FRj;
847 UINT f_FRk;
848 UINT f_cond;
849 unsigned char in_CCi;
850 unsigned char in_FRinti;
851 unsigned char in_FRintj;
852 unsigned char out_FRintk;
853 } sfmt_cmand;
854 struct { /* */
855 UINT f_CCi;
856 UINT f_FCCi_2;
857 UINT f_FRi;
858 UINT f_FRj;
859 UINT f_cond;
860 unsigned char in_CCi;
861 unsigned char in_FRi;
862 unsigned char in_FRj;
863 unsigned char out_FCCi_2;
864 } sfmt_cfcmps;
865 struct { /* */
866 UINT f_CCi;
867 UINT f_FRk;
868 UINT f_GRj;
869 UINT f_cond;
870 unsigned char in_CCi;
871 unsigned char in_FRintk;
872 unsigned char in_h_fr_int_USI_add__INT_index_of__INT_FRintk_1;
873 unsigned char out_GRj;
874 unsigned char out_h_gr_USI_add__INT_index_of__INT_GRj_1;
875 } sfmt_cmovfgd;
876 struct { /* */
877 UINT f_CCi;
878 UINT f_FRk;
879 UINT f_GRj;
880 UINT f_cond;
881 unsigned char in_CCi;
882 unsigned char in_GRj;
883 unsigned char in_h_gr_USI_add__INT_index_of__INT_GRj_1;
884 unsigned char out_FRintk;
885 unsigned char out_h_fr_int_USI_add__INT_index_of__INT_FRintk_1;
886 } sfmt_cmovgfd;
887 struct { /* */
888 UINT f_GRi;
889 UINT f_GRj;
890 UINT f_GRk;
891 UINT f_ICCi_1;
892 unsigned char in_GRi;
893 unsigned char in_GRj;
894 unsigned char in_ICCi_1;
895 unsigned char out_GRdoublek;
896 unsigned char out_ICCi_1;
897 } sfmt_smulcc;
898 struct { /* */
899 UINT f_GRi;
900 UINT f_GRj;
901 UINT f_GRk;
902 UINT f_ICCi_1;
903 unsigned char in_GRi;
904 unsigned char in_GRj;
905 unsigned char in_ICCi_1;
906 unsigned char out_GRk;
907 unsigned char out_ICCi_1;
908 } sfmt_addcc;
909 struct { /* */
910 UINT f_CCi;
911 UINT f_FRi;
912 UINT f_FRk;
913 UINT f_cond;
914 UINT f_u6;
915 unsigned char in_CCi;
916 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRinti_0;
917 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRinti_0;
918 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_0;
919 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_0;
920 } sfmt_cmexpdhw;
921 struct { /* */
922 UINT f_ACC40Si;
923 UINT f_ACC40Sk;
924 unsigned char in_ACC40Si;
925 unsigned char in_h_acc40S_DI_add__INT_index_of__INT_ACC40Si_1;
926 unsigned char in_h_acc40S_DI_add__INT_index_of__INT_ACC40Si_2;
927 unsigned char in_h_acc40S_DI_add__INT_index_of__INT_ACC40Si_3;
928 unsigned char out_ACC40Sk;
929 unsigned char out_h_acc40S_DI_add__INT_index_of__INT_ACC40Sk_1;
930 unsigned char out_h_acc40S_DI_add__INT_index_of__INT_ACC40Sk_2;
931 unsigned char out_h_acc40S_DI_add__INT_index_of__INT_ACC40Sk_3;
932 } sfmt_mdasaccs;
933 struct { /* */
934 UINT f_FRj;
935 UINT f_FRk;
936 unsigned char in_FRintj;
937 unsigned char in_FRintk;
938 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintj_0;
939 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintj_0;
940 unsigned char out_FRintj;
941 unsigned char out_FRintk;
942 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_0;
943 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_0;
944 } sfmt_mabshs;
945 struct { /* */
946 UINT f_FRi;
947 UINT f_FRk;
948 UINT f_u6;
949 unsigned char in_FRinti;
950 unsigned char in_FRintk;
951 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRinti_0;
952 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRinti_1;
953 unsigned char out_FRinti;
954 unsigned char out_FRintk;
955 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_0;
956 } sfmt_mcplhi;
957 struct { /* */
958 UINT f_FCCi_2;
959 UINT f_FRi;
960 UINT f_FRj;
961 UINT f_FRk;
962 unsigned char in_FRi;
963 unsigned char in_FRj;
964 unsigned char in_h_fr_SF_add__INT_index_of__INT_FRi_1;
965 unsigned char in_h_fr_SF_add__INT_index_of__INT_FRj_1;
966 unsigned char out_FCCi_2;
967 unsigned char out_h_fccr_UQI_add__INT_index_of__INT_FCCi_2_1;
968 } sfmt_nfdcmps;
969 struct { /* */
970 UINT f_CCi;
971 UINT f_FRi;
972 UINT f_FRj;
973 UINT f_FRk;
974 UINT f_cond;
975 unsigned char in_CCi;
976 unsigned char in_FRi;
977 unsigned char in_FRj;
978 unsigned char in_FRk;
979 unsigned char out_FRk;
980 } sfmt_cfmadds;
981 struct { /* */
982 INT f_d12;
983 UINT f_FCCi_2;
984 UINT f_GRi;
985 unsigned short out_h_spr_USI_1;
986 unsigned short out_h_spr_USI_768;
987 unsigned short out_h_spr_USI_769;
988 unsigned short out_h_spr_USI_770;
989 unsigned short out_h_spr_USI_771;
990 unsigned char in_FCCi_2;
991 unsigned char in_GRi;
992 } sfmt_ftine;
993 struct { /* */
994 INT f_d12;
995 UINT f_GRi;
996 UINT f_ICCi_2;
997 unsigned short out_h_spr_USI_1;
998 unsigned short out_h_spr_USI_768;
999 unsigned short out_h_spr_USI_769;
1000 unsigned short out_h_spr_USI_770;
1001 unsigned short out_h_spr_USI_771;
1002 unsigned char in_GRi;
1003 unsigned char in_ICCi_2;
1004 } sfmt_tieq;
1005 struct { /* */
1006 UINT f_FRk;
1007 UINT f_GRj;
1008 unsigned char in_FRintk;
1009 unsigned char in_h_fr_int_USI_add__INT_index_of__INT_FRintk_1;
1010 unsigned char in_h_fr_int_USI_add__INT_index_of__INT_FRintk_2;
1011 unsigned char in_h_fr_int_USI_add__INT_index_of__INT_FRintk_3;
1012 unsigned char out_GRj;
1013 unsigned char out_h_gr_USI_add__INT_index_of__INT_GRj_1;
1014 unsigned char out_h_gr_USI_add__INT_index_of__INT_GRj_2;
1015 unsigned char out_h_gr_USI_add__INT_index_of__INT_GRj_3;
1016 } sfmt_movfgq;
1017 struct { /* */
1018 UINT f_FRk;
1019 UINT f_GRj;
1020 unsigned char in_GRj;
1021 unsigned char in_h_gr_USI_add__INT_index_of__INT_GRj_1;
1022 unsigned char in_h_gr_USI_add__INT_index_of__INT_GRj_2;
1023 unsigned char in_h_gr_USI_add__INT_index_of__INT_GRj_3;
1024 unsigned char out_FRintk;
1025 unsigned char out_h_fr_int_USI_add__INT_index_of__INT_FRintk_1;
1026 unsigned char out_h_fr_int_USI_add__INT_index_of__INT_FRintk_2;
1027 unsigned char out_h_fr_int_USI_add__INT_index_of__INT_FRintk_3;
1028 } sfmt_movgfq;
1029 struct { /* */
1030 UINT f_CCi;
1031 UINT f_GRi;
1032 UINT f_GRj;
1033 UINT f_GRk;
1034 UINT f_cond;
1035 unsigned char in_CCi;
1036 unsigned char in_GRi;
1037 unsigned char in_GRj;
1038 unsigned char in_GRk;
1039 unsigned char out_GRk;
1040 } sfmt_cswap;
1041 struct { /* */
1042 UINT f_CCi;
1043 UINT f_FRk;
1044 UINT f_GRi;
1045 UINT f_GRj;
1046 UINT f_cond;
1047 unsigned char in_CCi;
1048 unsigned char in_FRdoublek;
1049 unsigned char in_GRi;
1050 unsigned char in_GRj;
1051 unsigned char out_GRi;
1052 } sfmt_cstdfu;
1053 struct { /* */
1054 UINT f_CCi;
1055 UINT f_GRi;
1056 UINT f_GRj;
1057 UINT f_GRk;
1058 UINT f_cond;
1059 unsigned char in_CCi;
1060 unsigned char in_GRdoublek;
1061 unsigned char in_GRi;
1062 unsigned char in_GRj;
1063 unsigned char out_GRi;
1064 } sfmt_cstdu;
1065 struct { /* */
1066 UINT f_CCi;
1067 UINT f_FRk;
1068 UINT f_GRi;
1069 UINT f_GRj;
1070 UINT f_cond;
1071 unsigned char in_CCi;
1072 unsigned char in_FRintk;
1073 unsigned char in_GRi;
1074 unsigned char in_GRj;
1075 unsigned char out_GRi;
1076 } sfmt_cstbfu;
1077 struct { /* */
1078 UINT f_CCi;
1079 UINT f_GRi;
1080 UINT f_GRj;
1081 UINT f_GRk;
1082 UINT f_cond;
1083 unsigned char in_CCi;
1084 unsigned char in_GRi;
1085 unsigned char in_GRj;
1086 unsigned char in_GRk;
1087 unsigned char out_GRi;
1088 } sfmt_cstbu;
1089 struct { /* */
1090 UINT f_CCi;
1091 UINT f_FRk;
1092 UINT f_GRi;
1093 UINT f_GRj;
1094 UINT f_cond;
1095 unsigned char in_CCi;
1096 unsigned char in_GRi;
1097 unsigned char in_GRj;
1098 unsigned char out_FRdoublek;
1099 unsigned char out_GRi;
1100 } sfmt_clddfu;
1101 struct { /* */
1102 UINT f_CCi;
1103 UINT f_GRi;
1104 UINT f_GRj;
1105 UINT f_GRk;
1106 UINT f_cond;
1107 unsigned char in_CCi;
1108 unsigned char in_GRi;
1109 unsigned char in_GRj;
1110 unsigned char out_GRdoublek;
1111 unsigned char out_GRi;
1112 } sfmt_clddu;
1113 struct { /* */
1114 UINT f_CCi;
1115 UINT f_FRk;
1116 UINT f_GRi;
1117 UINT f_GRj;
1118 UINT f_cond;
1119 unsigned char in_CCi;
1120 unsigned char in_GRi;
1121 unsigned char in_GRj;
1122 unsigned char out_FRintk;
1123 unsigned char out_GRi;
1124 } sfmt_cldbfu;
1125 struct { /* */
1126 UINT f_CCi;
1127 UINT f_GRi;
1128 UINT f_GRj;
1129 UINT f_GRk;
1130 UINT f_cond;
1131 unsigned char in_CCi;
1132 unsigned char in_GRi;
1133 unsigned char in_GRj;
1134 unsigned char out_GRi;
1135 unsigned char out_GRk;
1136 } sfmt_cldsbu;
1137 struct { /* */
1138 UINT f_FCCk;
1139 UINT f_FRi;
1140 UINT f_FRj;
1141 unsigned char in_FRinti;
1142 unsigned char in_FRintj;
1143 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRinti_0;
1144 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintj_0;
1145 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRinti_0;
1146 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintj_0;
1147 unsigned char out_FCCk;
1148 unsigned char out_h_fccr_UQI_add__INT_index_of__INT_FCCk_1;
1149 } sfmt_mcmpsh;
1150 struct { /* */
1151 UINT f_FRi;
1152 UINT f_FRk;
1153 UINT f_u6;
1154 unsigned char in_FRinti;
1155 unsigned char in_FRintk;
1156 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRinti_0;
1157 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRinti_0;
1158 unsigned char out_FRinti;
1159 unsigned char out_FRintk;
1160 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_0;
1161 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_0;
1162 } sfmt_msllhi;
1163 struct { /* */
1164 UINT f_FRi;
1165 UINT f_FRj;
1166 UINT f_FRk;
1167 unsigned char in_FRi;
1168 unsigned char in_FRj;
1169 unsigned char in_FRk;
1170 unsigned char in_h_fr_SF_add__INT_index_of__INT_FRi_1;
1171 unsigned char in_h_fr_SF_add__INT_index_of__INT_FRj_1;
1172 unsigned char in_h_fr_SF_add__INT_index_of__INT_FRk_1;
1173 unsigned char out_FRk;
1174 unsigned char out_h_fr_SF_add__INT_index_of__INT_FRk_1;
1175 } sfmt_fdmadds;
1176 struct { /* */
1177 UINT f_FCCi_2;
1178 UINT f_GRi;
1179 UINT f_GRj;
1180 unsigned short out_h_spr_USI_1;
1181 unsigned short out_h_spr_USI_768;
1182 unsigned short out_h_spr_USI_769;
1183 unsigned short out_h_spr_USI_770;
1184 unsigned short out_h_spr_USI_771;
1185 unsigned char in_FCCi_2;
1186 unsigned char in_GRi;
1187 unsigned char in_GRj;
1188 } sfmt_ftne;
1189 struct { /* */
1190 UINT f_GRi;
1191 UINT f_GRj;
1192 UINT f_ICCi_2;
1193 unsigned short out_h_spr_USI_1;
1194 unsigned short out_h_spr_USI_768;
1195 unsigned short out_h_spr_USI_769;
1196 unsigned short out_h_spr_USI_770;
1197 unsigned short out_h_spr_USI_771;
1198 unsigned char in_GRi;
1199 unsigned char in_GRj;
1200 unsigned char in_ICCi_2;
1201 } sfmt_teq;
1202 struct { /* */
1203 UINT f_CCi;
1204 UINT f_GRi;
1205 UINT f_GRj;
1206 UINT f_GRk;
1207 UINT f_cond;
1208 unsigned char in_CCi;
1209 unsigned char in_GRi;
1210 unsigned char in_GRj;
1211 unsigned char in_h_iccr_UQI_and__INT_index_of__INT_CCi_3;
1212 unsigned char out_GRdoublek;
1213 unsigned char out_h_iccr_UQI_and__INT_index_of__INT_CCi_3;
1214 } sfmt_csmulcc;
1215 struct { /* */
1216 UINT f_CCi;
1217 UINT f_GRi;
1218 UINT f_GRj;
1219 UINT f_GRk;
1220 UINT f_cond;
1221 unsigned char in_CCi;
1222 unsigned char in_GRi;
1223 unsigned char in_GRj;
1224 unsigned char in_h_iccr_UQI_and__INT_index_of__INT_CCi_3;
1225 unsigned char out_GRk;
1226 unsigned char out_h_iccr_UQI_and__INT_index_of__INT_CCi_3;
1227 } sfmt_caddcc;
1228 struct { /* */
1229 UINT f_FRi;
1230 UINT f_FRk;
1231 unsigned char in_FRinti;
1232 unsigned char in_FRintkeven;
1233 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRinti_0;
1234 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRinti_0;
1235 unsigned char out_FRinti;
1236 unsigned char out_FRintkeven;
1237 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintkeven_0;
1238 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintkeven_add__INT_0_1;
1239 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintkeven_0;
1240 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintkeven_add__INT_0_1;
1241 } sfmt_munpackh;
1242 struct { /* */
1243 UINT f_CCi;
1244 UINT f_FRi;
1245 UINT f_FRj;
1246 UINT f_FRk;
1247 UINT f_cond;
1248 unsigned char in_CCi;
1249 unsigned char in_FRi;
1250 unsigned char in_FRj;
1251 unsigned char in_h_fr_SF_add__INT_index_of__INT_FRi_1;
1252 unsigned char in_h_fr_SF_add__INT_index_of__INT_FRj_1;
1253 unsigned char out_FRk;
1254 unsigned char out_h_fr_SF_add__INT_index_of__INT_FRk_1;
1255 } sfmt_cfmas;
1256 struct { /* */
1257 UINT f_CCi;
1258 UINT f_FRi;
1259 UINT f_FRk;
1260 UINT f_cond;
1261 UINT f_u6;
1262 unsigned char in_CCi;
1263 unsigned char in_FRintkeven;
1264 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRinti_0;
1265 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRinti_0;
1266 unsigned char out_FRintkeven;
1267 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintkeven_0;
1268 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintkeven_1;
1269 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintkeven_0;
1270 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintkeven_1;
1271 } sfmt_cmexpdhd;
1272 struct { /* */
1273 UINT f_CCi;
1274 UINT f_FRi;
1275 UINT f_FRj;
1276 UINT f_FRk;
1277 UINT f_cond;
1278 unsigned char in_CCi;
1279 unsigned char in_FRinti;
1280 unsigned char in_FRintj;
1281 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRinti_0;
1282 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintj_0;
1283 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRinti_0;
1284 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintj_0;
1285 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_0;
1286 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_0;
1287 } sfmt_cmaddhss;
1288 struct { /* */
1289 UINT f_FRi;
1290 UINT f_FRk;
1291 UINT f_u6;
1292 unsigned char in_FRintieven;
1293 unsigned char in_FRintkeven;
1294 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintieven_0;
1295 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintieven_1;
1296 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintieven_0;
1297 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintieven_1;
1298 unsigned char out_FRintieven;
1299 unsigned char out_FRintkeven;
1300 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintkeven_0;
1301 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintkeven_1;
1302 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintkeven_0;
1303 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintkeven_1;
1304 } sfmt_mqsllhi;
1305 struct { /* */
1306 UINT f_FRi;
1307 UINT f_FRj;
1308 UINT f_FRk;
1309 unsigned char in_FRi;
1310 unsigned char in_FRj;
1311 unsigned char in_h_fr_SF_add__INT_index_of__INT_FRi_1;
1312 unsigned char in_h_fr_SF_add__INT_index_of__INT_FRi_2;
1313 unsigned char in_h_fr_SF_add__INT_index_of__INT_FRi_3;
1314 unsigned char in_h_fr_SF_add__INT_index_of__INT_FRj_1;
1315 unsigned char in_h_fr_SF_add__INT_index_of__INT_FRj_2;
1316 unsigned char in_h_fr_SF_add__INT_index_of__INT_FRj_3;
1317 unsigned char out_FRk;
1318 unsigned char out_h_fr_SF_add__INT_index_of__INT_FRk_1;
1319 unsigned char out_h_fr_SF_add__INT_index_of__INT_FRk_2;
1320 unsigned char out_h_fr_SF_add__INT_index_of__INT_FRk_3;
1321 } sfmt_fdmas;
1322 struct { /* */
1323 UINT f_ACC40Uk;
1324 UINT f_CCi;
1325 UINT f_FRi;
1326 UINT f_FRj;
1327 UINT f_cond;
1328 unsigned char in_ACC40Uk;
1329 unsigned char in_CCi;
1330 unsigned char in_FRinti;
1331 unsigned char in_FRintj;
1332 unsigned char in_h_acc40U_UDI_add__INT_index_of__INT_ACC40Uk_1;
1333 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRinti_0;
1334 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintj_0;
1335 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRinti_0;
1336 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintj_0;
1337 unsigned char out_ACC40Uk;
1338 unsigned char out_h_acc40U_UDI_add__INT_index_of__INT_ACC40Uk_1;
1339 } sfmt_cmmachu;
1340 struct { /* */
1341 UINT f_ACC40Sk;
1342 UINT f_CCi;
1343 UINT f_FRi;
1344 UINT f_FRj;
1345 UINT f_cond;
1346 unsigned char in_ACC40Sk;
1347 unsigned char in_CCi;
1348 unsigned char in_FRinti;
1349 unsigned char in_FRintj;
1350 unsigned char in_h_acc40S_DI_add__INT_index_of__INT_ACC40Sk_1;
1351 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRinti_0;
1352 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintj_0;
1353 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRinti_0;
1354 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintj_0;
1355 unsigned char out_ACC40Sk;
1356 unsigned char out_h_acc40S_DI_add__INT_index_of__INT_ACC40Sk_1;
1357 } sfmt_cmmachs;
1358 struct { /* */
1359 UINT f_CCi;
1360 UINT f_FRj;
1361 UINT f_FRk;
1362 UINT f_cond;
1363 unsigned char in_CCi;
1364 unsigned char in_FRintjeven;
1365 unsigned char in_FRintk;
1366 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintjeven_0;
1367 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintjeven_1;
1368 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintjeven_0;
1369 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintjeven_1;
1370 unsigned char out_FRintjeven;
1371 unsigned char out_FRintk;
1372 unsigned char out_h_fr_0_UHI_add__INT_index_of__INT_FRintk_0;
1373 unsigned char out_h_fr_1_UHI_add__INT_index_of__INT_FRintk_0;
1374 unsigned char out_h_fr_2_UHI_add__INT_index_of__INT_FRintk_0;
1375 unsigned char out_h_fr_3_UHI_add__INT_index_of__INT_FRintk_0;
1376 } sfmt_cmhtob;
1377 struct { /* */
1378 UINT f_CCi;
1379 UINT f_FRj;
1380 UINT f_FRk;
1381 UINT f_cond;
1382 unsigned char in_CCi;
1383 unsigned char in_FRintj;
1384 unsigned char in_FRintkeven;
1385 unsigned char in_h_fr_0_UHI_add__INT_index_of__INT_FRintj_0;
1386 unsigned char in_h_fr_1_UHI_add__INT_index_of__INT_FRintj_0;
1387 unsigned char in_h_fr_2_UHI_add__INT_index_of__INT_FRintj_0;
1388 unsigned char in_h_fr_3_UHI_add__INT_index_of__INT_FRintj_0;
1389 unsigned char out_FRintj;
1390 unsigned char out_FRintkeven;
1391 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintkeven_0;
1392 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintkeven_1;
1393 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintkeven_0;
1394 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintkeven_1;
1395 } sfmt_cmbtoh;
1396 struct { /* */
1397 UINT f_FRi;
1398 UINT f_FRj;
1399 UINT f_FRk;
1400 unsigned char in_FRintieven;
1401 unsigned char in_FRintjeven;
1402 unsigned char in_FRintkeven;
1403 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintieven_0;
1404 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintieven_1;
1405 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintjeven_0;
1406 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintjeven_1;
1407 unsigned char out_FRintieven;
1408 unsigned char out_FRintjeven;
1409 unsigned char out_FRintkeven;
1410 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintkeven_0;
1411 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintkeven_1;
1412 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintkeven_0;
1413 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintkeven_1;
1414 } sfmt_mdpackh;
1415 struct { /* */
1416 UINT f_FRi;
1417 UINT f_FRk;
1418 unsigned char in_FRintieven;
1419 unsigned char in_FRintk;
1420 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintieven_0;
1421 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintieven_1;
1422 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintieven_0;
1423 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintieven_1;
1424 unsigned char out_FRintieven;
1425 unsigned char out_FRintk;
1426 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_0;
1427 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_2;
1428 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_add__INT_0_1;
1429 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_add__INT_2_1;
1430 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_0;
1431 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_2;
1432 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_add__INT_0_1;
1433 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_add__INT_2_1;
1434 } sfmt_mdunpackh;
1435 struct { /* */
1436 UINT f_CCi;
1437 UINT f_FRj;
1438 UINT f_FRk;
1439 UINT f_cond;
1440 unsigned char in_CCi;
1441 unsigned char in_FRintj;
1442 unsigned char in_FRintk;
1443 unsigned char in_h_fr_0_UHI_add__INT_index_of__INT_FRintj_0;
1444 unsigned char in_h_fr_1_UHI_add__INT_index_of__INT_FRintj_0;
1445 unsigned char in_h_fr_2_UHI_add__INT_index_of__INT_FRintj_0;
1446 unsigned char in_h_fr_3_UHI_add__INT_index_of__INT_FRintj_0;
1447 unsigned char out_FRintj;
1448 unsigned char out_FRintk;
1449 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_0;
1450 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_1;
1451 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_2;
1452 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintk_3;
1453 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_0;
1454 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_1;
1455 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_2;
1456 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintk_3;
1457 } sfmt_cmbtohe;
1458 struct { /* */
1459 UINT f_CCi;
1460 UINT f_FRi;
1461 UINT f_FRj;
1462 UINT f_FRk;
1463 UINT f_cond;
1464 unsigned char in_CCi;
1465 unsigned char in_FRintieven;
1466 unsigned char in_FRintjeven;
1467 unsigned char in_FRintkeven;
1468 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintieven_0;
1469 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintieven_1;
1470 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintjeven_0;
1471 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintjeven_1;
1472 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintieven_0;
1473 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintieven_1;
1474 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintjeven_0;
1475 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintjeven_1;
1476 unsigned char out_FRintkeven;
1477 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintkeven_0;
1478 unsigned char out_h_fr_hi_UHI_add__INT_index_of__INT_FRintkeven_1;
1479 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintkeven_0;
1480 unsigned char out_h_fr_lo_UHI_add__INT_index_of__INT_FRintkeven_1;
1481 } sfmt_cmqaddhss;
1482 struct { /* */
1483 UINT f_ACC40Uk;
1484 UINT f_CCi;
1485 UINT f_FRi;
1486 UINT f_FRj;
1487 UINT f_cond;
1488 unsigned char in_ACC40Uk;
1489 unsigned char in_CCi;
1490 unsigned char in_FRintieven;
1491 unsigned char in_FRintjeven;
1492 unsigned char in_h_acc40U_UDI_add__INT_index_of__INT_ACC40Uk_1;
1493 unsigned char in_h_acc40U_UDI_add__INT_index_of__INT_ACC40Uk_2;
1494 unsigned char in_h_acc40U_UDI_add__INT_index_of__INT_ACC40Uk_3;
1495 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintieven_0;
1496 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintieven_1;
1497 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintjeven_0;
1498 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintjeven_1;
1499 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintieven_0;
1500 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintieven_1;
1501 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintjeven_0;
1502 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintjeven_1;
1503 unsigned char out_ACC40Uk;
1504 unsigned char out_h_acc40U_UDI_add__INT_index_of__INT_ACC40Uk_1;
1505 unsigned char out_h_acc40U_UDI_add__INT_index_of__INT_ACC40Uk_2;
1506 unsigned char out_h_acc40U_UDI_add__INT_index_of__INT_ACC40Uk_3;
1507 } sfmt_cmqmachu;
1508 struct { /* */
1509 UINT f_ACC40Sk;
1510 UINT f_CCi;
1511 UINT f_FRi;
1512 UINT f_FRj;
1513 UINT f_cond;
1514 unsigned char in_ACC40Sk;
1515 unsigned char in_CCi;
1516 unsigned char in_FRintieven;
1517 unsigned char in_FRintjeven;
1518 unsigned char in_h_acc40S_DI_add__INT_index_of__INT_ACC40Sk_1;
1519 unsigned char in_h_acc40S_DI_add__INT_index_of__INT_ACC40Sk_2;
1520 unsigned char in_h_acc40S_DI_add__INT_index_of__INT_ACC40Sk_3;
1521 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintieven_0;
1522 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintieven_1;
1523 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintjeven_0;
1524 unsigned char in_h_fr_hi_UHI_add__INT_index_of__INT_FRintjeven_1;
1525 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintieven_0;
1526 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintieven_1;
1527 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintjeven_0;
1528 unsigned char in_h_fr_lo_UHI_add__INT_index_of__INT_FRintjeven_1;
1529 unsigned char out_ACC40Sk;
1530 unsigned char out_h_acc40S_DI_add__INT_index_of__INT_ACC40Sk_1;
1531 unsigned char out_h_acc40S_DI_add__INT_index_of__INT_ACC40Sk_2;
1532 unsigned char out_h_acc40S_DI_add__INT_index_of__INT_ACC40Sk_3;
1533 } sfmt_cmqmachs;
1534 #if WITH_SCACHE_PBB
1535 /* Writeback handler. */
1536 struct {
1537 /* Pointer to argbuf entry for insn whose results need writing back. */
1538 const struct argbuf *abuf;
1539 } write;
1540 /* x-before handler */
1541 struct {
1542 /*const SCACHE *insns[MAX_PARALLEL_INSNS];*/
1543 int first_p;
1544 } before;
1545 /* x-after handler */
1546 struct {
1547 int empty;
1548 } after;
1549 /* This entry is used to terminate each pbb. */
1550 struct {
1551 /* Number of insns in pbb. */
1552 int insn_count;
1553 /* Next pbb to execute. */
1554 SCACHE *next;
1555 SCACHE *branch_target;
1556 } chain;
1557 #endif
1558 };
1559
1560 /* The ARGBUF struct. */
1561 struct argbuf {
1562 /* These are the baseclass definitions. */
1563 IADDR addr;
1564 const IDESC *idesc;
1565 char trace_p;
1566 char profile_p;
1567 /* ??? Temporary hack for skip insns. */
1568 char skip_count;
1569 char unused;
1570 /* cpu specific data follows */
1571 union sem semantic;
1572 int written;
1573 union sem_fields fields;
1574 };
1575
1576 /* A cached insn.
1577
1578 ??? SCACHE used to contain more than just argbuf. We could delete the
1579 type entirely and always just use ARGBUF, but for future concerns and as
1580 a level of abstraction it is left in. */
1581
1582 struct scache {
1583 struct argbuf argbuf;
1584 int first_insn_p;
1585 int last_insn_p;
1586 };
1587
1588 /* Macros to simplify extraction, reading and semantic code.
1589 These define and assign the local vars that contain the insn's fields. */
1590
1591 #define EXTRACT_IFMT_EMPTY_VARS \
1592 unsigned int length;
1593 #define EXTRACT_IFMT_EMPTY_CODE \
1594 length = 0; \
1595
1596 #define EXTRACT_IFMT_ADD_VARS \
1597 UINT f_pack; \
1598 UINT f_GRk; \
1599 UINT f_op; \
1600 UINT f_GRi; \
1601 UINT f_ICCi_1_null; \
1602 UINT f_ope2; \
1603 UINT f_GRj; \
1604 unsigned int length;
1605 #define EXTRACT_IFMT_ADD_CODE \
1606 length = 4; \
1607 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1608 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1609 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1610 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1611 f_ICCi_1_null = EXTRACT_LSB0_UINT (insn, 32, 11, 2); \
1612 f_ope2 = EXTRACT_LSB0_UINT (insn, 32, 9, 4); \
1613 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1614
1615 #define EXTRACT_IFMT_NOT_VARS \
1616 UINT f_pack; \
1617 UINT f_GRk; \
1618 UINT f_op; \
1619 UINT f_rs_null; \
1620 UINT f_ICCi_1_null; \
1621 UINT f_ope2; \
1622 UINT f_GRj; \
1623 unsigned int length;
1624 #define EXTRACT_IFMT_NOT_CODE \
1625 length = 4; \
1626 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1627 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1628 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1629 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1630 f_ICCi_1_null = EXTRACT_LSB0_UINT (insn, 32, 11, 2); \
1631 f_ope2 = EXTRACT_LSB0_UINT (insn, 32, 9, 4); \
1632 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1633
1634 #define EXTRACT_IFMT_SMUL_VARS \
1635 UINT f_pack; \
1636 UINT f_GRk; \
1637 UINT f_op; \
1638 UINT f_GRi; \
1639 UINT f_ICCi_1_null; \
1640 UINT f_ope2; \
1641 UINT f_GRj; \
1642 unsigned int length;
1643 #define EXTRACT_IFMT_SMUL_CODE \
1644 length = 4; \
1645 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1646 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1647 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1648 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1649 f_ICCi_1_null = EXTRACT_LSB0_UINT (insn, 32, 11, 2); \
1650 f_ope2 = EXTRACT_LSB0_UINT (insn, 32, 9, 4); \
1651 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1652
1653 #define EXTRACT_IFMT_SMU_VARS \
1654 UINT f_pack; \
1655 UINT f_rd_null; \
1656 UINT f_op; \
1657 UINT f_GRi; \
1658 UINT f_ope1; \
1659 UINT f_GRj; \
1660 unsigned int length;
1661 #define EXTRACT_IFMT_SMU_CODE \
1662 length = 4; \
1663 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1664 f_rd_null = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1665 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1666 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1667 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
1668 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1669
1670 #define EXTRACT_IFMT_SLASS_VARS \
1671 UINT f_pack; \
1672 UINT f_GRk; \
1673 UINT f_op; \
1674 UINT f_GRi; \
1675 UINT f_ope1; \
1676 UINT f_GRj; \
1677 unsigned int length;
1678 #define EXTRACT_IFMT_SLASS_CODE \
1679 length = 4; \
1680 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1681 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1682 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1683 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1684 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
1685 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1686
1687 #define EXTRACT_IFMT_SCUTSS_VARS \
1688 UINT f_pack; \
1689 UINT f_GRk; \
1690 UINT f_op; \
1691 UINT f_rs_null; \
1692 UINT f_ope1; \
1693 UINT f_GRj; \
1694 unsigned int length;
1695 #define EXTRACT_IFMT_SCUTSS_CODE \
1696 length = 4; \
1697 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1698 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1699 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1700 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1701 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
1702 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1703
1704 #define EXTRACT_IFMT_CADD_VARS \
1705 UINT f_pack; \
1706 UINT f_GRk; \
1707 UINT f_op; \
1708 UINT f_GRi; \
1709 UINT f_CCi; \
1710 UINT f_cond; \
1711 UINT f_ope4; \
1712 UINT f_GRj; \
1713 unsigned int length;
1714 #define EXTRACT_IFMT_CADD_CODE \
1715 length = 4; \
1716 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1717 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1718 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1719 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1720 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
1721 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
1722 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
1723 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1724
1725 #define EXTRACT_IFMT_CNOT_VARS \
1726 UINT f_pack; \
1727 UINT f_GRk; \
1728 UINT f_op; \
1729 UINT f_rs_null; \
1730 UINT f_CCi; \
1731 UINT f_cond; \
1732 UINT f_ope4; \
1733 UINT f_GRj; \
1734 unsigned int length;
1735 #define EXTRACT_IFMT_CNOT_CODE \
1736 length = 4; \
1737 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1738 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1739 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1740 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1741 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
1742 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
1743 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
1744 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1745
1746 #define EXTRACT_IFMT_CSMUL_VARS \
1747 UINT f_pack; \
1748 UINT f_GRk; \
1749 UINT f_op; \
1750 UINT f_GRi; \
1751 UINT f_CCi; \
1752 UINT f_cond; \
1753 UINT f_ope4; \
1754 UINT f_GRj; \
1755 unsigned int length;
1756 #define EXTRACT_IFMT_CSMUL_CODE \
1757 length = 4; \
1758 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1759 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1760 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1761 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1762 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
1763 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
1764 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
1765 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1766
1767 #define EXTRACT_IFMT_ADDCC_VARS \
1768 UINT f_pack; \
1769 UINT f_GRk; \
1770 UINT f_op; \
1771 UINT f_GRi; \
1772 UINT f_ICCi_1; \
1773 UINT f_ope2; \
1774 UINT f_GRj; \
1775 unsigned int length;
1776 #define EXTRACT_IFMT_ADDCC_CODE \
1777 length = 4; \
1778 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1779 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1780 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1781 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1782 f_ICCi_1 = EXTRACT_LSB0_UINT (insn, 32, 11, 2); \
1783 f_ope2 = EXTRACT_LSB0_UINT (insn, 32, 9, 4); \
1784 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1785
1786 #define EXTRACT_IFMT_SMULCC_VARS \
1787 UINT f_pack; \
1788 UINT f_GRk; \
1789 UINT f_op; \
1790 UINT f_GRi; \
1791 UINT f_ICCi_1; \
1792 UINT f_ope2; \
1793 UINT f_GRj; \
1794 unsigned int length;
1795 #define EXTRACT_IFMT_SMULCC_CODE \
1796 length = 4; \
1797 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1798 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1799 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1800 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1801 f_ICCi_1 = EXTRACT_LSB0_UINT (insn, 32, 11, 2); \
1802 f_ope2 = EXTRACT_LSB0_UINT (insn, 32, 9, 4); \
1803 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1804
1805 #define EXTRACT_IFMT_ADDI_VARS \
1806 UINT f_pack; \
1807 UINT f_GRk; \
1808 UINT f_op; \
1809 UINT f_GRi; \
1810 INT f_d12; \
1811 unsigned int length;
1812 #define EXTRACT_IFMT_ADDI_CODE \
1813 length = 4; \
1814 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1815 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1816 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1817 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1818 f_d12 = EXTRACT_LSB0_SINT (insn, 32, 11, 12); \
1819
1820 #define EXTRACT_IFMT_SMULI_VARS \
1821 UINT f_pack; \
1822 UINT f_GRk; \
1823 UINT f_op; \
1824 UINT f_GRi; \
1825 INT f_d12; \
1826 unsigned int length;
1827 #define EXTRACT_IFMT_SMULI_CODE \
1828 length = 4; \
1829 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1830 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1831 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1832 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1833 f_d12 = EXTRACT_LSB0_SINT (insn, 32, 11, 12); \
1834
1835 #define EXTRACT_IFMT_ADDICC_VARS \
1836 UINT f_pack; \
1837 UINT f_GRk; \
1838 UINT f_op; \
1839 UINT f_GRi; \
1840 UINT f_ICCi_1; \
1841 INT f_s10; \
1842 unsigned int length;
1843 #define EXTRACT_IFMT_ADDICC_CODE \
1844 length = 4; \
1845 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1846 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1847 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1848 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1849 f_ICCi_1 = EXTRACT_LSB0_UINT (insn, 32, 11, 2); \
1850 f_s10 = EXTRACT_LSB0_SINT (insn, 32, 9, 10); \
1851
1852 #define EXTRACT_IFMT_SMULICC_VARS \
1853 UINT f_pack; \
1854 UINT f_GRk; \
1855 UINT f_op; \
1856 UINT f_GRi; \
1857 UINT f_ICCi_1; \
1858 INT f_s10; \
1859 unsigned int length;
1860 #define EXTRACT_IFMT_SMULICC_CODE \
1861 length = 4; \
1862 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1863 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1864 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1865 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1866 f_ICCi_1 = EXTRACT_LSB0_UINT (insn, 32, 11, 2); \
1867 f_s10 = EXTRACT_LSB0_SINT (insn, 32, 9, 10); \
1868
1869 #define EXTRACT_IFMT_CMPB_VARS \
1870 UINT f_pack; \
1871 UINT f_GRk_null; \
1872 UINT f_op; \
1873 UINT f_GRi; \
1874 UINT f_ICCi_1; \
1875 UINT f_ope2; \
1876 UINT f_GRj; \
1877 unsigned int length;
1878 #define EXTRACT_IFMT_CMPB_CODE \
1879 length = 4; \
1880 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1881 f_GRk_null = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1882 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1883 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1884 f_ICCi_1 = EXTRACT_LSB0_UINT (insn, 32, 11, 2); \
1885 f_ope2 = EXTRACT_LSB0_UINT (insn, 32, 9, 4); \
1886 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1887
1888 #define EXTRACT_IFMT_SETLO_VARS \
1889 UINT f_pack; \
1890 UINT f_GRk; \
1891 UINT f_op; \
1892 UINT f_misc_null_4; \
1893 UINT f_u16; \
1894 unsigned int length;
1895 #define EXTRACT_IFMT_SETLO_CODE \
1896 length = 4; \
1897 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1898 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1899 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1900 f_misc_null_4 = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
1901 f_u16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
1902
1903 #define EXTRACT_IFMT_SETHI_VARS \
1904 UINT f_pack; \
1905 UINT f_GRk; \
1906 UINT f_op; \
1907 UINT f_misc_null_4; \
1908 UINT f_u16; \
1909 unsigned int length;
1910 #define EXTRACT_IFMT_SETHI_CODE \
1911 length = 4; \
1912 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1913 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1914 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1915 f_misc_null_4 = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
1916 f_u16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
1917
1918 #define EXTRACT_IFMT_SETLOS_VARS \
1919 UINT f_pack; \
1920 UINT f_GRk; \
1921 UINT f_op; \
1922 UINT f_misc_null_4; \
1923 INT f_s16; \
1924 unsigned int length;
1925 #define EXTRACT_IFMT_SETLOS_CODE \
1926 length = 4; \
1927 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1928 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1929 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1930 f_misc_null_4 = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
1931 f_s16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16); \
1932
1933 #define EXTRACT_IFMT_LDBF_VARS \
1934 UINT f_pack; \
1935 UINT f_FRk; \
1936 UINT f_op; \
1937 UINT f_GRi; \
1938 UINT f_ope1; \
1939 UINT f_GRj; \
1940 unsigned int length;
1941 #define EXTRACT_IFMT_LDBF_CODE \
1942 length = 4; \
1943 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1944 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1945 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1946 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1947 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
1948 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1949
1950 #define EXTRACT_IFMT_LDC_VARS \
1951 UINT f_pack; \
1952 UINT f_CPRk; \
1953 UINT f_op; \
1954 UINT f_GRi; \
1955 UINT f_ope1; \
1956 UINT f_GRj; \
1957 unsigned int length;
1958 #define EXTRACT_IFMT_LDC_CODE \
1959 length = 4; \
1960 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1961 f_CPRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1962 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1963 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1964 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
1965 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1966
1967 #define EXTRACT_IFMT_LDD_VARS \
1968 UINT f_pack; \
1969 UINT f_GRk; \
1970 UINT f_op; \
1971 UINT f_GRi; \
1972 UINT f_ope1; \
1973 UINT f_GRj; \
1974 unsigned int length;
1975 #define EXTRACT_IFMT_LDD_CODE \
1976 length = 4; \
1977 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1978 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1979 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1980 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1981 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
1982 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
1983
1984 #define EXTRACT_IFMT_LDDF_VARS \
1985 UINT f_pack; \
1986 UINT f_FRk; \
1987 UINT f_op; \
1988 UINT f_GRi; \
1989 UINT f_ope1; \
1990 UINT f_GRj; \
1991 unsigned int length;
1992 #define EXTRACT_IFMT_LDDF_CODE \
1993 length = 4; \
1994 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
1995 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
1996 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
1997 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
1998 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
1999 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2000
2001 #define EXTRACT_IFMT_LDDC_VARS \
2002 UINT f_pack; \
2003 UINT f_CPRk; \
2004 UINT f_op; \
2005 UINT f_GRi; \
2006 UINT f_ope1; \
2007 UINT f_GRj; \
2008 unsigned int length;
2009 #define EXTRACT_IFMT_LDDC_CODE \
2010 length = 4; \
2011 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2012 f_CPRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2013 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2014 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2015 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
2016 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2017
2018 #define EXTRACT_IFMT_LDSBI_VARS \
2019 UINT f_pack; \
2020 UINT f_GRk; \
2021 UINT f_op; \
2022 UINT f_GRi; \
2023 INT f_d12; \
2024 unsigned int length;
2025 #define EXTRACT_IFMT_LDSBI_CODE \
2026 length = 4; \
2027 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2028 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2029 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2030 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2031 f_d12 = EXTRACT_LSB0_SINT (insn, 32, 11, 12); \
2032
2033 #define EXTRACT_IFMT_LDBFI_VARS \
2034 UINT f_pack; \
2035 UINT f_FRk; \
2036 UINT f_op; \
2037 UINT f_GRi; \
2038 INT f_d12; \
2039 unsigned int length;
2040 #define EXTRACT_IFMT_LDBFI_CODE \
2041 length = 4; \
2042 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2043 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2044 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2045 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2046 f_d12 = EXTRACT_LSB0_SINT (insn, 32, 11, 12); \
2047
2048 #define EXTRACT_IFMT_LDDI_VARS \
2049 UINT f_pack; \
2050 UINT f_GRk; \
2051 UINT f_op; \
2052 UINT f_GRi; \
2053 INT f_d12; \
2054 unsigned int length;
2055 #define EXTRACT_IFMT_LDDI_CODE \
2056 length = 4; \
2057 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2058 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2059 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2060 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2061 f_d12 = EXTRACT_LSB0_SINT (insn, 32, 11, 12); \
2062
2063 #define EXTRACT_IFMT_LDDFI_VARS \
2064 UINT f_pack; \
2065 UINT f_FRk; \
2066 UINT f_op; \
2067 UINT f_GRi; \
2068 INT f_d12; \
2069 unsigned int length;
2070 #define EXTRACT_IFMT_LDDFI_CODE \
2071 length = 4; \
2072 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2073 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2074 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2075 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2076 f_d12 = EXTRACT_LSB0_SINT (insn, 32, 11, 12); \
2077
2078 #define EXTRACT_IFMT_CLDBF_VARS \
2079 UINT f_pack; \
2080 UINT f_FRk; \
2081 UINT f_op; \
2082 UINT f_GRi; \
2083 UINT f_CCi; \
2084 UINT f_cond; \
2085 UINT f_ope4; \
2086 UINT f_GRj; \
2087 unsigned int length;
2088 #define EXTRACT_IFMT_CLDBF_CODE \
2089 length = 4; \
2090 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2091 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2092 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2093 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2094 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
2095 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
2096 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2097 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2098
2099 #define EXTRACT_IFMT_CLDDF_VARS \
2100 UINT f_pack; \
2101 UINT f_FRk; \
2102 UINT f_op; \
2103 UINT f_GRi; \
2104 UINT f_CCi; \
2105 UINT f_cond; \
2106 UINT f_ope4; \
2107 UINT f_GRj; \
2108 unsigned int length;
2109 #define EXTRACT_IFMT_CLDDF_CODE \
2110 length = 4; \
2111 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2112 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2113 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2114 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2115 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
2116 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
2117 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2118 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2119
2120 #define EXTRACT_IFMT_MOVGF_VARS \
2121 UINT f_pack; \
2122 UINT f_FRk; \
2123 UINT f_op; \
2124 UINT f_rs_null; \
2125 UINT f_ope1; \
2126 UINT f_GRj; \
2127 unsigned int length;
2128 #define EXTRACT_IFMT_MOVGF_CODE \
2129 length = 4; \
2130 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2131 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2132 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2133 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2134 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
2135 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2136
2137 #define EXTRACT_IFMT_CMOVGF_VARS \
2138 UINT f_pack; \
2139 UINT f_FRk; \
2140 UINT f_op; \
2141 UINT f_rs_null; \
2142 UINT f_CCi; \
2143 UINT f_cond; \
2144 UINT f_ope4; \
2145 UINT f_GRj; \
2146 unsigned int length;
2147 #define EXTRACT_IFMT_CMOVGF_CODE \
2148 length = 4; \
2149 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2150 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2151 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2152 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2153 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
2154 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
2155 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2156 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2157
2158 #define EXTRACT_IFMT_MOVGS_VARS \
2159 UINT f_pack; \
2160 UINT f_op; \
2161 UINT f_spr_h; \
2162 UINT f_spr_l; \
2163 UINT f_spr; \
2164 UINT f_ope1; \
2165 UINT f_GRj; \
2166 unsigned int length;
2167 #define EXTRACT_IFMT_MOVGS_CODE \
2168 length = 4; \
2169 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2170 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2171 f_spr_h = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2172 f_spr_l = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2173 {\
2174 f_spr = ((((f_spr_h) << (6))) | (f_spr_l));\
2175 }\
2176 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
2177 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2178
2179 #define EXTRACT_IFMT_BRA_VARS \
2180 UINT f_pack; \
2181 UINT f_int_cc; \
2182 UINT f_ICCi_2_null; \
2183 UINT f_op; \
2184 UINT f_hint; \
2185 SI f_label16; \
2186 unsigned int length;
2187 #define EXTRACT_IFMT_BRA_CODE \
2188 length = 4; \
2189 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2190 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2191 f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2192 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2193 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2194 f_label16 = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (pc)); \
2195
2196 #define EXTRACT_IFMT_BNO_VARS \
2197 UINT f_pack; \
2198 UINT f_int_cc; \
2199 UINT f_ICCi_2_null; \
2200 UINT f_op; \
2201 UINT f_hint; \
2202 UINT f_label16_null; \
2203 unsigned int length;
2204 #define EXTRACT_IFMT_BNO_CODE \
2205 length = 4; \
2206 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2207 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2208 f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2209 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2210 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2211 f_label16_null = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
2212
2213 #define EXTRACT_IFMT_BEQ_VARS \
2214 UINT f_pack; \
2215 UINT f_int_cc; \
2216 UINT f_ICCi_2; \
2217 UINT f_op; \
2218 UINT f_hint; \
2219 SI f_label16; \
2220 unsigned int length;
2221 #define EXTRACT_IFMT_BEQ_CODE \
2222 length = 4; \
2223 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2224 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2225 f_ICCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2226 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2227 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2228 f_label16 = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (pc)); \
2229
2230 #define EXTRACT_IFMT_FBRA_VARS \
2231 UINT f_pack; \
2232 UINT f_flt_cc; \
2233 UINT f_FCCi_2_null; \
2234 UINT f_op; \
2235 UINT f_hint; \
2236 SI f_label16; \
2237 unsigned int length;
2238 #define EXTRACT_IFMT_FBRA_CODE \
2239 length = 4; \
2240 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2241 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2242 f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2243 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2244 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2245 f_label16 = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (pc)); \
2246
2247 #define EXTRACT_IFMT_FBNO_VARS \
2248 UINT f_pack; \
2249 UINT f_flt_cc; \
2250 UINT f_FCCi_2_null; \
2251 UINT f_op; \
2252 UINT f_hint; \
2253 UINT f_label16_null; \
2254 unsigned int length;
2255 #define EXTRACT_IFMT_FBNO_CODE \
2256 length = 4; \
2257 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2258 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2259 f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2260 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2261 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2262 f_label16_null = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
2263
2264 #define EXTRACT_IFMT_FBNE_VARS \
2265 UINT f_pack; \
2266 UINT f_flt_cc; \
2267 UINT f_FCCi_2; \
2268 UINT f_op; \
2269 UINT f_hint; \
2270 SI f_label16; \
2271 unsigned int length;
2272 #define EXTRACT_IFMT_FBNE_CODE \
2273 length = 4; \
2274 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2275 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2276 f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2277 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2278 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2279 f_label16 = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (pc)); \
2280
2281 #define EXTRACT_IFMT_BCTRLR_VARS \
2282 UINT f_pack; \
2283 UINT f_cond_null; \
2284 UINT f_ICCi_2_null; \
2285 UINT f_op; \
2286 UINT f_hint; \
2287 UINT f_ope3; \
2288 UINT f_ccond; \
2289 UINT f_s12_null; \
2290 unsigned int length;
2291 #define EXTRACT_IFMT_BCTRLR_CODE \
2292 length = 4; \
2293 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2294 f_cond_null = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2295 f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2296 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2297 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2298 f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2299 f_ccond = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2300 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2301
2302 #define EXTRACT_IFMT_BRALR_VARS \
2303 UINT f_pack; \
2304 UINT f_int_cc; \
2305 UINT f_ICCi_2_null; \
2306 UINT f_op; \
2307 UINT f_hint; \
2308 UINT f_ope3; \
2309 UINT f_ccond_null; \
2310 UINT f_s12_null; \
2311 unsigned int length;
2312 #define EXTRACT_IFMT_BRALR_CODE \
2313 length = 4; \
2314 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2315 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2316 f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2317 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2318 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2319 f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2320 f_ccond_null = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2321 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2322
2323 #define EXTRACT_IFMT_BNOLR_VARS \
2324 UINT f_pack; \
2325 UINT f_int_cc; \
2326 UINT f_ICCi_2_null; \
2327 UINT f_op; \
2328 UINT f_hint; \
2329 UINT f_ope3; \
2330 UINT f_ccond_null; \
2331 UINT f_s12_null; \
2332 unsigned int length;
2333 #define EXTRACT_IFMT_BNOLR_CODE \
2334 length = 4; \
2335 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2336 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2337 f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2338 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2339 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2340 f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2341 f_ccond_null = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2342 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2343
2344 #define EXTRACT_IFMT_BEQLR_VARS \
2345 UINT f_pack; \
2346 UINT f_int_cc; \
2347 UINT f_ICCi_2; \
2348 UINT f_op; \
2349 UINT f_hint; \
2350 UINT f_ope3; \
2351 UINT f_ccond_null; \
2352 UINT f_s12_null; \
2353 unsigned int length;
2354 #define EXTRACT_IFMT_BEQLR_CODE \
2355 length = 4; \
2356 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2357 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2358 f_ICCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2359 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2360 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2361 f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2362 f_ccond_null = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2363 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2364
2365 #define EXTRACT_IFMT_FBRALR_VARS \
2366 UINT f_pack; \
2367 UINT f_flt_cc; \
2368 UINT f_FCCi_2_null; \
2369 UINT f_op; \
2370 UINT f_hint; \
2371 UINT f_ope3; \
2372 UINT f_ccond_null; \
2373 UINT f_s12_null; \
2374 unsigned int length;
2375 #define EXTRACT_IFMT_FBRALR_CODE \
2376 length = 4; \
2377 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2378 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2379 f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2380 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2381 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2382 f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2383 f_ccond_null = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2384 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2385
2386 #define EXTRACT_IFMT_FBNOLR_VARS \
2387 UINT f_pack; \
2388 UINT f_flt_cc; \
2389 UINT f_FCCi_2_null; \
2390 UINT f_op; \
2391 UINT f_hint; \
2392 UINT f_ope3; \
2393 UINT f_ccond_null; \
2394 UINT f_s12_null; \
2395 unsigned int length;
2396 #define EXTRACT_IFMT_FBNOLR_CODE \
2397 length = 4; \
2398 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2399 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2400 f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2401 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2402 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2403 f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2404 f_ccond_null = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2405 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2406
2407 #define EXTRACT_IFMT_FBEQLR_VARS \
2408 UINT f_pack; \
2409 UINT f_flt_cc; \
2410 UINT f_FCCi_2; \
2411 UINT f_op; \
2412 UINT f_hint; \
2413 UINT f_ope3; \
2414 UINT f_ccond_null; \
2415 UINT f_s12_null; \
2416 unsigned int length;
2417 #define EXTRACT_IFMT_FBEQLR_CODE \
2418 length = 4; \
2419 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2420 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2421 f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2422 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2423 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2424 f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2425 f_ccond_null = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2426 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2427
2428 #define EXTRACT_IFMT_BCRALR_VARS \
2429 UINT f_pack; \
2430 UINT f_int_cc; \
2431 UINT f_ICCi_2_null; \
2432 UINT f_op; \
2433 UINT f_hint; \
2434 UINT f_ope3; \
2435 UINT f_ccond; \
2436 UINT f_s12_null; \
2437 unsigned int length;
2438 #define EXTRACT_IFMT_BCRALR_CODE \
2439 length = 4; \
2440 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2441 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2442 f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2443 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2444 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2445 f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2446 f_ccond = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2447 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2448
2449 #define EXTRACT_IFMT_BCEQLR_VARS \
2450 UINT f_pack; \
2451 UINT f_int_cc; \
2452 UINT f_ICCi_2; \
2453 UINT f_op; \
2454 UINT f_hint; \
2455 UINT f_ope3; \
2456 UINT f_ccond; \
2457 UINT f_s12_null; \
2458 unsigned int length;
2459 #define EXTRACT_IFMT_BCEQLR_CODE \
2460 length = 4; \
2461 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2462 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2463 f_ICCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2464 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2465 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2466 f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2467 f_ccond = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2468 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2469
2470 #define EXTRACT_IFMT_FCBRALR_VARS \
2471 UINT f_pack; \
2472 UINT f_flt_cc; \
2473 UINT f_FCCi_2_null; \
2474 UINT f_op; \
2475 UINT f_hint; \
2476 UINT f_ope3; \
2477 UINT f_ccond; \
2478 UINT f_s12_null; \
2479 unsigned int length;
2480 #define EXTRACT_IFMT_FCBRALR_CODE \
2481 length = 4; \
2482 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2483 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2484 f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2485 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2486 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2487 f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2488 f_ccond = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2489 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2490
2491 #define EXTRACT_IFMT_FCBEQLR_VARS \
2492 UINT f_pack; \
2493 UINT f_flt_cc; \
2494 UINT f_FCCi_2; \
2495 UINT f_op; \
2496 UINT f_hint; \
2497 UINT f_ope3; \
2498 UINT f_ccond; \
2499 UINT f_s12_null; \
2500 unsigned int length;
2501 #define EXTRACT_IFMT_FCBEQLR_CODE \
2502 length = 4; \
2503 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2504 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2505 f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2506 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2507 f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2508 f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2509 f_ccond = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2510 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2511
2512 #define EXTRACT_IFMT_JMPL_VARS \
2513 UINT f_pack; \
2514 UINT f_misc_null_1; \
2515 UINT f_LI_off; \
2516 UINT f_op; \
2517 UINT f_GRi; \
2518 UINT f_misc_null_2; \
2519 UINT f_GRj; \
2520 unsigned int length;
2521 #define EXTRACT_IFMT_JMPL_CODE \
2522 length = 4; \
2523 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2524 f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
2525 f_LI_off = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
2526 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2527 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2528 f_misc_null_2 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
2529 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2530
2531 #define EXTRACT_IFMT_CALLL_VARS \
2532 UINT f_pack; \
2533 UINT f_misc_null_1; \
2534 UINT f_LI_on; \
2535 UINT f_op; \
2536 UINT f_GRi; \
2537 UINT f_misc_null_2; \
2538 UINT f_GRj; \
2539 unsigned int length;
2540 #define EXTRACT_IFMT_CALLL_CODE \
2541 length = 4; \
2542 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2543 f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
2544 f_LI_on = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
2545 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2546 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2547 f_misc_null_2 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
2548 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2549
2550 #define EXTRACT_IFMT_JMPIL_VARS \
2551 UINT f_pack; \
2552 UINT f_misc_null_1; \
2553 UINT f_LI_off; \
2554 UINT f_op; \
2555 UINT f_GRi; \
2556 INT f_d12; \
2557 unsigned int length;
2558 #define EXTRACT_IFMT_JMPIL_CODE \
2559 length = 4; \
2560 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2561 f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
2562 f_LI_off = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
2563 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2564 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2565 f_d12 = EXTRACT_LSB0_SINT (insn, 32, 11, 12); \
2566
2567 #define EXTRACT_IFMT_CALLIL_VARS \
2568 UINT f_pack; \
2569 UINT f_misc_null_1; \
2570 UINT f_LI_on; \
2571 UINT f_op; \
2572 UINT f_GRi; \
2573 INT f_d12; \
2574 unsigned int length;
2575 #define EXTRACT_IFMT_CALLIL_CODE \
2576 length = 4; \
2577 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2578 f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
2579 f_LI_on = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
2580 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2581 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2582 f_d12 = EXTRACT_LSB0_SINT (insn, 32, 11, 12); \
2583
2584 #define EXTRACT_IFMT_CALL_VARS \
2585 UINT f_pack; \
2586 UINT f_op; \
2587 INT f_labelH6; \
2588 UINT f_labelL18; \
2589 INT f_label24; \
2590 unsigned int length;
2591 #define EXTRACT_IFMT_CALL_CODE \
2592 length = 4; \
2593 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2594 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2595 f_labelH6 = EXTRACT_LSB0_SINT (insn, 32, 30, 6); \
2596 f_labelL18 = EXTRACT_LSB0_UINT (insn, 32, 17, 18); \
2597 {\
2598 f_label24 = ((((((((f_labelH6) << (18))) | (f_labelL18))) << (2))) + (pc));\
2599 }\
2600
2601 #define EXTRACT_IFMT_RETT_VARS \
2602 UINT f_pack; \
2603 UINT f_misc_null_1; \
2604 UINT f_debug; \
2605 UINT f_op; \
2606 UINT f_rs_null; \
2607 UINT f_s12_null; \
2608 unsigned int length;
2609 #define EXTRACT_IFMT_RETT_CODE \
2610 length = 4; \
2611 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2612 f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
2613 f_debug = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
2614 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2615 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2616 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2617
2618 #define EXTRACT_IFMT_REI_VARS \
2619 UINT f_pack; \
2620 UINT f_rd_null; \
2621 UINT f_op; \
2622 UINT f_eir; \
2623 UINT f_s12_null; \
2624 unsigned int length;
2625 #define EXTRACT_IFMT_REI_CODE \
2626 length = 4; \
2627 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2628 f_rd_null = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2629 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2630 f_eir = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2631 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2632
2633 #define EXTRACT_IFMT_TRA_VARS \
2634 UINT f_pack; \
2635 UINT f_int_cc; \
2636 UINT f_ICCi_2_null; \
2637 UINT f_op; \
2638 UINT f_GRi; \
2639 UINT f_misc_null_3; \
2640 UINT f_ope4; \
2641 UINT f_GRj; \
2642 unsigned int length;
2643 #define EXTRACT_IFMT_TRA_CODE \
2644 length = 4; \
2645 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2646 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2647 f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2648 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2649 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2650 f_misc_null_3 = EXTRACT_LSB0_UINT (insn, 32, 11, 4); \
2651 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2652 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2653
2654 #define EXTRACT_IFMT_TNO_VARS \
2655 UINT f_pack; \
2656 UINT f_int_cc; \
2657 UINT f_ICCi_2_null; \
2658 UINT f_op; \
2659 UINT f_GRi_null; \
2660 UINT f_misc_null_3; \
2661 UINT f_ope4; \
2662 UINT f_GRj_null; \
2663 unsigned int length;
2664 #define EXTRACT_IFMT_TNO_CODE \
2665 length = 4; \
2666 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2667 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2668 f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2669 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2670 f_GRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2671 f_misc_null_3 = EXTRACT_LSB0_UINT (insn, 32, 11, 4); \
2672 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2673 f_GRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2674
2675 #define EXTRACT_IFMT_TEQ_VARS \
2676 UINT f_pack; \
2677 UINT f_int_cc; \
2678 UINT f_ICCi_2; \
2679 UINT f_op; \
2680 UINT f_GRi; \
2681 UINT f_misc_null_3; \
2682 UINT f_ope4; \
2683 UINT f_GRj; \
2684 unsigned int length;
2685 #define EXTRACT_IFMT_TEQ_CODE \
2686 length = 4; \
2687 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2688 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2689 f_ICCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2690 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2691 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2692 f_misc_null_3 = EXTRACT_LSB0_UINT (insn, 32, 11, 4); \
2693 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2694 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2695
2696 #define EXTRACT_IFMT_FTRA_VARS \
2697 UINT f_pack; \
2698 UINT f_flt_cc; \
2699 UINT f_FCCi_2_null; \
2700 UINT f_op; \
2701 UINT f_GRi; \
2702 UINT f_misc_null_3; \
2703 UINT f_ope4; \
2704 UINT f_GRj; \
2705 unsigned int length;
2706 #define EXTRACT_IFMT_FTRA_CODE \
2707 length = 4; \
2708 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2709 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2710 f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2711 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2712 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2713 f_misc_null_3 = EXTRACT_LSB0_UINT (insn, 32, 11, 4); \
2714 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2715 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2716
2717 #define EXTRACT_IFMT_FTNO_VARS \
2718 UINT f_pack; \
2719 UINT f_flt_cc; \
2720 UINT f_FCCi_2_null; \
2721 UINT f_op; \
2722 UINT f_GRi_null; \
2723 UINT f_misc_null_3; \
2724 UINT f_ope4; \
2725 UINT f_GRj_null; \
2726 unsigned int length;
2727 #define EXTRACT_IFMT_FTNO_CODE \
2728 length = 4; \
2729 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2730 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2731 f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2732 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2733 f_GRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2734 f_misc_null_3 = EXTRACT_LSB0_UINT (insn, 32, 11, 4); \
2735 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2736 f_GRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2737
2738 #define EXTRACT_IFMT_FTNE_VARS \
2739 UINT f_pack; \
2740 UINT f_flt_cc; \
2741 UINT f_FCCi_2; \
2742 UINT f_op; \
2743 UINT f_GRi; \
2744 UINT f_misc_null_3; \
2745 UINT f_ope4; \
2746 UINT f_GRj; \
2747 unsigned int length;
2748 #define EXTRACT_IFMT_FTNE_CODE \
2749 length = 4; \
2750 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2751 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2752 f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2753 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2754 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2755 f_misc_null_3 = EXTRACT_LSB0_UINT (insn, 32, 11, 4); \
2756 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2757 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2758
2759 #define EXTRACT_IFMT_TIRA_VARS \
2760 UINT f_pack; \
2761 UINT f_int_cc; \
2762 UINT f_ICCi_2_null; \
2763 UINT f_op; \
2764 UINT f_GRi; \
2765 INT f_d12; \
2766 unsigned int length;
2767 #define EXTRACT_IFMT_TIRA_CODE \
2768 length = 4; \
2769 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2770 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2771 f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2772 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2773 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2774 f_d12 = EXTRACT_LSB0_SINT (insn, 32, 11, 12); \
2775
2776 #define EXTRACT_IFMT_TINO_VARS \
2777 UINT f_pack; \
2778 UINT f_int_cc; \
2779 UINT f_ICCi_2_null; \
2780 UINT f_op; \
2781 UINT f_GRi_null; \
2782 UINT f_s12_null; \
2783 unsigned int length;
2784 #define EXTRACT_IFMT_TINO_CODE \
2785 length = 4; \
2786 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2787 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2788 f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2789 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2790 f_GRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2791 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2792
2793 #define EXTRACT_IFMT_TIEQ_VARS \
2794 UINT f_pack; \
2795 UINT f_int_cc; \
2796 UINT f_ICCi_2; \
2797 UINT f_op; \
2798 UINT f_GRi; \
2799 INT f_d12; \
2800 unsigned int length;
2801 #define EXTRACT_IFMT_TIEQ_CODE \
2802 length = 4; \
2803 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2804 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2805 f_ICCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2806 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2807 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2808 f_d12 = EXTRACT_LSB0_SINT (insn, 32, 11, 12); \
2809
2810 #define EXTRACT_IFMT_FTIRA_VARS \
2811 UINT f_pack; \
2812 UINT f_flt_cc; \
2813 UINT f_ICCi_2_null; \
2814 UINT f_op; \
2815 UINT f_GRi; \
2816 INT f_d12; \
2817 unsigned int length;
2818 #define EXTRACT_IFMT_FTIRA_CODE \
2819 length = 4; \
2820 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2821 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2822 f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2823 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2824 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2825 f_d12 = EXTRACT_LSB0_SINT (insn, 32, 11, 12); \
2826
2827 #define EXTRACT_IFMT_FTINO_VARS \
2828 UINT f_pack; \
2829 UINT f_flt_cc; \
2830 UINT f_FCCi_2_null; \
2831 UINT f_op; \
2832 UINT f_GRi_null; \
2833 UINT f_s12_null; \
2834 unsigned int length;
2835 #define EXTRACT_IFMT_FTINO_CODE \
2836 length = 4; \
2837 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2838 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2839 f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2840 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2841 f_GRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2842 f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2843
2844 #define EXTRACT_IFMT_FTINE_VARS \
2845 UINT f_pack; \
2846 UINT f_flt_cc; \
2847 UINT f_FCCi_2; \
2848 UINT f_op; \
2849 UINT f_GRi; \
2850 INT f_d12; \
2851 unsigned int length;
2852 #define EXTRACT_IFMT_FTINE_CODE \
2853 length = 4; \
2854 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2855 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2856 f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2857 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2858 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2859 f_d12 = EXTRACT_LSB0_SINT (insn, 32, 11, 12); \
2860
2861 #define EXTRACT_IFMT_BREAK_VARS \
2862 UINT f_pack; \
2863 UINT f_rd_null; \
2864 UINT f_op; \
2865 UINT f_rs_null; \
2866 UINT f_misc_null_3; \
2867 UINT f_ope4; \
2868 UINT f_GRj_null; \
2869 unsigned int length;
2870 #define EXTRACT_IFMT_BREAK_CODE \
2871 length = 4; \
2872 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2873 f_rd_null = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2874 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2875 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2876 f_misc_null_3 = EXTRACT_LSB0_UINT (insn, 32, 11, 4); \
2877 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2878 f_GRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2879
2880 #define EXTRACT_IFMT_ANDCR_VARS \
2881 UINT f_pack; \
2882 UINT f_misc_null_6; \
2883 UINT f_CRk; \
2884 UINT f_op; \
2885 UINT f_misc_null_7; \
2886 UINT f_CRi; \
2887 UINT f_ope1; \
2888 UINT f_misc_null_8; \
2889 UINT f_CRj; \
2890 unsigned int length;
2891 #define EXTRACT_IFMT_ANDCR_CODE \
2892 length = 4; \
2893 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2894 f_misc_null_6 = EXTRACT_LSB0_UINT (insn, 32, 30, 3); \
2895 f_CRk = EXTRACT_LSB0_UINT (insn, 32, 27, 3); \
2896 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2897 f_misc_null_7 = EXTRACT_LSB0_UINT (insn, 32, 17, 3); \
2898 f_CRi = EXTRACT_LSB0_UINT (insn, 32, 14, 3); \
2899 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
2900 f_misc_null_8 = EXTRACT_LSB0_UINT (insn, 32, 5, 3); \
2901 f_CRj = EXTRACT_LSB0_UINT (insn, 32, 2, 3); \
2902
2903 #define EXTRACT_IFMT_NOTCR_VARS \
2904 UINT f_pack; \
2905 UINT f_misc_null_6; \
2906 UINT f_CRk; \
2907 UINT f_op; \
2908 UINT f_rs_null; \
2909 UINT f_ope1; \
2910 UINT f_misc_null_8; \
2911 UINT f_CRj; \
2912 unsigned int length;
2913 #define EXTRACT_IFMT_NOTCR_CODE \
2914 length = 4; \
2915 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2916 f_misc_null_6 = EXTRACT_LSB0_UINT (insn, 32, 30, 3); \
2917 f_CRk = EXTRACT_LSB0_UINT (insn, 32, 27, 3); \
2918 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2919 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2920 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
2921 f_misc_null_8 = EXTRACT_LSB0_UINT (insn, 32, 5, 3); \
2922 f_CRj = EXTRACT_LSB0_UINT (insn, 32, 2, 3); \
2923
2924 #define EXTRACT_IFMT_CKRA_VARS \
2925 UINT f_pack; \
2926 UINT f_int_cc; \
2927 SI f_CRj_int; \
2928 UINT f_op; \
2929 UINT f_misc_null_5; \
2930 UINT f_ICCi_3_null; \
2931 unsigned int length;
2932 #define EXTRACT_IFMT_CKRA_CODE \
2933 length = 4; \
2934 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2935 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2936 f_CRj_int = ((EXTRACT_LSB0_UINT (insn, 32, 26, 2)) + (4)); \
2937 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2938 f_misc_null_5 = EXTRACT_LSB0_UINT (insn, 32, 17, 16); \
2939 f_ICCi_3_null = EXTRACT_LSB0_UINT (insn, 32, 1, 2); \
2940
2941 #define EXTRACT_IFMT_CKEQ_VARS \
2942 UINT f_pack; \
2943 UINT f_int_cc; \
2944 SI f_CRj_int; \
2945 UINT f_op; \
2946 UINT f_misc_null_5; \
2947 UINT f_ICCi_3; \
2948 unsigned int length;
2949 #define EXTRACT_IFMT_CKEQ_CODE \
2950 length = 4; \
2951 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2952 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2953 f_CRj_int = ((EXTRACT_LSB0_UINT (insn, 32, 26, 2)) + (4)); \
2954 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2955 f_misc_null_5 = EXTRACT_LSB0_UINT (insn, 32, 17, 16); \
2956 f_ICCi_3 = EXTRACT_LSB0_UINT (insn, 32, 1, 2); \
2957
2958 #define EXTRACT_IFMT_FCKRA_VARS \
2959 UINT f_pack; \
2960 UINT f_flt_cc; \
2961 UINT f_CRj_float; \
2962 UINT f_op; \
2963 UINT f_misc_null_5; \
2964 UINT f_FCCi_3; \
2965 unsigned int length;
2966 #define EXTRACT_IFMT_FCKRA_CODE \
2967 length = 4; \
2968 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2969 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2970 f_CRj_float = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2971 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2972 f_misc_null_5 = EXTRACT_LSB0_UINT (insn, 32, 17, 16); \
2973 f_FCCi_3 = EXTRACT_LSB0_UINT (insn, 32, 1, 2); \
2974
2975 #define EXTRACT_IFMT_CCKRA_VARS \
2976 UINT f_pack; \
2977 UINT f_int_cc; \
2978 SI f_CRj_int; \
2979 UINT f_op; \
2980 UINT f_rs_null; \
2981 UINT f_CCi; \
2982 UINT f_cond; \
2983 UINT f_ope4; \
2984 UINT f_misc_null_9; \
2985 UINT f_ICCi_3_null; \
2986 unsigned int length;
2987 #define EXTRACT_IFMT_CCKRA_CODE \
2988 length = 4; \
2989 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2990 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2991 f_CRj_int = ((EXTRACT_LSB0_UINT (insn, 32, 26, 2)) + (4)); \
2992 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2993 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2994 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
2995 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
2996 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2997 f_misc_null_9 = EXTRACT_LSB0_UINT (insn, 32, 5, 4); \
2998 f_ICCi_3_null = EXTRACT_LSB0_UINT (insn, 32, 1, 2); \
2999
3000 #define EXTRACT_IFMT_CCKEQ_VARS \
3001 UINT f_pack; \
3002 UINT f_int_cc; \
3003 SI f_CRj_int; \
3004 UINT f_op; \
3005 UINT f_rs_null; \
3006 UINT f_CCi; \
3007 UINT f_cond; \
3008 UINT f_ope4; \
3009 UINT f_misc_null_9; \
3010 UINT f_ICCi_3; \
3011 unsigned int length;
3012 #define EXTRACT_IFMT_CCKEQ_CODE \
3013 length = 4; \
3014 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3015 f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3016 f_CRj_int = ((EXTRACT_LSB0_UINT (insn, 32, 26, 2)) + (4)); \
3017 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3018 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3019 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3020 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3021 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3022 f_misc_null_9 = EXTRACT_LSB0_UINT (insn, 32, 5, 4); \
3023 f_ICCi_3 = EXTRACT_LSB0_UINT (insn, 32, 1, 2); \
3024
3025 #define EXTRACT_IFMT_CFCKRA_VARS \
3026 UINT f_pack; \
3027 UINT f_flt_cc; \
3028 UINT f_CRj_float; \
3029 UINT f_op; \
3030 UINT f_rs_null; \
3031 UINT f_CCi; \
3032 UINT f_cond; \
3033 UINT f_ope4; \
3034 UINT f_misc_null_9; \
3035 UINT f_FCCi_3_null; \
3036 unsigned int length;
3037 #define EXTRACT_IFMT_CFCKRA_CODE \
3038 length = 4; \
3039 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3040 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3041 f_CRj_float = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
3042 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3043 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3044 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3045 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3046 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3047 f_misc_null_9 = EXTRACT_LSB0_UINT (insn, 32, 5, 4); \
3048 f_FCCi_3_null = EXTRACT_LSB0_UINT (insn, 32, 1, 2); \
3049
3050 #define EXTRACT_IFMT_CFCKNE_VARS \
3051 UINT f_pack; \
3052 UINT f_flt_cc; \
3053 UINT f_CRj_float; \
3054 UINT f_op; \
3055 UINT f_rs_null; \
3056 UINT f_CCi; \
3057 UINT f_cond; \
3058 UINT f_ope4; \
3059 UINT f_misc_null_9; \
3060 UINT f_FCCi_3; \
3061 unsigned int length;
3062 #define EXTRACT_IFMT_CFCKNE_CODE \
3063 length = 4; \
3064 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3065 f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3066 f_CRj_float = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
3067 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3068 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3069 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3070 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3071 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3072 f_misc_null_9 = EXTRACT_LSB0_UINT (insn, 32, 5, 4); \
3073 f_FCCi_3 = EXTRACT_LSB0_UINT (insn, 32, 1, 2); \
3074
3075 #define EXTRACT_IFMT_CJMPL_VARS \
3076 UINT f_pack; \
3077 UINT f_misc_null_1; \
3078 UINT f_LI_off; \
3079 UINT f_op; \
3080 UINT f_GRi; \
3081 UINT f_CCi; \
3082 UINT f_cond; \
3083 UINT f_ope4; \
3084 UINT f_GRj; \
3085 unsigned int length;
3086 #define EXTRACT_IFMT_CJMPL_CODE \
3087 length = 4; \
3088 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3089 f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
3090 f_LI_off = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
3091 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3092 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3093 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3094 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3095 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3096 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3097
3098 #define EXTRACT_IFMT_CCALLL_VARS \
3099 UINT f_pack; \
3100 UINT f_misc_null_1; \
3101 UINT f_LI_on; \
3102 UINT f_op; \
3103 UINT f_GRi; \
3104 UINT f_CCi; \
3105 UINT f_cond; \
3106 UINT f_ope4; \
3107 UINT f_GRj; \
3108 unsigned int length;
3109 #define EXTRACT_IFMT_CCALLL_CODE \
3110 length = 4; \
3111 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3112 f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
3113 f_LI_on = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
3114 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3115 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3116 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3117 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3118 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3119 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3120
3121 #define EXTRACT_IFMT_ICEI_VARS \
3122 UINT f_pack; \
3123 UINT f_misc_null_1; \
3124 UINT f_ae; \
3125 UINT f_op; \
3126 UINT f_GRi; \
3127 UINT f_ope1; \
3128 UINT f_GRj; \
3129 unsigned int length;
3130 #define EXTRACT_IFMT_ICEI_CODE \
3131 length = 4; \
3132 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3133 f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
3134 f_ae = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
3135 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3136 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3137 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3138 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3139
3140 #define EXTRACT_IFMT_ICPL_VARS \
3141 UINT f_pack; \
3142 UINT f_misc_null_1; \
3143 UINT f_lock; \
3144 UINT f_op; \
3145 UINT f_GRi; \
3146 UINT f_ope1; \
3147 UINT f_GRj; \
3148 unsigned int length;
3149 #define EXTRACT_IFMT_ICPL_CODE \
3150 length = 4; \
3151 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3152 f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
3153 f_lock = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
3154 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3155 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3156 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3157 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3158
3159 #define EXTRACT_IFMT_ICUL_VARS \
3160 UINT f_pack; \
3161 UINT f_rd_null; \
3162 UINT f_op; \
3163 UINT f_GRi; \
3164 UINT f_ope1; \
3165 UINT f_GRj_null; \
3166 unsigned int length;
3167 #define EXTRACT_IFMT_ICUL_CODE \
3168 length = 4; \
3169 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3170 f_rd_null = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3171 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3172 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3173 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3174 f_GRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3175
3176 #define EXTRACT_IFMT_BAR_VARS \
3177 UINT f_pack; \
3178 UINT f_rd_null; \
3179 UINT f_op; \
3180 UINT f_rs_null; \
3181 UINT f_ope1; \
3182 UINT f_GRj_null; \
3183 unsigned int length;
3184 #define EXTRACT_IFMT_BAR_CODE \
3185 length = 4; \
3186 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3187 f_rd_null = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3188 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3189 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3190 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3191 f_GRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3192
3193 #define EXTRACT_IFMT_LRAI_VARS \
3194 UINT f_pack; \
3195 UINT f_GRk; \
3196 UINT f_op; \
3197 UINT f_GRi; \
3198 UINT f_ope1; \
3199 UINT f_LRAE; \
3200 UINT f_LRAD; \
3201 UINT f_LRAS; \
3202 UINT f_LRA_null; \
3203 unsigned int length;
3204 #define EXTRACT_IFMT_LRAI_CODE \
3205 length = 4; \
3206 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3207 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3208 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3209 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3210 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3211 f_LRAE = EXTRACT_LSB0_UINT (insn, 32, 5, 1); \
3212 f_LRAD = EXTRACT_LSB0_UINT (insn, 32, 4, 1); \
3213 f_LRAS = EXTRACT_LSB0_UINT (insn, 32, 3, 1); \
3214 f_LRA_null = EXTRACT_LSB0_UINT (insn, 32, 2, 3); \
3215
3216 #define EXTRACT_IFMT_TLBPR_VARS \
3217 UINT f_pack; \
3218 UINT f_TLBPR_null; \
3219 UINT f_TLBPRopx; \
3220 UINT f_TLBPRL; \
3221 UINT f_op; \
3222 UINT f_GRi; \
3223 UINT f_ope1; \
3224 UINT f_GRj; \
3225 unsigned int length;
3226 #define EXTRACT_IFMT_TLBPR_CODE \
3227 length = 4; \
3228 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3229 f_TLBPR_null = EXTRACT_LSB0_UINT (insn, 32, 30, 2); \
3230 f_TLBPRopx = EXTRACT_LSB0_UINT (insn, 32, 28, 3); \
3231 f_TLBPRL = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
3232 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3233 f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3234 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3235 f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3236
3237 #define EXTRACT_IFMT_COP1_VARS \
3238 UINT f_pack; \
3239 UINT f_CPRk; \
3240 UINT f_op; \
3241 UINT f_CPRi; \
3242 INT f_s6_1; \
3243 UINT f_CPRj; \
3244 unsigned int length;
3245 #define EXTRACT_IFMT_COP1_CODE \
3246 length = 4; \
3247 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3248 f_CPRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3249 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3250 f_CPRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3251 f_s6_1 = EXTRACT_LSB0_SINT (insn, 32, 11, 6); \
3252 f_CPRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3253
3254 #define EXTRACT_IFMT_CLRGR_VARS \
3255 UINT f_pack; \
3256 UINT f_GRk; \
3257 UINT f_op; \
3258 UINT f_rs_null; \
3259 UINT f_ope1; \
3260 UINT f_GRj_null; \
3261 unsigned int length;
3262 #define EXTRACT_IFMT_CLRGR_CODE \
3263 length = 4; \
3264 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3265 f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3266 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3267 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3268 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3269 f_GRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3270
3271 #define EXTRACT_IFMT_CLRFR_VARS \
3272 UINT f_pack; \
3273 UINT f_FRk; \
3274 UINT f_op; \
3275 UINT f_rs_null; \
3276 UINT f_ope1; \
3277 UINT f_GRj_null; \
3278 unsigned int length;
3279 #define EXTRACT_IFMT_CLRFR_CODE \
3280 length = 4; \
3281 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3282 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3283 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3284 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3285 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3286 f_GRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3287
3288 #define EXTRACT_IFMT_FITOS_VARS \
3289 UINT f_pack; \
3290 UINT f_FRk; \
3291 UINT f_op; \
3292 UINT f_rs_null; \
3293 UINT f_ope1; \
3294 UINT f_FRj; \
3295 unsigned int length;
3296 #define EXTRACT_IFMT_FITOS_CODE \
3297 length = 4; \
3298 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3299 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3300 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3301 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3302 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3303 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3304
3305 #define EXTRACT_IFMT_FSTOI_VARS \
3306 UINT f_pack; \
3307 UINT f_FRk; \
3308 UINT f_op; \
3309 UINT f_rs_null; \
3310 UINT f_ope1; \
3311 UINT f_FRj; \
3312 unsigned int length;
3313 #define EXTRACT_IFMT_FSTOI_CODE \
3314 length = 4; \
3315 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3316 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3317 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3318 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3319 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3320 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3321
3322 #define EXTRACT_IFMT_FITOD_VARS \
3323 UINT f_pack; \
3324 UINT f_FRk; \
3325 UINT f_op; \
3326 UINT f_rs_null; \
3327 UINT f_ope1; \
3328 UINT f_FRj; \
3329 unsigned int length;
3330 #define EXTRACT_IFMT_FITOD_CODE \
3331 length = 4; \
3332 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3333 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3334 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3335 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3336 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3337 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3338
3339 #define EXTRACT_IFMT_FDTOI_VARS \
3340 UINT f_pack; \
3341 UINT f_FRk; \
3342 UINT f_op; \
3343 UINT f_rs_null; \
3344 UINT f_ope1; \
3345 UINT f_FRj; \
3346 unsigned int length;
3347 #define EXTRACT_IFMT_FDTOI_CODE \
3348 length = 4; \
3349 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3350 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3351 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3352 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3353 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3354 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3355
3356 #define EXTRACT_IFMT_CFITOS_VARS \
3357 UINT f_pack; \
3358 UINT f_FRk; \
3359 UINT f_op; \
3360 UINT f_rs_null; \
3361 UINT f_CCi; \
3362 UINT f_cond; \
3363 UINT f_ope4; \
3364 UINT f_FRj; \
3365 unsigned int length;
3366 #define EXTRACT_IFMT_CFITOS_CODE \
3367 length = 4; \
3368 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3369 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3370 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3371 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3372 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3373 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3374 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3375 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3376
3377 #define EXTRACT_IFMT_CFSTOI_VARS \
3378 UINT f_pack; \
3379 UINT f_FRk; \
3380 UINT f_op; \
3381 UINT f_rs_null; \
3382 UINT f_CCi; \
3383 UINT f_cond; \
3384 UINT f_ope4; \
3385 UINT f_FRj; \
3386 unsigned int length;
3387 #define EXTRACT_IFMT_CFSTOI_CODE \
3388 length = 4; \
3389 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3390 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3391 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3392 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3393 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3394 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3395 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3396 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3397
3398 #define EXTRACT_IFMT_FMOVS_VARS \
3399 UINT f_pack; \
3400 UINT f_FRk; \
3401 UINT f_op; \
3402 UINT f_rs_null; \
3403 UINT f_ope1; \
3404 UINT f_FRj; \
3405 unsigned int length;
3406 #define EXTRACT_IFMT_FMOVS_CODE \
3407 length = 4; \
3408 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3409 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3410 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3411 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3412 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3413 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3414
3415 #define EXTRACT_IFMT_FMOVD_VARS \
3416 UINT f_pack; \
3417 UINT f_FRk; \
3418 UINT f_op; \
3419 UINT f_rs_null; \
3420 UINT f_ope1; \
3421 UINT f_FRj; \
3422 unsigned int length;
3423 #define EXTRACT_IFMT_FMOVD_CODE \
3424 length = 4; \
3425 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3426 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3427 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3428 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3429 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3430 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3431
3432 #define EXTRACT_IFMT_CFMOVS_VARS \
3433 UINT f_pack; \
3434 UINT f_FRk; \
3435 UINT f_op; \
3436 UINT f_rs_null; \
3437 UINT f_CCi; \
3438 UINT f_cond; \
3439 UINT f_ope4; \
3440 UINT f_FRj; \
3441 unsigned int length;
3442 #define EXTRACT_IFMT_CFMOVS_CODE \
3443 length = 4; \
3444 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3445 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3446 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3447 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3448 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3449 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3450 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3451 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3452
3453 #define EXTRACT_IFMT_FADDS_VARS \
3454 UINT f_pack; \
3455 UINT f_FRk; \
3456 UINT f_op; \
3457 UINT f_FRi; \
3458 UINT f_ope1; \
3459 UINT f_FRj; \
3460 unsigned int length;
3461 #define EXTRACT_IFMT_FADDS_CODE \
3462 length = 4; \
3463 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3464 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3465 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3466 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3467 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3468 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3469
3470 #define EXTRACT_IFMT_FADDD_VARS \
3471 UINT f_pack; \
3472 UINT f_FRk; \
3473 UINT f_op; \
3474 UINT f_FRi; \
3475 UINT f_ope1; \
3476 UINT f_FRj; \
3477 unsigned int length;
3478 #define EXTRACT_IFMT_FADDD_CODE \
3479 length = 4; \
3480 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3481 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3482 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3483 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3484 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3485 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3486
3487 #define EXTRACT_IFMT_CFADDS_VARS \
3488 UINT f_pack; \
3489 UINT f_FRk; \
3490 UINT f_op; \
3491 UINT f_FRi; \
3492 UINT f_CCi; \
3493 UINT f_cond; \
3494 UINT f_ope4; \
3495 UINT f_FRj; \
3496 unsigned int length;
3497 #define EXTRACT_IFMT_CFADDS_CODE \
3498 length = 4; \
3499 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3500 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3501 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3502 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3503 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3504 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3505 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3506 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3507
3508 #define EXTRACT_IFMT_FCMPS_VARS \
3509 UINT f_pack; \
3510 UINT f_cond_null; \
3511 UINT f_FCCi_2; \
3512 UINT f_op; \
3513 UINT f_FRi; \
3514 UINT f_ope1; \
3515 UINT f_FRj; \
3516 unsigned int length;
3517 #define EXTRACT_IFMT_FCMPS_CODE \
3518 length = 4; \
3519 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3520 f_cond_null = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3521 f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
3522 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3523 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3524 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3525 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3526
3527 #define EXTRACT_IFMT_FCMPD_VARS \
3528 UINT f_pack; \
3529 UINT f_cond_null; \
3530 UINT f_FCCi_2; \
3531 UINT f_op; \
3532 UINT f_FRi; \
3533 UINT f_ope1; \
3534 UINT f_FRj; \
3535 unsigned int length;
3536 #define EXTRACT_IFMT_FCMPD_CODE \
3537 length = 4; \
3538 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3539 f_cond_null = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3540 f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
3541 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3542 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3543 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3544 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3545
3546 #define EXTRACT_IFMT_CFCMPS_VARS \
3547 UINT f_pack; \
3548 UINT f_cond_null; \
3549 UINT f_FCCi_2; \
3550 UINT f_op; \
3551 UINT f_FRi; \
3552 UINT f_CCi; \
3553 UINT f_cond; \
3554 UINT f_ope4; \
3555 UINT f_FRj; \
3556 unsigned int length;
3557 #define EXTRACT_IFMT_CFCMPS_CODE \
3558 length = 4; \
3559 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3560 f_cond_null = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3561 f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
3562 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3563 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3564 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3565 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3566 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3567 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3568
3569 #define EXTRACT_IFMT_MHSETLOS_VARS \
3570 UINT f_pack; \
3571 UINT f_FRk; \
3572 UINT f_op; \
3573 UINT f_ope1; \
3574 INT f_u12_h; \
3575 UINT f_u12_l; \
3576 INT f_u12; \
3577 unsigned int length;
3578 #define EXTRACT_IFMT_MHSETLOS_CODE \
3579 length = 4; \
3580 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3581 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3582 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3583 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3584 f_u12_h = EXTRACT_LSB0_SINT (insn, 32, 17, 6); \
3585 f_u12_l = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3586 {\
3587 f_u12 = ((((f_u12_h) << (6))) | (f_u12_l));\
3588 }\
3589
3590 #define EXTRACT_IFMT_MHSETHIS_VARS \
3591 UINT f_pack; \
3592 UINT f_FRk; \
3593 UINT f_op; \
3594 UINT f_ope1; \
3595 INT f_u12_h; \
3596 UINT f_u12_l; \
3597 INT f_u12; \
3598 unsigned int length;
3599 #define EXTRACT_IFMT_MHSETHIS_CODE \
3600 length = 4; \
3601 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3602 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3603 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3604 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3605 f_u12_h = EXTRACT_LSB0_SINT (insn, 32, 17, 6); \
3606 f_u12_l = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3607 {\
3608 f_u12 = ((((f_u12_h) << (6))) | (f_u12_l));\
3609 }\
3610
3611 #define EXTRACT_IFMT_MHDSETS_VARS \
3612 UINT f_pack; \
3613 UINT f_FRk; \
3614 UINT f_op; \
3615 UINT f_ope1; \
3616 INT f_u12_h; \
3617 UINT f_u12_l; \
3618 INT f_u12; \
3619 unsigned int length;
3620 #define EXTRACT_IFMT_MHDSETS_CODE \
3621 length = 4; \
3622 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3623 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3624 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3625 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3626 f_u12_h = EXTRACT_LSB0_SINT (insn, 32, 17, 6); \
3627 f_u12_l = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3628 {\
3629 f_u12 = ((((f_u12_h) << (6))) | (f_u12_l));\
3630 }\
3631
3632 #define EXTRACT_IFMT_MHSETLOH_VARS \
3633 UINT f_pack; \
3634 UINT f_FRk; \
3635 UINT f_op; \
3636 UINT f_FRi_null; \
3637 UINT f_ope1; \
3638 UINT f_misc_null_11; \
3639 INT f_s5; \
3640 unsigned int length;
3641 #define EXTRACT_IFMT_MHSETLOH_CODE \
3642 length = 4; \
3643 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3644 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3645 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3646 f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3647 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3648 f_misc_null_11 = EXTRACT_LSB0_UINT (insn, 32, 5, 1); \
3649 f_s5 = EXTRACT_LSB0_SINT (insn, 32, 4, 5); \
3650
3651 #define EXTRACT_IFMT_MHSETHIH_VARS \
3652 UINT f_pack; \
3653 UINT f_FRk; \
3654 UINT f_op; \
3655 UINT f_FRi_null; \
3656 UINT f_ope1; \
3657 UINT f_misc_null_11; \
3658 INT f_s5; \
3659 unsigned int length;
3660 #define EXTRACT_IFMT_MHSETHIH_CODE \
3661 length = 4; \
3662 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3663 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3664 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3665 f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3666 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3667 f_misc_null_11 = EXTRACT_LSB0_UINT (insn, 32, 5, 1); \
3668 f_s5 = EXTRACT_LSB0_SINT (insn, 32, 4, 5); \
3669
3670 #define EXTRACT_IFMT_MHDSETH_VARS \
3671 UINT f_pack; \
3672 UINT f_FRk; \
3673 UINT f_op; \
3674 UINT f_FRi_null; \
3675 UINT f_ope1; \
3676 UINT f_misc_null_11; \
3677 INT f_s5; \
3678 unsigned int length;
3679 #define EXTRACT_IFMT_MHDSETH_CODE \
3680 length = 4; \
3681 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3682 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3683 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3684 f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3685 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3686 f_misc_null_11 = EXTRACT_LSB0_UINT (insn, 32, 5, 1); \
3687 f_s5 = EXTRACT_LSB0_SINT (insn, 32, 4, 5); \
3688
3689 #define EXTRACT_IFMT_MAND_VARS \
3690 UINT f_pack; \
3691 UINT f_FRk; \
3692 UINT f_op; \
3693 UINT f_FRi; \
3694 UINT f_ope1; \
3695 UINT f_FRj; \
3696 unsigned int length;
3697 #define EXTRACT_IFMT_MAND_CODE \
3698 length = 4; \
3699 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3700 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3701 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3702 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3703 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3704 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3705
3706 #define EXTRACT_IFMT_CMAND_VARS \
3707 UINT f_pack; \
3708 UINT f_FRk; \
3709 UINT f_op; \
3710 UINT f_FRi; \
3711 UINT f_CCi; \
3712 UINT f_cond; \
3713 UINT f_ope4; \
3714 UINT f_FRj; \
3715 unsigned int length;
3716 #define EXTRACT_IFMT_CMAND_CODE \
3717 length = 4; \
3718 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3719 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3720 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3721 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3722 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3723 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3724 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3725 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3726
3727 #define EXTRACT_IFMT_MNOT_VARS \
3728 UINT f_pack; \
3729 UINT f_FRk; \
3730 UINT f_op; \
3731 UINT f_rs_null; \
3732 UINT f_ope1; \
3733 UINT f_FRj; \
3734 unsigned int length;
3735 #define EXTRACT_IFMT_MNOT_CODE \
3736 length = 4; \
3737 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3738 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3739 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3740 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3741 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3742 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3743
3744 #define EXTRACT_IFMT_CMNOT_VARS \
3745 UINT f_pack; \
3746 UINT f_FRk; \
3747 UINT f_op; \
3748 UINT f_rs_null; \
3749 UINT f_CCi; \
3750 UINT f_cond; \
3751 UINT f_ope4; \
3752 UINT f_FRj; \
3753 unsigned int length;
3754 #define EXTRACT_IFMT_CMNOT_CODE \
3755 length = 4; \
3756 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3757 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3758 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3759 f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3760 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3761 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3762 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3763 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3764
3765 #define EXTRACT_IFMT_MROTLI_VARS \
3766 UINT f_pack; \
3767 UINT f_FRk; \
3768 UINT f_op; \
3769 UINT f_FRi; \
3770 UINT f_ope1; \
3771 UINT f_u6; \
3772 unsigned int length;
3773 #define EXTRACT_IFMT_MROTLI_CODE \
3774 length = 4; \
3775 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3776 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3777 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3778 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3779 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3780 f_u6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3781
3782 #define EXTRACT_IFMT_MCUT_VARS \
3783 UINT f_pack; \
3784 UINT f_FRk; \
3785 UINT f_op; \
3786 UINT f_ACC40Si; \
3787 UINT f_ope1; \
3788 UINT f_FRj; \
3789 unsigned int length;
3790 #define EXTRACT_IFMT_MCUT_CODE \
3791 length = 4; \
3792 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3793 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3794 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3795 f_ACC40Si = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3796 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3797 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3798
3799 #define EXTRACT_IFMT_MCUTI_VARS \
3800 UINT f_pack; \
3801 UINT f_FRk; \
3802 UINT f_op; \
3803 UINT f_ACC40Si; \
3804 UINT f_ope1; \
3805 INT f_s6; \
3806 unsigned int length;
3807 #define EXTRACT_IFMT_MCUTI_CODE \
3808 length = 4; \
3809 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3810 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3811 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3812 f_ACC40Si = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3813 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3814 f_s6 = EXTRACT_LSB0_SINT (insn, 32, 5, 6); \
3815
3816 #define EXTRACT_IFMT_MDCUTSSI_VARS \
3817 UINT f_pack; \
3818 UINT f_FRk; \
3819 UINT f_op; \
3820 UINT f_ACC40Si; \
3821 UINT f_ope1; \
3822 INT f_s6; \
3823 unsigned int length;
3824 #define EXTRACT_IFMT_MDCUTSSI_CODE \
3825 length = 4; \
3826 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3827 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3828 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3829 f_ACC40Si = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3830 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3831 f_s6 = EXTRACT_LSB0_SINT (insn, 32, 5, 6); \
3832
3833 #define EXTRACT_IFMT_MDROTLI_VARS \
3834 UINT f_pack; \
3835 UINT f_FRk; \
3836 UINT f_op; \
3837 UINT f_FRi; \
3838 UINT f_ope1; \
3839 INT f_s6; \
3840 unsigned int length;
3841 #define EXTRACT_IFMT_MDROTLI_CODE \
3842 length = 4; \
3843 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3844 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3845 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3846 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3847 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3848 f_s6 = EXTRACT_LSB0_SINT (insn, 32, 5, 6); \
3849
3850 #define EXTRACT_IFMT_MQSATHS_VARS \
3851 UINT f_pack; \
3852 UINT f_FRk; \
3853 UINT f_op; \
3854 UINT f_FRi; \
3855 UINT f_ope1; \
3856 UINT f_FRj; \
3857 unsigned int length;
3858 #define EXTRACT_IFMT_MQSATHS_CODE \
3859 length = 4; \
3860 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3861 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3862 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3863 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3864 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3865 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3866
3867 #define EXTRACT_IFMT_MCMPSH_VARS \
3868 UINT f_pack; \
3869 UINT f_cond_null; \
3870 UINT f_FCCk; \
3871 UINT f_op; \
3872 UINT f_FRi; \
3873 UINT f_ope1; \
3874 UINT f_FRj; \
3875 unsigned int length;
3876 #define EXTRACT_IFMT_MCMPSH_CODE \
3877 length = 4; \
3878 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3879 f_cond_null = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3880 f_FCCk = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
3881 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3882 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3883 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3884 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3885
3886 #define EXTRACT_IFMT_MABSHS_VARS \
3887 UINT f_pack; \
3888 UINT f_FRk; \
3889 UINT f_op; \
3890 UINT f_FRi_null; \
3891 UINT f_ope1; \
3892 UINT f_FRj; \
3893 unsigned int length;
3894 #define EXTRACT_IFMT_MABSHS_CODE \
3895 length = 4; \
3896 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3897 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3898 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3899 f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3900 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3901 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3902
3903 #define EXTRACT_IFMT_CMQADDHSS_VARS \
3904 UINT f_pack; \
3905 UINT f_FRk; \
3906 UINT f_op; \
3907 UINT f_FRi; \
3908 UINT f_CCi; \
3909 UINT f_cond; \
3910 UINT f_ope4; \
3911 UINT f_FRj; \
3912 unsigned int length;
3913 #define EXTRACT_IFMT_CMQADDHSS_CODE \
3914 length = 4; \
3915 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3916 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3917 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3918 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3919 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3920 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3921 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3922 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3923
3924 #define EXTRACT_IFMT_MQSLLHI_VARS \
3925 UINT f_pack; \
3926 UINT f_FRk; \
3927 UINT f_op; \
3928 UINT f_FRi; \
3929 UINT f_ope1; \
3930 UINT f_u6; \
3931 unsigned int length;
3932 #define EXTRACT_IFMT_MQSLLHI_CODE \
3933 length = 4; \
3934 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3935 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3936 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3937 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3938 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3939 f_u6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3940
3941 #define EXTRACT_IFMT_MADDACCS_VARS \
3942 UINT f_pack; \
3943 UINT f_ACC40Sk; \
3944 UINT f_op; \
3945 UINT f_ACC40Si; \
3946 UINT f_ope1; \
3947 UINT f_ACCj_null; \
3948 unsigned int length;
3949 #define EXTRACT_IFMT_MADDACCS_CODE \
3950 length = 4; \
3951 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3952 f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3953 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3954 f_ACC40Si = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3955 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3956 f_ACCj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3957
3958 #define EXTRACT_IFMT_MMULHS_VARS \
3959 UINT f_pack; \
3960 UINT f_ACC40Sk; \
3961 UINT f_op; \
3962 UINT f_FRi; \
3963 UINT f_ope1; \
3964 UINT f_FRj; \
3965 unsigned int length;
3966 #define EXTRACT_IFMT_MMULHS_CODE \
3967 length = 4; \
3968 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3969 f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3970 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3971 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3972 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3973 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3974
3975 #define EXTRACT_IFMT_CMMULHS_VARS \
3976 UINT f_pack; \
3977 UINT f_ACC40Sk; \
3978 UINT f_op; \
3979 UINT f_FRi; \
3980 UINT f_CCi; \
3981 UINT f_cond; \
3982 UINT f_ope4; \
3983 UINT f_FRj; \
3984 unsigned int length;
3985 #define EXTRACT_IFMT_CMMULHS_CODE \
3986 length = 4; \
3987 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3988 f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3989 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3990 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3991 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3992 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3993 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3994 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3995
3996 #define EXTRACT_IFMT_MQMULHS_VARS \
3997 UINT f_pack; \
3998 UINT f_ACC40Sk; \
3999 UINT f_op; \
4000 UINT f_FRi; \
4001 UINT f_ope1; \
4002 UINT f_FRj; \
4003 unsigned int length;
4004 #define EXTRACT_IFMT_MQMULHS_CODE \
4005 length = 4; \
4006 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4007 f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4008 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4009 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4010 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4011 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4012
4013 #define EXTRACT_IFMT_CMQMULHS_VARS \
4014 UINT f_pack; \
4015 UINT f_ACC40Sk; \
4016 UINT f_op; \
4017 UINT f_FRi; \
4018 UINT f_CCi; \
4019 UINT f_cond; \
4020 UINT f_ope4; \
4021 UINT f_FRj; \
4022 unsigned int length;
4023 #define EXTRACT_IFMT_CMQMULHS_CODE \
4024 length = 4; \
4025 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4026 f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4027 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4028 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4029 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4030 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4031 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4032 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4033
4034 #define EXTRACT_IFMT_MMACHU_VARS \
4035 UINT f_pack; \
4036 UINT f_ACC40Uk; \
4037 UINT f_op; \
4038 UINT f_FRi; \
4039 UINT f_ope1; \
4040 UINT f_FRj; \
4041 unsigned int length;
4042 #define EXTRACT_IFMT_MMACHU_CODE \
4043 length = 4; \
4044 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4045 f_ACC40Uk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4046 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4047 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4048 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4049 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4050
4051 #define EXTRACT_IFMT_CMMACHU_VARS \
4052 UINT f_pack; \
4053 UINT f_ACC40Uk; \
4054 UINT f_op; \
4055 UINT f_FRi; \
4056 UINT f_CCi; \
4057 UINT f_cond; \
4058 UINT f_ope4; \
4059 UINT f_FRj; \
4060 unsigned int length;
4061 #define EXTRACT_IFMT_CMMACHU_CODE \
4062 length = 4; \
4063 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4064 f_ACC40Uk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4065 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4066 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4067 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4068 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4069 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4070 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4071
4072 #define EXTRACT_IFMT_MQMACHU_VARS \
4073 UINT f_pack; \
4074 UINT f_ACC40Uk; \
4075 UINT f_op; \
4076 UINT f_FRi; \
4077 UINT f_ope1; \
4078 UINT f_FRj; \
4079 unsigned int length;
4080 #define EXTRACT_IFMT_MQMACHU_CODE \
4081 length = 4; \
4082 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4083 f_ACC40Uk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4084 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4085 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4086 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4087 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4088
4089 #define EXTRACT_IFMT_CMQMACHU_VARS \
4090 UINT f_pack; \
4091 UINT f_ACC40Uk; \
4092 UINT f_op; \
4093 UINT f_FRi; \
4094 UINT f_CCi; \
4095 UINT f_cond; \
4096 UINT f_ope4; \
4097 UINT f_FRj; \
4098 unsigned int length;
4099 #define EXTRACT_IFMT_CMQMACHU_CODE \
4100 length = 4; \
4101 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4102 f_ACC40Uk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4103 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4104 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4105 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4106 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4107 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4108 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4109
4110 #define EXTRACT_IFMT_CMEXPDHW_VARS \
4111 UINT f_pack; \
4112 UINT f_FRk; \
4113 UINT f_op; \
4114 UINT f_FRi; \
4115 UINT f_CCi; \
4116 UINT f_cond; \
4117 UINT f_ope4; \
4118 UINT f_u6; \
4119 unsigned int length;
4120 #define EXTRACT_IFMT_CMEXPDHW_CODE \
4121 length = 4; \
4122 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4123 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4124 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4125 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4126 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4127 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4128 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4129 f_u6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4130
4131 #define EXTRACT_IFMT_MEXPDHD_VARS \
4132 UINT f_pack; \
4133 UINT f_FRk; \
4134 UINT f_op; \
4135 UINT f_FRi; \
4136 UINT f_ope1; \
4137 UINT f_u6; \
4138 unsigned int length;
4139 #define EXTRACT_IFMT_MEXPDHD_CODE \
4140 length = 4; \
4141 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4142 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4143 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4144 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4145 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4146 f_u6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4147
4148 #define EXTRACT_IFMT_CMEXPDHD_VARS \
4149 UINT f_pack; \
4150 UINT f_FRk; \
4151 UINT f_op; \
4152 UINT f_FRi; \
4153 UINT f_CCi; \
4154 UINT f_cond; \
4155 UINT f_ope4; \
4156 UINT f_u6; \
4157 unsigned int length;
4158 #define EXTRACT_IFMT_CMEXPDHD_CODE \
4159 length = 4; \
4160 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4161 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4162 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4163 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4164 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4165 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4166 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4167 f_u6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4168
4169 #define EXTRACT_IFMT_MUNPACKH_VARS \
4170 UINT f_pack; \
4171 UINT f_FRk; \
4172 UINT f_op; \
4173 UINT f_FRi; \
4174 UINT f_ope1; \
4175 UINT f_FRj_null; \
4176 unsigned int length;
4177 #define EXTRACT_IFMT_MUNPACKH_CODE \
4178 length = 4; \
4179 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4180 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4181 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4182 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4183 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4184 f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4185
4186 #define EXTRACT_IFMT_MDUNPACKH_VARS \
4187 UINT f_pack; \
4188 UINT f_FRk; \
4189 UINT f_op; \
4190 UINT f_FRi; \
4191 UINT f_ope1; \
4192 UINT f_FRj_null; \
4193 unsigned int length;
4194 #define EXTRACT_IFMT_MDUNPACKH_CODE \
4195 length = 4; \
4196 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4197 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4198 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4199 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4200 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4201 f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4202
4203 #define EXTRACT_IFMT_MBTOH_VARS \
4204 UINT f_pack; \
4205 UINT f_FRk; \
4206 UINT f_op; \
4207 UINT f_FRi_null; \
4208 UINT f_ope1; \
4209 UINT f_FRj; \
4210 unsigned int length;
4211 #define EXTRACT_IFMT_MBTOH_CODE \
4212 length = 4; \
4213 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4214 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4215 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4216 f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4217 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4218 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4219
4220 #define EXTRACT_IFMT_CMBTOH_VARS \
4221 UINT f_pack; \
4222 UINT f_FRk; \
4223 UINT f_op; \
4224 UINT f_FRi_null; \
4225 UINT f_CCi; \
4226 UINT f_cond; \
4227 UINT f_ope4; \
4228 UINT f_FRj; \
4229 unsigned int length;
4230 #define EXTRACT_IFMT_CMBTOH_CODE \
4231 length = 4; \
4232 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4233 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4234 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4235 f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4236 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4237 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4238 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4239 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4240
4241 #define EXTRACT_IFMT_MHTOB_VARS \
4242 UINT f_pack; \
4243 UINT f_FRk; \
4244 UINT f_op; \
4245 UINT f_FRi_null; \
4246 UINT f_ope1; \
4247 UINT f_FRj; \
4248 unsigned int length;
4249 #define EXTRACT_IFMT_MHTOB_CODE \
4250 length = 4; \
4251 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4252 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4253 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4254 f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4255 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4256 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4257
4258 #define EXTRACT_IFMT_CMHTOB_VARS \
4259 UINT f_pack; \
4260 UINT f_FRk; \
4261 UINT f_op; \
4262 UINT f_FRi_null; \
4263 UINT f_CCi; \
4264 UINT f_cond; \
4265 UINT f_ope4; \
4266 UINT f_FRj; \
4267 unsigned int length;
4268 #define EXTRACT_IFMT_CMHTOB_CODE \
4269 length = 4; \
4270 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4271 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4272 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4273 f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4274 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4275 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4276 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4277 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4278
4279 #define EXTRACT_IFMT_CMBTOHE_VARS \
4280 UINT f_pack; \
4281 UINT f_FRk; \
4282 UINT f_op; \
4283 UINT f_FRi_null; \
4284 UINT f_CCi; \
4285 UINT f_cond; \
4286 UINT f_ope4; \
4287 UINT f_FRj; \
4288 unsigned int length;
4289 #define EXTRACT_IFMT_CMBTOHE_CODE \
4290 length = 4; \
4291 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4292 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4293 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4294 f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4295 f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4296 f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4297 f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4298 f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4299
4300 #define EXTRACT_IFMT_MNOP_VARS \
4301 UINT f_pack; \
4302 UINT f_ACC40Sk; \
4303 UINT f_op; \
4304 UINT f_A; \
4305 UINT f_misc_null_10; \
4306 UINT f_ope1; \
4307 UINT f_FRj_null; \
4308 unsigned int length;
4309 #define EXTRACT_IFMT_MNOP_CODE \
4310 length = 4; \
4311 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4312 f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4313 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4314 f_A = EXTRACT_LSB0_UINT (insn, 32, 17, 1); \
4315 f_misc_null_10 = EXTRACT_LSB0_UINT (insn, 32, 16, 5); \
4316 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4317 f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4318
4319 #define EXTRACT_IFMT_MCLRACC_0_VARS \
4320 UINT f_pack; \
4321 UINT f_ACC40Sk; \
4322 UINT f_op; \
4323 UINT f_A; \
4324 UINT f_misc_null_10; \
4325 UINT f_ope1; \
4326 UINT f_FRj_null; \
4327 unsigned int length;
4328 #define EXTRACT_IFMT_MCLRACC_0_CODE \
4329 length = 4; \
4330 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4331 f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4332 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4333 f_A = EXTRACT_LSB0_UINT (insn, 32, 17, 1); \
4334 f_misc_null_10 = EXTRACT_LSB0_UINT (insn, 32, 16, 5); \
4335 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4336 f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4337
4338 #define EXTRACT_IFMT_MRDACC_VARS \
4339 UINT f_pack; \
4340 UINT f_FRk; \
4341 UINT f_op; \
4342 UINT f_ACC40Si; \
4343 UINT f_ope1; \
4344 UINT f_FRj_null; \
4345 unsigned int length;
4346 #define EXTRACT_IFMT_MRDACC_CODE \
4347 length = 4; \
4348 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4349 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4350 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4351 f_ACC40Si = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4352 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4353 f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4354
4355 #define EXTRACT_IFMT_MRDACCG_VARS \
4356 UINT f_pack; \
4357 UINT f_FRk; \
4358 UINT f_op; \
4359 UINT f_ACCGi; \
4360 UINT f_ope1; \
4361 UINT f_FRj_null; \
4362 unsigned int length;
4363 #define EXTRACT_IFMT_MRDACCG_CODE \
4364 length = 4; \
4365 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4366 f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4367 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4368 f_ACCGi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4369 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4370 f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4371
4372 #define EXTRACT_IFMT_MWTACC_VARS \
4373 UINT f_pack; \
4374 UINT f_ACC40Sk; \
4375 UINT f_op; \
4376 UINT f_FRi; \
4377 UINT f_ope1; \
4378 UINT f_FRj_null; \
4379 unsigned int length;
4380 #define EXTRACT_IFMT_MWTACC_CODE \
4381 length = 4; \
4382 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4383 f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4384 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4385 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4386 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4387 f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4388
4389 #define EXTRACT_IFMT_MWTACCG_VARS \
4390 UINT f_pack; \
4391 UINT f_ACCGk; \
4392 UINT f_op; \
4393 UINT f_FRi; \
4394 UINT f_ope1; \
4395 UINT f_FRj_null; \
4396 unsigned int length;
4397 #define EXTRACT_IFMT_MWTACCG_CODE \
4398 length = 4; \
4399 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4400 f_ACCGk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4401 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4402 f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4403 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4404 f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4405
4406 #define EXTRACT_IFMT_FNOP_VARS \
4407 UINT f_pack; \
4408 UINT f_rd_null; \
4409 UINT f_op; \
4410 UINT f_FRi_null; \
4411 UINT f_ope1; \
4412 UINT f_FRj_null; \
4413 unsigned int length;
4414 #define EXTRACT_IFMT_FNOP_CODE \
4415 length = 4; \
4416 f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4417 f_rd_null = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4418 f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4419 f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4420 f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4421 f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4422
4423 /* Collection of various things for the trace handler to use. */
4424
4425 typedef struct trace_record {
4426 IADDR pc;
4427 /* FIXME:wip */
4428 } TRACE_RECORD;
4429
4430 #endif /* CPU_FRVBF_H */