2003-10-06 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_STDF_VARS \
2038   UINT f_pack; \
2039   UINT f_FRk; \
2040   UINT f_op; \
2041   UINT f_GRi; \
2042   UINT f_ope1; \
2043   UINT f_GRj; \
2044   unsigned int length;
2045 #define EXTRACT_IFMT_STDF_CODE \
2046   length = 4; \
2047   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2048   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2049   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2050   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2051   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
2052   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2053
2054 #define EXTRACT_IFMT_CLDBF_VARS \
2055   UINT f_pack; \
2056   UINT f_FRk; \
2057   UINT f_op; \
2058   UINT f_GRi; \
2059   UINT f_CCi; \
2060   UINT f_cond; \
2061   UINT f_ope4; \
2062   UINT f_GRj; \
2063   unsigned int length;
2064 #define EXTRACT_IFMT_CLDBF_CODE \
2065   length = 4; \
2066   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2067   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2068   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2069   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2070   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
2071   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
2072   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2073   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2074
2075 #define EXTRACT_IFMT_CLDDF_VARS \
2076   UINT f_pack; \
2077   UINT f_FRk; \
2078   UINT f_op; \
2079   UINT f_GRi; \
2080   UINT f_CCi; \
2081   UINT f_cond; \
2082   UINT f_ope4; \
2083   UINT f_GRj; \
2084   unsigned int length;
2085 #define EXTRACT_IFMT_CLDDF_CODE \
2086   length = 4; \
2087   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2088   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2089   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2090   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2091   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
2092   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
2093   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2094   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2095
2096 #define EXTRACT_IFMT_CSTDF_VARS \
2097   UINT f_pack; \
2098   UINT f_FRk; \
2099   UINT f_op; \
2100   UINT f_GRi; \
2101   UINT f_CCi; \
2102   UINT f_cond; \
2103   UINT f_ope4; \
2104   UINT f_GRj; \
2105   unsigned int length;
2106 #define EXTRACT_IFMT_CSTDF_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_GRi = 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_STDFI_VARS \
2118   UINT f_pack; \
2119   UINT f_FRk; \
2120   UINT f_op; \
2121   UINT f_GRi; \
2122   INT f_d12; \
2123   unsigned int length;
2124 #define EXTRACT_IFMT_STDFI_CODE \
2125   length = 4; \
2126   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2127   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2128   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2129   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2130   f_d12 = EXTRACT_LSB0_INT (insn, 32, 11, 12); \
2131
2132 #define EXTRACT_IFMT_MOVGF_VARS \
2133   UINT f_pack; \
2134   UINT f_FRk; \
2135   UINT f_op; \
2136   UINT f_rs_null; \
2137   UINT f_ope1; \
2138   UINT f_GRj; \
2139   unsigned int length;
2140 #define EXTRACT_IFMT_MOVGF_CODE \
2141   length = 4; \
2142   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2143   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2144   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2145   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2146   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
2147   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2148
2149 #define EXTRACT_IFMT_CMOVGF_VARS \
2150   UINT f_pack; \
2151   UINT f_FRk; \
2152   UINT f_op; \
2153   UINT f_rs_null; \
2154   UINT f_CCi; \
2155   UINT f_cond; \
2156   UINT f_ope4; \
2157   UINT f_GRj; \
2158   unsigned int length;
2159 #define EXTRACT_IFMT_CMOVGF_CODE \
2160   length = 4; \
2161   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2162   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2163   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2164   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2165   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
2166   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
2167   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2168   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2169
2170 #define EXTRACT_IFMT_MOVGS_VARS \
2171   UINT f_pack; \
2172   UINT f_op; \
2173   UINT f_spr_h; \
2174   UINT f_spr_l; \
2175   UINT f_spr; \
2176   UINT f_ope1; \
2177   UINT f_GRj; \
2178   unsigned int length;
2179 #define EXTRACT_IFMT_MOVGS_CODE \
2180   length = 4; \
2181   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2182   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2183   f_spr_h = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2184   f_spr_l = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2185 {\
2186   f_spr = ((((f_spr_h) << (6))) | (f_spr_l));\
2187 }\
2188   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
2189   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2190
2191 #define EXTRACT_IFMT_BRA_VARS \
2192   UINT f_pack; \
2193   UINT f_int_cc; \
2194   UINT f_ICCi_2_null; \
2195   UINT f_op; \
2196   UINT f_hint; \
2197   SI f_label16; \
2198   unsigned int length;
2199 #define EXTRACT_IFMT_BRA_CODE \
2200   length = 4; \
2201   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2202   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2203   f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2204   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2205   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2206   f_label16 = ((((EXTRACT_LSB0_INT (insn, 32, 15, 16)) << (2))) + (pc)); \
2207
2208 #define EXTRACT_IFMT_BNO_VARS \
2209   UINT f_pack; \
2210   UINT f_int_cc; \
2211   UINT f_ICCi_2_null; \
2212   UINT f_op; \
2213   UINT f_hint; \
2214   UINT f_label16_null; \
2215   unsigned int length;
2216 #define EXTRACT_IFMT_BNO_CODE \
2217   length = 4; \
2218   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2219   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2220   f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2221   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2222   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2223   f_label16_null = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
2224
2225 #define EXTRACT_IFMT_BEQ_VARS \
2226   UINT f_pack; \
2227   UINT f_int_cc; \
2228   UINT f_ICCi_2; \
2229   UINT f_op; \
2230   UINT f_hint; \
2231   SI f_label16; \
2232   unsigned int length;
2233 #define EXTRACT_IFMT_BEQ_CODE \
2234   length = 4; \
2235   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2236   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2237   f_ICCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2238   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2239   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2240   f_label16 = ((((EXTRACT_LSB0_INT (insn, 32, 15, 16)) << (2))) + (pc)); \
2241
2242 #define EXTRACT_IFMT_FBRA_VARS \
2243   UINT f_pack; \
2244   UINT f_flt_cc; \
2245   UINT f_FCCi_2_null; \
2246   UINT f_op; \
2247   UINT f_hint; \
2248   SI f_label16; \
2249   unsigned int length;
2250 #define EXTRACT_IFMT_FBRA_CODE \
2251   length = 4; \
2252   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2253   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2254   f_FCCi_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_label16 = ((((EXTRACT_LSB0_INT (insn, 32, 15, 16)) << (2))) + (pc)); \
2258
2259 #define EXTRACT_IFMT_FBNO_VARS \
2260   UINT f_pack; \
2261   UINT f_flt_cc; \
2262   UINT f_FCCi_2_null; \
2263   UINT f_op; \
2264   UINT f_hint; \
2265   UINT f_label16_null; \
2266   unsigned int length;
2267 #define EXTRACT_IFMT_FBNO_CODE \
2268   length = 4; \
2269   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2270   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2271   f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2272   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2273   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2274   f_label16_null = EXTRACT_LSB0_UINT (insn, 32, 15, 16); \
2275
2276 #define EXTRACT_IFMT_FBNE_VARS \
2277   UINT f_pack; \
2278   UINT f_flt_cc; \
2279   UINT f_FCCi_2; \
2280   UINT f_op; \
2281   UINT f_hint; \
2282   SI f_label16; \
2283   unsigned int length;
2284 #define EXTRACT_IFMT_FBNE_CODE \
2285   length = 4; \
2286   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2287   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2288   f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2289   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2290   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2291   f_label16 = ((((EXTRACT_LSB0_INT (insn, 32, 15, 16)) << (2))) + (pc)); \
2292
2293 #define EXTRACT_IFMT_BCTRLR_VARS \
2294   UINT f_pack; \
2295   UINT f_cond_null; \
2296   UINT f_ICCi_2_null; \
2297   UINT f_op; \
2298   UINT f_hint; \
2299   UINT f_ope3; \
2300   UINT f_ccond; \
2301   UINT f_s12_null; \
2302   unsigned int length;
2303 #define EXTRACT_IFMT_BCTRLR_CODE \
2304   length = 4; \
2305   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2306   f_cond_null = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2307   f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2308   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2309   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2310   f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2311   f_ccond = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2312   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2313
2314 #define EXTRACT_IFMT_BRALR_VARS \
2315   UINT f_pack; \
2316   UINT f_int_cc; \
2317   UINT f_ICCi_2_null; \
2318   UINT f_op; \
2319   UINT f_hint; \
2320   UINT f_ope3; \
2321   UINT f_ccond_null; \
2322   UINT f_s12_null; \
2323   unsigned int length;
2324 #define EXTRACT_IFMT_BRALR_CODE \
2325   length = 4; \
2326   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2327   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2328   f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2329   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2330   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2331   f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2332   f_ccond_null = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2333   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2334
2335 #define EXTRACT_IFMT_BNOLR_VARS \
2336   UINT f_pack; \
2337   UINT f_int_cc; \
2338   UINT f_ICCi_2_null; \
2339   UINT f_op; \
2340   UINT f_hint; \
2341   UINT f_ope3; \
2342   UINT f_ccond_null; \
2343   UINT f_s12_null; \
2344   unsigned int length;
2345 #define EXTRACT_IFMT_BNOLR_CODE \
2346   length = 4; \
2347   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2348   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2349   f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2350   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2351   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2352   f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2353   f_ccond_null = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2354   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2355
2356 #define EXTRACT_IFMT_BEQLR_VARS \
2357   UINT f_pack; \
2358   UINT f_int_cc; \
2359   UINT f_ICCi_2; \
2360   UINT f_op; \
2361   UINT f_hint; \
2362   UINT f_ope3; \
2363   UINT f_ccond_null; \
2364   UINT f_s12_null; \
2365   unsigned int length;
2366 #define EXTRACT_IFMT_BEQLR_CODE \
2367   length = 4; \
2368   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2369   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2370   f_ICCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2371   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2372   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2373   f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2374   f_ccond_null = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2375   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2376
2377 #define EXTRACT_IFMT_FBRALR_VARS \
2378   UINT f_pack; \
2379   UINT f_flt_cc; \
2380   UINT f_FCCi_2_null; \
2381   UINT f_op; \
2382   UINT f_hint; \
2383   UINT f_ope3; \
2384   UINT f_ccond_null; \
2385   UINT f_s12_null; \
2386   unsigned int length;
2387 #define EXTRACT_IFMT_FBRALR_CODE \
2388   length = 4; \
2389   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2390   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2391   f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2392   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2393   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2394   f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2395   f_ccond_null = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2396   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2397
2398 #define EXTRACT_IFMT_FBNOLR_VARS \
2399   UINT f_pack; \
2400   UINT f_flt_cc; \
2401   UINT f_FCCi_2_null; \
2402   UINT f_op; \
2403   UINT f_hint; \
2404   UINT f_ope3; \
2405   UINT f_ccond_null; \
2406   UINT f_s12_null; \
2407   unsigned int length;
2408 #define EXTRACT_IFMT_FBNOLR_CODE \
2409   length = 4; \
2410   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2411   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2412   f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2413   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2414   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2415   f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2416   f_ccond_null = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2417   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2418
2419 #define EXTRACT_IFMT_FBEQLR_VARS \
2420   UINT f_pack; \
2421   UINT f_flt_cc; \
2422   UINT f_FCCi_2; \
2423   UINT f_op; \
2424   UINT f_hint; \
2425   UINT f_ope3; \
2426   UINT f_ccond_null; \
2427   UINT f_s12_null; \
2428   unsigned int length;
2429 #define EXTRACT_IFMT_FBEQLR_CODE \
2430   length = 4; \
2431   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2432   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2433   f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2434   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2435   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2436   f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2437   f_ccond_null = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2438   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2439
2440 #define EXTRACT_IFMT_BCRALR_VARS \
2441   UINT f_pack; \
2442   UINT f_int_cc; \
2443   UINT f_ICCi_2_null; \
2444   UINT f_op; \
2445   UINT f_hint; \
2446   UINT f_ope3; \
2447   UINT f_ccond; \
2448   UINT f_s12_null; \
2449   unsigned int length;
2450 #define EXTRACT_IFMT_BCRALR_CODE \
2451   length = 4; \
2452   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2453   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2454   f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2455   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2456   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2457   f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2458   f_ccond = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2459   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2460
2461 #define EXTRACT_IFMT_BCEQLR_VARS \
2462   UINT f_pack; \
2463   UINT f_int_cc; \
2464   UINT f_ICCi_2; \
2465   UINT f_op; \
2466   UINT f_hint; \
2467   UINT f_ope3; \
2468   UINT f_ccond; \
2469   UINT f_s12_null; \
2470   unsigned int length;
2471 #define EXTRACT_IFMT_BCEQLR_CODE \
2472   length = 4; \
2473   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2474   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2475   f_ICCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2476   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2477   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2478   f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2479   f_ccond = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2480   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2481
2482 #define EXTRACT_IFMT_FCBRALR_VARS \
2483   UINT f_pack; \
2484   UINT f_flt_cc; \
2485   UINT f_FCCi_2_null; \
2486   UINT f_op; \
2487   UINT f_hint; \
2488   UINT f_ope3; \
2489   UINT f_ccond; \
2490   UINT f_s12_null; \
2491   unsigned int length;
2492 #define EXTRACT_IFMT_FCBRALR_CODE \
2493   length = 4; \
2494   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2495   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2496   f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2497   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2498   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2499   f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2500   f_ccond = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2501   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2502
2503 #define EXTRACT_IFMT_FCBEQLR_VARS \
2504   UINT f_pack; \
2505   UINT f_flt_cc; \
2506   UINT f_FCCi_2; \
2507   UINT f_op; \
2508   UINT f_hint; \
2509   UINT f_ope3; \
2510   UINT f_ccond; \
2511   UINT f_s12_null; \
2512   unsigned int length;
2513 #define EXTRACT_IFMT_FCBEQLR_CODE \
2514   length = 4; \
2515   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2516   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2517   f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2518   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2519   f_hint = EXTRACT_LSB0_UINT (insn, 32, 17, 2); \
2520   f_ope3 = EXTRACT_LSB0_UINT (insn, 32, 15, 3); \
2521   f_ccond = EXTRACT_LSB0_UINT (insn, 32, 12, 1); \
2522   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2523
2524 #define EXTRACT_IFMT_JMPL_VARS \
2525   UINT f_pack; \
2526   UINT f_misc_null_1; \
2527   UINT f_LI_off; \
2528   UINT f_op; \
2529   UINT f_GRi; \
2530   UINT f_misc_null_2; \
2531   UINT f_GRj; \
2532   unsigned int length;
2533 #define EXTRACT_IFMT_JMPL_CODE \
2534   length = 4; \
2535   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2536   f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
2537   f_LI_off = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
2538   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2539   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2540   f_misc_null_2 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
2541   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2542
2543 #define EXTRACT_IFMT_CALLL_VARS \
2544   UINT f_pack; \
2545   UINT f_misc_null_1; \
2546   UINT f_LI_on; \
2547   UINT f_op; \
2548   UINT f_GRi; \
2549   UINT f_misc_null_2; \
2550   UINT f_GRj; \
2551   unsigned int length;
2552 #define EXTRACT_IFMT_CALLL_CODE \
2553   length = 4; \
2554   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2555   f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
2556   f_LI_on = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
2557   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2558   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2559   f_misc_null_2 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
2560   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2561
2562 #define EXTRACT_IFMT_JMPIL_VARS \
2563   UINT f_pack; \
2564   UINT f_misc_null_1; \
2565   UINT f_LI_off; \
2566   UINT f_op; \
2567   UINT f_GRi; \
2568   INT f_d12; \
2569   unsigned int length;
2570 #define EXTRACT_IFMT_JMPIL_CODE \
2571   length = 4; \
2572   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2573   f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
2574   f_LI_off = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
2575   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2576   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2577   f_d12 = EXTRACT_LSB0_INT (insn, 32, 11, 12); \
2578
2579 #define EXTRACT_IFMT_CALLIL_VARS \
2580   UINT f_pack; \
2581   UINT f_misc_null_1; \
2582   UINT f_LI_on; \
2583   UINT f_op; \
2584   UINT f_GRi; \
2585   INT f_d12; \
2586   unsigned int length;
2587 #define EXTRACT_IFMT_CALLIL_CODE \
2588   length = 4; \
2589   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2590   f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
2591   f_LI_on = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
2592   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2593   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2594   f_d12 = EXTRACT_LSB0_INT (insn, 32, 11, 12); \
2595
2596 #define EXTRACT_IFMT_CALL_VARS \
2597   UINT f_pack; \
2598   UINT f_op; \
2599   INT f_labelH6; \
2600   UINT f_labelL18; \
2601   INT f_label24; \
2602   unsigned int length;
2603 #define EXTRACT_IFMT_CALL_CODE \
2604   length = 4; \
2605   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2606   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2607   f_labelH6 = EXTRACT_LSB0_INT (insn, 32, 30, 6); \
2608   f_labelL18 = EXTRACT_LSB0_UINT (insn, 32, 17, 18); \
2609 {\
2610   f_label24 = ((((((((f_labelH6) << (18))) | (f_labelL18))) << (2))) + (pc));\
2611 }\
2612
2613 #define EXTRACT_IFMT_RETT_VARS \
2614   UINT f_pack; \
2615   UINT f_misc_null_1; \
2616   UINT f_debug; \
2617   UINT f_op; \
2618   UINT f_rs_null; \
2619   UINT f_s12_null; \
2620   unsigned int length;
2621 #define EXTRACT_IFMT_RETT_CODE \
2622   length = 4; \
2623   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2624   f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
2625   f_debug = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
2626   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2627   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2628   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2629
2630 #define EXTRACT_IFMT_REI_VARS \
2631   UINT f_pack; \
2632   UINT f_rd_null; \
2633   UINT f_op; \
2634   UINT f_eir; \
2635   UINT f_s12_null; \
2636   unsigned int length;
2637 #define EXTRACT_IFMT_REI_CODE \
2638   length = 4; \
2639   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2640   f_rd_null = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2641   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2642   f_eir = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2643   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2644
2645 #define EXTRACT_IFMT_TRA_VARS \
2646   UINT f_pack; \
2647   UINT f_int_cc; \
2648   UINT f_ICCi_2_null; \
2649   UINT f_op; \
2650   UINT f_GRi; \
2651   UINT f_misc_null_3; \
2652   UINT f_ope4; \
2653   UINT f_GRj; \
2654   unsigned int length;
2655 #define EXTRACT_IFMT_TRA_CODE \
2656   length = 4; \
2657   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2658   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2659   f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2660   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2661   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2662   f_misc_null_3 = EXTRACT_LSB0_UINT (insn, 32, 11, 4); \
2663   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2664   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2665
2666 #define EXTRACT_IFMT_TNO_VARS \
2667   UINT f_pack; \
2668   UINT f_int_cc; \
2669   UINT f_ICCi_2_null; \
2670   UINT f_op; \
2671   UINT f_GRi_null; \
2672   UINT f_misc_null_3; \
2673   UINT f_ope4; \
2674   UINT f_GRj_null; \
2675   unsigned int length;
2676 #define EXTRACT_IFMT_TNO_CODE \
2677   length = 4; \
2678   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2679   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2680   f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2681   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2682   f_GRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2683   f_misc_null_3 = EXTRACT_LSB0_UINT (insn, 32, 11, 4); \
2684   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2685   f_GRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2686
2687 #define EXTRACT_IFMT_TEQ_VARS \
2688   UINT f_pack; \
2689   UINT f_int_cc; \
2690   UINT f_ICCi_2; \
2691   UINT f_op; \
2692   UINT f_GRi; \
2693   UINT f_misc_null_3; \
2694   UINT f_ope4; \
2695   UINT f_GRj; \
2696   unsigned int length;
2697 #define EXTRACT_IFMT_TEQ_CODE \
2698   length = 4; \
2699   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2700   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2701   f_ICCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2702   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2703   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2704   f_misc_null_3 = EXTRACT_LSB0_UINT (insn, 32, 11, 4); \
2705   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2706   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2707
2708 #define EXTRACT_IFMT_FTRA_VARS \
2709   UINT f_pack; \
2710   UINT f_flt_cc; \
2711   UINT f_FCCi_2_null; \
2712   UINT f_op; \
2713   UINT f_GRi; \
2714   UINT f_misc_null_3; \
2715   UINT f_ope4; \
2716   UINT f_GRj; \
2717   unsigned int length;
2718 #define EXTRACT_IFMT_FTRA_CODE \
2719   length = 4; \
2720   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2721   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2722   f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2723   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2724   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2725   f_misc_null_3 = EXTRACT_LSB0_UINT (insn, 32, 11, 4); \
2726   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2727   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2728
2729 #define EXTRACT_IFMT_FTNO_VARS \
2730   UINT f_pack; \
2731   UINT f_flt_cc; \
2732   UINT f_FCCi_2_null; \
2733   UINT f_op; \
2734   UINT f_GRi_null; \
2735   UINT f_misc_null_3; \
2736   UINT f_ope4; \
2737   UINT f_GRj_null; \
2738   unsigned int length;
2739 #define EXTRACT_IFMT_FTNO_CODE \
2740   length = 4; \
2741   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2742   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2743   f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2744   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2745   f_GRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2746   f_misc_null_3 = EXTRACT_LSB0_UINT (insn, 32, 11, 4); \
2747   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2748   f_GRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2749
2750 #define EXTRACT_IFMT_FTNE_VARS \
2751   UINT f_pack; \
2752   UINT f_flt_cc; \
2753   UINT f_FCCi_2; \
2754   UINT f_op; \
2755   UINT f_GRi; \
2756   UINT f_misc_null_3; \
2757   UINT f_ope4; \
2758   UINT f_GRj; \
2759   unsigned int length;
2760 #define EXTRACT_IFMT_FTNE_CODE \
2761   length = 4; \
2762   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2763   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2764   f_FCCi_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_misc_null_3 = EXTRACT_LSB0_UINT (insn, 32, 11, 4); \
2768   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2769   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2770
2771 #define EXTRACT_IFMT_TIRA_VARS \
2772   UINT f_pack; \
2773   UINT f_int_cc; \
2774   UINT f_ICCi_2_null; \
2775   UINT f_op; \
2776   UINT f_GRi; \
2777   INT f_d12; \
2778   unsigned int length;
2779 #define EXTRACT_IFMT_TIRA_CODE \
2780   length = 4; \
2781   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2782   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2783   f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2784   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2785   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2786   f_d12 = EXTRACT_LSB0_INT (insn, 32, 11, 12); \
2787
2788 #define EXTRACT_IFMT_TINO_VARS \
2789   UINT f_pack; \
2790   UINT f_int_cc; \
2791   UINT f_ICCi_2_null; \
2792   UINT f_op; \
2793   UINT f_GRi_null; \
2794   UINT f_s12_null; \
2795   unsigned int length;
2796 #define EXTRACT_IFMT_TINO_CODE \
2797   length = 4; \
2798   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2799   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2800   f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2801   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2802   f_GRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2803   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2804
2805 #define EXTRACT_IFMT_TIEQ_VARS \
2806   UINT f_pack; \
2807   UINT f_int_cc; \
2808   UINT f_ICCi_2; \
2809   UINT f_op; \
2810   UINT f_GRi; \
2811   INT f_d12; \
2812   unsigned int length;
2813 #define EXTRACT_IFMT_TIEQ_CODE \
2814   length = 4; \
2815   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2816   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2817   f_ICCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2818   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2819   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2820   f_d12 = EXTRACT_LSB0_INT (insn, 32, 11, 12); \
2821
2822 #define EXTRACT_IFMT_FTIRA_VARS \
2823   UINT f_pack; \
2824   UINT f_flt_cc; \
2825   UINT f_ICCi_2_null; \
2826   UINT f_op; \
2827   UINT f_GRi; \
2828   INT f_d12; \
2829   unsigned int length;
2830 #define EXTRACT_IFMT_FTIRA_CODE \
2831   length = 4; \
2832   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2833   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2834   f_ICCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2835   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2836   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2837   f_d12 = EXTRACT_LSB0_INT (insn, 32, 11, 12); \
2838
2839 #define EXTRACT_IFMT_FTINO_VARS \
2840   UINT f_pack; \
2841   UINT f_flt_cc; \
2842   UINT f_FCCi_2_null; \
2843   UINT f_op; \
2844   UINT f_GRi_null; \
2845   UINT f_s12_null; \
2846   unsigned int length;
2847 #define EXTRACT_IFMT_FTINO_CODE \
2848   length = 4; \
2849   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2850   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2851   f_FCCi_2_null = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2852   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2853   f_GRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2854   f_s12_null = EXTRACT_LSB0_UINT (insn, 32, 11, 12); \
2855
2856 #define EXTRACT_IFMT_FTINE_VARS \
2857   UINT f_pack; \
2858   UINT f_flt_cc; \
2859   UINT f_FCCi_2; \
2860   UINT f_op; \
2861   UINT f_GRi; \
2862   INT f_d12; \
2863   unsigned int length;
2864 #define EXTRACT_IFMT_FTINE_CODE \
2865   length = 4; \
2866   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2867   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2868   f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2869   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2870   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2871   f_d12 = EXTRACT_LSB0_INT (insn, 32, 11, 12); \
2872
2873 #define EXTRACT_IFMT_BREAK_VARS \
2874   UINT f_pack; \
2875   UINT f_rd_null; \
2876   UINT f_op; \
2877   UINT f_rs_null; \
2878   UINT f_misc_null_3; \
2879   UINT f_ope4; \
2880   UINT f_GRj_null; \
2881   unsigned int length;
2882 #define EXTRACT_IFMT_BREAK_CODE \
2883   length = 4; \
2884   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2885   f_rd_null = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
2886   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2887   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2888   f_misc_null_3 = EXTRACT_LSB0_UINT (insn, 32, 11, 4); \
2889   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
2890   f_GRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
2891
2892 #define EXTRACT_IFMT_ANDCR_VARS \
2893   UINT f_pack; \
2894   UINT f_misc_null_6; \
2895   UINT f_CRk; \
2896   UINT f_op; \
2897   UINT f_misc_null_7; \
2898   UINT f_CRi; \
2899   UINT f_ope1; \
2900   UINT f_misc_null_8; \
2901   UINT f_CRj; \
2902   unsigned int length;
2903 #define EXTRACT_IFMT_ANDCR_CODE \
2904   length = 4; \
2905   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2906   f_misc_null_6 = EXTRACT_LSB0_UINT (insn, 32, 30, 3); \
2907   f_CRk = EXTRACT_LSB0_UINT (insn, 32, 27, 3); \
2908   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2909   f_misc_null_7 = EXTRACT_LSB0_UINT (insn, 32, 17, 3); \
2910   f_CRi = EXTRACT_LSB0_UINT (insn, 32, 14, 3); \
2911   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
2912   f_misc_null_8 = EXTRACT_LSB0_UINT (insn, 32, 5, 3); \
2913   f_CRj = EXTRACT_LSB0_UINT (insn, 32, 2, 3); \
2914
2915 #define EXTRACT_IFMT_NOTCR_VARS \
2916   UINT f_pack; \
2917   UINT f_misc_null_6; \
2918   UINT f_CRk; \
2919   UINT f_op; \
2920   UINT f_rs_null; \
2921   UINT f_ope1; \
2922   UINT f_misc_null_8; \
2923   UINT f_CRj; \
2924   unsigned int length;
2925 #define EXTRACT_IFMT_NOTCR_CODE \
2926   length = 4; \
2927   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2928   f_misc_null_6 = EXTRACT_LSB0_UINT (insn, 32, 30, 3); \
2929   f_CRk = EXTRACT_LSB0_UINT (insn, 32, 27, 3); \
2930   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2931   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
2932   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
2933   f_misc_null_8 = EXTRACT_LSB0_UINT (insn, 32, 5, 3); \
2934   f_CRj = EXTRACT_LSB0_UINT (insn, 32, 2, 3); \
2935
2936 #define EXTRACT_IFMT_CKRA_VARS \
2937   UINT f_pack; \
2938   UINT f_int_cc; \
2939   SI f_CRj_int; \
2940   UINT f_op; \
2941   UINT f_misc_null_5; \
2942   UINT f_ICCi_3_null; \
2943   unsigned int length;
2944 #define EXTRACT_IFMT_CKRA_CODE \
2945   length = 4; \
2946   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2947   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2948   f_CRj_int = ((EXTRACT_LSB0_UINT (insn, 32, 26, 2)) + (4)); \
2949   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2950   f_misc_null_5 = EXTRACT_LSB0_UINT (insn, 32, 17, 16); \
2951   f_ICCi_3_null = EXTRACT_LSB0_UINT (insn, 32, 1, 2); \
2952
2953 #define EXTRACT_IFMT_CKEQ_VARS \
2954   UINT f_pack; \
2955   UINT f_int_cc; \
2956   SI f_CRj_int; \
2957   UINT f_op; \
2958   UINT f_misc_null_5; \
2959   UINT f_ICCi_3; \
2960   unsigned int length;
2961 #define EXTRACT_IFMT_CKEQ_CODE \
2962   length = 4; \
2963   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2964   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2965   f_CRj_int = ((EXTRACT_LSB0_UINT (insn, 32, 26, 2)) + (4)); \
2966   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2967   f_misc_null_5 = EXTRACT_LSB0_UINT (insn, 32, 17, 16); \
2968   f_ICCi_3 = EXTRACT_LSB0_UINT (insn, 32, 1, 2); \
2969
2970 #define EXTRACT_IFMT_FCKRA_VARS \
2971   UINT f_pack; \
2972   UINT f_flt_cc; \
2973   UINT f_CRj_float; \
2974   UINT f_op; \
2975   UINT f_misc_null_5; \
2976   UINT f_FCCi_3; \
2977   unsigned int length;
2978 #define EXTRACT_IFMT_FCKRA_CODE \
2979   length = 4; \
2980   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
2981   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
2982   f_CRj_float = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
2983   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
2984   f_misc_null_5 = EXTRACT_LSB0_UINT (insn, 32, 17, 16); \
2985   f_FCCi_3 = EXTRACT_LSB0_UINT (insn, 32, 1, 2); \
2986
2987 #define EXTRACT_IFMT_CCKRA_VARS \
2988   UINT f_pack; \
2989   UINT f_int_cc; \
2990   SI f_CRj_int; \
2991   UINT f_op; \
2992   UINT f_rs_null; \
2993   UINT f_CCi; \
2994   UINT f_cond; \
2995   UINT f_ope4; \
2996   UINT f_misc_null_9; \
2997   UINT f_ICCi_3_null; \
2998   unsigned int length;
2999 #define EXTRACT_IFMT_CCKRA_CODE \
3000   length = 4; \
3001   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3002   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3003   f_CRj_int = ((EXTRACT_LSB0_UINT (insn, 32, 26, 2)) + (4)); \
3004   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3005   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3006   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3007   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3008   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3009   f_misc_null_9 = EXTRACT_LSB0_UINT (insn, 32, 5, 4); \
3010   f_ICCi_3_null = EXTRACT_LSB0_UINT (insn, 32, 1, 2); \
3011
3012 #define EXTRACT_IFMT_CCKEQ_VARS \
3013   UINT f_pack; \
3014   UINT f_int_cc; \
3015   SI f_CRj_int; \
3016   UINT f_op; \
3017   UINT f_rs_null; \
3018   UINT f_CCi; \
3019   UINT f_cond; \
3020   UINT f_ope4; \
3021   UINT f_misc_null_9; \
3022   UINT f_ICCi_3; \
3023   unsigned int length;
3024 #define EXTRACT_IFMT_CCKEQ_CODE \
3025   length = 4; \
3026   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3027   f_int_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3028   f_CRj_int = ((EXTRACT_LSB0_UINT (insn, 32, 26, 2)) + (4)); \
3029   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3030   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3031   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3032   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3033   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3034   f_misc_null_9 = EXTRACT_LSB0_UINT (insn, 32, 5, 4); \
3035   f_ICCi_3 = EXTRACT_LSB0_UINT (insn, 32, 1, 2); \
3036
3037 #define EXTRACT_IFMT_CFCKRA_VARS \
3038   UINT f_pack; \
3039   UINT f_flt_cc; \
3040   UINT f_CRj_float; \
3041   UINT f_op; \
3042   UINT f_rs_null; \
3043   UINT f_CCi; \
3044   UINT f_cond; \
3045   UINT f_ope4; \
3046   UINT f_misc_null_9; \
3047   UINT f_FCCi_3_null; \
3048   unsigned int length;
3049 #define EXTRACT_IFMT_CFCKRA_CODE \
3050   length = 4; \
3051   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3052   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3053   f_CRj_float = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
3054   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3055   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3056   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3057   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3058   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3059   f_misc_null_9 = EXTRACT_LSB0_UINT (insn, 32, 5, 4); \
3060   f_FCCi_3_null = EXTRACT_LSB0_UINT (insn, 32, 1, 2); \
3061
3062 #define EXTRACT_IFMT_CFCKNE_VARS \
3063   UINT f_pack; \
3064   UINT f_flt_cc; \
3065   UINT f_CRj_float; \
3066   UINT f_op; \
3067   UINT f_rs_null; \
3068   UINT f_CCi; \
3069   UINT f_cond; \
3070   UINT f_ope4; \
3071   UINT f_misc_null_9; \
3072   UINT f_FCCi_3; \
3073   unsigned int length;
3074 #define EXTRACT_IFMT_CFCKNE_CODE \
3075   length = 4; \
3076   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3077   f_flt_cc = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3078   f_CRj_float = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
3079   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3080   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3081   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3082   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3083   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3084   f_misc_null_9 = EXTRACT_LSB0_UINT (insn, 32, 5, 4); \
3085   f_FCCi_3 = EXTRACT_LSB0_UINT (insn, 32, 1, 2); \
3086
3087 #define EXTRACT_IFMT_CJMPL_VARS \
3088   UINT f_pack; \
3089   UINT f_misc_null_1; \
3090   UINT f_LI_off; \
3091   UINT f_op; \
3092   UINT f_GRi; \
3093   UINT f_CCi; \
3094   UINT f_cond; \
3095   UINT f_ope4; \
3096   UINT f_GRj; \
3097   unsigned int length;
3098 #define EXTRACT_IFMT_CJMPL_CODE \
3099   length = 4; \
3100   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3101   f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
3102   f_LI_off = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
3103   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3104   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3105   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3106   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3107   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3108   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3109
3110 #define EXTRACT_IFMT_CCALLL_VARS \
3111   UINT f_pack; \
3112   UINT f_misc_null_1; \
3113   UINT f_LI_on; \
3114   UINT f_op; \
3115   UINT f_GRi; \
3116   UINT f_CCi; \
3117   UINT f_cond; \
3118   UINT f_ope4; \
3119   UINT f_GRj; \
3120   unsigned int length;
3121 #define EXTRACT_IFMT_CCALLL_CODE \
3122   length = 4; \
3123   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3124   f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
3125   f_LI_on = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
3126   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3127   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3128   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3129   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3130   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3131   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3132
3133 #define EXTRACT_IFMT_ICEI_VARS \
3134   UINT f_pack; \
3135   UINT f_misc_null_1; \
3136   UINT f_ae; \
3137   UINT f_op; \
3138   UINT f_GRi; \
3139   UINT f_ope1; \
3140   UINT f_GRj; \
3141   unsigned int length;
3142 #define EXTRACT_IFMT_ICEI_CODE \
3143   length = 4; \
3144   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3145   f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
3146   f_ae = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
3147   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3148   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3149   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3150   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3151
3152 #define EXTRACT_IFMT_ICPL_VARS \
3153   UINT f_pack; \
3154   UINT f_misc_null_1; \
3155   UINT f_lock; \
3156   UINT f_op; \
3157   UINT f_GRi; \
3158   UINT f_ope1; \
3159   UINT f_GRj; \
3160   unsigned int length;
3161 #define EXTRACT_IFMT_ICPL_CODE \
3162   length = 4; \
3163   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3164   f_misc_null_1 = EXTRACT_LSB0_UINT (insn, 32, 30, 5); \
3165   f_lock = EXTRACT_LSB0_UINT (insn, 32, 25, 1); \
3166   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3167   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3168   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3169   f_GRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3170
3171 #define EXTRACT_IFMT_ICUL_VARS \
3172   UINT f_pack; \
3173   UINT f_rd_null; \
3174   UINT f_op; \
3175   UINT f_GRi; \
3176   UINT f_ope1; \
3177   UINT f_GRj_null; \
3178   unsigned int length;
3179 #define EXTRACT_IFMT_ICUL_CODE \
3180   length = 4; \
3181   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3182   f_rd_null = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3183   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3184   f_GRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3185   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3186   f_GRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3187
3188 #define EXTRACT_IFMT_BAR_VARS \
3189   UINT f_pack; \
3190   UINT f_rd_null; \
3191   UINT f_op; \
3192   UINT f_rs_null; \
3193   UINT f_ope1; \
3194   UINT f_GRj_null; \
3195   unsigned int length;
3196 #define EXTRACT_IFMT_BAR_CODE \
3197   length = 4; \
3198   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3199   f_rd_null = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3200   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3201   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3202   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3203   f_GRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3204
3205 #define EXTRACT_IFMT_COP1_VARS \
3206   UINT f_pack; \
3207   UINT f_CPRk; \
3208   UINT f_op; \
3209   UINT f_CPRi; \
3210   INT f_s6_1; \
3211   UINT f_CPRj; \
3212   unsigned int length;
3213 #define EXTRACT_IFMT_COP1_CODE \
3214   length = 4; \
3215   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3216   f_CPRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3217   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3218   f_CPRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3219   f_s6_1 = EXTRACT_LSB0_INT (insn, 32, 11, 6); \
3220   f_CPRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3221
3222 #define EXTRACT_IFMT_CLRGR_VARS \
3223   UINT f_pack; \
3224   UINT f_GRk; \
3225   UINT f_op; \
3226   UINT f_rs_null; \
3227   UINT f_ope1; \
3228   UINT f_GRj_null; \
3229   unsigned int length;
3230 #define EXTRACT_IFMT_CLRGR_CODE \
3231   length = 4; \
3232   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3233   f_GRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3234   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3235   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3236   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3237   f_GRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3238
3239 #define EXTRACT_IFMT_CLRFR_VARS \
3240   UINT f_pack; \
3241   UINT f_FRk; \
3242   UINT f_op; \
3243   UINT f_rs_null; \
3244   UINT f_ope1; \
3245   UINT f_GRj_null; \
3246   unsigned int length;
3247 #define EXTRACT_IFMT_CLRFR_CODE \
3248   length = 4; \
3249   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3250   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3251   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3252   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3253   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3254   f_GRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3255
3256 #define EXTRACT_IFMT_FITOS_VARS \
3257   UINT f_pack; \
3258   UINT f_FRk; \
3259   UINT f_op; \
3260   UINT f_rs_null; \
3261   UINT f_ope1; \
3262   UINT f_FRj; \
3263   unsigned int length;
3264 #define EXTRACT_IFMT_FITOS_CODE \
3265   length = 4; \
3266   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3267   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3268   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3269   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3270   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3271   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3272
3273 #define EXTRACT_IFMT_FSTOI_VARS \
3274   UINT f_pack; \
3275   UINT f_FRk; \
3276   UINT f_op; \
3277   UINT f_rs_null; \
3278   UINT f_ope1; \
3279   UINT f_FRj; \
3280   unsigned int length;
3281 #define EXTRACT_IFMT_FSTOI_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_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3288   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3289
3290 #define EXTRACT_IFMT_FITOD_VARS \
3291   UINT f_pack; \
3292   UINT f_FRk; \
3293   UINT f_op; \
3294   UINT f_rs_null; \
3295   UINT f_ope1; \
3296   UINT f_FRj; \
3297   unsigned int length;
3298 #define EXTRACT_IFMT_FITOD_CODE \
3299   length = 4; \
3300   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3301   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3302   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3303   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3304   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3305   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3306
3307 #define EXTRACT_IFMT_FDTOI_VARS \
3308   UINT f_pack; \
3309   UINT f_FRk; \
3310   UINT f_op; \
3311   UINT f_rs_null; \
3312   UINT f_ope1; \
3313   UINT f_FRj; \
3314   unsigned int length;
3315 #define EXTRACT_IFMT_FDTOI_CODE \
3316   length = 4; \
3317   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3318   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3319   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3320   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3321   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3322   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3323
3324 #define EXTRACT_IFMT_CFITOS_VARS \
3325   UINT f_pack; \
3326   UINT f_FRk; \
3327   UINT f_op; \
3328   UINT f_rs_null; \
3329   UINT f_CCi; \
3330   UINT f_cond; \
3331   UINT f_ope4; \
3332   UINT f_FRj; \
3333   unsigned int length;
3334 #define EXTRACT_IFMT_CFITOS_CODE \
3335   length = 4; \
3336   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3337   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3338   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3339   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3340   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3341   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3342   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3343   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3344
3345 #define EXTRACT_IFMT_CFSTOI_VARS \
3346   UINT f_pack; \
3347   UINT f_FRk; \
3348   UINT f_op; \
3349   UINT f_rs_null; \
3350   UINT f_CCi; \
3351   UINT f_cond; \
3352   UINT f_ope4; \
3353   UINT f_FRj; \
3354   unsigned int length;
3355 #define EXTRACT_IFMT_CFSTOI_CODE \
3356   length = 4; \
3357   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3358   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3359   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3360   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3361   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3362   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3363   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3364   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3365
3366 #define EXTRACT_IFMT_FMOVS_VARS \
3367   UINT f_pack; \
3368   UINT f_FRk; \
3369   UINT f_op; \
3370   UINT f_rs_null; \
3371   UINT f_ope1; \
3372   UINT f_FRj; \
3373   unsigned int length;
3374 #define EXTRACT_IFMT_FMOVS_CODE \
3375   length = 4; \
3376   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3377   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3378   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3379   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3380   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3381   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3382
3383 #define EXTRACT_IFMT_FMOVD_VARS \
3384   UINT f_pack; \
3385   UINT f_FRk; \
3386   UINT f_op; \
3387   UINT f_rs_null; \
3388   UINT f_ope1; \
3389   UINT f_FRj; \
3390   unsigned int length;
3391 #define EXTRACT_IFMT_FMOVD_CODE \
3392   length = 4; \
3393   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3394   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3395   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3396   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3397   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3398   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3399
3400 #define EXTRACT_IFMT_CFMOVS_VARS \
3401   UINT f_pack; \
3402   UINT f_FRk; \
3403   UINT f_op; \
3404   UINT f_rs_null; \
3405   UINT f_CCi; \
3406   UINT f_cond; \
3407   UINT f_ope4; \
3408   UINT f_FRj; \
3409   unsigned int length;
3410 #define EXTRACT_IFMT_CFMOVS_CODE \
3411   length = 4; \
3412   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3413   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3414   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3415   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3416   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3417   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3418   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3419   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3420
3421 #define EXTRACT_IFMT_FADDS_VARS \
3422   UINT f_pack; \
3423   UINT f_FRk; \
3424   UINT f_op; \
3425   UINT f_FRi; \
3426   UINT f_ope1; \
3427   UINT f_FRj; \
3428   unsigned int length;
3429 #define EXTRACT_IFMT_FADDS_CODE \
3430   length = 4; \
3431   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3432   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3433   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3434   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3435   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3436   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3437
3438 #define EXTRACT_IFMT_FADDD_VARS \
3439   UINT f_pack; \
3440   UINT f_FRk; \
3441   UINT f_op; \
3442   UINT f_FRi; \
3443   UINT f_ope1; \
3444   UINT f_FRj; \
3445   unsigned int length;
3446 #define EXTRACT_IFMT_FADDD_CODE \
3447   length = 4; \
3448   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3449   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3450   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3451   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3452   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3453   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3454
3455 #define EXTRACT_IFMT_CFADDS_VARS \
3456   UINT f_pack; \
3457   UINT f_FRk; \
3458   UINT f_op; \
3459   UINT f_FRi; \
3460   UINT f_CCi; \
3461   UINT f_cond; \
3462   UINT f_ope4; \
3463   UINT f_FRj; \
3464   unsigned int length;
3465 #define EXTRACT_IFMT_CFADDS_CODE \
3466   length = 4; \
3467   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3468   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3469   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3470   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3471   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3472   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3473   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3474   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3475
3476 #define EXTRACT_IFMT_FCMPS_VARS \
3477   UINT f_pack; \
3478   UINT f_cond_null; \
3479   UINT f_FCCi_2; \
3480   UINT f_op; \
3481   UINT f_FRi; \
3482   UINT f_ope1; \
3483   UINT f_FRj; \
3484   unsigned int length;
3485 #define EXTRACT_IFMT_FCMPS_CODE \
3486   length = 4; \
3487   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3488   f_cond_null = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3489   f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
3490   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3491   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3492   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3493   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3494
3495 #define EXTRACT_IFMT_FCMPD_VARS \
3496   UINT f_pack; \
3497   UINT f_cond_null; \
3498   UINT f_FCCi_2; \
3499   UINT f_op; \
3500   UINT f_FRi; \
3501   UINT f_ope1; \
3502   UINT f_FRj; \
3503   unsigned int length;
3504 #define EXTRACT_IFMT_FCMPD_CODE \
3505   length = 4; \
3506   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3507   f_cond_null = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3508   f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
3509   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3510   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3511   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3512   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3513
3514 #define EXTRACT_IFMT_CFCMPS_VARS \
3515   UINT f_pack; \
3516   UINT f_cond_null; \
3517   UINT f_FCCi_2; \
3518   UINT f_op; \
3519   UINT f_FRi; \
3520   UINT f_CCi; \
3521   UINT f_cond; \
3522   UINT f_ope4; \
3523   UINT f_FRj; \
3524   unsigned int length;
3525 #define EXTRACT_IFMT_CFCMPS_CODE \
3526   length = 4; \
3527   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3528   f_cond_null = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3529   f_FCCi_2 = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
3530   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3531   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3532   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3533   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3534   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3535   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3536
3537 #define EXTRACT_IFMT_MHSETLOS_VARS \
3538   UINT f_pack; \
3539   UINT f_FRk; \
3540   UINT f_op; \
3541   UINT f_ope1; \
3542   INT f_u12_h; \
3543   UINT f_u12_l; \
3544   INT f_u12; \
3545   unsigned int length;
3546 #define EXTRACT_IFMT_MHSETLOS_CODE \
3547   length = 4; \
3548   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3549   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3550   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3551   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3552   f_u12_h = EXTRACT_LSB0_INT (insn, 32, 17, 6); \
3553   f_u12_l = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3554 {\
3555   f_u12 = ((((f_u12_h) << (6))) | (f_u12_l));\
3556 }\
3557
3558 #define EXTRACT_IFMT_MHSETHIS_VARS \
3559   UINT f_pack; \
3560   UINT f_FRk; \
3561   UINT f_op; \
3562   UINT f_ope1; \
3563   INT f_u12_h; \
3564   UINT f_u12_l; \
3565   INT f_u12; \
3566   unsigned int length;
3567 #define EXTRACT_IFMT_MHSETHIS_CODE \
3568   length = 4; \
3569   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3570   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3571   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3572   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3573   f_u12_h = EXTRACT_LSB0_INT (insn, 32, 17, 6); \
3574   f_u12_l = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3575 {\
3576   f_u12 = ((((f_u12_h) << (6))) | (f_u12_l));\
3577 }\
3578
3579 #define EXTRACT_IFMT_MHDSETS_VARS \
3580   UINT f_pack; \
3581   UINT f_FRk; \
3582   UINT f_op; \
3583   UINT f_ope1; \
3584   INT f_u12_h; \
3585   UINT f_u12_l; \
3586   INT f_u12; \
3587   unsigned int length;
3588 #define EXTRACT_IFMT_MHDSETS_CODE \
3589   length = 4; \
3590   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3591   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3592   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3593   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3594   f_u12_h = EXTRACT_LSB0_INT (insn, 32, 17, 6); \
3595   f_u12_l = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3596 {\
3597   f_u12 = ((((f_u12_h) << (6))) | (f_u12_l));\
3598 }\
3599
3600 #define EXTRACT_IFMT_MHSETLOH_VARS \
3601   UINT f_pack; \
3602   UINT f_FRk; \
3603   UINT f_op; \
3604   UINT f_FRi_null; \
3605   UINT f_ope1; \
3606   UINT f_misc_null_11; \
3607   INT f_s5; \
3608   unsigned int length;
3609 #define EXTRACT_IFMT_MHSETLOH_CODE \
3610   length = 4; \
3611   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3612   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3613   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3614   f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3615   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3616   f_misc_null_11 = EXTRACT_LSB0_UINT (insn, 32, 5, 1); \
3617   f_s5 = EXTRACT_LSB0_INT (insn, 32, 4, 5); \
3618
3619 #define EXTRACT_IFMT_MHSETHIH_VARS \
3620   UINT f_pack; \
3621   UINT f_FRk; \
3622   UINT f_op; \
3623   UINT f_FRi_null; \
3624   UINT f_ope1; \
3625   UINT f_misc_null_11; \
3626   INT f_s5; \
3627   unsigned int length;
3628 #define EXTRACT_IFMT_MHSETHIH_CODE \
3629   length = 4; \
3630   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3631   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3632   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3633   f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3634   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3635   f_misc_null_11 = EXTRACT_LSB0_UINT (insn, 32, 5, 1); \
3636   f_s5 = EXTRACT_LSB0_INT (insn, 32, 4, 5); \
3637
3638 #define EXTRACT_IFMT_MHDSETH_VARS \
3639   UINT f_pack; \
3640   UINT f_FRk; \
3641   UINT f_op; \
3642   UINT f_FRi_null; \
3643   UINT f_ope1; \
3644   UINT f_misc_null_11; \
3645   INT f_s5; \
3646   unsigned int length;
3647 #define EXTRACT_IFMT_MHDSETH_CODE \
3648   length = 4; \
3649   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3650   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3651   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3652   f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3653   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3654   f_misc_null_11 = EXTRACT_LSB0_UINT (insn, 32, 5, 1); \
3655   f_s5 = EXTRACT_LSB0_INT (insn, 32, 4, 5); \
3656
3657 #define EXTRACT_IFMT_MAND_VARS \
3658   UINT f_pack; \
3659   UINT f_FRk; \
3660   UINT f_op; \
3661   UINT f_FRi; \
3662   UINT f_ope1; \
3663   UINT f_FRj; \
3664   unsigned int length;
3665 #define EXTRACT_IFMT_MAND_CODE \
3666   length = 4; \
3667   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3668   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3669   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3670   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3671   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3672   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3673
3674 #define EXTRACT_IFMT_CMAND_VARS \
3675   UINT f_pack; \
3676   UINT f_FRk; \
3677   UINT f_op; \
3678   UINT f_FRi; \
3679   UINT f_CCi; \
3680   UINT f_cond; \
3681   UINT f_ope4; \
3682   UINT f_FRj; \
3683   unsigned int length;
3684 #define EXTRACT_IFMT_CMAND_CODE \
3685   length = 4; \
3686   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3687   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3688   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3689   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3690   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3691   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3692   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3693   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3694
3695 #define EXTRACT_IFMT_MNOT_VARS \
3696   UINT f_pack; \
3697   UINT f_FRk; \
3698   UINT f_op; \
3699   UINT f_rs_null; \
3700   UINT f_ope1; \
3701   UINT f_FRj; \
3702   unsigned int length;
3703 #define EXTRACT_IFMT_MNOT_CODE \
3704   length = 4; \
3705   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3706   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3707   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3708   f_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3709   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3710   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3711
3712 #define EXTRACT_IFMT_CMNOT_VARS \
3713   UINT f_pack; \
3714   UINT f_FRk; \
3715   UINT f_op; \
3716   UINT f_rs_null; \
3717   UINT f_CCi; \
3718   UINT f_cond; \
3719   UINT f_ope4; \
3720   UINT f_FRj; \
3721   unsigned int length;
3722 #define EXTRACT_IFMT_CMNOT_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_rs_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3728   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3729   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3730   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3731   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3732
3733 #define EXTRACT_IFMT_MROTLI_VARS \
3734   UINT f_pack; \
3735   UINT f_FRk; \
3736   UINT f_op; \
3737   UINT f_FRi; \
3738   UINT f_ope1; \
3739   UINT f_u6; \
3740   unsigned int length;
3741 #define EXTRACT_IFMT_MROTLI_CODE \
3742   length = 4; \
3743   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3744   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3745   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3746   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3747   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3748   f_u6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3749
3750 #define EXTRACT_IFMT_MCUT_VARS \
3751   UINT f_pack; \
3752   UINT f_FRk; \
3753   UINT f_op; \
3754   UINT f_ACC40Si; \
3755   UINT f_ope1; \
3756   UINT f_FRj; \
3757   unsigned int length;
3758 #define EXTRACT_IFMT_MCUT_CODE \
3759   length = 4; \
3760   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3761   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3762   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3763   f_ACC40Si = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3764   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3765   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3766
3767 #define EXTRACT_IFMT_MCUTI_VARS \
3768   UINT f_pack; \
3769   UINT f_FRk; \
3770   UINT f_op; \
3771   UINT f_ACC40Si; \
3772   UINT f_ope1; \
3773   INT f_s6; \
3774   unsigned int length;
3775 #define EXTRACT_IFMT_MCUTI_CODE \
3776   length = 4; \
3777   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3778   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3779   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3780   f_ACC40Si = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3781   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3782   f_s6 = EXTRACT_LSB0_INT (insn, 32, 5, 6); \
3783
3784 #define EXTRACT_IFMT_MDCUTSSI_VARS \
3785   UINT f_pack; \
3786   UINT f_FRk; \
3787   UINT f_op; \
3788   UINT f_ACC40Si; \
3789   UINT f_ope1; \
3790   INT f_s6; \
3791   unsigned int length;
3792 #define EXTRACT_IFMT_MDCUTSSI_CODE \
3793   length = 4; \
3794   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3795   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3796   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3797   f_ACC40Si = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3798   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3799   f_s6 = EXTRACT_LSB0_INT (insn, 32, 5, 6); \
3800
3801 #define EXTRACT_IFMT_MDROTLI_VARS \
3802   UINT f_pack; \
3803   UINT f_FRk; \
3804   UINT f_op; \
3805   UINT f_FRi; \
3806   UINT f_ope1; \
3807   INT f_s6; \
3808   unsigned int length;
3809 #define EXTRACT_IFMT_MDROTLI_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 = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3815   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3816   f_s6 = EXTRACT_LSB0_INT (insn, 32, 5, 6); \
3817
3818 #define EXTRACT_IFMT_MQSATHS_VARS \
3819   UINT f_pack; \
3820   UINT f_FRk; \
3821   UINT f_op; \
3822   UINT f_FRi; \
3823   UINT f_ope1; \
3824   UINT f_FRj; \
3825   unsigned int length;
3826 #define EXTRACT_IFMT_MQSATHS_CODE \
3827   length = 4; \
3828   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3829   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3830   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3831   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3832   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3833   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3834
3835 #define EXTRACT_IFMT_MCMPSH_VARS \
3836   UINT f_pack; \
3837   UINT f_cond_null; \
3838   UINT f_FCCk; \
3839   UINT f_op; \
3840   UINT f_FRi; \
3841   UINT f_ope1; \
3842   UINT f_FRj; \
3843   unsigned int length;
3844 #define EXTRACT_IFMT_MCMPSH_CODE \
3845   length = 4; \
3846   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3847   f_cond_null = EXTRACT_LSB0_UINT (insn, 32, 30, 4); \
3848   f_FCCk = EXTRACT_LSB0_UINT (insn, 32, 26, 2); \
3849   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3850   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3851   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3852   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3853
3854 #define EXTRACT_IFMT_MABSHS_VARS \
3855   UINT f_pack; \
3856   UINT f_FRk; \
3857   UINT f_op; \
3858   UINT f_FRi_null; \
3859   UINT f_ope1; \
3860   UINT f_FRj; \
3861   unsigned int length;
3862 #define EXTRACT_IFMT_MABSHS_CODE \
3863   length = 4; \
3864   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3865   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3866   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3867   f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3868   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3869   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3870
3871 #define EXTRACT_IFMT_CMQADDHSS_VARS \
3872   UINT f_pack; \
3873   UINT f_FRk; \
3874   UINT f_op; \
3875   UINT f_FRi; \
3876   UINT f_CCi; \
3877   UINT f_cond; \
3878   UINT f_ope4; \
3879   UINT f_FRj; \
3880   unsigned int length;
3881 #define EXTRACT_IFMT_CMQADDHSS_CODE \
3882   length = 4; \
3883   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3884   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3885   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3886   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3887   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3888   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3889   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3890   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3891
3892 #define EXTRACT_IFMT_MADDACCS_VARS \
3893   UINT f_pack; \
3894   UINT f_ACC40Sk; \
3895   UINT f_op; \
3896   UINT f_ACC40Si; \
3897   UINT f_ope1; \
3898   UINT f_ACCj_null; \
3899   unsigned int length;
3900 #define EXTRACT_IFMT_MADDACCS_CODE \
3901   length = 4; \
3902   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3903   f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3904   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3905   f_ACC40Si = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3906   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3907   f_ACCj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3908
3909 #define EXTRACT_IFMT_MMULHS_VARS \
3910   UINT f_pack; \
3911   UINT f_ACC40Sk; \
3912   UINT f_op; \
3913   UINT f_FRi; \
3914   UINT f_ope1; \
3915   UINT f_FRj; \
3916   unsigned int length;
3917 #define EXTRACT_IFMT_MMULHS_CODE \
3918   length = 4; \
3919   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3920   f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3921   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3922   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3923   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3924   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3925
3926 #define EXTRACT_IFMT_CMMULHS_VARS \
3927   UINT f_pack; \
3928   UINT f_ACC40Sk; \
3929   UINT f_op; \
3930   UINT f_FRi; \
3931   UINT f_CCi; \
3932   UINT f_cond; \
3933   UINT f_ope4; \
3934   UINT f_FRj; \
3935   unsigned int length;
3936 #define EXTRACT_IFMT_CMMULHS_CODE \
3937   length = 4; \
3938   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3939   f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3940   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3941   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3942   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3943   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3944   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3945   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3946
3947 #define EXTRACT_IFMT_MQMULHS_VARS \
3948   UINT f_pack; \
3949   UINT f_ACC40Sk; \
3950   UINT f_op; \
3951   UINT f_FRi; \
3952   UINT f_ope1; \
3953   UINT f_FRj; \
3954   unsigned int length;
3955 #define EXTRACT_IFMT_MQMULHS_CODE \
3956   length = 4; \
3957   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3958   f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3959   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3960   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3961   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
3962   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3963
3964 #define EXTRACT_IFMT_CMQMULHS_VARS \
3965   UINT f_pack; \
3966   UINT f_ACC40Sk; \
3967   UINT f_op; \
3968   UINT f_FRi; \
3969   UINT f_CCi; \
3970   UINT f_cond; \
3971   UINT f_ope4; \
3972   UINT f_FRj; \
3973   unsigned int length;
3974 #define EXTRACT_IFMT_CMQMULHS_CODE \
3975   length = 4; \
3976   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3977   f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3978   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3979   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3980   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
3981   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
3982   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
3983   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
3984
3985 #define EXTRACT_IFMT_MMACHU_VARS \
3986   UINT f_pack; \
3987   UINT f_ACC40Uk; \
3988   UINT f_op; \
3989   UINT f_FRi; \
3990   UINT f_ope1; \
3991   UINT f_FRj; \
3992   unsigned int length;
3993 #define EXTRACT_IFMT_MMACHU_CODE \
3994   length = 4; \
3995   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
3996   f_ACC40Uk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
3997   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
3998   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
3999   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4000   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4001
4002 #define EXTRACT_IFMT_CMMACHU_VARS \
4003   UINT f_pack; \
4004   UINT f_ACC40Uk; \
4005   UINT f_op; \
4006   UINT f_FRi; \
4007   UINT f_CCi; \
4008   UINT f_cond; \
4009   UINT f_ope4; \
4010   UINT f_FRj; \
4011   unsigned int length;
4012 #define EXTRACT_IFMT_CMMACHU_CODE \
4013   length = 4; \
4014   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4015   f_ACC40Uk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4016   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4017   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4018   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4019   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4020   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4021   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4022
4023 #define EXTRACT_IFMT_MQMACHU_VARS \
4024   UINT f_pack; \
4025   UINT f_ACC40Uk; \
4026   UINT f_op; \
4027   UINT f_FRi; \
4028   UINT f_ope1; \
4029   UINT f_FRj; \
4030   unsigned int length;
4031 #define EXTRACT_IFMT_MQMACHU_CODE \
4032   length = 4; \
4033   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4034   f_ACC40Uk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4035   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4036   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4037   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4038   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4039
4040 #define EXTRACT_IFMT_CMQMACHU_VARS \
4041   UINT f_pack; \
4042   UINT f_ACC40Uk; \
4043   UINT f_op; \
4044   UINT f_FRi; \
4045   UINT f_CCi; \
4046   UINT f_cond; \
4047   UINT f_ope4; \
4048   UINT f_FRj; \
4049   unsigned int length;
4050 #define EXTRACT_IFMT_CMQMACHU_CODE \
4051   length = 4; \
4052   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4053   f_ACC40Uk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4054   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4055   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4056   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4057   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4058   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4059   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4060
4061 #define EXTRACT_IFMT_CMEXPDHW_VARS \
4062   UINT f_pack; \
4063   UINT f_FRk; \
4064   UINT f_op; \
4065   UINT f_FRi; \
4066   UINT f_CCi; \
4067   UINT f_cond; \
4068   UINT f_ope4; \
4069   UINT f_u6; \
4070   unsigned int length;
4071 #define EXTRACT_IFMT_CMEXPDHW_CODE \
4072   length = 4; \
4073   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4074   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4075   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4076   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4077   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4078   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4079   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4080   f_u6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4081
4082 #define EXTRACT_IFMT_MEXPDHD_VARS \
4083   UINT f_pack; \
4084   UINT f_FRk; \
4085   UINT f_op; \
4086   UINT f_FRi; \
4087   UINT f_ope1; \
4088   UINT f_u6; \
4089   unsigned int length;
4090 #define EXTRACT_IFMT_MEXPDHD_CODE \
4091   length = 4; \
4092   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4093   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4094   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4095   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4096   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4097   f_u6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4098
4099 #define EXTRACT_IFMT_CMEXPDHD_VARS \
4100   UINT f_pack; \
4101   UINT f_FRk; \
4102   UINT f_op; \
4103   UINT f_FRi; \
4104   UINT f_CCi; \
4105   UINT f_cond; \
4106   UINT f_ope4; \
4107   UINT f_u6; \
4108   unsigned int length;
4109 #define EXTRACT_IFMT_CMEXPDHD_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 = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4115   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4116   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4117   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4118   f_u6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4119
4120 #define EXTRACT_IFMT_MUNPACKH_VARS \
4121   UINT f_pack; \
4122   UINT f_FRk; \
4123   UINT f_op; \
4124   UINT f_FRi; \
4125   UINT f_ope1; \
4126   UINT f_FRj_null; \
4127   unsigned int length;
4128 #define EXTRACT_IFMT_MUNPACKH_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 = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4134   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4135   f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4136
4137 #define EXTRACT_IFMT_MDUNPACKH_VARS \
4138   UINT f_pack; \
4139   UINT f_FRk; \
4140   UINT f_op; \
4141   UINT f_FRi; \
4142   UINT f_ope1; \
4143   UINT f_FRj_null; \
4144   unsigned int length;
4145 #define EXTRACT_IFMT_MDUNPACKH_CODE \
4146   length = 4; \
4147   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4148   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4149   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4150   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4151   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4152   f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4153
4154 #define EXTRACT_IFMT_MBTOH_VARS \
4155   UINT f_pack; \
4156   UINT f_FRk; \
4157   UINT f_op; \
4158   UINT f_FRi_null; \
4159   UINT f_ope1; \
4160   UINT f_FRj; \
4161   unsigned int length;
4162 #define EXTRACT_IFMT_MBTOH_CODE \
4163   length = 4; \
4164   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4165   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4166   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4167   f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4168   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4169   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4170
4171 #define EXTRACT_IFMT_CMBTOH_VARS \
4172   UINT f_pack; \
4173   UINT f_FRk; \
4174   UINT f_op; \
4175   UINT f_FRi_null; \
4176   UINT f_CCi; \
4177   UINT f_cond; \
4178   UINT f_ope4; \
4179   UINT f_FRj; \
4180   unsigned int length;
4181 #define EXTRACT_IFMT_CMBTOH_CODE \
4182   length = 4; \
4183   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4184   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4185   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4186   f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4187   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4188   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4189   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4190   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4191
4192 #define EXTRACT_IFMT_MHTOB_VARS \
4193   UINT f_pack; \
4194   UINT f_FRk; \
4195   UINT f_op; \
4196   UINT f_FRi_null; \
4197   UINT f_ope1; \
4198   UINT f_FRj; \
4199   unsigned int length;
4200 #define EXTRACT_IFMT_MHTOB_CODE \
4201   length = 4; \
4202   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4203   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4204   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4205   f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4206   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4207   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4208
4209 #define EXTRACT_IFMT_CMHTOB_VARS \
4210   UINT f_pack; \
4211   UINT f_FRk; \
4212   UINT f_op; \
4213   UINT f_FRi_null; \
4214   UINT f_CCi; \
4215   UINT f_cond; \
4216   UINT f_ope4; \
4217   UINT f_FRj; \
4218   unsigned int length;
4219 #define EXTRACT_IFMT_CMHTOB_CODE \
4220   length = 4; \
4221   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4222   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4223   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4224   f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4225   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4226   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4227   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4228   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4229
4230 #define EXTRACT_IFMT_CMBTOHE_VARS \
4231   UINT f_pack; \
4232   UINT f_FRk; \
4233   UINT f_op; \
4234   UINT f_FRi_null; \
4235   UINT f_CCi; \
4236   UINT f_cond; \
4237   UINT f_ope4; \
4238   UINT f_FRj; \
4239   unsigned int length;
4240 #define EXTRACT_IFMT_CMBTOHE_CODE \
4241   length = 4; \
4242   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4243   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4244   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4245   f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4246   f_CCi = EXTRACT_LSB0_UINT (insn, 32, 11, 3); \
4247   f_cond = EXTRACT_LSB0_UINT (insn, 32, 8, 1); \
4248   f_ope4 = EXTRACT_LSB0_UINT (insn, 32, 7, 2); \
4249   f_FRj = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4250
4251 #define EXTRACT_IFMT_MNOP_VARS \
4252   UINT f_pack; \
4253   UINT f_ACC40Sk; \
4254   UINT f_op; \
4255   UINT f_A; \
4256   UINT f_misc_null_10; \
4257   UINT f_ope1; \
4258   UINT f_FRj_null; \
4259   unsigned int length;
4260 #define EXTRACT_IFMT_MNOP_CODE \
4261   length = 4; \
4262   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4263   f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4264   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4265   f_A = EXTRACT_LSB0_UINT (insn, 32, 17, 1); \
4266   f_misc_null_10 = EXTRACT_LSB0_UINT (insn, 32, 16, 5); \
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_MCLRACC_0_VARS \
4271   UINT f_pack; \
4272   UINT f_ACC40Sk; \
4273   UINT f_op; \
4274   UINT f_A; \
4275   UINT f_misc_null_10; \
4276   UINT f_ope1; \
4277   UINT f_FRj_null; \
4278   unsigned int length;
4279 #define EXTRACT_IFMT_MCLRACC_0_CODE \
4280   length = 4; \
4281   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4282   f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4283   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4284   f_A = EXTRACT_LSB0_UINT (insn, 32, 17, 1); \
4285   f_misc_null_10 = EXTRACT_LSB0_UINT (insn, 32, 16, 5); \
4286   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4287   f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4288
4289 #define EXTRACT_IFMT_MRDACC_VARS \
4290   UINT f_pack; \
4291   UINT f_FRk; \
4292   UINT f_op; \
4293   UINT f_ACC40Si; \
4294   UINT f_ope1; \
4295   UINT f_FRj_null; \
4296   unsigned int length;
4297 #define EXTRACT_IFMT_MRDACC_CODE \
4298   length = 4; \
4299   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4300   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4301   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4302   f_ACC40Si = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4303   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4304   f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4305
4306 #define EXTRACT_IFMT_MRDACCG_VARS \
4307   UINT f_pack; \
4308   UINT f_FRk; \
4309   UINT f_op; \
4310   UINT f_ACCGi; \
4311   UINT f_ope1; \
4312   UINT f_FRj_null; \
4313   unsigned int length;
4314 #define EXTRACT_IFMT_MRDACCG_CODE \
4315   length = 4; \
4316   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4317   f_FRk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4318   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4319   f_ACCGi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4320   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4321   f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4322
4323 #define EXTRACT_IFMT_MWTACC_VARS \
4324   UINT f_pack; \
4325   UINT f_ACC40Sk; \
4326   UINT f_op; \
4327   UINT f_FRi; \
4328   UINT f_ope1; \
4329   UINT f_FRj_null; \
4330   unsigned int length;
4331 #define EXTRACT_IFMT_MWTACC_CODE \
4332   length = 4; \
4333   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4334   f_ACC40Sk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4335   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4336   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4337   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4338   f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4339
4340 #define EXTRACT_IFMT_MWTACCG_VARS \
4341   UINT f_pack; \
4342   UINT f_ACCGk; \
4343   UINT f_op; \
4344   UINT f_FRi; \
4345   UINT f_ope1; \
4346   UINT f_FRj_null; \
4347   unsigned int length;
4348 #define EXTRACT_IFMT_MWTACCG_CODE \
4349   length = 4; \
4350   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4351   f_ACCGk = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4352   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4353   f_FRi = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4354   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4355   f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4356
4357 #define EXTRACT_IFMT_FNOP_VARS \
4358   UINT f_pack; \
4359   UINT f_rd_null; \
4360   UINT f_op; \
4361   UINT f_FRi_null; \
4362   UINT f_ope1; \
4363   UINT f_FRj_null; \
4364   unsigned int length;
4365 #define EXTRACT_IFMT_FNOP_CODE \
4366   length = 4; \
4367   f_pack = EXTRACT_LSB0_UINT (insn, 32, 31, 1); \
4368   f_rd_null = EXTRACT_LSB0_UINT (insn, 32, 30, 6); \
4369   f_op = EXTRACT_LSB0_UINT (insn, 32, 24, 7); \
4370   f_FRi_null = EXTRACT_LSB0_UINT (insn, 32, 17, 6); \
4371   f_ope1 = EXTRACT_LSB0_UINT (insn, 32, 11, 6); \
4372   f_FRj_null = EXTRACT_LSB0_UINT (insn, 32, 5, 6); \
4373
4374 /* Collection of various things for the trace handler to use.  */
4375
4376 typedef struct trace_record {
4377   IADDR pc;
4378   /* FIXME:wip */
4379 } TRACE_RECORD;
4380
4381 #endif /* CPU_FRVBF_H */