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