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