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