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