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