1/* CPU family header for frvbf.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5Copyright 1996-2010 Free Software Foundation, Inc.
6
7This 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.  */
37typedef CGEN_INSN_INT CGEN_INSN_WORD;
38
39#include "cgen-engine.h"
40
41/* CPU state information.  */
42typedef 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) \
105do { \
106frvbf_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) \
128do { \
129frvbf_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) \
135do { \
136frvbf_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) \
146do { \
147frvbf_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) \
169do { \
170frvbf_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) \
174do { \
175frvbf_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) \
179do { \
180frvbf_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) \
184do { \
185frvbf_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) \
189do { \
190frvbf_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) \
194do { \
195SET_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) \
199do { \
200SET_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) \
204do { \
205{\
206if (GTUSI ((x), 255)) {\
207  (x) = 255;\
208}\
209SET_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) \
214do { \
215{\
216if (GTUSI ((x), 255)) {\
217  (x) = 255;\
218}\
219SET_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) \
224do { \
225{\
226if (GTUSI ((x), 255)) {\
227  (x) = 255;\
228}\
229SET_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) \
234do { \
235{\
236if (GTUSI ((x), 255)) {\
237  (x) = 255;\
238}\
239SET_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) \
244do { \
245frvbf_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) \
249do { \
250CPU (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) \
254do { \
255{\
256frv_check_spr_write_access (current_cpu, (((index)) + (1408)));\
257CPU (h_spr[(((index)) + (1472))]) = ANDDI (SRLDI ((x), 32), 255);\
258CPU (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) \
263do { \
264{\
265frv_check_spr_write_access (current_cpu, (((index)) + (1408)));\
266CPU (h_spr[(((index)) + (1472))]) = ANDDI (SRLDI ((x), 32), 255);\
267CPU (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) \
272do { \
273{\
274SET_H_SPR (((UINT) 280), TRUNCDISI (SRLDI ((x), 32)));\
275SET_H_SPR (((UINT) 281), TRUNCDISI ((x)));\
276}\
277;} while (0)
278
279/* Cover fns for register access.  */
280BI frvbf_h_reloc_ann_get (SIM_CPU *);
281void frvbf_h_reloc_ann_set (SIM_CPU *, BI);
282USI frvbf_h_pc_get (SIM_CPU *);
283void frvbf_h_pc_set (SIM_CPU *, USI);
284UQI frvbf_h_psr_imple_get (SIM_CPU *);
285void frvbf_h_psr_imple_set (SIM_CPU *, UQI);
286UQI frvbf_h_psr_ver_get (SIM_CPU *);
287void frvbf_h_psr_ver_set (SIM_CPU *, UQI);
288BI frvbf_h_psr_ice_get (SIM_CPU *);
289void frvbf_h_psr_ice_set (SIM_CPU *, BI);
290BI frvbf_h_psr_nem_get (SIM_CPU *);
291void frvbf_h_psr_nem_set (SIM_CPU *, BI);
292BI frvbf_h_psr_cm_get (SIM_CPU *);
293void frvbf_h_psr_cm_set (SIM_CPU *, BI);
294BI frvbf_h_psr_be_get (SIM_CPU *);
295void frvbf_h_psr_be_set (SIM_CPU *, BI);
296BI frvbf_h_psr_esr_get (SIM_CPU *);
297void frvbf_h_psr_esr_set (SIM_CPU *, BI);
298BI frvbf_h_psr_ef_get (SIM_CPU *);
299void frvbf_h_psr_ef_set (SIM_CPU *, BI);
300BI frvbf_h_psr_em_get (SIM_CPU *);
301void frvbf_h_psr_em_set (SIM_CPU *, BI);
302UQI frvbf_h_psr_pil_get (SIM_CPU *);
303void frvbf_h_psr_pil_set (SIM_CPU *, UQI);
304BI frvbf_h_psr_ps_get (SIM_CPU *);
305void frvbf_h_psr_ps_set (SIM_CPU *, BI);
306BI frvbf_h_psr_et_get (SIM_CPU *);
307void frvbf_h_psr_et_set (SIM_CPU *, BI);
308BI frvbf_h_psr_s_get (SIM_CPU *);
309void frvbf_h_psr_s_set (SIM_CPU *, BI);
310USI frvbf_h_tbr_tba_get (SIM_CPU *);
311void frvbf_h_tbr_tba_set (SIM_CPU *, USI);
312UQI frvbf_h_tbr_tt_get (SIM_CPU *);
313void frvbf_h_tbr_tt_set (SIM_CPU *, UQI);
314BI frvbf_h_bpsr_bs_get (SIM_CPU *);
315void frvbf_h_bpsr_bs_set (SIM_CPU *, BI);
316BI frvbf_h_bpsr_bet_get (SIM_CPU *);
317void frvbf_h_bpsr_bet_set (SIM_CPU *, BI);
318USI frvbf_h_gr_get (SIM_CPU *, UINT);
319void frvbf_h_gr_set (SIM_CPU *, UINT, USI);
320DI frvbf_h_gr_double_get (SIM_CPU *, UINT);
321void frvbf_h_gr_double_set (SIM_CPU *, UINT, DI);
322UHI frvbf_h_gr_hi_get (SIM_CPU *, UINT);
323void frvbf_h_gr_hi_set (SIM_CPU *, UINT, UHI);
324UHI frvbf_h_gr_lo_get (SIM_CPU *, UINT);
325void frvbf_h_gr_lo_set (SIM_CPU *, UINT, UHI);
326SF frvbf_h_fr_get (SIM_CPU *, UINT);
327void frvbf_h_fr_set (SIM_CPU *, UINT, SF);
328DF frvbf_h_fr_double_get (SIM_CPU *, UINT);
329void frvbf_h_fr_double_set (SIM_CPU *, UINT, DF);
330USI frvbf_h_fr_int_get (SIM_CPU *, UINT);
331void frvbf_h_fr_int_set (SIM_CPU *, UINT, USI);
332UHI frvbf_h_fr_hi_get (SIM_CPU *, UINT);
333void frvbf_h_fr_hi_set (SIM_CPU *, UINT, UHI);
334UHI frvbf_h_fr_lo_get (SIM_CPU *, UINT);
335void frvbf_h_fr_lo_set (SIM_CPU *, UINT, UHI);
336UHI frvbf_h_fr_0_get (SIM_CPU *, UINT);
337void frvbf_h_fr_0_set (SIM_CPU *, UINT, UHI);
338UHI frvbf_h_fr_1_get (SIM_CPU *, UINT);
339void frvbf_h_fr_1_set (SIM_CPU *, UINT, UHI);
340UHI frvbf_h_fr_2_get (SIM_CPU *, UINT);
341void frvbf_h_fr_2_set (SIM_CPU *, UINT, UHI);
342UHI frvbf_h_fr_3_get (SIM_CPU *, UINT);
343void frvbf_h_fr_3_set (SIM_CPU *, UINT, UHI);
344SI frvbf_h_cpr_get (SIM_CPU *, UINT);
345void frvbf_h_cpr_set (SIM_CPU *, UINT, SI);
346DI frvbf_h_cpr_double_get (SIM_CPU *, UINT);
347void frvbf_h_cpr_double_set (SIM_CPU *, UINT, DI);
348USI frvbf_h_spr_get (SIM_CPU *, UINT);
349void frvbf_h_spr_set (SIM_CPU *, UINT, USI);
350USI frvbf_h_accg_get (SIM_CPU *, UINT);
351void frvbf_h_accg_set (SIM_CPU *, UINT, USI);
352DI frvbf_h_acc40S_get (SIM_CPU *, UINT);
353void frvbf_h_acc40S_set (SIM_CPU *, UINT, DI);
354UDI frvbf_h_acc40U_get (SIM_CPU *, UINT);
355void frvbf_h_acc40U_set (SIM_CPU *, UINT, UDI);
356DI frvbf_h_iacc0_get (SIM_CPU *, UINT);
357void frvbf_h_iacc0_set (SIM_CPU *, UINT, DI);
358UQI frvbf_h_iccr_get (SIM_CPU *, UINT);
359void frvbf_h_iccr_set (SIM_CPU *, UINT, UQI);
360UQI frvbf_h_fccr_get (SIM_CPU *, UINT);
361void frvbf_h_fccr_set (SIM_CPU *, UINT, UQI);
362UQI frvbf_h_cccr_get (SIM_CPU *, UINT);
363void frvbf_h_cccr_set (SIM_CPU *, UINT, UQI);
364
365/* These must be hand-written.  */
366extern CPUREG_FETCH_FN frvbf_fetch_register;
367extern CPUREG_STORE_FN frvbf_store_register;
368
369typedef struct {
370  int empty;
371} MODEL_FRV_DATA;
372
373typedef 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
386typedef 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
395typedef struct {
396  int empty;
397} MODEL_TOMCAT_DATA;
398
399typedef 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
412typedef 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
425typedef struct {
426  int empty;
427} MODEL_SIMPLE_DATA;
428
429/* Instruction argument buffer.  */
430
431union 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.  */
1562struct 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
1583struct 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
4426typedef struct trace_record {
4427  IADDR pc;
4428  /* FIXME:wip */
4429} TRACE_RECORD;
4430
4431#endif /* CPU_FRVBF_H */
4432