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