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