1/* Simulator instruction decoder for sh64_compact.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5Copyright 1996-2010 Free Software Foundation, Inc.
6
7This file is part of the GNU simulators.
8
9   This file is free software; you can redistribute it and/or modify
10   it under the terms of the GNU General Public License as published by
11   the Free Software Foundation; either version 3, or (at your option)
12   any later version.
13
14   It is distributed in the hope that it will be useful, but WITHOUT
15   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
17   License for more details.
18
19   You should have received a copy of the GNU General Public License along
20   with this program; if not, write to the Free Software Foundation, Inc.,
21   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
22
23*/
24
25#define WANT_CPU sh64
26#define WANT_CPU_SH64
27
28#include "sim-main.h"
29#include "sim-assert.h"
30
31/* The instruction descriptor array.
32   This is computed at runtime.  Space for it is not malloc'd to save a
33   teensy bit of cpu in the decoder.  Moving it to malloc space is trivial
34   but won't be done until necessary (we don't currently support the runtime
35   addition of instructions nor an SMP machine with different cpus).  */
36static IDESC sh64_compact_insn_data[SH64_COMPACT_INSN__MAX];
37
38/* Commas between elements are contained in the macros.
39   Some of these are conditionally compiled out.  */
40
41static const struct insn_sem sh64_compact_insn_sem[] =
42{
43  { VIRTUAL_INSN_X_INVALID, SH64_COMPACT_INSN_X_INVALID, SH64_COMPACT_SFMT_EMPTY },
44  { VIRTUAL_INSN_X_AFTER, SH64_COMPACT_INSN_X_AFTER, SH64_COMPACT_SFMT_EMPTY },
45  { VIRTUAL_INSN_X_BEFORE, SH64_COMPACT_INSN_X_BEFORE, SH64_COMPACT_SFMT_EMPTY },
46  { VIRTUAL_INSN_X_CTI_CHAIN, SH64_COMPACT_INSN_X_CTI_CHAIN, SH64_COMPACT_SFMT_EMPTY },
47  { VIRTUAL_INSN_X_CHAIN, SH64_COMPACT_INSN_X_CHAIN, SH64_COMPACT_SFMT_EMPTY },
48  { VIRTUAL_INSN_X_BEGIN, SH64_COMPACT_INSN_X_BEGIN, SH64_COMPACT_SFMT_EMPTY },
49  { SH_INSN_ADD_COMPACT, SH64_COMPACT_INSN_ADD_COMPACT, SH64_COMPACT_SFMT_ADD_COMPACT },
50  { SH_INSN_ADDI_COMPACT, SH64_COMPACT_INSN_ADDI_COMPACT, SH64_COMPACT_SFMT_ADDI_COMPACT },
51  { SH_INSN_ADDC_COMPACT, SH64_COMPACT_INSN_ADDC_COMPACT, SH64_COMPACT_SFMT_ADDC_COMPACT },
52  { SH_INSN_ADDV_COMPACT, SH64_COMPACT_INSN_ADDV_COMPACT, SH64_COMPACT_SFMT_ADDV_COMPACT },
53  { SH_INSN_AND_COMPACT, SH64_COMPACT_INSN_AND_COMPACT, SH64_COMPACT_SFMT_AND_COMPACT },
54  { SH_INSN_ANDI_COMPACT, SH64_COMPACT_INSN_ANDI_COMPACT, SH64_COMPACT_SFMT_ANDI_COMPACT },
55  { SH_INSN_ANDB_COMPACT, SH64_COMPACT_INSN_ANDB_COMPACT, SH64_COMPACT_SFMT_ANDB_COMPACT },
56  { SH_INSN_BF_COMPACT, SH64_COMPACT_INSN_BF_COMPACT, SH64_COMPACT_SFMT_BF_COMPACT },
57  { SH_INSN_BFS_COMPACT, SH64_COMPACT_INSN_BFS_COMPACT, SH64_COMPACT_SFMT_BFS_COMPACT },
58  { SH_INSN_BRA_COMPACT, SH64_COMPACT_INSN_BRA_COMPACT, SH64_COMPACT_SFMT_BRA_COMPACT },
59  { SH_INSN_BRAF_COMPACT, SH64_COMPACT_INSN_BRAF_COMPACT, SH64_COMPACT_SFMT_BRAF_COMPACT },
60  { SH_INSN_BRK_COMPACT, SH64_COMPACT_INSN_BRK_COMPACT, SH64_COMPACT_SFMT_BRK_COMPACT },
61  { SH_INSN_BSR_COMPACT, SH64_COMPACT_INSN_BSR_COMPACT, SH64_COMPACT_SFMT_BSR_COMPACT },
62  { SH_INSN_BSRF_COMPACT, SH64_COMPACT_INSN_BSRF_COMPACT, SH64_COMPACT_SFMT_BSRF_COMPACT },
63  { SH_INSN_BT_COMPACT, SH64_COMPACT_INSN_BT_COMPACT, SH64_COMPACT_SFMT_BF_COMPACT },
64  { SH_INSN_BTS_COMPACT, SH64_COMPACT_INSN_BTS_COMPACT, SH64_COMPACT_SFMT_BFS_COMPACT },
65  { SH_INSN_CLRMAC_COMPACT, SH64_COMPACT_INSN_CLRMAC_COMPACT, SH64_COMPACT_SFMT_CLRMAC_COMPACT },
66  { SH_INSN_CLRS_COMPACT, SH64_COMPACT_INSN_CLRS_COMPACT, SH64_COMPACT_SFMT_CLRS_COMPACT },
67  { SH_INSN_CLRT_COMPACT, SH64_COMPACT_INSN_CLRT_COMPACT, SH64_COMPACT_SFMT_CLRT_COMPACT },
68  { SH_INSN_CMPEQ_COMPACT, SH64_COMPACT_INSN_CMPEQ_COMPACT, SH64_COMPACT_SFMT_CMPEQ_COMPACT },
69  { SH_INSN_CMPEQI_COMPACT, SH64_COMPACT_INSN_CMPEQI_COMPACT, SH64_COMPACT_SFMT_CMPEQI_COMPACT },
70  { SH_INSN_CMPGE_COMPACT, SH64_COMPACT_INSN_CMPGE_COMPACT, SH64_COMPACT_SFMT_CMPEQ_COMPACT },
71  { SH_INSN_CMPGT_COMPACT, SH64_COMPACT_INSN_CMPGT_COMPACT, SH64_COMPACT_SFMT_CMPEQ_COMPACT },
72  { SH_INSN_CMPHI_COMPACT, SH64_COMPACT_INSN_CMPHI_COMPACT, SH64_COMPACT_SFMT_CMPEQ_COMPACT },
73  { SH_INSN_CMPHS_COMPACT, SH64_COMPACT_INSN_CMPHS_COMPACT, SH64_COMPACT_SFMT_CMPEQ_COMPACT },
74  { SH_INSN_CMPPL_COMPACT, SH64_COMPACT_INSN_CMPPL_COMPACT, SH64_COMPACT_SFMT_CMPPL_COMPACT },
75  { SH_INSN_CMPPZ_COMPACT, SH64_COMPACT_INSN_CMPPZ_COMPACT, SH64_COMPACT_SFMT_CMPPL_COMPACT },
76  { SH_INSN_CMPSTR_COMPACT, SH64_COMPACT_INSN_CMPSTR_COMPACT, SH64_COMPACT_SFMT_CMPEQ_COMPACT },
77  { SH_INSN_DIV0S_COMPACT, SH64_COMPACT_INSN_DIV0S_COMPACT, SH64_COMPACT_SFMT_DIV0S_COMPACT },
78  { SH_INSN_DIV0U_COMPACT, SH64_COMPACT_INSN_DIV0U_COMPACT, SH64_COMPACT_SFMT_DIV0U_COMPACT },
79  { SH_INSN_DIV1_COMPACT, SH64_COMPACT_INSN_DIV1_COMPACT, SH64_COMPACT_SFMT_DIV1_COMPACT },
80  { SH_INSN_DIVU_COMPACT, SH64_COMPACT_INSN_DIVU_COMPACT, SH64_COMPACT_SFMT_DIVU_COMPACT },
81  { SH_INSN_MULR_COMPACT, SH64_COMPACT_INSN_MULR_COMPACT, SH64_COMPACT_SFMT_DIVU_COMPACT },
82  { SH_INSN_DMULSL_COMPACT, SH64_COMPACT_INSN_DMULSL_COMPACT, SH64_COMPACT_SFMT_DMULSL_COMPACT },
83  { SH_INSN_DMULUL_COMPACT, SH64_COMPACT_INSN_DMULUL_COMPACT, SH64_COMPACT_SFMT_DMULSL_COMPACT },
84  { SH_INSN_DT_COMPACT, SH64_COMPACT_INSN_DT_COMPACT, SH64_COMPACT_SFMT_DT_COMPACT },
85  { SH_INSN_EXTSB_COMPACT, SH64_COMPACT_INSN_EXTSB_COMPACT, SH64_COMPACT_SFMT_EXTSB_COMPACT },
86  { SH_INSN_EXTSW_COMPACT, SH64_COMPACT_INSN_EXTSW_COMPACT, SH64_COMPACT_SFMT_EXTSB_COMPACT },
87  { SH_INSN_EXTUB_COMPACT, SH64_COMPACT_INSN_EXTUB_COMPACT, SH64_COMPACT_SFMT_EXTSB_COMPACT },
88  { SH_INSN_EXTUW_COMPACT, SH64_COMPACT_INSN_EXTUW_COMPACT, SH64_COMPACT_SFMT_EXTSB_COMPACT },
89  { SH_INSN_FABS_COMPACT, SH64_COMPACT_INSN_FABS_COMPACT, SH64_COMPACT_SFMT_FABS_COMPACT },
90  { SH_INSN_FADD_COMPACT, SH64_COMPACT_INSN_FADD_COMPACT, SH64_COMPACT_SFMT_FADD_COMPACT },
91  { SH_INSN_FCMPEQ_COMPACT, SH64_COMPACT_INSN_FCMPEQ_COMPACT, SH64_COMPACT_SFMT_FCMPEQ_COMPACT },
92  { SH_INSN_FCMPGT_COMPACT, SH64_COMPACT_INSN_FCMPGT_COMPACT, SH64_COMPACT_SFMT_FCMPEQ_COMPACT },
93  { SH_INSN_FCNVDS_COMPACT, SH64_COMPACT_INSN_FCNVDS_COMPACT, SH64_COMPACT_SFMT_FCNVDS_COMPACT },
94  { SH_INSN_FCNVSD_COMPACT, SH64_COMPACT_INSN_FCNVSD_COMPACT, SH64_COMPACT_SFMT_FCNVSD_COMPACT },
95  { SH_INSN_FDIV_COMPACT, SH64_COMPACT_INSN_FDIV_COMPACT, SH64_COMPACT_SFMT_FADD_COMPACT },
96  { SH_INSN_FIPR_COMPACT, SH64_COMPACT_INSN_FIPR_COMPACT, SH64_COMPACT_SFMT_FIPR_COMPACT },
97  { SH_INSN_FLDS_COMPACT, SH64_COMPACT_INSN_FLDS_COMPACT, SH64_COMPACT_SFMT_FLDS_COMPACT },
98  { SH_INSN_FLDI0_COMPACT, SH64_COMPACT_INSN_FLDI0_COMPACT, SH64_COMPACT_SFMT_FLDI0_COMPACT },
99  { SH_INSN_FLDI1_COMPACT, SH64_COMPACT_INSN_FLDI1_COMPACT, SH64_COMPACT_SFMT_FLDI0_COMPACT },
100  { SH_INSN_FLOAT_COMPACT, SH64_COMPACT_INSN_FLOAT_COMPACT, SH64_COMPACT_SFMT_FLOAT_COMPACT },
101  { SH_INSN_FMAC_COMPACT, SH64_COMPACT_INSN_FMAC_COMPACT, SH64_COMPACT_SFMT_FMAC_COMPACT },
102  { SH_INSN_FMOV1_COMPACT, SH64_COMPACT_INSN_FMOV1_COMPACT, SH64_COMPACT_SFMT_FMOV1_COMPACT },
103  { SH_INSN_FMOV2_COMPACT, SH64_COMPACT_INSN_FMOV2_COMPACT, SH64_COMPACT_SFMT_FMOV2_COMPACT },
104  { SH_INSN_FMOV3_COMPACT, SH64_COMPACT_INSN_FMOV3_COMPACT, SH64_COMPACT_SFMT_FMOV3_COMPACT },
105  { SH_INSN_FMOV4_COMPACT, SH64_COMPACT_INSN_FMOV4_COMPACT, SH64_COMPACT_SFMT_FMOV4_COMPACT },
106  { SH_INSN_FMOV5_COMPACT, SH64_COMPACT_INSN_FMOV5_COMPACT, SH64_COMPACT_SFMT_FMOV5_COMPACT },
107  { SH_INSN_FMOV6_COMPACT, SH64_COMPACT_INSN_FMOV6_COMPACT, SH64_COMPACT_SFMT_FMOV6_COMPACT },
108  { SH_INSN_FMOV7_COMPACT, SH64_COMPACT_INSN_FMOV7_COMPACT, SH64_COMPACT_SFMT_FMOV7_COMPACT },
109  { SH_INSN_FMOV8_COMPACT, SH64_COMPACT_INSN_FMOV8_COMPACT, SH64_COMPACT_SFMT_FMOV8_COMPACT },
110  { SH_INSN_FMOV9_COMPACT, SH64_COMPACT_INSN_FMOV9_COMPACT, SH64_COMPACT_SFMT_FMOV9_COMPACT },
111  { SH_INSN_FMUL_COMPACT, SH64_COMPACT_INSN_FMUL_COMPACT, SH64_COMPACT_SFMT_FADD_COMPACT },
112  { SH_INSN_FNEG_COMPACT, SH64_COMPACT_INSN_FNEG_COMPACT, SH64_COMPACT_SFMT_FABS_COMPACT },
113  { SH_INSN_FRCHG_COMPACT, SH64_COMPACT_INSN_FRCHG_COMPACT, SH64_COMPACT_SFMT_FRCHG_COMPACT },
114  { SH_INSN_FSCHG_COMPACT, SH64_COMPACT_INSN_FSCHG_COMPACT, SH64_COMPACT_SFMT_FSCHG_COMPACT },
115  { SH_INSN_FSQRT_COMPACT, SH64_COMPACT_INSN_FSQRT_COMPACT, SH64_COMPACT_SFMT_FABS_COMPACT },
116  { SH_INSN_FSTS_COMPACT, SH64_COMPACT_INSN_FSTS_COMPACT, SH64_COMPACT_SFMT_FSTS_COMPACT },
117  { SH_INSN_FSUB_COMPACT, SH64_COMPACT_INSN_FSUB_COMPACT, SH64_COMPACT_SFMT_FADD_COMPACT },
118  { SH_INSN_FTRC_COMPACT, SH64_COMPACT_INSN_FTRC_COMPACT, SH64_COMPACT_SFMT_FTRC_COMPACT },
119  { SH_INSN_FTRV_COMPACT, SH64_COMPACT_INSN_FTRV_COMPACT, SH64_COMPACT_SFMT_FTRV_COMPACT },
120  { SH_INSN_JMP_COMPACT, SH64_COMPACT_INSN_JMP_COMPACT, SH64_COMPACT_SFMT_BRAF_COMPACT },
121  { SH_INSN_JSR_COMPACT, SH64_COMPACT_INSN_JSR_COMPACT, SH64_COMPACT_SFMT_BSRF_COMPACT },
122  { SH_INSN_LDC_GBR_COMPACT, SH64_COMPACT_INSN_LDC_GBR_COMPACT, SH64_COMPACT_SFMT_LDC_GBR_COMPACT },
123  { SH_INSN_LDC_VBR_COMPACT, SH64_COMPACT_INSN_LDC_VBR_COMPACT, SH64_COMPACT_SFMT_LDC_VBR_COMPACT },
124  { SH_INSN_LDC_SR_COMPACT, SH64_COMPACT_INSN_LDC_SR_COMPACT, SH64_COMPACT_SFMT_LDC_SR_COMPACT },
125  { SH_INSN_LDCL_GBR_COMPACT, SH64_COMPACT_INSN_LDCL_GBR_COMPACT, SH64_COMPACT_SFMT_LDCL_GBR_COMPACT },
126  { SH_INSN_LDCL_VBR_COMPACT, SH64_COMPACT_INSN_LDCL_VBR_COMPACT, SH64_COMPACT_SFMT_LDCL_VBR_COMPACT },
127  { SH_INSN_LDS_FPSCR_COMPACT, SH64_COMPACT_INSN_LDS_FPSCR_COMPACT, SH64_COMPACT_SFMT_LDS_FPSCR_COMPACT },
128  { SH_INSN_LDSL_FPSCR_COMPACT, SH64_COMPACT_INSN_LDSL_FPSCR_COMPACT, SH64_COMPACT_SFMT_LDSL_FPSCR_COMPACT },
129  { SH_INSN_LDS_FPUL_COMPACT, SH64_COMPACT_INSN_LDS_FPUL_COMPACT, SH64_COMPACT_SFMT_LDS_FPUL_COMPACT },
130  { SH_INSN_LDSL_FPUL_COMPACT, SH64_COMPACT_INSN_LDSL_FPUL_COMPACT, SH64_COMPACT_SFMT_LDSL_FPUL_COMPACT },
131  { SH_INSN_LDS_MACH_COMPACT, SH64_COMPACT_INSN_LDS_MACH_COMPACT, SH64_COMPACT_SFMT_LDS_MACH_COMPACT },
132  { SH_INSN_LDSL_MACH_COMPACT, SH64_COMPACT_INSN_LDSL_MACH_COMPACT, SH64_COMPACT_SFMT_LDSL_MACH_COMPACT },
133  { SH_INSN_LDS_MACL_COMPACT, SH64_COMPACT_INSN_LDS_MACL_COMPACT, SH64_COMPACT_SFMT_LDS_MACL_COMPACT },
134  { SH_INSN_LDSL_MACL_COMPACT, SH64_COMPACT_INSN_LDSL_MACL_COMPACT, SH64_COMPACT_SFMT_LDSL_MACL_COMPACT },
135  { SH_INSN_LDS_PR_COMPACT, SH64_COMPACT_INSN_LDS_PR_COMPACT, SH64_COMPACT_SFMT_LDS_PR_COMPACT },
136  { SH_INSN_LDSL_PR_COMPACT, SH64_COMPACT_INSN_LDSL_PR_COMPACT, SH64_COMPACT_SFMT_LDSL_PR_COMPACT },
137  { SH_INSN_MACL_COMPACT, SH64_COMPACT_INSN_MACL_COMPACT, SH64_COMPACT_SFMT_MACL_COMPACT },
138  { SH_INSN_MACW_COMPACT, SH64_COMPACT_INSN_MACW_COMPACT, SH64_COMPACT_SFMT_MACW_COMPACT },
139  { SH_INSN_MOV_COMPACT, SH64_COMPACT_INSN_MOV_COMPACT, SH64_COMPACT_SFMT_MOV_COMPACT },
140  { SH_INSN_MOVI_COMPACT, SH64_COMPACT_INSN_MOVI_COMPACT, SH64_COMPACT_SFMT_MOVI_COMPACT },
141  { SH_INSN_MOVI20_COMPACT, SH64_COMPACT_INSN_MOVI20_COMPACT, SH64_COMPACT_SFMT_MOVI20_COMPACT },
142  { SH_INSN_MOVB1_COMPACT, SH64_COMPACT_INSN_MOVB1_COMPACT, SH64_COMPACT_SFMT_MOVB1_COMPACT },
143  { SH_INSN_MOVB2_COMPACT, SH64_COMPACT_INSN_MOVB2_COMPACT, SH64_COMPACT_SFMT_MOVB2_COMPACT },
144  { SH_INSN_MOVB3_COMPACT, SH64_COMPACT_INSN_MOVB3_COMPACT, SH64_COMPACT_SFMT_MOVB3_COMPACT },
145  { SH_INSN_MOVB4_COMPACT, SH64_COMPACT_INSN_MOVB4_COMPACT, SH64_COMPACT_SFMT_MOVB4_COMPACT },
146  { SH_INSN_MOVB5_COMPACT, SH64_COMPACT_INSN_MOVB5_COMPACT, SH64_COMPACT_SFMT_MOVB5_COMPACT },
147  { SH_INSN_MOVB6_COMPACT, SH64_COMPACT_INSN_MOVB6_COMPACT, SH64_COMPACT_SFMT_MOVB6_COMPACT },
148  { SH_INSN_MOVB7_COMPACT, SH64_COMPACT_INSN_MOVB7_COMPACT, SH64_COMPACT_SFMT_MOVB7_COMPACT },
149  { SH_INSN_MOVB8_COMPACT, SH64_COMPACT_INSN_MOVB8_COMPACT, SH64_COMPACT_SFMT_MOVB8_COMPACT },
150  { SH_INSN_MOVB9_COMPACT, SH64_COMPACT_INSN_MOVB9_COMPACT, SH64_COMPACT_SFMT_MOVB9_COMPACT },
151  { SH_INSN_MOVB10_COMPACT, SH64_COMPACT_INSN_MOVB10_COMPACT, SH64_COMPACT_SFMT_MOVB10_COMPACT },
152  { SH_INSN_MOVL1_COMPACT, SH64_COMPACT_INSN_MOVL1_COMPACT, SH64_COMPACT_SFMT_MOVL1_COMPACT },
153  { SH_INSN_MOVL2_COMPACT, SH64_COMPACT_INSN_MOVL2_COMPACT, SH64_COMPACT_SFMT_MOVL2_COMPACT },
154  { SH_INSN_MOVL3_COMPACT, SH64_COMPACT_INSN_MOVL3_COMPACT, SH64_COMPACT_SFMT_MOVL3_COMPACT },
155  { SH_INSN_MOVL4_COMPACT, SH64_COMPACT_INSN_MOVL4_COMPACT, SH64_COMPACT_SFMT_MOVL4_COMPACT },
156  { SH_INSN_MOVL5_COMPACT, SH64_COMPACT_INSN_MOVL5_COMPACT, SH64_COMPACT_SFMT_MOVL5_COMPACT },
157  { SH_INSN_MOVL6_COMPACT, SH64_COMPACT_INSN_MOVL6_COMPACT, SH64_COMPACT_SFMT_MOVL6_COMPACT },
158  { SH_INSN_MOVL7_COMPACT, SH64_COMPACT_INSN_MOVL7_COMPACT, SH64_COMPACT_SFMT_MOVL7_COMPACT },
159  { SH_INSN_MOVL8_COMPACT, SH64_COMPACT_INSN_MOVL8_COMPACT, SH64_COMPACT_SFMT_MOVL8_COMPACT },
160  { SH_INSN_MOVL9_COMPACT, SH64_COMPACT_INSN_MOVL9_COMPACT, SH64_COMPACT_SFMT_MOVL9_COMPACT },
161  { SH_INSN_MOVL10_COMPACT, SH64_COMPACT_INSN_MOVL10_COMPACT, SH64_COMPACT_SFMT_MOVL10_COMPACT },
162  { SH_INSN_MOVL11_COMPACT, SH64_COMPACT_INSN_MOVL11_COMPACT, SH64_COMPACT_SFMT_MOVL11_COMPACT },
163  { SH_INSN_MOVL12_COMPACT, SH64_COMPACT_INSN_MOVL12_COMPACT, SH64_COMPACT_SFMT_MOVL12_COMPACT },
164  { SH_INSN_MOVL13_COMPACT, SH64_COMPACT_INSN_MOVL13_COMPACT, SH64_COMPACT_SFMT_MOVL13_COMPACT },
165  { SH_INSN_MOVW1_COMPACT, SH64_COMPACT_INSN_MOVW1_COMPACT, SH64_COMPACT_SFMT_MOVW1_COMPACT },
166  { SH_INSN_MOVW2_COMPACT, SH64_COMPACT_INSN_MOVW2_COMPACT, SH64_COMPACT_SFMT_MOVW2_COMPACT },
167  { SH_INSN_MOVW3_COMPACT, SH64_COMPACT_INSN_MOVW3_COMPACT, SH64_COMPACT_SFMT_MOVW3_COMPACT },
168  { SH_INSN_MOVW4_COMPACT, SH64_COMPACT_INSN_MOVW4_COMPACT, SH64_COMPACT_SFMT_MOVW4_COMPACT },
169  { SH_INSN_MOVW5_COMPACT, SH64_COMPACT_INSN_MOVW5_COMPACT, SH64_COMPACT_SFMT_MOVW5_COMPACT },
170  { SH_INSN_MOVW6_COMPACT, SH64_COMPACT_INSN_MOVW6_COMPACT, SH64_COMPACT_SFMT_MOVW6_COMPACT },
171  { SH_INSN_MOVW7_COMPACT, SH64_COMPACT_INSN_MOVW7_COMPACT, SH64_COMPACT_SFMT_MOVW7_COMPACT },
172  { SH_INSN_MOVW8_COMPACT, SH64_COMPACT_INSN_MOVW8_COMPACT, SH64_COMPACT_SFMT_MOVW8_COMPACT },
173  { SH_INSN_MOVW9_COMPACT, SH64_COMPACT_INSN_MOVW9_COMPACT, SH64_COMPACT_SFMT_MOVW9_COMPACT },
174  { SH_INSN_MOVW10_COMPACT, SH64_COMPACT_INSN_MOVW10_COMPACT, SH64_COMPACT_SFMT_MOVW10_COMPACT },
175  { SH_INSN_MOVW11_COMPACT, SH64_COMPACT_INSN_MOVW11_COMPACT, SH64_COMPACT_SFMT_MOVW11_COMPACT },
176  { SH_INSN_MOVA_COMPACT, SH64_COMPACT_INSN_MOVA_COMPACT, SH64_COMPACT_SFMT_MOVA_COMPACT },
177  { SH_INSN_MOVCAL_COMPACT, SH64_COMPACT_INSN_MOVCAL_COMPACT, SH64_COMPACT_SFMT_MOVCAL_COMPACT },
178  { SH_INSN_MOVCOL_COMPACT, SH64_COMPACT_INSN_MOVCOL_COMPACT, SH64_COMPACT_SFMT_MOVCOL_COMPACT },
179  { SH_INSN_MOVT_COMPACT, SH64_COMPACT_INSN_MOVT_COMPACT, SH64_COMPACT_SFMT_MOVT_COMPACT },
180  { SH_INSN_MOVUAL_COMPACT, SH64_COMPACT_INSN_MOVUAL_COMPACT, SH64_COMPACT_SFMT_MOVUAL_COMPACT },
181  { SH_INSN_MOVUAL2_COMPACT, SH64_COMPACT_INSN_MOVUAL2_COMPACT, SH64_COMPACT_SFMT_MOVUAL2_COMPACT },
182  { SH_INSN_MULL_COMPACT, SH64_COMPACT_INSN_MULL_COMPACT, SH64_COMPACT_SFMT_MULL_COMPACT },
183  { SH_INSN_MULSW_COMPACT, SH64_COMPACT_INSN_MULSW_COMPACT, SH64_COMPACT_SFMT_MULL_COMPACT },
184  { SH_INSN_MULUW_COMPACT, SH64_COMPACT_INSN_MULUW_COMPACT, SH64_COMPACT_SFMT_MULL_COMPACT },
185  { SH_INSN_NEG_COMPACT, SH64_COMPACT_INSN_NEG_COMPACT, SH64_COMPACT_SFMT_EXTSB_COMPACT },
186  { SH_INSN_NEGC_COMPACT, SH64_COMPACT_INSN_NEGC_COMPACT, SH64_COMPACT_SFMT_NEGC_COMPACT },
187  { SH_INSN_NOP_COMPACT, SH64_COMPACT_INSN_NOP_COMPACT, SH64_COMPACT_SFMT_NOP_COMPACT },
188  { SH_INSN_NOT_COMPACT, SH64_COMPACT_INSN_NOT_COMPACT, SH64_COMPACT_SFMT_MOV_COMPACT },
189  { SH_INSN_OCBI_COMPACT, SH64_COMPACT_INSN_OCBI_COMPACT, SH64_COMPACT_SFMT_MOVCOL_COMPACT },
190  { SH_INSN_OCBP_COMPACT, SH64_COMPACT_INSN_OCBP_COMPACT, SH64_COMPACT_SFMT_MOVCOL_COMPACT },
191  { SH_INSN_OCBWB_COMPACT, SH64_COMPACT_INSN_OCBWB_COMPACT, SH64_COMPACT_SFMT_MOVCOL_COMPACT },
192  { SH_INSN_OR_COMPACT, SH64_COMPACT_INSN_OR_COMPACT, SH64_COMPACT_SFMT_AND_COMPACT },
193  { SH_INSN_ORI_COMPACT, SH64_COMPACT_INSN_ORI_COMPACT, SH64_COMPACT_SFMT_ANDI_COMPACT },
194  { SH_INSN_ORB_COMPACT, SH64_COMPACT_INSN_ORB_COMPACT, SH64_COMPACT_SFMT_ANDB_COMPACT },
195  { SH_INSN_PREF_COMPACT, SH64_COMPACT_INSN_PREF_COMPACT, SH64_COMPACT_SFMT_PREF_COMPACT },
196  { SH_INSN_ROTCL_COMPACT, SH64_COMPACT_INSN_ROTCL_COMPACT, SH64_COMPACT_SFMT_ROTCL_COMPACT },
197  { SH_INSN_ROTCR_COMPACT, SH64_COMPACT_INSN_ROTCR_COMPACT, SH64_COMPACT_SFMT_ROTCL_COMPACT },
198  { SH_INSN_ROTL_COMPACT, SH64_COMPACT_INSN_ROTL_COMPACT, SH64_COMPACT_SFMT_DT_COMPACT },
199  { SH_INSN_ROTR_COMPACT, SH64_COMPACT_INSN_ROTR_COMPACT, SH64_COMPACT_SFMT_DT_COMPACT },
200  { SH_INSN_RTS_COMPACT, SH64_COMPACT_INSN_RTS_COMPACT, SH64_COMPACT_SFMT_RTS_COMPACT },
201  { SH_INSN_SETS_COMPACT, SH64_COMPACT_INSN_SETS_COMPACT, SH64_COMPACT_SFMT_CLRS_COMPACT },
202  { SH_INSN_SETT_COMPACT, SH64_COMPACT_INSN_SETT_COMPACT, SH64_COMPACT_SFMT_CLRT_COMPACT },
203  { SH_INSN_SHAD_COMPACT, SH64_COMPACT_INSN_SHAD_COMPACT, SH64_COMPACT_SFMT_SHAD_COMPACT },
204  { SH_INSN_SHAL_COMPACT, SH64_COMPACT_INSN_SHAL_COMPACT, SH64_COMPACT_SFMT_DT_COMPACT },
205  { SH_INSN_SHAR_COMPACT, SH64_COMPACT_INSN_SHAR_COMPACT, SH64_COMPACT_SFMT_DT_COMPACT },
206  { SH_INSN_SHLD_COMPACT, SH64_COMPACT_INSN_SHLD_COMPACT, SH64_COMPACT_SFMT_SHAD_COMPACT },
207  { SH_INSN_SHLL_COMPACT, SH64_COMPACT_INSN_SHLL_COMPACT, SH64_COMPACT_SFMT_DT_COMPACT },
208  { SH_INSN_SHLL2_COMPACT, SH64_COMPACT_INSN_SHLL2_COMPACT, SH64_COMPACT_SFMT_MOVCOL_COMPACT },
209  { SH_INSN_SHLL8_COMPACT, SH64_COMPACT_INSN_SHLL8_COMPACT, SH64_COMPACT_SFMT_MOVCOL_COMPACT },
210  { SH_INSN_SHLL16_COMPACT, SH64_COMPACT_INSN_SHLL16_COMPACT, SH64_COMPACT_SFMT_MOVCOL_COMPACT },
211  { SH_INSN_SHLR_COMPACT, SH64_COMPACT_INSN_SHLR_COMPACT, SH64_COMPACT_SFMT_DT_COMPACT },
212  { SH_INSN_SHLR2_COMPACT, SH64_COMPACT_INSN_SHLR2_COMPACT, SH64_COMPACT_SFMT_MOVCOL_COMPACT },
213  { SH_INSN_SHLR8_COMPACT, SH64_COMPACT_INSN_SHLR8_COMPACT, SH64_COMPACT_SFMT_MOVCOL_COMPACT },
214  { SH_INSN_SHLR16_COMPACT, SH64_COMPACT_INSN_SHLR16_COMPACT, SH64_COMPACT_SFMT_MOVCOL_COMPACT },
215  { SH_INSN_STC_GBR_COMPACT, SH64_COMPACT_INSN_STC_GBR_COMPACT, SH64_COMPACT_SFMT_STC_GBR_COMPACT },
216  { SH_INSN_STC_VBR_COMPACT, SH64_COMPACT_INSN_STC_VBR_COMPACT, SH64_COMPACT_SFMT_STC_VBR_COMPACT },
217  { SH_INSN_STCL_GBR_COMPACT, SH64_COMPACT_INSN_STCL_GBR_COMPACT, SH64_COMPACT_SFMT_STCL_GBR_COMPACT },
218  { SH_INSN_STCL_VBR_COMPACT, SH64_COMPACT_INSN_STCL_VBR_COMPACT, SH64_COMPACT_SFMT_STCL_VBR_COMPACT },
219  { SH_INSN_STS_FPSCR_COMPACT, SH64_COMPACT_INSN_STS_FPSCR_COMPACT, SH64_COMPACT_SFMT_STS_FPSCR_COMPACT },
220  { SH_INSN_STSL_FPSCR_COMPACT, SH64_COMPACT_INSN_STSL_FPSCR_COMPACT, SH64_COMPACT_SFMT_STSL_FPSCR_COMPACT },
221  { SH_INSN_STS_FPUL_COMPACT, SH64_COMPACT_INSN_STS_FPUL_COMPACT, SH64_COMPACT_SFMT_STS_FPUL_COMPACT },
222  { SH_INSN_STSL_FPUL_COMPACT, SH64_COMPACT_INSN_STSL_FPUL_COMPACT, SH64_COMPACT_SFMT_STSL_FPUL_COMPACT },
223  { SH_INSN_STS_MACH_COMPACT, SH64_COMPACT_INSN_STS_MACH_COMPACT, SH64_COMPACT_SFMT_STS_MACH_COMPACT },
224  { SH_INSN_STSL_MACH_COMPACT, SH64_COMPACT_INSN_STSL_MACH_COMPACT, SH64_COMPACT_SFMT_STSL_MACH_COMPACT },
225  { SH_INSN_STS_MACL_COMPACT, SH64_COMPACT_INSN_STS_MACL_COMPACT, SH64_COMPACT_SFMT_STS_MACL_COMPACT },
226  { SH_INSN_STSL_MACL_COMPACT, SH64_COMPACT_INSN_STSL_MACL_COMPACT, SH64_COMPACT_SFMT_STSL_MACL_COMPACT },
227  { SH_INSN_STS_PR_COMPACT, SH64_COMPACT_INSN_STS_PR_COMPACT, SH64_COMPACT_SFMT_STS_PR_COMPACT },
228  { SH_INSN_STSL_PR_COMPACT, SH64_COMPACT_INSN_STSL_PR_COMPACT, SH64_COMPACT_SFMT_STSL_PR_COMPACT },
229  { SH_INSN_SUB_COMPACT, SH64_COMPACT_INSN_SUB_COMPACT, SH64_COMPACT_SFMT_ADD_COMPACT },
230  { SH_INSN_SUBC_COMPACT, SH64_COMPACT_INSN_SUBC_COMPACT, SH64_COMPACT_SFMT_ADDC_COMPACT },
231  { SH_INSN_SUBV_COMPACT, SH64_COMPACT_INSN_SUBV_COMPACT, SH64_COMPACT_SFMT_ADDV_COMPACT },
232  { SH_INSN_SWAPB_COMPACT, SH64_COMPACT_INSN_SWAPB_COMPACT, SH64_COMPACT_SFMT_EXTSB_COMPACT },
233  { SH_INSN_SWAPW_COMPACT, SH64_COMPACT_INSN_SWAPW_COMPACT, SH64_COMPACT_SFMT_EXTSB_COMPACT },
234  { SH_INSN_TASB_COMPACT, SH64_COMPACT_INSN_TASB_COMPACT, SH64_COMPACT_SFMT_TASB_COMPACT },
235  { SH_INSN_TRAPA_COMPACT, SH64_COMPACT_INSN_TRAPA_COMPACT, SH64_COMPACT_SFMT_TRAPA_COMPACT },
236  { SH_INSN_TST_COMPACT, SH64_COMPACT_INSN_TST_COMPACT, SH64_COMPACT_SFMT_CMPEQ_COMPACT },
237  { SH_INSN_TSTI_COMPACT, SH64_COMPACT_INSN_TSTI_COMPACT, SH64_COMPACT_SFMT_TSTI_COMPACT },
238  { SH_INSN_TSTB_COMPACT, SH64_COMPACT_INSN_TSTB_COMPACT, SH64_COMPACT_SFMT_TSTB_COMPACT },
239  { SH_INSN_XOR_COMPACT, SH64_COMPACT_INSN_XOR_COMPACT, SH64_COMPACT_SFMT_AND_COMPACT },
240  { SH_INSN_XORI_COMPACT, SH64_COMPACT_INSN_XORI_COMPACT, SH64_COMPACT_SFMT_ANDI_COMPACT },
241  { SH_INSN_XORB_COMPACT, SH64_COMPACT_INSN_XORB_COMPACT, SH64_COMPACT_SFMT_ANDB_COMPACT },
242  { SH_INSN_XTRCT_COMPACT, SH64_COMPACT_INSN_XTRCT_COMPACT, SH64_COMPACT_SFMT_ADD_COMPACT },
243};
244
245static const struct insn_sem sh64_compact_insn_sem_invalid =
246{
247  VIRTUAL_INSN_X_INVALID, SH64_COMPACT_INSN_X_INVALID, SH64_COMPACT_SFMT_EMPTY
248};
249
250/* Initialize an IDESC from the compile-time computable parts.  */
251
252static INLINE void
253init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
254{
255  const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
256
257  id->num = t->index;
258  id->sfmt = t->sfmt;
259  if ((int) t->type <= 0)
260    id->idata = & cgen_virtual_insn_table[- (int) t->type];
261  else
262    id->idata = & insn_table[t->type];
263  id->attrs = CGEN_INSN_ATTRS (id->idata);
264  /* Oh my god, a magic number.  */
265  id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
266
267#if WITH_PROFILE_MODEL_P
268  id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
269  {
270    SIM_DESC sd = CPU_STATE (cpu);
271    SIM_ASSERT (t->index == id->timing->num);
272  }
273#endif
274
275  /* Semantic pointers are initialized elsewhere.  */
276}
277
278/* Initialize the instruction descriptor table.  */
279
280void
281sh64_compact_init_idesc_table (SIM_CPU *cpu)
282{
283  IDESC *id,*tabend;
284  const struct insn_sem *t,*tend;
285  int tabsize = SH64_COMPACT_INSN__MAX;
286  IDESC *table = sh64_compact_insn_data;
287
288  memset (table, 0, tabsize * sizeof (IDESC));
289
290  /* First set all entries to the `invalid insn'.  */
291  t = & sh64_compact_insn_sem_invalid;
292  for (id = table, tabend = table + tabsize; id < tabend; ++id)
293    init_idesc (cpu, id, t);
294
295  /* Now fill in the values for the chosen cpu.  */
296  for (t = sh64_compact_insn_sem, tend = t + sizeof (sh64_compact_insn_sem) / sizeof (*t);
297       t != tend; ++t)
298    {
299      init_idesc (cpu, & table[t->index], t);
300    }
301
302  /* Link the IDESC table into the cpu.  */
303  CPU_IDESC (cpu) = table;
304}
305
306/* Given an instruction, return a pointer to its IDESC entry.  */
307
308const IDESC *
309sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc,
310              CGEN_INSN_WORD base_insn, CGEN_INSN_WORD entire_insn,
311              ARGBUF *abuf)
312{
313  /* Result of decoder.  */
314  SH64_COMPACT_INSN_TYPE itype;
315
316  {
317    CGEN_INSN_WORD insn = base_insn;
318
319    {
320      unsigned int val = (((insn >> 5) & (15 << 7)) | ((insn >> 0) & (127 << 0)));
321      switch (val)
322      {
323      case 0 : /* fall through */
324      case 16 : /* fall through */
325      case 32 : /* fall through */
326      case 48 : /* fall through */
327      case 64 : /* fall through */
328      case 80 : /* fall through */
329      case 96 : /* fall through */
330      case 112 : itype = SH64_COMPACT_INSN_MOVI20_COMPACT; goto extract_sfmt_movi20_compact;
331      case 3 :
332        {
333          unsigned int val = (((insn >> 7) & (1 << 0)));
334          switch (val)
335          {
336          case 0 : itype = SH64_COMPACT_INSN_BSRF_COMPACT; goto extract_sfmt_bsrf_compact;
337          case 1 : itype = SH64_COMPACT_INSN_PREF_COMPACT; goto extract_sfmt_pref_compact;
338          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
339          }
340        }
341      case 4 : /* fall through */
342      case 20 : /* fall through */
343      case 36 : /* fall through */
344      case 52 : /* fall through */
345      case 68 : /* fall through */
346      case 84 : /* fall through */
347      case 100 : /* fall through */
348      case 116 : itype = SH64_COMPACT_INSN_MOVB3_COMPACT; goto extract_sfmt_movb3_compact;
349      case 5 : /* fall through */
350      case 21 : /* fall through */
351      case 37 : /* fall through */
352      case 53 : /* fall through */
353      case 69 : /* fall through */
354      case 85 : /* fall through */
355      case 101 : /* fall through */
356      case 117 : itype = SH64_COMPACT_INSN_MOVW3_COMPACT; goto extract_sfmt_movw3_compact;
357      case 6 : /* fall through */
358      case 22 : /* fall through */
359      case 38 : /* fall through */
360      case 54 : /* fall through */
361      case 70 : /* fall through */
362      case 86 : /* fall through */
363      case 102 : /* fall through */
364      case 118 : itype = SH64_COMPACT_INSN_MOVL3_COMPACT; goto extract_sfmt_movl3_compact;
365      case 7 : /* fall through */
366      case 23 : /* fall through */
367      case 39 : /* fall through */
368      case 55 : /* fall through */
369      case 71 : /* fall through */
370      case 87 : /* fall through */
371      case 103 : /* fall through */
372      case 119 : itype = SH64_COMPACT_INSN_MULL_COMPACT; goto extract_sfmt_mull_compact;
373      case 8 :
374        if ((entire_insn & 0xffff) == 0x8)
375          { itype = SH64_COMPACT_INSN_CLRT_COMPACT; goto extract_sfmt_clrt_compact; }
376        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
377      case 9 :
378        if ((entire_insn & 0xffff) == 0x9)
379          { itype = SH64_COMPACT_INSN_NOP_COMPACT; goto extract_sfmt_nop_compact; }
380        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
381      case 10 :
382        if ((entire_insn & 0xf0ff) == 0xa)
383          { itype = SH64_COMPACT_INSN_STS_MACH_COMPACT; goto extract_sfmt_sts_mach_compact; }
384        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
385      case 11 :
386        if ((entire_insn & 0xffff) == 0xb)
387          { itype = SH64_COMPACT_INSN_RTS_COMPACT; goto extract_sfmt_rts_compact; }
388        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
389      case 12 : /* fall through */
390      case 28 : /* fall through */
391      case 44 : /* fall through */
392      case 60 : /* fall through */
393      case 76 : /* fall through */
394      case 92 : /* fall through */
395      case 108 : /* fall through */
396      case 124 : itype = SH64_COMPACT_INSN_MOVB8_COMPACT; goto extract_sfmt_movb8_compact;
397      case 13 : /* fall through */
398      case 29 : /* fall through */
399      case 45 : /* fall through */
400      case 61 : /* fall through */
401      case 77 : /* fall through */
402      case 93 : /* fall through */
403      case 109 : /* fall through */
404      case 125 : itype = SH64_COMPACT_INSN_MOVW8_COMPACT; goto extract_sfmt_movw8_compact;
405      case 14 : /* fall through */
406      case 30 : /* fall through */
407      case 46 : /* fall through */
408      case 62 : /* fall through */
409      case 78 : /* fall through */
410      case 94 : /* fall through */
411      case 110 : /* fall through */
412      case 126 : itype = SH64_COMPACT_INSN_MOVL8_COMPACT; goto extract_sfmt_movl8_compact;
413      case 15 : /* fall through */
414      case 31 : /* fall through */
415      case 47 : /* fall through */
416      case 63 : /* fall through */
417      case 79 : /* fall through */
418      case 95 : /* fall through */
419      case 111 : /* fall through */
420      case 127 : itype = SH64_COMPACT_INSN_MACL_COMPACT; goto extract_sfmt_macl_compact;
421      case 18 :
422        if ((entire_insn & 0xf0ff) == 0x12)
423          { itype = SH64_COMPACT_INSN_STC_GBR_COMPACT; goto extract_sfmt_stc_gbr_compact; }
424        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
425      case 19 :
426        if ((entire_insn & 0xf0ff) == 0x93)
427          { itype = SH64_COMPACT_INSN_OCBI_COMPACT; goto extract_sfmt_movcol_compact; }
428        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
429      case 24 :
430        if ((entire_insn & 0xffff) == 0x18)
431          { itype = SH64_COMPACT_INSN_SETT_COMPACT; goto extract_sfmt_clrt_compact; }
432        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
433      case 25 :
434        if ((entire_insn & 0xffff) == 0x19)
435          { itype = SH64_COMPACT_INSN_DIV0U_COMPACT; goto extract_sfmt_div0u_compact; }
436        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
437      case 26 :
438        if ((entire_insn & 0xf0ff) == 0x1a)
439          { itype = SH64_COMPACT_INSN_STS_MACL_COMPACT; goto extract_sfmt_sts_macl_compact; }
440        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
441      case 34 :
442        if ((entire_insn & 0xf0ff) == 0x22)
443          { itype = SH64_COMPACT_INSN_STC_VBR_COMPACT; goto extract_sfmt_stc_vbr_compact; }
444        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
445      case 35 :
446        {
447          unsigned int val = (((insn >> 7) & (1 << 0)));
448          switch (val)
449          {
450          case 0 : itype = SH64_COMPACT_INSN_BRAF_COMPACT; goto extract_sfmt_braf_compact;
451          case 1 : itype = SH64_COMPACT_INSN_OCBP_COMPACT; goto extract_sfmt_movcol_compact;
452          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
453          }
454        }
455      case 40 :
456        if ((entire_insn & 0xffff) == 0x28)
457          { itype = SH64_COMPACT_INSN_CLRMAC_COMPACT; goto extract_sfmt_clrmac_compact; }
458        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
459      case 41 :
460        if ((entire_insn & 0xf0ff) == 0x29)
461          { itype = SH64_COMPACT_INSN_MOVT_COMPACT; goto extract_sfmt_movt_compact; }
462        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
463      case 42 :
464        if ((entire_insn & 0xf0ff) == 0x2a)
465          { itype = SH64_COMPACT_INSN_STS_PR_COMPACT; goto extract_sfmt_sts_pr_compact; }
466        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
467      case 51 :
468        if ((entire_insn & 0xf0ff) == 0xb3)
469          { itype = SH64_COMPACT_INSN_OCBWB_COMPACT; goto extract_sfmt_movcol_compact; }
470        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
471      case 59 :
472        if ((entire_insn & 0xffff) == 0x3b)
473          { itype = SH64_COMPACT_INSN_BRK_COMPACT; goto extract_sfmt_brk_compact; }
474        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
475      case 67 :
476        if ((entire_insn & 0xf0ff) == 0xc3)
477          { itype = SH64_COMPACT_INSN_MOVCAL_COMPACT; goto extract_sfmt_movcal_compact; }
478        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
479      case 72 :
480        if ((entire_insn & 0xffff) == 0x48)
481          { itype = SH64_COMPACT_INSN_CLRS_COMPACT; goto extract_sfmt_clrs_compact; }
482        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
483      case 88 :
484        if ((entire_insn & 0xffff) == 0x58)
485          { itype = SH64_COMPACT_INSN_SETS_COMPACT; goto extract_sfmt_clrs_compact; }
486        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
487      case 90 :
488        if ((entire_insn & 0xf0ff) == 0x5a)
489          { itype = SH64_COMPACT_INSN_STS_FPUL_COMPACT; goto extract_sfmt_sts_fpul_compact; }
490        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
491      case 106 :
492        if ((entire_insn & 0xf0ff) == 0x6a)
493          { itype = SH64_COMPACT_INSN_STS_FPSCR_COMPACT; goto extract_sfmt_sts_fpscr_compact; }
494        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
495      case 115 :
496        if ((entire_insn & 0xf0ff) == 0x73)
497          { itype = SH64_COMPACT_INSN_MOVCOL_COMPACT; goto extract_sfmt_movcol_compact; }
498        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
499      case 128 : /* fall through */
500      case 129 : /* fall through */
501      case 130 : /* fall through */
502      case 131 : /* fall through */
503      case 132 : /* fall through */
504      case 133 : /* fall through */
505      case 134 : /* fall through */
506      case 135 : /* fall through */
507      case 136 : /* fall through */
508      case 137 : /* fall through */
509      case 138 : /* fall through */
510      case 139 : /* fall through */
511      case 140 : /* fall through */
512      case 141 : /* fall through */
513      case 142 : /* fall through */
514      case 143 : /* fall through */
515      case 144 : /* fall through */
516      case 145 : /* fall through */
517      case 146 : /* fall through */
518      case 147 : /* fall through */
519      case 148 : /* fall through */
520      case 149 : /* fall through */
521      case 150 : /* fall through */
522      case 151 : /* fall through */
523      case 152 : /* fall through */
524      case 153 : /* fall through */
525      case 154 : /* fall through */
526      case 155 : /* fall through */
527      case 156 : /* fall through */
528      case 157 : /* fall through */
529      case 158 : /* fall through */
530      case 159 : /* fall through */
531      case 160 : /* fall through */
532      case 161 : /* fall through */
533      case 162 : /* fall through */
534      case 163 : /* fall through */
535      case 164 : /* fall through */
536      case 165 : /* fall through */
537      case 166 : /* fall through */
538      case 167 : /* fall through */
539      case 168 : /* fall through */
540      case 169 : /* fall through */
541      case 170 : /* fall through */
542      case 171 : /* fall through */
543      case 172 : /* fall through */
544      case 173 : /* fall through */
545      case 174 : /* fall through */
546      case 175 : /* fall through */
547      case 176 : /* fall through */
548      case 177 : /* fall through */
549      case 178 : /* fall through */
550      case 179 : /* fall through */
551      case 180 : /* fall through */
552      case 181 : /* fall through */
553      case 182 : /* fall through */
554      case 183 : /* fall through */
555      case 184 : /* fall through */
556      case 185 : /* fall through */
557      case 186 : /* fall through */
558      case 187 : /* fall through */
559      case 188 : /* fall through */
560      case 189 : /* fall through */
561      case 190 : /* fall through */
562      case 191 : /* fall through */
563      case 192 : /* fall through */
564      case 193 : /* fall through */
565      case 194 : /* fall through */
566      case 195 : /* fall through */
567      case 196 : /* fall through */
568      case 197 : /* fall through */
569      case 198 : /* fall through */
570      case 199 : /* fall through */
571      case 200 : /* fall through */
572      case 201 : /* fall through */
573      case 202 : /* fall through */
574      case 203 : /* fall through */
575      case 204 : /* fall through */
576      case 205 : /* fall through */
577      case 206 : /* fall through */
578      case 207 : /* fall through */
579      case 208 : /* fall through */
580      case 209 : /* fall through */
581      case 210 : /* fall through */
582      case 211 : /* fall through */
583      case 212 : /* fall through */
584      case 213 : /* fall through */
585      case 214 : /* fall through */
586      case 215 : /* fall through */
587      case 216 : /* fall through */
588      case 217 : /* fall through */
589      case 218 : /* fall through */
590      case 219 : /* fall through */
591      case 220 : /* fall through */
592      case 221 : /* fall through */
593      case 222 : /* fall through */
594      case 223 : /* fall through */
595      case 224 : /* fall through */
596      case 225 : /* fall through */
597      case 226 : /* fall through */
598      case 227 : /* fall through */
599      case 228 : /* fall through */
600      case 229 : /* fall through */
601      case 230 : /* fall through */
602      case 231 : /* fall through */
603      case 232 : /* fall through */
604      case 233 : /* fall through */
605      case 234 : /* fall through */
606      case 235 : /* fall through */
607      case 236 : /* fall through */
608      case 237 : /* fall through */
609      case 238 : /* fall through */
610      case 239 : /* fall through */
611      case 240 : /* fall through */
612      case 241 : /* fall through */
613      case 242 : /* fall through */
614      case 243 : /* fall through */
615      case 244 : /* fall through */
616      case 245 : /* fall through */
617      case 246 : /* fall through */
618      case 247 : /* fall through */
619      case 248 : /* fall through */
620      case 249 : /* fall through */
621      case 250 : /* fall through */
622      case 251 : /* fall through */
623      case 252 : /* fall through */
624      case 253 : /* fall through */
625      case 254 : /* fall through */
626      case 255 : itype = SH64_COMPACT_INSN_MOVL5_COMPACT; goto extract_sfmt_movl5_compact;
627      case 256 : /* fall through */
628      case 272 : /* fall through */
629      case 288 : /* fall through */
630      case 304 : /* fall through */
631      case 320 : /* fall through */
632      case 336 : /* fall through */
633      case 352 : /* fall through */
634      case 368 : itype = SH64_COMPACT_INSN_MOVB1_COMPACT; goto extract_sfmt_movb1_compact;
635      case 257 : /* fall through */
636      case 273 : /* fall through */
637      case 289 : /* fall through */
638      case 305 : /* fall through */
639      case 321 : /* fall through */
640      case 337 : /* fall through */
641      case 353 : /* fall through */
642      case 369 : itype = SH64_COMPACT_INSN_MOVW1_COMPACT; goto extract_sfmt_movw1_compact;
643      case 258 : /* fall through */
644      case 274 : /* fall through */
645      case 290 : /* fall through */
646      case 306 : /* fall through */
647      case 322 : /* fall through */
648      case 338 : /* fall through */
649      case 354 : /* fall through */
650      case 370 : itype = SH64_COMPACT_INSN_MOVL1_COMPACT; goto extract_sfmt_movl1_compact;
651      case 260 : /* fall through */
652      case 276 : /* fall through */
653      case 292 : /* fall through */
654      case 308 : /* fall through */
655      case 324 : /* fall through */
656      case 340 : /* fall through */
657      case 356 : /* fall through */
658      case 372 : itype = SH64_COMPACT_INSN_MOVB2_COMPACT; goto extract_sfmt_movb2_compact;
659      case 261 : /* fall through */
660      case 277 : /* fall through */
661      case 293 : /* fall through */
662      case 309 : /* fall through */
663      case 325 : /* fall through */
664      case 341 : /* fall through */
665      case 357 : /* fall through */
666      case 373 : itype = SH64_COMPACT_INSN_MOVW2_COMPACT; goto extract_sfmt_movw2_compact;
667      case 262 : /* fall through */
668      case 278 : /* fall through */
669      case 294 : /* fall through */
670      case 310 : /* fall through */
671      case 326 : /* fall through */
672      case 342 : /* fall through */
673      case 358 : /* fall through */
674      case 374 : itype = SH64_COMPACT_INSN_MOVL2_COMPACT; goto extract_sfmt_movl2_compact;
675      case 263 : /* fall through */
676      case 279 : /* fall through */
677      case 295 : /* fall through */
678      case 311 : /* fall through */
679      case 327 : /* fall through */
680      case 343 : /* fall through */
681      case 359 : /* fall through */
682      case 375 : itype = SH64_COMPACT_INSN_DIV0S_COMPACT; goto extract_sfmt_div0s_compact;
683      case 264 : /* fall through */
684      case 280 : /* fall through */
685      case 296 : /* fall through */
686      case 312 : /* fall through */
687      case 328 : /* fall through */
688      case 344 : /* fall through */
689      case 360 : /* fall through */
690      case 376 : itype = SH64_COMPACT_INSN_TST_COMPACT; goto extract_sfmt_cmpeq_compact;
691      case 265 : /* fall through */
692      case 281 : /* fall through */
693      case 297 : /* fall through */
694      case 313 : /* fall through */
695      case 329 : /* fall through */
696      case 345 : /* fall through */
697      case 361 : /* fall through */
698      case 377 : itype = SH64_COMPACT_INSN_AND_COMPACT; goto extract_sfmt_and_compact;
699      case 266 : /* fall through */
700      case 282 : /* fall through */
701      case 298 : /* fall through */
702      case 314 : /* fall through */
703      case 330 : /* fall through */
704      case 346 : /* fall through */
705      case 362 : /* fall through */
706      case 378 : itype = SH64_COMPACT_INSN_XOR_COMPACT; goto extract_sfmt_and_compact;
707      case 267 : /* fall through */
708      case 283 : /* fall through */
709      case 299 : /* fall through */
710      case 315 : /* fall through */
711      case 331 : /* fall through */
712      case 347 : /* fall through */
713      case 363 : /* fall through */
714      case 379 : itype = SH64_COMPACT_INSN_OR_COMPACT; goto extract_sfmt_and_compact;
715      case 268 : /* fall through */
716      case 284 : /* fall through */
717      case 300 : /* fall through */
718      case 316 : /* fall through */
719      case 332 : /* fall through */
720      case 348 : /* fall through */
721      case 364 : /* fall through */
722      case 380 : itype = SH64_COMPACT_INSN_CMPSTR_COMPACT; goto extract_sfmt_cmpeq_compact;
723      case 269 : /* fall through */
724      case 285 : /* fall through */
725      case 301 : /* fall through */
726      case 317 : /* fall through */
727      case 333 : /* fall through */
728      case 349 : /* fall through */
729      case 365 : /* fall through */
730      case 381 : itype = SH64_COMPACT_INSN_XTRCT_COMPACT; goto extract_sfmt_add_compact;
731      case 270 : /* fall through */
732      case 286 : /* fall through */
733      case 302 : /* fall through */
734      case 318 : /* fall through */
735      case 334 : /* fall through */
736      case 350 : /* fall through */
737      case 366 : /* fall through */
738      case 382 : itype = SH64_COMPACT_INSN_MULUW_COMPACT; goto extract_sfmt_mull_compact;
739      case 271 : /* fall through */
740      case 287 : /* fall through */
741      case 303 : /* fall through */
742      case 319 : /* fall through */
743      case 335 : /* fall through */
744      case 351 : /* fall through */
745      case 367 : /* fall through */
746      case 383 : itype = SH64_COMPACT_INSN_MULSW_COMPACT; goto extract_sfmt_mull_compact;
747      case 384 : /* fall through */
748      case 400 : /* fall through */
749      case 416 : /* fall through */
750      case 432 : /* fall through */
751      case 448 : /* fall through */
752      case 464 : /* fall through */
753      case 480 : /* fall through */
754      case 496 : itype = SH64_COMPACT_INSN_CMPEQ_COMPACT; goto extract_sfmt_cmpeq_compact;
755      case 385 : /* fall through */
756      case 417 : /* fall through */
757      case 449 : /* fall through */
758      case 481 :
759        {
760          unsigned int val = (((entire_insn >> 13) & (1 << 1)) | ((entire_insn >> 12) & (1 << 0)));
761          switch (val)
762          {
763          case 0 :
764            if ((entire_insn & 0xf00ff000) == 0x30012000)
765              { itype = SH64_COMPACT_INSN_MOVL13_COMPACT; goto extract_sfmt_movl13_compact; }
766            itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
767          case 1 :
768            if ((entire_insn & 0xf01ff000) == 0x30013000)
769              { itype = SH64_COMPACT_INSN_FMOV9_COMPACT; goto extract_sfmt_fmov9_compact; }
770            itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
771          case 2 :
772            if ((entire_insn & 0xf00ff000) == 0x30016000)
773              { itype = SH64_COMPACT_INSN_MOVL12_COMPACT; goto extract_sfmt_movl12_compact; }
774            itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
775          case 3 :
776            if ((entire_insn & 0xf10ff000) == 0x30017000)
777              { itype = SH64_COMPACT_INSN_FMOV8_COMPACT; goto extract_sfmt_fmov8_compact; }
778            itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
779          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
780          }
781        }
782      case 386 : /* fall through */
783      case 402 : /* fall through */
784      case 418 : /* fall through */
785      case 434 : /* fall through */
786      case 450 : /* fall through */
787      case 466 : /* fall through */
788      case 482 : /* fall through */
789      case 498 : itype = SH64_COMPACT_INSN_CMPHS_COMPACT; goto extract_sfmt_cmpeq_compact;
790      case 387 : /* fall through */
791      case 403 : /* fall through */
792      case 419 : /* fall through */
793      case 435 : /* fall through */
794      case 451 : /* fall through */
795      case 467 : /* fall through */
796      case 483 : /* fall through */
797      case 499 : itype = SH64_COMPACT_INSN_CMPGE_COMPACT; goto extract_sfmt_cmpeq_compact;
798      case 388 : /* fall through */
799      case 404 : /* fall through */
800      case 420 : /* fall through */
801      case 436 : /* fall through */
802      case 452 : /* fall through */
803      case 468 : /* fall through */
804      case 484 : /* fall through */
805      case 500 : itype = SH64_COMPACT_INSN_DIV1_COMPACT; goto extract_sfmt_div1_compact;
806      case 389 : /* fall through */
807      case 405 : /* fall through */
808      case 421 : /* fall through */
809      case 437 : /* fall through */
810      case 453 : /* fall through */
811      case 469 : /* fall through */
812      case 485 : /* fall through */
813      case 501 : itype = SH64_COMPACT_INSN_DMULUL_COMPACT; goto extract_sfmt_dmulsl_compact;
814      case 390 : /* fall through */
815      case 406 : /* fall through */
816      case 422 : /* fall through */
817      case 438 : /* fall through */
818      case 454 : /* fall through */
819      case 470 : /* fall through */
820      case 486 : /* fall through */
821      case 502 : itype = SH64_COMPACT_INSN_CMPHI_COMPACT; goto extract_sfmt_cmpeq_compact;
822      case 391 : /* fall through */
823      case 407 : /* fall through */
824      case 423 : /* fall through */
825      case 439 : /* fall through */
826      case 455 : /* fall through */
827      case 471 : /* fall through */
828      case 487 : /* fall through */
829      case 503 : itype = SH64_COMPACT_INSN_CMPGT_COMPACT; goto extract_sfmt_cmpeq_compact;
830      case 392 : /* fall through */
831      case 408 : /* fall through */
832      case 424 : /* fall through */
833      case 440 : /* fall through */
834      case 456 : /* fall through */
835      case 472 : /* fall through */
836      case 488 : /* fall through */
837      case 504 : itype = SH64_COMPACT_INSN_SUB_COMPACT; goto extract_sfmt_add_compact;
838      case 394 : /* fall through */
839      case 410 : /* fall through */
840      case 426 : /* fall through */
841      case 442 : /* fall through */
842      case 458 : /* fall through */
843      case 474 : /* fall through */
844      case 490 : /* fall through */
845      case 506 : itype = SH64_COMPACT_INSN_SUBC_COMPACT; goto extract_sfmt_addc_compact;
846      case 395 : /* fall through */
847      case 411 : /* fall through */
848      case 427 : /* fall through */
849      case 443 : /* fall through */
850      case 459 : /* fall through */
851      case 475 : /* fall through */
852      case 491 : /* fall through */
853      case 507 : itype = SH64_COMPACT_INSN_SUBV_COMPACT; goto extract_sfmt_addv_compact;
854      case 396 : /* fall through */
855      case 412 : /* fall through */
856      case 428 : /* fall through */
857      case 444 : /* fall through */
858      case 460 : /* fall through */
859      case 476 : /* fall through */
860      case 492 : /* fall through */
861      case 508 : itype = SH64_COMPACT_INSN_ADD_COMPACT; goto extract_sfmt_add_compact;
862      case 397 : /* fall through */
863      case 413 : /* fall through */
864      case 429 : /* fall through */
865      case 445 : /* fall through */
866      case 461 : /* fall through */
867      case 477 : /* fall through */
868      case 493 : /* fall through */
869      case 509 : itype = SH64_COMPACT_INSN_DMULSL_COMPACT; goto extract_sfmt_dmulsl_compact;
870      case 398 : /* fall through */
871      case 414 : /* fall through */
872      case 430 : /* fall through */
873      case 446 : /* fall through */
874      case 462 : /* fall through */
875      case 478 : /* fall through */
876      case 494 : /* fall through */
877      case 510 : itype = SH64_COMPACT_INSN_ADDC_COMPACT; goto extract_sfmt_addc_compact;
878      case 399 : /* fall through */
879      case 415 : /* fall through */
880      case 431 : /* fall through */
881      case 447 : /* fall through */
882      case 463 : /* fall through */
883      case 479 : /* fall through */
884      case 495 : /* fall through */
885      case 511 : itype = SH64_COMPACT_INSN_ADDV_COMPACT; goto extract_sfmt_addv_compact;
886      case 401 : /* fall through */
887      case 433 : /* fall through */
888      case 465 : /* fall through */
889      case 497 :
890        {
891          unsigned int val = (((entire_insn >> 13) & (1 << 1)) | ((entire_insn >> 12) & (1 << 0)));
892          switch (val)
893          {
894          case 0 :
895            if ((entire_insn & 0xf00ff000) == 0x30012000)
896              { itype = SH64_COMPACT_INSN_MOVL13_COMPACT; goto extract_sfmt_movl13_compact; }
897            itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
898          case 2 :
899            if ((entire_insn & 0xf00ff000) == 0x30016000)
900              { itype = SH64_COMPACT_INSN_MOVL12_COMPACT; goto extract_sfmt_movl12_compact; }
901            itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
902          case 3 :
903            if ((entire_insn & 0xf10ff000) == 0x30017000)
904              { itype = SH64_COMPACT_INSN_FMOV8_COMPACT; goto extract_sfmt_fmov8_compact; }
905            itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
906          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
907          }
908        }
909      case 512 :
910        {
911          unsigned int val = (((insn >> 7) & (1 << 0)));
912          switch (val)
913          {
914          case 0 : itype = SH64_COMPACT_INSN_SHLL_COMPACT; goto extract_sfmt_dt_compact;
915          case 1 : itype = SH64_COMPACT_INSN_MULR_COMPACT; goto extract_sfmt_divu_compact;
916          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
917          }
918        }
919      case 513 :
920        if ((entire_insn & 0xf0ff) == 0x4001)
921          { itype = SH64_COMPACT_INSN_SHLR_COMPACT; goto extract_sfmt_dt_compact; }
922        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
923      case 514 :
924        if ((entire_insn & 0xf0ff) == 0x4002)
925          { itype = SH64_COMPACT_INSN_STSL_MACH_COMPACT; goto extract_sfmt_stsl_mach_compact; }
926        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
927      case 516 :
928        {
929          unsigned int val = (((insn >> 7) & (1 << 0)));
930          switch (val)
931          {
932          case 0 : itype = SH64_COMPACT_INSN_ROTL_COMPACT; goto extract_sfmt_dt_compact;
933          case 1 : itype = SH64_COMPACT_INSN_DIVU_COMPACT; goto extract_sfmt_divu_compact;
934          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
935          }
936        }
937      case 517 :
938        if ((entire_insn & 0xf0ff) == 0x4005)
939          { itype = SH64_COMPACT_INSN_ROTR_COMPACT; goto extract_sfmt_dt_compact; }
940        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
941      case 518 :
942        if ((entire_insn & 0xf0ff) == 0x4006)
943          { itype = SH64_COMPACT_INSN_LDSL_MACH_COMPACT; goto extract_sfmt_ldsl_mach_compact; }
944        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
945      case 520 :
946        if ((entire_insn & 0xf0ff) == 0x4008)
947          { itype = SH64_COMPACT_INSN_SHLL2_COMPACT; goto extract_sfmt_movcol_compact; }
948        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
949      case 521 :
950        if ((entire_insn & 0xf0ff) == 0x4009)
951          { itype = SH64_COMPACT_INSN_SHLR2_COMPACT; goto extract_sfmt_movcol_compact; }
952        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
953      case 522 :
954        if ((entire_insn & 0xf0ff) == 0x400a)
955          { itype = SH64_COMPACT_INSN_LDS_MACH_COMPACT; goto extract_sfmt_lds_mach_compact; }
956        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
957      case 523 :
958        if ((entire_insn & 0xf0ff) == 0x400b)
959          { itype = SH64_COMPACT_INSN_JSR_COMPACT; goto extract_sfmt_bsrf_compact; }
960        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
961      case 524 : /* fall through */
962      case 540 : /* fall through */
963      case 556 : /* fall through */
964      case 572 : /* fall through */
965      case 588 : /* fall through */
966      case 604 : /* fall through */
967      case 620 : /* fall through */
968      case 636 : itype = SH64_COMPACT_INSN_SHAD_COMPACT; goto extract_sfmt_shad_compact;
969      case 525 : /* fall through */
970      case 541 : /* fall through */
971      case 557 : /* fall through */
972      case 573 : /* fall through */
973      case 589 : /* fall through */
974      case 605 : /* fall through */
975      case 621 : /* fall through */
976      case 637 : itype = SH64_COMPACT_INSN_SHLD_COMPACT; goto extract_sfmt_shad_compact;
977      case 526 :
978        if ((entire_insn & 0xf0ff) == 0x400e)
979          { itype = SH64_COMPACT_INSN_LDC_SR_COMPACT; goto extract_sfmt_ldc_sr_compact; }
980        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
981      case 527 : /* fall through */
982      case 543 : /* fall through */
983      case 559 : /* fall through */
984      case 575 : /* fall through */
985      case 591 : /* fall through */
986      case 607 : /* fall through */
987      case 623 : /* fall through */
988      case 639 : itype = SH64_COMPACT_INSN_MACW_COMPACT; goto extract_sfmt_macw_compact;
989      case 528 :
990        if ((entire_insn & 0xf0ff) == 0x4010)
991          { itype = SH64_COMPACT_INSN_DT_COMPACT; goto extract_sfmt_dt_compact; }
992        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
993      case 529 :
994        if ((entire_insn & 0xf0ff) == 0x4011)
995          { itype = SH64_COMPACT_INSN_CMPPZ_COMPACT; goto extract_sfmt_cmppl_compact; }
996        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
997      case 530 :
998        if ((entire_insn & 0xf0ff) == 0x4012)
999          { itype = SH64_COMPACT_INSN_STSL_MACL_COMPACT; goto extract_sfmt_stsl_macl_compact; }
1000        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1001      case 531 :
1002        if ((entire_insn & 0xf0ff) == 0x4013)
1003          { itype = SH64_COMPACT_INSN_STCL_GBR_COMPACT; goto extract_sfmt_stcl_gbr_compact; }
1004        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1005      case 533 :
1006        if ((entire_insn & 0xf0ff) == 0x4015)
1007          { itype = SH64_COMPACT_INSN_CMPPL_COMPACT; goto extract_sfmt_cmppl_compact; }
1008        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1009      case 534 :
1010        if ((entire_insn & 0xf0ff) == 0x4016)
1011          { itype = SH64_COMPACT_INSN_LDSL_MACL_COMPACT; goto extract_sfmt_ldsl_macl_compact; }
1012        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1013      case 535 :
1014        if ((entire_insn & 0xf0ff) == 0x4017)
1015          { itype = SH64_COMPACT_INSN_LDCL_GBR_COMPACT; goto extract_sfmt_ldcl_gbr_compact; }
1016        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1017      case 536 :
1018        if ((entire_insn & 0xf0ff) == 0x4018)
1019          { itype = SH64_COMPACT_INSN_SHLL8_COMPACT; goto extract_sfmt_movcol_compact; }
1020        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1021      case 537 :
1022        if ((entire_insn & 0xf0ff) == 0x4019)
1023          { itype = SH64_COMPACT_INSN_SHLR8_COMPACT; goto extract_sfmt_movcol_compact; }
1024        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1025      case 538 :
1026        if ((entire_insn & 0xf0ff) == 0x401a)
1027          { itype = SH64_COMPACT_INSN_LDS_MACL_COMPACT; goto extract_sfmt_lds_macl_compact; }
1028        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1029      case 539 :
1030        if ((entire_insn & 0xf0ff) == 0x401b)
1031          { itype = SH64_COMPACT_INSN_TASB_COMPACT; goto extract_sfmt_tasb_compact; }
1032        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1033      case 542 :
1034        if ((entire_insn & 0xf0ff) == 0x401e)
1035          { itype = SH64_COMPACT_INSN_LDC_GBR_COMPACT; goto extract_sfmt_ldc_gbr_compact; }
1036        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1037      case 544 :
1038        if ((entire_insn & 0xf0ff) == 0x4020)
1039          { itype = SH64_COMPACT_INSN_SHAL_COMPACT; goto extract_sfmt_dt_compact; }
1040        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1041      case 545 :
1042        if ((entire_insn & 0xf0ff) == 0x4021)
1043          { itype = SH64_COMPACT_INSN_SHAR_COMPACT; goto extract_sfmt_dt_compact; }
1044        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1045      case 546 :
1046        if ((entire_insn & 0xf0ff) == 0x4022)
1047          { itype = SH64_COMPACT_INSN_STSL_PR_COMPACT; goto extract_sfmt_stsl_pr_compact; }
1048        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1049      case 547 :
1050        if ((entire_insn & 0xf0ff) == 0x4023)
1051          { itype = SH64_COMPACT_INSN_STCL_VBR_COMPACT; goto extract_sfmt_stcl_vbr_compact; }
1052        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1053      case 548 :
1054        if ((entire_insn & 0xf0ff) == 0x4024)
1055          { itype = SH64_COMPACT_INSN_ROTCL_COMPACT; goto extract_sfmt_rotcl_compact; }
1056        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1057      case 549 :
1058        if ((entire_insn & 0xf0ff) == 0x4025)
1059          { itype = SH64_COMPACT_INSN_ROTCR_COMPACT; goto extract_sfmt_rotcl_compact; }
1060        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1061      case 550 :
1062        if ((entire_insn & 0xf0ff) == 0x4026)
1063          { itype = SH64_COMPACT_INSN_LDSL_PR_COMPACT; goto extract_sfmt_ldsl_pr_compact; }
1064        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1065      case 551 :
1066        if ((entire_insn & 0xf0ff) == 0x4027)
1067          { itype = SH64_COMPACT_INSN_LDCL_VBR_COMPACT; goto extract_sfmt_ldcl_vbr_compact; }
1068        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1069      case 552 :
1070        if ((entire_insn & 0xf0ff) == 0x4028)
1071          { itype = SH64_COMPACT_INSN_SHLL16_COMPACT; goto extract_sfmt_movcol_compact; }
1072        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1073      case 553 :
1074        {
1075          unsigned int val = (((insn >> 7) & (1 << 0)));
1076          switch (val)
1077          {
1078          case 0 : itype = SH64_COMPACT_INSN_SHLR16_COMPACT; goto extract_sfmt_movcol_compact;
1079          case 1 : itype = SH64_COMPACT_INSN_MOVUAL_COMPACT; goto extract_sfmt_movual_compact;
1080          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1081          }
1082        }
1083      case 554 :
1084        if ((entire_insn & 0xf0ff) == 0x402a)
1085          { itype = SH64_COMPACT_INSN_LDS_PR_COMPACT; goto extract_sfmt_lds_pr_compact; }
1086        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1087      case 555 :
1088        if ((entire_insn & 0xf0ff) == 0x402b)
1089          { itype = SH64_COMPACT_INSN_JMP_COMPACT; goto extract_sfmt_braf_compact; }
1090        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1091      case 558 :
1092        if ((entire_insn & 0xf0ff) == 0x402e)
1093          { itype = SH64_COMPACT_INSN_LDC_VBR_COMPACT; goto extract_sfmt_ldc_vbr_compact; }
1094        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1095      case 594 :
1096        if ((entire_insn & 0xf0ff) == 0x4052)
1097          { itype = SH64_COMPACT_INSN_STSL_FPUL_COMPACT; goto extract_sfmt_stsl_fpul_compact; }
1098        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1099      case 598 :
1100        if ((entire_insn & 0xf0ff) == 0x4056)
1101          { itype = SH64_COMPACT_INSN_LDSL_FPUL_COMPACT; goto extract_sfmt_ldsl_fpul_compact; }
1102        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1103      case 602 :
1104        if ((entire_insn & 0xf0ff) == 0x405a)
1105          { itype = SH64_COMPACT_INSN_LDS_FPUL_COMPACT; goto extract_sfmt_lds_fpul_compact; }
1106        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1107      case 610 :
1108        if ((entire_insn & 0xf0ff) == 0x4062)
1109          { itype = SH64_COMPACT_INSN_STSL_FPSCR_COMPACT; goto extract_sfmt_stsl_fpscr_compact; }
1110        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1111      case 614 :
1112        if ((entire_insn & 0xf0ff) == 0x4066)
1113          { itype = SH64_COMPACT_INSN_LDSL_FPSCR_COMPACT; goto extract_sfmt_ldsl_fpscr_compact; }
1114        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1115      case 617 :
1116        if ((entire_insn & 0xf0ff) == 0x40e9)
1117          { itype = SH64_COMPACT_INSN_MOVUAL2_COMPACT; goto extract_sfmt_movual2_compact; }
1118        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1119      case 618 :
1120        if ((entire_insn & 0xf0ff) == 0x406a)
1121          { itype = SH64_COMPACT_INSN_LDS_FPSCR_COMPACT; goto extract_sfmt_lds_fpscr_compact; }
1122        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1123      case 640 : /* fall through */
1124      case 641 : /* fall through */
1125      case 642 : /* fall through */
1126      case 643 : /* fall through */
1127      case 644 : /* fall through */
1128      case 645 : /* fall through */
1129      case 646 : /* fall through */
1130      case 647 : /* fall through */
1131      case 648 : /* fall through */
1132      case 649 : /* fall through */
1133      case 650 : /* fall through */
1134      case 651 : /* fall through */
1135      case 652 : /* fall through */
1136      case 653 : /* fall through */
1137      case 654 : /* fall through */
1138      case 655 : /* fall through */
1139      case 656 : /* fall through */
1140      case 657 : /* fall through */
1141      case 658 : /* fall through */
1142      case 659 : /* fall through */
1143      case 660 : /* fall through */
1144      case 661 : /* fall through */
1145      case 662 : /* fall through */
1146      case 663 : /* fall through */
1147      case 664 : /* fall through */
1148      case 665 : /* fall through */
1149      case 666 : /* fall through */
1150      case 667 : /* fall through */
1151      case 668 : /* fall through */
1152      case 669 : /* fall through */
1153      case 670 : /* fall through */
1154      case 671 : /* fall through */
1155      case 672 : /* fall through */
1156      case 673 : /* fall through */
1157      case 674 : /* fall through */
1158      case 675 : /* fall through */
1159      case 676 : /* fall through */
1160      case 677 : /* fall through */
1161      case 678 : /* fall through */
1162      case 679 : /* fall through */
1163      case 680 : /* fall through */
1164      case 681 : /* fall through */
1165      case 682 : /* fall through */
1166      case 683 : /* fall through */
1167      case 684 : /* fall through */
1168      case 685 : /* fall through */
1169      case 686 : /* fall through */
1170      case 687 : /* fall through */
1171      case 688 : /* fall through */
1172      case 689 : /* fall through */
1173      case 690 : /* fall through */
1174      case 691 : /* fall through */
1175      case 692 : /* fall through */
1176      case 693 : /* fall through */
1177      case 694 : /* fall through */
1178      case 695 : /* fall through */
1179      case 696 : /* fall through */
1180      case 697 : /* fall through */
1181      case 698 : /* fall through */
1182      case 699 : /* fall through */
1183      case 700 : /* fall through */
1184      case 701 : /* fall through */
1185      case 702 : /* fall through */
1186      case 703 : /* fall through */
1187      case 704 : /* fall through */
1188      case 705 : /* fall through */
1189      case 706 : /* fall through */
1190      case 707 : /* fall through */
1191      case 708 : /* fall through */
1192      case 709 : /* fall through */
1193      case 710 : /* fall through */
1194      case 711 : /* fall through */
1195      case 712 : /* fall through */
1196      case 713 : /* fall through */
1197      case 714 : /* fall through */
1198      case 715 : /* fall through */
1199      case 716 : /* fall through */
1200      case 717 : /* fall through */
1201      case 718 : /* fall through */
1202      case 719 : /* fall through */
1203      case 720 : /* fall through */
1204      case 721 : /* fall through */
1205      case 722 : /* fall through */
1206      case 723 : /* fall through */
1207      case 724 : /* fall through */
1208      case 725 : /* fall through */
1209      case 726 : /* fall through */
1210      case 727 : /* fall through */
1211      case 728 : /* fall through */
1212      case 729 : /* fall through */
1213      case 730 : /* fall through */
1214      case 731 : /* fall through */
1215      case 732 : /* fall through */
1216      case 733 : /* fall through */
1217      case 734 : /* fall through */
1218      case 735 : /* fall through */
1219      case 736 : /* fall through */
1220      case 737 : /* fall through */
1221      case 738 : /* fall through */
1222      case 739 : /* fall through */
1223      case 740 : /* fall through */
1224      case 741 : /* fall through */
1225      case 742 : /* fall through */
1226      case 743 : /* fall through */
1227      case 744 : /* fall through */
1228      case 745 : /* fall through */
1229      case 746 : /* fall through */
1230      case 747 : /* fall through */
1231      case 748 : /* fall through */
1232      case 749 : /* fall through */
1233      case 750 : /* fall through */
1234      case 751 : /* fall through */
1235      case 752 : /* fall through */
1236      case 753 : /* fall through */
1237      case 754 : /* fall through */
1238      case 755 : /* fall through */
1239      case 756 : /* fall through */
1240      case 757 : /* fall through */
1241      case 758 : /* fall through */
1242      case 759 : /* fall through */
1243      case 760 : /* fall through */
1244      case 761 : /* fall through */
1245      case 762 : /* fall through */
1246      case 763 : /* fall through */
1247      case 764 : /* fall through */
1248      case 765 : /* fall through */
1249      case 766 : /* fall through */
1250      case 767 : itype = SH64_COMPACT_INSN_MOVL11_COMPACT; goto extract_sfmt_movl11_compact;
1251      case 768 : /* fall through */
1252      case 784 : /* fall through */
1253      case 800 : /* fall through */
1254      case 816 : /* fall through */
1255      case 832 : /* fall through */
1256      case 848 : /* fall through */
1257      case 864 : /* fall through */
1258      case 880 : itype = SH64_COMPACT_INSN_MOVB6_COMPACT; goto extract_sfmt_movb6_compact;
1259      case 769 : /* fall through */
1260      case 785 : /* fall through */
1261      case 801 : /* fall through */
1262      case 817 : /* fall through */
1263      case 833 : /* fall through */
1264      case 849 : /* fall through */
1265      case 865 : /* fall through */
1266      case 881 : itype = SH64_COMPACT_INSN_MOVW6_COMPACT; goto extract_sfmt_movw6_compact;
1267      case 770 : /* fall through */
1268      case 786 : /* fall through */
1269      case 802 : /* fall through */
1270      case 818 : /* fall through */
1271      case 834 : /* fall through */
1272      case 850 : /* fall through */
1273      case 866 : /* fall through */
1274      case 882 : itype = SH64_COMPACT_INSN_MOVL6_COMPACT; goto extract_sfmt_movl6_compact;
1275      case 771 : /* fall through */
1276      case 787 : /* fall through */
1277      case 803 : /* fall through */
1278      case 819 : /* fall through */
1279      case 835 : /* fall through */
1280      case 851 : /* fall through */
1281      case 867 : /* fall through */
1282      case 883 : itype = SH64_COMPACT_INSN_MOV_COMPACT; goto extract_sfmt_mov_compact;
1283      case 772 : /* fall through */
1284      case 788 : /* fall through */
1285      case 804 : /* fall through */
1286      case 820 : /* fall through */
1287      case 836 : /* fall through */
1288      case 852 : /* fall through */
1289      case 868 : /* fall through */
1290      case 884 : itype = SH64_COMPACT_INSN_MOVB7_COMPACT; goto extract_sfmt_movb7_compact;
1291      case 773 : /* fall through */
1292      case 789 : /* fall through */
1293      case 805 : /* fall through */
1294      case 821 : /* fall through */
1295      case 837 : /* fall through */
1296      case 853 : /* fall through */
1297      case 869 : /* fall through */
1298      case 885 : itype = SH64_COMPACT_INSN_MOVW7_COMPACT; goto extract_sfmt_movw7_compact;
1299      case 774 : /* fall through */
1300      case 790 : /* fall through */
1301      case 806 : /* fall through */
1302      case 822 : /* fall through */
1303      case 838 : /* fall through */
1304      case 854 : /* fall through */
1305      case 870 : /* fall through */
1306      case 886 : itype = SH64_COMPACT_INSN_MOVL7_COMPACT; goto extract_sfmt_movl7_compact;
1307      case 775 : /* fall through */
1308      case 791 : /* fall through */
1309      case 807 : /* fall through */
1310      case 823 : /* fall through */
1311      case 839 : /* fall through */
1312      case 855 : /* fall through */
1313      case 871 : /* fall through */
1314      case 887 : itype = SH64_COMPACT_INSN_NOT_COMPACT; goto extract_sfmt_mov_compact;
1315      case 776 : /* fall through */
1316      case 792 : /* fall through */
1317      case 808 : /* fall through */
1318      case 824 : /* fall through */
1319      case 840 : /* fall through */
1320      case 856 : /* fall through */
1321      case 872 : /* fall through */
1322      case 888 : itype = SH64_COMPACT_INSN_SWAPB_COMPACT; goto extract_sfmt_extsb_compact;
1323      case 777 : /* fall through */
1324      case 793 : /* fall through */
1325      case 809 : /* fall through */
1326      case 825 : /* fall through */
1327      case 841 : /* fall through */
1328      case 857 : /* fall through */
1329      case 873 : /* fall through */
1330      case 889 : itype = SH64_COMPACT_INSN_SWAPW_COMPACT; goto extract_sfmt_extsb_compact;
1331      case 778 : /* fall through */
1332      case 794 : /* fall through */
1333      case 810 : /* fall through */
1334      case 826 : /* fall through */
1335      case 842 : /* fall through */
1336      case 858 : /* fall through */
1337      case 874 : /* fall through */
1338      case 890 : itype = SH64_COMPACT_INSN_NEGC_COMPACT; goto extract_sfmt_negc_compact;
1339      case 779 : /* fall through */
1340      case 795 : /* fall through */
1341      case 811 : /* fall through */
1342      case 827 : /* fall through */
1343      case 843 : /* fall through */
1344      case 859 : /* fall through */
1345      case 875 : /* fall through */
1346      case 891 : itype = SH64_COMPACT_INSN_NEG_COMPACT; goto extract_sfmt_extsb_compact;
1347      case 780 : /* fall through */
1348      case 796 : /* fall through */
1349      case 812 : /* fall through */
1350      case 828 : /* fall through */
1351      case 844 : /* fall through */
1352      case 860 : /* fall through */
1353      case 876 : /* fall through */
1354      case 892 : itype = SH64_COMPACT_INSN_EXTUB_COMPACT; goto extract_sfmt_extsb_compact;
1355      case 781 : /* fall through */
1356      case 797 : /* fall through */
1357      case 813 : /* fall through */
1358      case 829 : /* fall through */
1359      case 845 : /* fall through */
1360      case 861 : /* fall through */
1361      case 877 : /* fall through */
1362      case 893 : itype = SH64_COMPACT_INSN_EXTUW_COMPACT; goto extract_sfmt_extsb_compact;
1363      case 782 : /* fall through */
1364      case 798 : /* fall through */
1365      case 814 : /* fall through */
1366      case 830 : /* fall through */
1367      case 846 : /* fall through */
1368      case 862 : /* fall through */
1369      case 878 : /* fall through */
1370      case 894 : itype = SH64_COMPACT_INSN_EXTSB_COMPACT; goto extract_sfmt_extsb_compact;
1371      case 783 : /* fall through */
1372      case 799 : /* fall through */
1373      case 815 : /* fall through */
1374      case 831 : /* fall through */
1375      case 847 : /* fall through */
1376      case 863 : /* fall through */
1377      case 879 : /* fall through */
1378      case 895 : itype = SH64_COMPACT_INSN_EXTSW_COMPACT; goto extract_sfmt_extsb_compact;
1379      case 896 : /* fall through */
1380      case 897 : /* fall through */
1381      case 898 : /* fall through */
1382      case 899 : /* fall through */
1383      case 900 : /* fall through */
1384      case 901 : /* fall through */
1385      case 902 : /* fall through */
1386      case 903 : /* fall through */
1387      case 904 : /* fall through */
1388      case 905 : /* fall through */
1389      case 906 : /* fall through */
1390      case 907 : /* fall through */
1391      case 908 : /* fall through */
1392      case 909 : /* fall through */
1393      case 910 : /* fall through */
1394      case 911 : /* fall through */
1395      case 912 : /* fall through */
1396      case 913 : /* fall through */
1397      case 914 : /* fall through */
1398      case 915 : /* fall through */
1399      case 916 : /* fall through */
1400      case 917 : /* fall through */
1401      case 918 : /* fall through */
1402      case 919 : /* fall through */
1403      case 920 : /* fall through */
1404      case 921 : /* fall through */
1405      case 922 : /* fall through */
1406      case 923 : /* fall through */
1407      case 924 : /* fall through */
1408      case 925 : /* fall through */
1409      case 926 : /* fall through */
1410      case 927 : /* fall through */
1411      case 928 : /* fall through */
1412      case 929 : /* fall through */
1413      case 930 : /* fall through */
1414      case 931 : /* fall through */
1415      case 932 : /* fall through */
1416      case 933 : /* fall through */
1417      case 934 : /* fall through */
1418      case 935 : /* fall through */
1419      case 936 : /* fall through */
1420      case 937 : /* fall through */
1421      case 938 : /* fall through */
1422      case 939 : /* fall through */
1423      case 940 : /* fall through */
1424      case 941 : /* fall through */
1425      case 942 : /* fall through */
1426      case 943 : /* fall through */
1427      case 944 : /* fall through */
1428      case 945 : /* fall through */
1429      case 946 : /* fall through */
1430      case 947 : /* fall through */
1431      case 948 : /* fall through */
1432      case 949 : /* fall through */
1433      case 950 : /* fall through */
1434      case 951 : /* fall through */
1435      case 952 : /* fall through */
1436      case 953 : /* fall through */
1437      case 954 : /* fall through */
1438      case 955 : /* fall through */
1439      case 956 : /* fall through */
1440      case 957 : /* fall through */
1441      case 958 : /* fall through */
1442      case 959 : /* fall through */
1443      case 960 : /* fall through */
1444      case 961 : /* fall through */
1445      case 962 : /* fall through */
1446      case 963 : /* fall through */
1447      case 964 : /* fall through */
1448      case 965 : /* fall through */
1449      case 966 : /* fall through */
1450      case 967 : /* fall through */
1451      case 968 : /* fall through */
1452      case 969 : /* fall through */
1453      case 970 : /* fall through */
1454      case 971 : /* fall through */
1455      case 972 : /* fall through */
1456      case 973 : /* fall through */
1457      case 974 : /* fall through */
1458      case 975 : /* fall through */
1459      case 976 : /* fall through */
1460      case 977 : /* fall through */
1461      case 978 : /* fall through */
1462      case 979 : /* fall through */
1463      case 980 : /* fall through */
1464      case 981 : /* fall through */
1465      case 982 : /* fall through */
1466      case 983 : /* fall through */
1467      case 984 : /* fall through */
1468      case 985 : /* fall through */
1469      case 986 : /* fall through */
1470      case 987 : /* fall through */
1471      case 988 : /* fall through */
1472      case 989 : /* fall through */
1473      case 990 : /* fall through */
1474      case 991 : /* fall through */
1475      case 992 : /* fall through */
1476      case 993 : /* fall through */
1477      case 994 : /* fall through */
1478      case 995 : /* fall through */
1479      case 996 : /* fall through */
1480      case 997 : /* fall through */
1481      case 998 : /* fall through */
1482      case 999 : /* fall through */
1483      case 1000 : /* fall through */
1484      case 1001 : /* fall through */
1485      case 1002 : /* fall through */
1486      case 1003 : /* fall through */
1487      case 1004 : /* fall through */
1488      case 1005 : /* fall through */
1489      case 1006 : /* fall through */
1490      case 1007 : /* fall through */
1491      case 1008 : /* fall through */
1492      case 1009 : /* fall through */
1493      case 1010 : /* fall through */
1494      case 1011 : /* fall through */
1495      case 1012 : /* fall through */
1496      case 1013 : /* fall through */
1497      case 1014 : /* fall through */
1498      case 1015 : /* fall through */
1499      case 1016 : /* fall through */
1500      case 1017 : /* fall through */
1501      case 1018 : /* fall through */
1502      case 1019 : /* fall through */
1503      case 1020 : /* fall through */
1504      case 1021 : /* fall through */
1505      case 1022 : /* fall through */
1506      case 1023 : itype = SH64_COMPACT_INSN_ADDI_COMPACT; goto extract_sfmt_addi_compact;
1507      case 1024 : /* fall through */
1508      case 1025 : /* fall through */
1509      case 1026 : /* fall through */
1510      case 1027 : /* fall through */
1511      case 1028 : /* fall through */
1512      case 1029 : /* fall through */
1513      case 1030 : /* fall through */
1514      case 1031 : /* fall through */
1515      case 1032 : /* fall through */
1516      case 1033 : /* fall through */
1517      case 1034 : /* fall through */
1518      case 1035 : /* fall through */
1519      case 1036 : /* fall through */
1520      case 1037 : /* fall through */
1521      case 1038 : /* fall through */
1522      case 1039 : /* fall through */
1523      case 1040 : /* fall through */
1524      case 1041 : /* fall through */
1525      case 1042 : /* fall through */
1526      case 1043 : /* fall through */
1527      case 1044 : /* fall through */
1528      case 1045 : /* fall through */
1529      case 1046 : /* fall through */
1530      case 1047 : /* fall through */
1531      case 1048 : /* fall through */
1532      case 1049 : /* fall through */
1533      case 1050 : /* fall through */
1534      case 1051 : /* fall through */
1535      case 1052 : /* fall through */
1536      case 1053 : /* fall through */
1537      case 1054 : /* fall through */
1538      case 1055 : /* fall through */
1539      case 1056 : /* fall through */
1540      case 1057 : /* fall through */
1541      case 1058 : /* fall through */
1542      case 1059 : /* fall through */
1543      case 1060 : /* fall through */
1544      case 1061 : /* fall through */
1545      case 1062 : /* fall through */
1546      case 1063 : /* fall through */
1547      case 1064 : /* fall through */
1548      case 1065 : /* fall through */
1549      case 1066 : /* fall through */
1550      case 1067 : /* fall through */
1551      case 1068 : /* fall through */
1552      case 1069 : /* fall through */
1553      case 1070 : /* fall through */
1554      case 1071 : /* fall through */
1555      case 1072 : /* fall through */
1556      case 1073 : /* fall through */
1557      case 1074 : /* fall through */
1558      case 1075 : /* fall through */
1559      case 1076 : /* fall through */
1560      case 1077 : /* fall through */
1561      case 1078 : /* fall through */
1562      case 1079 : /* fall through */
1563      case 1080 : /* fall through */
1564      case 1081 : /* fall through */
1565      case 1082 : /* fall through */
1566      case 1083 : /* fall through */
1567      case 1084 : /* fall through */
1568      case 1085 : /* fall through */
1569      case 1086 : /* fall through */
1570      case 1087 : /* fall through */
1571      case 1088 : /* fall through */
1572      case 1089 : /* fall through */
1573      case 1090 : /* fall through */
1574      case 1091 : /* fall through */
1575      case 1092 : /* fall through */
1576      case 1093 : /* fall through */
1577      case 1094 : /* fall through */
1578      case 1095 : /* fall through */
1579      case 1096 : /* fall through */
1580      case 1097 : /* fall through */
1581      case 1098 : /* fall through */
1582      case 1099 : /* fall through */
1583      case 1100 : /* fall through */
1584      case 1101 : /* fall through */
1585      case 1102 : /* fall through */
1586      case 1103 : /* fall through */
1587      case 1104 : /* fall through */
1588      case 1105 : /* fall through */
1589      case 1106 : /* fall through */
1590      case 1107 : /* fall through */
1591      case 1108 : /* fall through */
1592      case 1109 : /* fall through */
1593      case 1110 : /* fall through */
1594      case 1111 : /* fall through */
1595      case 1112 : /* fall through */
1596      case 1113 : /* fall through */
1597      case 1114 : /* fall through */
1598      case 1115 : /* fall through */
1599      case 1116 : /* fall through */
1600      case 1117 : /* fall through */
1601      case 1118 : /* fall through */
1602      case 1119 : /* fall through */
1603      case 1120 : /* fall through */
1604      case 1121 : /* fall through */
1605      case 1122 : /* fall through */
1606      case 1123 : /* fall through */
1607      case 1124 : /* fall through */
1608      case 1125 : /* fall through */
1609      case 1126 : /* fall through */
1610      case 1127 : /* fall through */
1611      case 1128 : /* fall through */
1612      case 1129 : /* fall through */
1613      case 1130 : /* fall through */
1614      case 1131 : /* fall through */
1615      case 1132 : /* fall through */
1616      case 1133 : /* fall through */
1617      case 1134 : /* fall through */
1618      case 1135 : /* fall through */
1619      case 1136 : /* fall through */
1620      case 1137 : /* fall through */
1621      case 1138 : /* fall through */
1622      case 1139 : /* fall through */
1623      case 1140 : /* fall through */
1624      case 1141 : /* fall through */
1625      case 1142 : /* fall through */
1626      case 1143 : /* fall through */
1627      case 1144 : /* fall through */
1628      case 1145 : /* fall through */
1629      case 1146 : /* fall through */
1630      case 1147 : /* fall through */
1631      case 1148 : /* fall through */
1632      case 1149 : /* fall through */
1633      case 1150 : /* fall through */
1634      case 1151 :
1635        {
1636          unsigned int val = (((insn >> 8) & (15 << 0)));
1637          switch (val)
1638          {
1639          case 0 : itype = SH64_COMPACT_INSN_MOVB5_COMPACT; goto extract_sfmt_movb5_compact;
1640          case 1 : itype = SH64_COMPACT_INSN_MOVW5_COMPACT; goto extract_sfmt_movw5_compact;
1641          case 4 : itype = SH64_COMPACT_INSN_MOVB10_COMPACT; goto extract_sfmt_movb10_compact;
1642          case 5 : itype = SH64_COMPACT_INSN_MOVW11_COMPACT; goto extract_sfmt_movw11_compact;
1643          case 8 : itype = SH64_COMPACT_INSN_CMPEQI_COMPACT; goto extract_sfmt_cmpeqi_compact;
1644          case 9 : itype = SH64_COMPACT_INSN_BT_COMPACT; goto extract_sfmt_bf_compact;
1645          case 11 : itype = SH64_COMPACT_INSN_BF_COMPACT; goto extract_sfmt_bf_compact;
1646          case 13 : itype = SH64_COMPACT_INSN_BTS_COMPACT; goto extract_sfmt_bfs_compact;
1647          case 15 : itype = SH64_COMPACT_INSN_BFS_COMPACT; goto extract_sfmt_bfs_compact;
1648          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
1649          }
1650        }
1651      case 1152 : /* fall through */
1652      case 1153 : /* fall through */
1653      case 1154 : /* fall through */
1654      case 1155 : /* fall through */
1655      case 1156 : /* fall through */
1656      case 1157 : /* fall through */
1657      case 1158 : /* fall through */
1658      case 1159 : /* fall through */
1659      case 1160 : /* fall through */
1660      case 1161 : /* fall through */
1661      case 1162 : /* fall through */
1662      case 1163 : /* fall through */
1663      case 1164 : /* fall through */
1664      case 1165 : /* fall through */
1665      case 1166 : /* fall through */
1666      case 1167 : /* fall through */
1667      case 1168 : /* fall through */
1668      case 1169 : /* fall through */
1669      case 1170 : /* fall through */
1670      case 1171 : /* fall through */
1671      case 1172 : /* fall through */
1672      case 1173 : /* fall through */
1673      case 1174 : /* fall through */
1674      case 1175 : /* fall through */
1675      case 1176 : /* fall through */
1676      case 1177 : /* fall through */
1677      case 1178 : /* fall through */
1678      case 1179 : /* fall through */
1679      case 1180 : /* fall through */
1680      case 1181 : /* fall through */
1681      case 1182 : /* fall through */
1682      case 1183 : /* fall through */
1683      case 1184 : /* fall through */
1684      case 1185 : /* fall through */
1685      case 1186 : /* fall through */
1686      case 1187 : /* fall through */
1687      case 1188 : /* fall through */
1688      case 1189 : /* fall through */
1689      case 1190 : /* fall through */
1690      case 1191 : /* fall through */
1691      case 1192 : /* fall through */
1692      case 1193 : /* fall through */
1693      case 1194 : /* fall through */
1694      case 1195 : /* fall through */
1695      case 1196 : /* fall through */
1696      case 1197 : /* fall through */
1697      case 1198 : /* fall through */
1698      case 1199 : /* fall through */
1699      case 1200 : /* fall through */
1700      case 1201 : /* fall through */
1701      case 1202 : /* fall through */
1702      case 1203 : /* fall through */
1703      case 1204 : /* fall through */
1704      case 1205 : /* fall through */
1705      case 1206 : /* fall through */
1706      case 1207 : /* fall through */
1707      case 1208 : /* fall through */
1708      case 1209 : /* fall through */
1709      case 1210 : /* fall through */
1710      case 1211 : /* fall through */
1711      case 1212 : /* fall through */
1712      case 1213 : /* fall through */
1713      case 1214 : /* fall through */
1714      case 1215 : /* fall through */
1715      case 1216 : /* fall through */
1716      case 1217 : /* fall through */
1717      case 1218 : /* fall through */
1718      case 1219 : /* fall through */
1719      case 1220 : /* fall through */
1720      case 1221 : /* fall through */
1721      case 1222 : /* fall through */
1722      case 1223 : /* fall through */
1723      case 1224 : /* fall through */
1724      case 1225 : /* fall through */
1725      case 1226 : /* fall through */
1726      case 1227 : /* fall through */
1727      case 1228 : /* fall through */
1728      case 1229 : /* fall through */
1729      case 1230 : /* fall through */
1730      case 1231 : /* fall through */
1731      case 1232 : /* fall through */
1732      case 1233 : /* fall through */
1733      case 1234 : /* fall through */
1734      case 1235 : /* fall through */
1735      case 1236 : /* fall through */
1736      case 1237 : /* fall through */
1737      case 1238 : /* fall through */
1738      case 1239 : /* fall through */
1739      case 1240 : /* fall through */
1740      case 1241 : /* fall through */
1741      case 1242 : /* fall through */
1742      case 1243 : /* fall through */
1743      case 1244 : /* fall through */
1744      case 1245 : /* fall through */
1745      case 1246 : /* fall through */
1746      case 1247 : /* fall through */
1747      case 1248 : /* fall through */
1748      case 1249 : /* fall through */
1749      case 1250 : /* fall through */
1750      case 1251 : /* fall through */
1751      case 1252 : /* fall through */
1752      case 1253 : /* fall through */
1753      case 1254 : /* fall through */
1754      case 1255 : /* fall through */
1755      case 1256 : /* fall through */
1756      case 1257 : /* fall through */
1757      case 1258 : /* fall through */
1758      case 1259 : /* fall through */
1759      case 1260 : /* fall through */
1760      case 1261 : /* fall through */
1761      case 1262 : /* fall through */
1762      case 1263 : /* fall through */
1763      case 1264 : /* fall through */
1764      case 1265 : /* fall through */
1765      case 1266 : /* fall through */
1766      case 1267 : /* fall through */
1767      case 1268 : /* fall through */
1768      case 1269 : /* fall through */
1769      case 1270 : /* fall through */
1770      case 1271 : /* fall through */
1771      case 1272 : /* fall through */
1772      case 1273 : /* fall through */
1773      case 1274 : /* fall through */
1774      case 1275 : /* fall through */
1775      case 1276 : /* fall through */
1776      case 1277 : /* fall through */
1777      case 1278 : /* fall through */
1778      case 1279 : itype = SH64_COMPACT_INSN_MOVW10_COMPACT; goto extract_sfmt_movw10_compact;
1779      case 1280 : /* fall through */
1780      case 1281 : /* fall through */
1781      case 1282 : /* fall through */
1782      case 1283 : /* fall through */
1783      case 1284 : /* fall through */
1784      case 1285 : /* fall through */
1785      case 1286 : /* fall through */
1786      case 1287 : /* fall through */
1787      case 1288 : /* fall through */
1788      case 1289 : /* fall through */
1789      case 1290 : /* fall through */
1790      case 1291 : /* fall through */
1791      case 1292 : /* fall through */
1792      case 1293 : /* fall through */
1793      case 1294 : /* fall through */
1794      case 1295 : /* fall through */
1795      case 1296 : /* fall through */
1796      case 1297 : /* fall through */
1797      case 1298 : /* fall through */
1798      case 1299 : /* fall through */
1799      case 1300 : /* fall through */
1800      case 1301 : /* fall through */
1801      case 1302 : /* fall through */
1802      case 1303 : /* fall through */
1803      case 1304 : /* fall through */
1804      case 1305 : /* fall through */
1805      case 1306 : /* fall through */
1806      case 1307 : /* fall through */
1807      case 1308 : /* fall through */
1808      case 1309 : /* fall through */
1809      case 1310 : /* fall through */
1810      case 1311 : /* fall through */
1811      case 1312 : /* fall through */
1812      case 1313 : /* fall through */
1813      case 1314 : /* fall through */
1814      case 1315 : /* fall through */
1815      case 1316 : /* fall through */
1816      case 1317 : /* fall through */
1817      case 1318 : /* fall through */
1818      case 1319 : /* fall through */
1819      case 1320 : /* fall through */
1820      case 1321 : /* fall through */
1821      case 1322 : /* fall through */
1822      case 1323 : /* fall through */
1823      case 1324 : /* fall through */
1824      case 1325 : /* fall through */
1825      case 1326 : /* fall through */
1826      case 1327 : /* fall through */
1827      case 1328 : /* fall through */
1828      case 1329 : /* fall through */
1829      case 1330 : /* fall through */
1830      case 1331 : /* fall through */
1831      case 1332 : /* fall through */
1832      case 1333 : /* fall through */
1833      case 1334 : /* fall through */
1834      case 1335 : /* fall through */
1835      case 1336 : /* fall through */
1836      case 1337 : /* fall through */
1837      case 1338 : /* fall through */
1838      case 1339 : /* fall through */
1839      case 1340 : /* fall through */
1840      case 1341 : /* fall through */
1841      case 1342 : /* fall through */
1842      case 1343 : /* fall through */
1843      case 1344 : /* fall through */
1844      case 1345 : /* fall through */
1845      case 1346 : /* fall through */
1846      case 1347 : /* fall through */
1847      case 1348 : /* fall through */
1848      case 1349 : /* fall through */
1849      case 1350 : /* fall through */
1850      case 1351 : /* fall through */
1851      case 1352 : /* fall through */
1852      case 1353 : /* fall through */
1853      case 1354 : /* fall through */
1854      case 1355 : /* fall through */
1855      case 1356 : /* fall through */
1856      case 1357 : /* fall through */
1857      case 1358 : /* fall through */
1858      case 1359 : /* fall through */
1859      case 1360 : /* fall through */
1860      case 1361 : /* fall through */
1861      case 1362 : /* fall through */
1862      case 1363 : /* fall through */
1863      case 1364 : /* fall through */
1864      case 1365 : /* fall through */
1865      case 1366 : /* fall through */
1866      case 1367 : /* fall through */
1867      case 1368 : /* fall through */
1868      case 1369 : /* fall through */
1869      case 1370 : /* fall through */
1870      case 1371 : /* fall through */
1871      case 1372 : /* fall through */
1872      case 1373 : /* fall through */
1873      case 1374 : /* fall through */
1874      case 1375 : /* fall through */
1875      case 1376 : /* fall through */
1876      case 1377 : /* fall through */
1877      case 1378 : /* fall through */
1878      case 1379 : /* fall through */
1879      case 1380 : /* fall through */
1880      case 1381 : /* fall through */
1881      case 1382 : /* fall through */
1882      case 1383 : /* fall through */
1883      case 1384 : /* fall through */
1884      case 1385 : /* fall through */
1885      case 1386 : /* fall through */
1886      case 1387 : /* fall through */
1887      case 1388 : /* fall through */
1888      case 1389 : /* fall through */
1889      case 1390 : /* fall through */
1890      case 1391 : /* fall through */
1891      case 1392 : /* fall through */
1892      case 1393 : /* fall through */
1893      case 1394 : /* fall through */
1894      case 1395 : /* fall through */
1895      case 1396 : /* fall through */
1896      case 1397 : /* fall through */
1897      case 1398 : /* fall through */
1898      case 1399 : /* fall through */
1899      case 1400 : /* fall through */
1900      case 1401 : /* fall through */
1901      case 1402 : /* fall through */
1902      case 1403 : /* fall through */
1903      case 1404 : /* fall through */
1904      case 1405 : /* fall through */
1905      case 1406 : /* fall through */
1906      case 1407 : itype = SH64_COMPACT_INSN_BRA_COMPACT; goto extract_sfmt_bra_compact;
1907      case 1408 : /* fall through */
1908      case 1409 : /* fall through */
1909      case 1410 : /* fall through */
1910      case 1411 : /* fall through */
1911      case 1412 : /* fall through */
1912      case 1413 : /* fall through */
1913      case 1414 : /* fall through */
1914      case 1415 : /* fall through */
1915      case 1416 : /* fall through */
1916      case 1417 : /* fall through */
1917      case 1418 : /* fall through */
1918      case 1419 : /* fall through */
1919      case 1420 : /* fall through */
1920      case 1421 : /* fall through */
1921      case 1422 : /* fall through */
1922      case 1423 : /* fall through */
1923      case 1424 : /* fall through */
1924      case 1425 : /* fall through */
1925      case 1426 : /* fall through */
1926      case 1427 : /* fall through */
1927      case 1428 : /* fall through */
1928      case 1429 : /* fall through */
1929      case 1430 : /* fall through */
1930      case 1431 : /* fall through */
1931      case 1432 : /* fall through */
1932      case 1433 : /* fall through */
1933      case 1434 : /* fall through */
1934      case 1435 : /* fall through */
1935      case 1436 : /* fall through */
1936      case 1437 : /* fall through */
1937      case 1438 : /* fall through */
1938      case 1439 : /* fall through */
1939      case 1440 : /* fall through */
1940      case 1441 : /* fall through */
1941      case 1442 : /* fall through */
1942      case 1443 : /* fall through */
1943      case 1444 : /* fall through */
1944      case 1445 : /* fall through */
1945      case 1446 : /* fall through */
1946      case 1447 : /* fall through */
1947      case 1448 : /* fall through */
1948      case 1449 : /* fall through */
1949      case 1450 : /* fall through */
1950      case 1451 : /* fall through */
1951      case 1452 : /* fall through */
1952      case 1453 : /* fall through */
1953      case 1454 : /* fall through */
1954      case 1455 : /* fall through */
1955      case 1456 : /* fall through */
1956      case 1457 : /* fall through */
1957      case 1458 : /* fall through */
1958      case 1459 : /* fall through */
1959      case 1460 : /* fall through */
1960      case 1461 : /* fall through */
1961      case 1462 : /* fall through */
1962      case 1463 : /* fall through */
1963      case 1464 : /* fall through */
1964      case 1465 : /* fall through */
1965      case 1466 : /* fall through */
1966      case 1467 : /* fall through */
1967      case 1468 : /* fall through */
1968      case 1469 : /* fall through */
1969      case 1470 : /* fall through */
1970      case 1471 : /* fall through */
1971      case 1472 : /* fall through */
1972      case 1473 : /* fall through */
1973      case 1474 : /* fall through */
1974      case 1475 : /* fall through */
1975      case 1476 : /* fall through */
1976      case 1477 : /* fall through */
1977      case 1478 : /* fall through */
1978      case 1479 : /* fall through */
1979      case 1480 : /* fall through */
1980      case 1481 : /* fall through */
1981      case 1482 : /* fall through */
1982      case 1483 : /* fall through */
1983      case 1484 : /* fall through */
1984      case 1485 : /* fall through */
1985      case 1486 : /* fall through */
1986      case 1487 : /* fall through */
1987      case 1488 : /* fall through */
1988      case 1489 : /* fall through */
1989      case 1490 : /* fall through */
1990      case 1491 : /* fall through */
1991      case 1492 : /* fall through */
1992      case 1493 : /* fall through */
1993      case 1494 : /* fall through */
1994      case 1495 : /* fall through */
1995      case 1496 : /* fall through */
1996      case 1497 : /* fall through */
1997      case 1498 : /* fall through */
1998      case 1499 : /* fall through */
1999      case 1500 : /* fall through */
2000      case 1501 : /* fall through */
2001      case 1502 : /* fall through */
2002      case 1503 : /* fall through */
2003      case 1504 : /* fall through */
2004      case 1505 : /* fall through */
2005      case 1506 : /* fall through */
2006      case 1507 : /* fall through */
2007      case 1508 : /* fall through */
2008      case 1509 : /* fall through */
2009      case 1510 : /* fall through */
2010      case 1511 : /* fall through */
2011      case 1512 : /* fall through */
2012      case 1513 : /* fall through */
2013      case 1514 : /* fall through */
2014      case 1515 : /* fall through */
2015      case 1516 : /* fall through */
2016      case 1517 : /* fall through */
2017      case 1518 : /* fall through */
2018      case 1519 : /* fall through */
2019      case 1520 : /* fall through */
2020      case 1521 : /* fall through */
2021      case 1522 : /* fall through */
2022      case 1523 : /* fall through */
2023      case 1524 : /* fall through */
2024      case 1525 : /* fall through */
2025      case 1526 : /* fall through */
2026      case 1527 : /* fall through */
2027      case 1528 : /* fall through */
2028      case 1529 : /* fall through */
2029      case 1530 : /* fall through */
2030      case 1531 : /* fall through */
2031      case 1532 : /* fall through */
2032      case 1533 : /* fall through */
2033      case 1534 : /* fall through */
2034      case 1535 : itype = SH64_COMPACT_INSN_BSR_COMPACT; goto extract_sfmt_bsr_compact;
2035      case 1536 : /* fall through */
2036      case 1537 : /* fall through */
2037      case 1538 : /* fall through */
2038      case 1539 : /* fall through */
2039      case 1540 : /* fall through */
2040      case 1541 : /* fall through */
2041      case 1542 : /* fall through */
2042      case 1543 : /* fall through */
2043      case 1544 : /* fall through */
2044      case 1545 : /* fall through */
2045      case 1546 : /* fall through */
2046      case 1547 : /* fall through */
2047      case 1548 : /* fall through */
2048      case 1549 : /* fall through */
2049      case 1550 : /* fall through */
2050      case 1551 : /* fall through */
2051      case 1552 : /* fall through */
2052      case 1553 : /* fall through */
2053      case 1554 : /* fall through */
2054      case 1555 : /* fall through */
2055      case 1556 : /* fall through */
2056      case 1557 : /* fall through */
2057      case 1558 : /* fall through */
2058      case 1559 : /* fall through */
2059      case 1560 : /* fall through */
2060      case 1561 : /* fall through */
2061      case 1562 : /* fall through */
2062      case 1563 : /* fall through */
2063      case 1564 : /* fall through */
2064      case 1565 : /* fall through */
2065      case 1566 : /* fall through */
2066      case 1567 : /* fall through */
2067      case 1568 : /* fall through */
2068      case 1569 : /* fall through */
2069      case 1570 : /* fall through */
2070      case 1571 : /* fall through */
2071      case 1572 : /* fall through */
2072      case 1573 : /* fall through */
2073      case 1574 : /* fall through */
2074      case 1575 : /* fall through */
2075      case 1576 : /* fall through */
2076      case 1577 : /* fall through */
2077      case 1578 : /* fall through */
2078      case 1579 : /* fall through */
2079      case 1580 : /* fall through */
2080      case 1581 : /* fall through */
2081      case 1582 : /* fall through */
2082      case 1583 : /* fall through */
2083      case 1584 : /* fall through */
2084      case 1585 : /* fall through */
2085      case 1586 : /* fall through */
2086      case 1587 : /* fall through */
2087      case 1588 : /* fall through */
2088      case 1589 : /* fall through */
2089      case 1590 : /* fall through */
2090      case 1591 : /* fall through */
2091      case 1592 : /* fall through */
2092      case 1593 : /* fall through */
2093      case 1594 : /* fall through */
2094      case 1595 : /* fall through */
2095      case 1596 : /* fall through */
2096      case 1597 : /* fall through */
2097      case 1598 : /* fall through */
2098      case 1599 : /* fall through */
2099      case 1600 : /* fall through */
2100      case 1601 : /* fall through */
2101      case 1602 : /* fall through */
2102      case 1603 : /* fall through */
2103      case 1604 : /* fall through */
2104      case 1605 : /* fall through */
2105      case 1606 : /* fall through */
2106      case 1607 : /* fall through */
2107      case 1608 : /* fall through */
2108      case 1609 : /* fall through */
2109      case 1610 : /* fall through */
2110      case 1611 : /* fall through */
2111      case 1612 : /* fall through */
2112      case 1613 : /* fall through */
2113      case 1614 : /* fall through */
2114      case 1615 : /* fall through */
2115      case 1616 : /* fall through */
2116      case 1617 : /* fall through */
2117      case 1618 : /* fall through */
2118      case 1619 : /* fall through */
2119      case 1620 : /* fall through */
2120      case 1621 : /* fall through */
2121      case 1622 : /* fall through */
2122      case 1623 : /* fall through */
2123      case 1624 : /* fall through */
2124      case 1625 : /* fall through */
2125      case 1626 : /* fall through */
2126      case 1627 : /* fall through */
2127      case 1628 : /* fall through */
2128      case 1629 : /* fall through */
2129      case 1630 : /* fall through */
2130      case 1631 : /* fall through */
2131      case 1632 : /* fall through */
2132      case 1633 : /* fall through */
2133      case 1634 : /* fall through */
2134      case 1635 : /* fall through */
2135      case 1636 : /* fall through */
2136      case 1637 : /* fall through */
2137      case 1638 : /* fall through */
2138      case 1639 : /* fall through */
2139      case 1640 : /* fall through */
2140      case 1641 : /* fall through */
2141      case 1642 : /* fall through */
2142      case 1643 : /* fall through */
2143      case 1644 : /* fall through */
2144      case 1645 : /* fall through */
2145      case 1646 : /* fall through */
2146      case 1647 : /* fall through */
2147      case 1648 : /* fall through */
2148      case 1649 : /* fall through */
2149      case 1650 : /* fall through */
2150      case 1651 : /* fall through */
2151      case 1652 : /* fall through */
2152      case 1653 : /* fall through */
2153      case 1654 : /* fall through */
2154      case 1655 : /* fall through */
2155      case 1656 : /* fall through */
2156      case 1657 : /* fall through */
2157      case 1658 : /* fall through */
2158      case 1659 : /* fall through */
2159      case 1660 : /* fall through */
2160      case 1661 : /* fall through */
2161      case 1662 : /* fall through */
2162      case 1663 :
2163        {
2164          unsigned int val = (((insn >> 8) & (15 << 0)));
2165          switch (val)
2166          {
2167          case 0 : itype = SH64_COMPACT_INSN_MOVB4_COMPACT; goto extract_sfmt_movb4_compact;
2168          case 1 : itype = SH64_COMPACT_INSN_MOVW4_COMPACT; goto extract_sfmt_movw4_compact;
2169          case 2 : itype = SH64_COMPACT_INSN_MOVL4_COMPACT; goto extract_sfmt_movl4_compact;
2170          case 3 : itype = SH64_COMPACT_INSN_TRAPA_COMPACT; goto extract_sfmt_trapa_compact;
2171          case 4 : itype = SH64_COMPACT_INSN_MOVB9_COMPACT; goto extract_sfmt_movb9_compact;
2172          case 5 : itype = SH64_COMPACT_INSN_MOVW9_COMPACT; goto extract_sfmt_movw9_compact;
2173          case 6 : itype = SH64_COMPACT_INSN_MOVL9_COMPACT; goto extract_sfmt_movl9_compact;
2174          case 7 : itype = SH64_COMPACT_INSN_MOVA_COMPACT; goto extract_sfmt_mova_compact;
2175          case 8 : itype = SH64_COMPACT_INSN_TSTI_COMPACT; goto extract_sfmt_tsti_compact;
2176          case 9 : itype = SH64_COMPACT_INSN_ANDI_COMPACT; goto extract_sfmt_andi_compact;
2177          case 10 : itype = SH64_COMPACT_INSN_XORI_COMPACT; goto extract_sfmt_andi_compact;
2178          case 11 : itype = SH64_COMPACT_INSN_ORI_COMPACT; goto extract_sfmt_andi_compact;
2179          case 12 : itype = SH64_COMPACT_INSN_TSTB_COMPACT; goto extract_sfmt_tstb_compact;
2180          case 13 : itype = SH64_COMPACT_INSN_ANDB_COMPACT; goto extract_sfmt_andb_compact;
2181          case 14 : itype = SH64_COMPACT_INSN_XORB_COMPACT; goto extract_sfmt_andb_compact;
2182          case 15 : itype = SH64_COMPACT_INSN_ORB_COMPACT; goto extract_sfmt_andb_compact;
2183          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2184          }
2185        }
2186      case 1664 : /* fall through */
2187      case 1665 : /* fall through */
2188      case 1666 : /* fall through */
2189      case 1667 : /* fall through */
2190      case 1668 : /* fall through */
2191      case 1669 : /* fall through */
2192      case 1670 : /* fall through */
2193      case 1671 : /* fall through */
2194      case 1672 : /* fall through */
2195      case 1673 : /* fall through */
2196      case 1674 : /* fall through */
2197      case 1675 : /* fall through */
2198      case 1676 : /* fall through */
2199      case 1677 : /* fall through */
2200      case 1678 : /* fall through */
2201      case 1679 : /* fall through */
2202      case 1680 : /* fall through */
2203      case 1681 : /* fall through */
2204      case 1682 : /* fall through */
2205      case 1683 : /* fall through */
2206      case 1684 : /* fall through */
2207      case 1685 : /* fall through */
2208      case 1686 : /* fall through */
2209      case 1687 : /* fall through */
2210      case 1688 : /* fall through */
2211      case 1689 : /* fall through */
2212      case 1690 : /* fall through */
2213      case 1691 : /* fall through */
2214      case 1692 : /* fall through */
2215      case 1693 : /* fall through */
2216      case 1694 : /* fall through */
2217      case 1695 : /* fall through */
2218      case 1696 : /* fall through */
2219      case 1697 : /* fall through */
2220      case 1698 : /* fall through */
2221      case 1699 : /* fall through */
2222      case 1700 : /* fall through */
2223      case 1701 : /* fall through */
2224      case 1702 : /* fall through */
2225      case 1703 : /* fall through */
2226      case 1704 : /* fall through */
2227      case 1705 : /* fall through */
2228      case 1706 : /* fall through */
2229      case 1707 : /* fall through */
2230      case 1708 : /* fall through */
2231      case 1709 : /* fall through */
2232      case 1710 : /* fall through */
2233      case 1711 : /* fall through */
2234      case 1712 : /* fall through */
2235      case 1713 : /* fall through */
2236      case 1714 : /* fall through */
2237      case 1715 : /* fall through */
2238      case 1716 : /* fall through */
2239      case 1717 : /* fall through */
2240      case 1718 : /* fall through */
2241      case 1719 : /* fall through */
2242      case 1720 : /* fall through */
2243      case 1721 : /* fall through */
2244      case 1722 : /* fall through */
2245      case 1723 : /* fall through */
2246      case 1724 : /* fall through */
2247      case 1725 : /* fall through */
2248      case 1726 : /* fall through */
2249      case 1727 : /* fall through */
2250      case 1728 : /* fall through */
2251      case 1729 : /* fall through */
2252      case 1730 : /* fall through */
2253      case 1731 : /* fall through */
2254      case 1732 : /* fall through */
2255      case 1733 : /* fall through */
2256      case 1734 : /* fall through */
2257      case 1735 : /* fall through */
2258      case 1736 : /* fall through */
2259      case 1737 : /* fall through */
2260      case 1738 : /* fall through */
2261      case 1739 : /* fall through */
2262      case 1740 : /* fall through */
2263      case 1741 : /* fall through */
2264      case 1742 : /* fall through */
2265      case 1743 : /* fall through */
2266      case 1744 : /* fall through */
2267      case 1745 : /* fall through */
2268      case 1746 : /* fall through */
2269      case 1747 : /* fall through */
2270      case 1748 : /* fall through */
2271      case 1749 : /* fall through */
2272      case 1750 : /* fall through */
2273      case 1751 : /* fall through */
2274      case 1752 : /* fall through */
2275      case 1753 : /* fall through */
2276      case 1754 : /* fall through */
2277      case 1755 : /* fall through */
2278      case 1756 : /* fall through */
2279      case 1757 : /* fall through */
2280      case 1758 : /* fall through */
2281      case 1759 : /* fall through */
2282      case 1760 : /* fall through */
2283      case 1761 : /* fall through */
2284      case 1762 : /* fall through */
2285      case 1763 : /* fall through */
2286      case 1764 : /* fall through */
2287      case 1765 : /* fall through */
2288      case 1766 : /* fall through */
2289      case 1767 : /* fall through */
2290      case 1768 : /* fall through */
2291      case 1769 : /* fall through */
2292      case 1770 : /* fall through */
2293      case 1771 : /* fall through */
2294      case 1772 : /* fall through */
2295      case 1773 : /* fall through */
2296      case 1774 : /* fall through */
2297      case 1775 : /* fall through */
2298      case 1776 : /* fall through */
2299      case 1777 : /* fall through */
2300      case 1778 : /* fall through */
2301      case 1779 : /* fall through */
2302      case 1780 : /* fall through */
2303      case 1781 : /* fall through */
2304      case 1782 : /* fall through */
2305      case 1783 : /* fall through */
2306      case 1784 : /* fall through */
2307      case 1785 : /* fall through */
2308      case 1786 : /* fall through */
2309      case 1787 : /* fall through */
2310      case 1788 : /* fall through */
2311      case 1789 : /* fall through */
2312      case 1790 : /* fall through */
2313      case 1791 : itype = SH64_COMPACT_INSN_MOVL10_COMPACT; goto extract_sfmt_movl10_compact;
2314      case 1792 : /* fall through */
2315      case 1793 : /* fall through */
2316      case 1794 : /* fall through */
2317      case 1795 : /* fall through */
2318      case 1796 : /* fall through */
2319      case 1797 : /* fall through */
2320      case 1798 : /* fall through */
2321      case 1799 : /* fall through */
2322      case 1800 : /* fall through */
2323      case 1801 : /* fall through */
2324      case 1802 : /* fall through */
2325      case 1803 : /* fall through */
2326      case 1804 : /* fall through */
2327      case 1805 : /* fall through */
2328      case 1806 : /* fall through */
2329      case 1807 : /* fall through */
2330      case 1808 : /* fall through */
2331      case 1809 : /* fall through */
2332      case 1810 : /* fall through */
2333      case 1811 : /* fall through */
2334      case 1812 : /* fall through */
2335      case 1813 : /* fall through */
2336      case 1814 : /* fall through */
2337      case 1815 : /* fall through */
2338      case 1816 : /* fall through */
2339      case 1817 : /* fall through */
2340      case 1818 : /* fall through */
2341      case 1819 : /* fall through */
2342      case 1820 : /* fall through */
2343      case 1821 : /* fall through */
2344      case 1822 : /* fall through */
2345      case 1823 : /* fall through */
2346      case 1824 : /* fall through */
2347      case 1825 : /* fall through */
2348      case 1826 : /* fall through */
2349      case 1827 : /* fall through */
2350      case 1828 : /* fall through */
2351      case 1829 : /* fall through */
2352      case 1830 : /* fall through */
2353      case 1831 : /* fall through */
2354      case 1832 : /* fall through */
2355      case 1833 : /* fall through */
2356      case 1834 : /* fall through */
2357      case 1835 : /* fall through */
2358      case 1836 : /* fall through */
2359      case 1837 : /* fall through */
2360      case 1838 : /* fall through */
2361      case 1839 : /* fall through */
2362      case 1840 : /* fall through */
2363      case 1841 : /* fall through */
2364      case 1842 : /* fall through */
2365      case 1843 : /* fall through */
2366      case 1844 : /* fall through */
2367      case 1845 : /* fall through */
2368      case 1846 : /* fall through */
2369      case 1847 : /* fall through */
2370      case 1848 : /* fall through */
2371      case 1849 : /* fall through */
2372      case 1850 : /* fall through */
2373      case 1851 : /* fall through */
2374      case 1852 : /* fall through */
2375      case 1853 : /* fall through */
2376      case 1854 : /* fall through */
2377      case 1855 : /* fall through */
2378      case 1856 : /* fall through */
2379      case 1857 : /* fall through */
2380      case 1858 : /* fall through */
2381      case 1859 : /* fall through */
2382      case 1860 : /* fall through */
2383      case 1861 : /* fall through */
2384      case 1862 : /* fall through */
2385      case 1863 : /* fall through */
2386      case 1864 : /* fall through */
2387      case 1865 : /* fall through */
2388      case 1866 : /* fall through */
2389      case 1867 : /* fall through */
2390      case 1868 : /* fall through */
2391      case 1869 : /* fall through */
2392      case 1870 : /* fall through */
2393      case 1871 : /* fall through */
2394      case 1872 : /* fall through */
2395      case 1873 : /* fall through */
2396      case 1874 : /* fall through */
2397      case 1875 : /* fall through */
2398      case 1876 : /* fall through */
2399      case 1877 : /* fall through */
2400      case 1878 : /* fall through */
2401      case 1879 : /* fall through */
2402      case 1880 : /* fall through */
2403      case 1881 : /* fall through */
2404      case 1882 : /* fall through */
2405      case 1883 : /* fall through */
2406      case 1884 : /* fall through */
2407      case 1885 : /* fall through */
2408      case 1886 : /* fall through */
2409      case 1887 : /* fall through */
2410      case 1888 : /* fall through */
2411      case 1889 : /* fall through */
2412      case 1890 : /* fall through */
2413      case 1891 : /* fall through */
2414      case 1892 : /* fall through */
2415      case 1893 : /* fall through */
2416      case 1894 : /* fall through */
2417      case 1895 : /* fall through */
2418      case 1896 : /* fall through */
2419      case 1897 : /* fall through */
2420      case 1898 : /* fall through */
2421      case 1899 : /* fall through */
2422      case 1900 : /* fall through */
2423      case 1901 : /* fall through */
2424      case 1902 : /* fall through */
2425      case 1903 : /* fall through */
2426      case 1904 : /* fall through */
2427      case 1905 : /* fall through */
2428      case 1906 : /* fall through */
2429      case 1907 : /* fall through */
2430      case 1908 : /* fall through */
2431      case 1909 : /* fall through */
2432      case 1910 : /* fall through */
2433      case 1911 : /* fall through */
2434      case 1912 : /* fall through */
2435      case 1913 : /* fall through */
2436      case 1914 : /* fall through */
2437      case 1915 : /* fall through */
2438      case 1916 : /* fall through */
2439      case 1917 : /* fall through */
2440      case 1918 : /* fall through */
2441      case 1919 : itype = SH64_COMPACT_INSN_MOVI_COMPACT; goto extract_sfmt_movi_compact;
2442      case 1920 : /* fall through */
2443      case 1936 : /* fall through */
2444      case 1952 : /* fall through */
2445      case 1968 : /* fall through */
2446      case 1984 : /* fall through */
2447      case 2000 : /* fall through */
2448      case 2016 : /* fall through */
2449      case 2032 : itype = SH64_COMPACT_INSN_FADD_COMPACT; goto extract_sfmt_fadd_compact;
2450      case 1921 : /* fall through */
2451      case 1937 : /* fall through */
2452      case 1953 : /* fall through */
2453      case 1969 : /* fall through */
2454      case 1985 : /* fall through */
2455      case 2001 : /* fall through */
2456      case 2017 : /* fall through */
2457      case 2033 : itype = SH64_COMPACT_INSN_FSUB_COMPACT; goto extract_sfmt_fadd_compact;
2458      case 1922 : /* fall through */
2459      case 1938 : /* fall through */
2460      case 1954 : /* fall through */
2461      case 1970 : /* fall through */
2462      case 1986 : /* fall through */
2463      case 2002 : /* fall through */
2464      case 2018 : /* fall through */
2465      case 2034 : itype = SH64_COMPACT_INSN_FMUL_COMPACT; goto extract_sfmt_fadd_compact;
2466      case 1923 : /* fall through */
2467      case 1939 : /* fall through */
2468      case 1955 : /* fall through */
2469      case 1971 : /* fall through */
2470      case 1987 : /* fall through */
2471      case 2003 : /* fall through */
2472      case 2019 : /* fall through */
2473      case 2035 : itype = SH64_COMPACT_INSN_FDIV_COMPACT; goto extract_sfmt_fadd_compact;
2474      case 1924 : /* fall through */
2475      case 1940 : /* fall through */
2476      case 1956 : /* fall through */
2477      case 1972 : /* fall through */
2478      case 1988 : /* fall through */
2479      case 2004 : /* fall through */
2480      case 2020 : /* fall through */
2481      case 2036 : itype = SH64_COMPACT_INSN_FCMPEQ_COMPACT; goto extract_sfmt_fcmpeq_compact;
2482      case 1925 : /* fall through */
2483      case 1941 : /* fall through */
2484      case 1957 : /* fall through */
2485      case 1973 : /* fall through */
2486      case 1989 : /* fall through */
2487      case 2005 : /* fall through */
2488      case 2021 : /* fall through */
2489      case 2037 : itype = SH64_COMPACT_INSN_FCMPGT_COMPACT; goto extract_sfmt_fcmpeq_compact;
2490      case 1926 : /* fall through */
2491      case 1942 : /* fall through */
2492      case 1958 : /* fall through */
2493      case 1974 : /* fall through */
2494      case 1990 : /* fall through */
2495      case 2006 : /* fall through */
2496      case 2022 : /* fall through */
2497      case 2038 : itype = SH64_COMPACT_INSN_FMOV4_COMPACT; goto extract_sfmt_fmov4_compact;
2498      case 1927 : /* fall through */
2499      case 1943 : /* fall through */
2500      case 1959 : /* fall through */
2501      case 1975 : /* fall through */
2502      case 1991 : /* fall through */
2503      case 2007 : /* fall through */
2504      case 2023 : /* fall through */
2505      case 2039 : itype = SH64_COMPACT_INSN_FMOV7_COMPACT; goto extract_sfmt_fmov7_compact;
2506      case 1928 : /* fall through */
2507      case 1944 : /* fall through */
2508      case 1960 : /* fall through */
2509      case 1976 : /* fall through */
2510      case 1992 : /* fall through */
2511      case 2008 : /* fall through */
2512      case 2024 : /* fall through */
2513      case 2040 : itype = SH64_COMPACT_INSN_FMOV2_COMPACT; goto extract_sfmt_fmov2_compact;
2514      case 1929 : /* fall through */
2515      case 1945 : /* fall through */
2516      case 1961 : /* fall through */
2517      case 1977 : /* fall through */
2518      case 1993 : /* fall through */
2519      case 2009 : /* fall through */
2520      case 2025 : /* fall through */
2521      case 2041 : itype = SH64_COMPACT_INSN_FMOV3_COMPACT; goto extract_sfmt_fmov3_compact;
2522      case 1930 : /* fall through */
2523      case 1946 : /* fall through */
2524      case 1962 : /* fall through */
2525      case 1978 : /* fall through */
2526      case 1994 : /* fall through */
2527      case 2010 : /* fall through */
2528      case 2026 : /* fall through */
2529      case 2042 : itype = SH64_COMPACT_INSN_FMOV5_COMPACT; goto extract_sfmt_fmov5_compact;
2530      case 1931 : /* fall through */
2531      case 1947 : /* fall through */
2532      case 1963 : /* fall through */
2533      case 1979 : /* fall through */
2534      case 1995 : /* fall through */
2535      case 2011 : /* fall through */
2536      case 2027 : /* fall through */
2537      case 2043 : itype = SH64_COMPACT_INSN_FMOV6_COMPACT; goto extract_sfmt_fmov6_compact;
2538      case 1932 : /* fall through */
2539      case 1948 : /* fall through */
2540      case 1964 : /* fall through */
2541      case 1980 : /* fall through */
2542      case 1996 : /* fall through */
2543      case 2012 : /* fall through */
2544      case 2028 : /* fall through */
2545      case 2044 : itype = SH64_COMPACT_INSN_FMOV1_COMPACT; goto extract_sfmt_fmov1_compact;
2546      case 1933 :
2547        {
2548          unsigned int val = (((insn >> 7) & (1 << 0)));
2549          switch (val)
2550          {
2551          case 0 : itype = SH64_COMPACT_INSN_FSTS_COMPACT; goto extract_sfmt_fsts_compact;
2552          case 1 : itype = SH64_COMPACT_INSN_FLDI0_COMPACT; goto extract_sfmt_fldi0_compact;
2553          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2554          }
2555        }
2556      case 1934 : /* fall through */
2557      case 1950 : /* fall through */
2558      case 1966 : /* fall through */
2559      case 1982 : /* fall through */
2560      case 1998 : /* fall through */
2561      case 2014 : /* fall through */
2562      case 2030 : /* fall through */
2563      case 2046 : itype = SH64_COMPACT_INSN_FMAC_COMPACT; goto extract_sfmt_fmac_compact;
2564      case 1949 :
2565        {
2566          unsigned int val = (((insn >> 7) & (1 << 0)));
2567          switch (val)
2568          {
2569          case 0 : itype = SH64_COMPACT_INSN_FLDS_COMPACT; goto extract_sfmt_flds_compact;
2570          case 1 : itype = SH64_COMPACT_INSN_FLDI1_COMPACT; goto extract_sfmt_fldi0_compact;
2571          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2572          }
2573        }
2574      case 1965 :
2575        {
2576          unsigned int val = (((insn >> 7) & (1 << 0)));
2577          switch (val)
2578          {
2579          case 0 : itype = SH64_COMPACT_INSN_FLOAT_COMPACT; goto extract_sfmt_float_compact;
2580          case 1 :
2581            if ((entire_insn & 0xf1ff) == 0xf0ad)
2582              { itype = SH64_COMPACT_INSN_FCNVSD_COMPACT; goto extract_sfmt_fcnvsd_compact; }
2583            itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2584          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2585          }
2586        }
2587      case 1981 :
2588        {
2589          unsigned int val = (((insn >> 7) & (1 << 0)));
2590          switch (val)
2591          {
2592          case 0 : itype = SH64_COMPACT_INSN_FTRC_COMPACT; goto extract_sfmt_ftrc_compact;
2593          case 1 :
2594            if ((entire_insn & 0xf1ff) == 0xf0bd)
2595              { itype = SH64_COMPACT_INSN_FCNVDS_COMPACT; goto extract_sfmt_fcnvds_compact; }
2596            itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2597          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2598          }
2599        }
2600      case 1997 :
2601        if ((entire_insn & 0xf0ff) == 0xf04d)
2602          { itype = SH64_COMPACT_INSN_FNEG_COMPACT; goto extract_sfmt_fabs_compact; }
2603        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2604      case 2013 :
2605        if ((entire_insn & 0xf0ff) == 0xf05d)
2606          { itype = SH64_COMPACT_INSN_FABS_COMPACT; goto extract_sfmt_fabs_compact; }
2607        itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2608      case 2029 :
2609        {
2610          unsigned int val = (((insn >> 7) & (1 << 0)));
2611          switch (val)
2612          {
2613          case 0 : itype = SH64_COMPACT_INSN_FSQRT_COMPACT; goto extract_sfmt_fabs_compact;
2614          case 1 : itype = SH64_COMPACT_INSN_FIPR_COMPACT; goto extract_sfmt_fipr_compact;
2615          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2616          }
2617        }
2618      case 2045 :
2619        {
2620          unsigned int val = (((insn >> 10) & (1 << 1)) | ((insn >> 9) & (1 << 0)));
2621          switch (val)
2622          {
2623          case 0 : /* fall through */
2624          case 2 :
2625            if ((entire_insn & 0xf3ff) == 0xf1fd)
2626              { itype = SH64_COMPACT_INSN_FTRV_COMPACT; goto extract_sfmt_ftrv_compact; }
2627            itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2628          case 1 :
2629            if ((entire_insn & 0xffff) == 0xf3fd)
2630              { itype = SH64_COMPACT_INSN_FSCHG_COMPACT; goto extract_sfmt_fschg_compact; }
2631            itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2632          case 3 :
2633            if ((entire_insn & 0xffff) == 0xfbfd)
2634              { itype = SH64_COMPACT_INSN_FRCHG_COMPACT; goto extract_sfmt_frchg_compact; }
2635            itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2636          default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2637          }
2638        }
2639      default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty;
2640      }
2641    }
2642  }
2643
2644  /* The instruction has been decoded, now extract the fields.  */
2645
2646 extract_sfmt_empty:
2647  {
2648    const IDESC *idesc = &sh64_compact_insn_data[itype];
2649#define FLD(f) abuf->fields.sfmt_empty.f
2650
2651
2652  /* Record the fields for the semantic handler.  */
2653  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
2654
2655#undef FLD
2656    return idesc;
2657  }
2658
2659 extract_sfmt_add_compact:
2660  {
2661    const IDESC *idesc = &sh64_compact_insn_data[itype];
2662    CGEN_INSN_WORD insn = entire_insn;
2663#define FLD(f) abuf->fields.sfmt_movl12_compact.f
2664    UINT f_rn;
2665    UINT f_rm;
2666
2667    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
2668    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2669
2670  /* Record the fields for the semantic handler.  */
2671  FLD (f_rm) = f_rm;
2672  FLD (f_rn) = f_rn;
2673  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
2674
2675#if WITH_PROFILE_MODEL_P
2676  /* Record the fields for profiling.  */
2677  if (PROFILE_MODEL_P (current_cpu))
2678    {
2679      FLD (in_rm) = f_rm;
2680      FLD (in_rn) = f_rn;
2681      FLD (out_rn) = f_rn;
2682    }
2683#endif
2684#undef FLD
2685    return idesc;
2686  }
2687
2688 extract_sfmt_addi_compact:
2689  {
2690    const IDESC *idesc = &sh64_compact_insn_data[itype];
2691    CGEN_INSN_WORD insn = entire_insn;
2692#define FLD(f) abuf->fields.sfmt_addi_compact.f
2693    UINT f_rn;
2694    UINT f_imm8;
2695
2696    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
2697    f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
2698
2699  /* Record the fields for the semantic handler.  */
2700  FLD (f_imm8) = f_imm8;
2701  FLD (f_rn) = f_rn;
2702  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi_compact", "f_imm8 0x%x", 'x', f_imm8, "f_rn 0x%x", 'x', f_rn, (char *) 0));
2703
2704#if WITH_PROFILE_MODEL_P
2705  /* Record the fields for profiling.  */
2706  if (PROFILE_MODEL_P (current_cpu))
2707    {
2708      FLD (in_rn) = f_rn;
2709      FLD (out_rn) = f_rn;
2710    }
2711#endif
2712#undef FLD
2713    return idesc;
2714  }
2715
2716 extract_sfmt_addc_compact:
2717  {
2718    const IDESC *idesc = &sh64_compact_insn_data[itype];
2719    CGEN_INSN_WORD insn = entire_insn;
2720#define FLD(f) abuf->fields.sfmt_movl12_compact.f
2721    UINT f_rn;
2722    UINT f_rm;
2723
2724    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
2725    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2726
2727  /* Record the fields for the semantic handler.  */
2728  FLD (f_rm) = f_rm;
2729  FLD (f_rn) = f_rn;
2730  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addc_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
2731
2732#if WITH_PROFILE_MODEL_P
2733  /* Record the fields for profiling.  */
2734  if (PROFILE_MODEL_P (current_cpu))
2735    {
2736      FLD (in_rm) = f_rm;
2737      FLD (in_rn) = f_rn;
2738      FLD (out_rn) = f_rn;
2739    }
2740#endif
2741#undef FLD
2742    return idesc;
2743  }
2744
2745 extract_sfmt_addv_compact:
2746  {
2747    const IDESC *idesc = &sh64_compact_insn_data[itype];
2748    CGEN_INSN_WORD insn = entire_insn;
2749#define FLD(f) abuf->fields.sfmt_movl12_compact.f
2750    UINT f_rn;
2751    UINT f_rm;
2752
2753    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
2754    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2755
2756  /* Record the fields for the semantic handler.  */
2757  FLD (f_rm) = f_rm;
2758  FLD (f_rn) = f_rn;
2759  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addv_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
2760
2761#if WITH_PROFILE_MODEL_P
2762  /* Record the fields for profiling.  */
2763  if (PROFILE_MODEL_P (current_cpu))
2764    {
2765      FLD (in_rm) = f_rm;
2766      FLD (in_rn) = f_rn;
2767      FLD (out_rn) = f_rn;
2768    }
2769#endif
2770#undef FLD
2771    return idesc;
2772  }
2773
2774 extract_sfmt_and_compact:
2775  {
2776    const IDESC *idesc = &sh64_compact_insn_data[itype];
2777    CGEN_INSN_WORD insn = entire_insn;
2778#define FLD(f) abuf->fields.sfmt_movl12_compact.f
2779    UINT f_rn;
2780    UINT f_rm;
2781
2782    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
2783    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2784
2785  /* Record the fields for the semantic handler.  */
2786  FLD (f_rm) = f_rm;
2787  FLD (f_rn) = f_rn;
2788  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
2789
2790#if WITH_PROFILE_MODEL_P
2791  /* Record the fields for profiling.  */
2792  if (PROFILE_MODEL_P (current_cpu))
2793    {
2794      FLD (in_rm64) = f_rm;
2795      FLD (in_rn64) = f_rn;
2796      FLD (out_rn64) = f_rn;
2797    }
2798#endif
2799#undef FLD
2800    return idesc;
2801  }
2802
2803 extract_sfmt_andi_compact:
2804  {
2805    const IDESC *idesc = &sh64_compact_insn_data[itype];
2806    CGEN_INSN_WORD insn = entire_insn;
2807#define FLD(f) abuf->fields.sfmt_addi_compact.f
2808    UINT f_imm8;
2809
2810    f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
2811
2812  /* Record the fields for the semantic handler.  */
2813  FLD (f_imm8) = f_imm8;
2814  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andi_compact", "f_imm8 0x%x", 'x', f_imm8, (char *) 0));
2815
2816#if WITH_PROFILE_MODEL_P
2817  /* Record the fields for profiling.  */
2818  if (PROFILE_MODEL_P (current_cpu))
2819    {
2820      FLD (in_r0) = 0;
2821      FLD (out_r0) = 0;
2822    }
2823#endif
2824#undef FLD
2825    return idesc;
2826  }
2827
2828 extract_sfmt_andb_compact:
2829  {
2830    const IDESC *idesc = &sh64_compact_insn_data[itype];
2831    CGEN_INSN_WORD insn = entire_insn;
2832#define FLD(f) abuf->fields.sfmt_addi_compact.f
2833    UINT f_imm8;
2834
2835    f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
2836
2837  /* Record the fields for the semantic handler.  */
2838  FLD (f_imm8) = f_imm8;
2839  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andb_compact", "f_imm8 0x%x", 'x', f_imm8, (char *) 0));
2840
2841#if WITH_PROFILE_MODEL_P
2842  /* Record the fields for profiling.  */
2843  if (PROFILE_MODEL_P (current_cpu))
2844    {
2845      FLD (in_r0) = 0;
2846    }
2847#endif
2848#undef FLD
2849    return idesc;
2850  }
2851
2852 extract_sfmt_bf_compact:
2853  {
2854    const IDESC *idesc = &sh64_compact_insn_data[itype];
2855    CGEN_INSN_WORD insn = entire_insn;
2856#define FLD(f) abuf->fields.sfmt_bf_compact.f
2857    SI f_disp8;
2858
2859    f_disp8 = ((((EXTRACT_MSB0_SINT (insn, 16, 8, 8)) << (1))) + (((pc) + (4))));
2860
2861  /* Record the fields for the semantic handler.  */
2862  FLD (i_disp8) = f_disp8;
2863  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bf_compact", "disp8 0x%x", 'x', f_disp8, (char *) 0));
2864
2865#if WITH_PROFILE_MODEL_P
2866  /* Record the fields for profiling.  */
2867  if (PROFILE_MODEL_P (current_cpu))
2868    {
2869    }
2870#endif
2871#undef FLD
2872    return idesc;
2873  }
2874
2875 extract_sfmt_bfs_compact:
2876  {
2877    const IDESC *idesc = &sh64_compact_insn_data[itype];
2878    CGEN_INSN_WORD insn = entire_insn;
2879#define FLD(f) abuf->fields.sfmt_bf_compact.f
2880    SI f_disp8;
2881
2882    f_disp8 = ((((EXTRACT_MSB0_SINT (insn, 16, 8, 8)) << (1))) + (((pc) + (4))));
2883
2884  /* Record the fields for the semantic handler.  */
2885  FLD (i_disp8) = f_disp8;
2886  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bfs_compact", "disp8 0x%x", 'x', f_disp8, (char *) 0));
2887
2888#if WITH_PROFILE_MODEL_P
2889  /* Record the fields for profiling.  */
2890  if (PROFILE_MODEL_P (current_cpu))
2891    {
2892    }
2893#endif
2894#undef FLD
2895    return idesc;
2896  }
2897
2898 extract_sfmt_bra_compact:
2899  {
2900    const IDESC *idesc = &sh64_compact_insn_data[itype];
2901    CGEN_INSN_WORD insn = entire_insn;
2902#define FLD(f) abuf->fields.sfmt_bra_compact.f
2903    SI f_disp12;
2904
2905    f_disp12 = ((((EXTRACT_MSB0_SINT (insn, 16, 4, 12)) << (1))) + (((pc) + (4))));
2906
2907  /* Record the fields for the semantic handler.  */
2908  FLD (i_disp12) = f_disp12;
2909  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bra_compact", "disp12 0x%x", 'x', f_disp12, (char *) 0));
2910
2911#if WITH_PROFILE_MODEL_P
2912  /* Record the fields for profiling.  */
2913  if (PROFILE_MODEL_P (current_cpu))
2914    {
2915    }
2916#endif
2917#undef FLD
2918    return idesc;
2919  }
2920
2921 extract_sfmt_braf_compact:
2922  {
2923    const IDESC *idesc = &sh64_compact_insn_data[itype];
2924    CGEN_INSN_WORD insn = entire_insn;
2925#define FLD(f) abuf->fields.sfmt_movw10_compact.f
2926    UINT f_rn;
2927
2928    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
2929
2930  /* Record the fields for the semantic handler.  */
2931  FLD (f_rn) = f_rn;
2932  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_braf_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
2933
2934#if WITH_PROFILE_MODEL_P
2935  /* Record the fields for profiling.  */
2936  if (PROFILE_MODEL_P (current_cpu))
2937    {
2938      FLD (in_rn) = f_rn;
2939    }
2940#endif
2941#undef FLD
2942    return idesc;
2943  }
2944
2945 extract_sfmt_brk_compact:
2946  {
2947    const IDESC *idesc = &sh64_compact_insn_data[itype];
2948#define FLD(f) abuf->fields.sfmt_empty.f
2949
2950
2951  /* Record the fields for the semantic handler.  */
2952  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_brk_compact", (char *) 0));
2953
2954#if WITH_PROFILE_MODEL_P
2955  /* Record the fields for profiling.  */
2956  if (PROFILE_MODEL_P (current_cpu))
2957    {
2958    }
2959#endif
2960#undef FLD
2961    return idesc;
2962  }
2963
2964 extract_sfmt_bsr_compact:
2965  {
2966    const IDESC *idesc = &sh64_compact_insn_data[itype];
2967    CGEN_INSN_WORD insn = entire_insn;
2968#define FLD(f) abuf->fields.sfmt_bra_compact.f
2969    SI f_disp12;
2970
2971    f_disp12 = ((((EXTRACT_MSB0_SINT (insn, 16, 4, 12)) << (1))) + (((pc) + (4))));
2972
2973  /* Record the fields for the semantic handler.  */
2974  FLD (i_disp12) = f_disp12;
2975  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bsr_compact", "disp12 0x%x", 'x', f_disp12, (char *) 0));
2976
2977#if WITH_PROFILE_MODEL_P
2978  /* Record the fields for profiling.  */
2979  if (PROFILE_MODEL_P (current_cpu))
2980    {
2981    }
2982#endif
2983#undef FLD
2984    return idesc;
2985  }
2986
2987 extract_sfmt_bsrf_compact:
2988  {
2989    const IDESC *idesc = &sh64_compact_insn_data[itype];
2990    CGEN_INSN_WORD insn = entire_insn;
2991#define FLD(f) abuf->fields.sfmt_movw10_compact.f
2992    UINT f_rn;
2993
2994    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
2995
2996  /* Record the fields for the semantic handler.  */
2997  FLD (f_rn) = f_rn;
2998  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bsrf_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
2999
3000#if WITH_PROFILE_MODEL_P
3001  /* Record the fields for profiling.  */
3002  if (PROFILE_MODEL_P (current_cpu))
3003    {
3004      FLD (in_rn) = f_rn;
3005    }
3006#endif
3007#undef FLD
3008    return idesc;
3009  }
3010
3011 extract_sfmt_clrmac_compact:
3012  {
3013    const IDESC *idesc = &sh64_compact_insn_data[itype];
3014#define FLD(f) abuf->fields.sfmt_empty.f
3015
3016
3017  /* Record the fields for the semantic handler.  */
3018  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_clrmac_compact", (char *) 0));
3019
3020#undef FLD
3021    return idesc;
3022  }
3023
3024 extract_sfmt_clrs_compact:
3025  {
3026    const IDESC *idesc = &sh64_compact_insn_data[itype];
3027#define FLD(f) abuf->fields.sfmt_empty.f
3028
3029
3030  /* Record the fields for the semantic handler.  */
3031  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_clrs_compact", (char *) 0));
3032
3033#undef FLD
3034    return idesc;
3035  }
3036
3037 extract_sfmt_clrt_compact:
3038  {
3039    const IDESC *idesc = &sh64_compact_insn_data[itype];
3040#define FLD(f) abuf->fields.sfmt_empty.f
3041
3042
3043  /* Record the fields for the semantic handler.  */
3044  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_clrt_compact", (char *) 0));
3045
3046#undef FLD
3047    return idesc;
3048  }
3049
3050 extract_sfmt_cmpeq_compact:
3051  {
3052    const IDESC *idesc = &sh64_compact_insn_data[itype];
3053    CGEN_INSN_WORD insn = entire_insn;
3054#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3055    UINT f_rn;
3056    UINT f_rm;
3057
3058    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3059    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3060
3061  /* Record the fields for the semantic handler.  */
3062  FLD (f_rm) = f_rm;
3063  FLD (f_rn) = f_rn;
3064  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpeq_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3065
3066#if WITH_PROFILE_MODEL_P
3067  /* Record the fields for profiling.  */
3068  if (PROFILE_MODEL_P (current_cpu))
3069    {
3070      FLD (in_rm) = f_rm;
3071      FLD (in_rn) = f_rn;
3072    }
3073#endif
3074#undef FLD
3075    return idesc;
3076  }
3077
3078 extract_sfmt_cmpeqi_compact:
3079  {
3080    const IDESC *idesc = &sh64_compact_insn_data[itype];
3081    CGEN_INSN_WORD insn = entire_insn;
3082#define FLD(f) abuf->fields.sfmt_addi_compact.f
3083    UINT f_imm8;
3084
3085    f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
3086
3087  /* Record the fields for the semantic handler.  */
3088  FLD (f_imm8) = f_imm8;
3089  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpeqi_compact", "f_imm8 0x%x", 'x', f_imm8, (char *) 0));
3090
3091#if WITH_PROFILE_MODEL_P
3092  /* Record the fields for profiling.  */
3093  if (PROFILE_MODEL_P (current_cpu))
3094    {
3095      FLD (in_r0) = 0;
3096    }
3097#endif
3098#undef FLD
3099    return idesc;
3100  }
3101
3102 extract_sfmt_cmppl_compact:
3103  {
3104    const IDESC *idesc = &sh64_compact_insn_data[itype];
3105    CGEN_INSN_WORD insn = entire_insn;
3106#define FLD(f) abuf->fields.sfmt_movw10_compact.f
3107    UINT f_rn;
3108
3109    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3110
3111  /* Record the fields for the semantic handler.  */
3112  FLD (f_rn) = f_rn;
3113  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmppl_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
3114
3115#if WITH_PROFILE_MODEL_P
3116  /* Record the fields for profiling.  */
3117  if (PROFILE_MODEL_P (current_cpu))
3118    {
3119      FLD (in_rn) = f_rn;
3120    }
3121#endif
3122#undef FLD
3123    return idesc;
3124  }
3125
3126 extract_sfmt_div0s_compact:
3127  {
3128    const IDESC *idesc = &sh64_compact_insn_data[itype];
3129    CGEN_INSN_WORD insn = entire_insn;
3130#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3131    UINT f_rn;
3132    UINT f_rm;
3133
3134    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3135    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3136
3137  /* Record the fields for the semantic handler.  */
3138  FLD (f_rm) = f_rm;
3139  FLD (f_rn) = f_rn;
3140  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div0s_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3141
3142#if WITH_PROFILE_MODEL_P
3143  /* Record the fields for profiling.  */
3144  if (PROFILE_MODEL_P (current_cpu))
3145    {
3146      FLD (in_rm) = f_rm;
3147      FLD (in_rn) = f_rn;
3148    }
3149#endif
3150#undef FLD
3151    return idesc;
3152  }
3153
3154 extract_sfmt_div0u_compact:
3155  {
3156    const IDESC *idesc = &sh64_compact_insn_data[itype];
3157#define FLD(f) abuf->fields.sfmt_empty.f
3158
3159
3160  /* Record the fields for the semantic handler.  */
3161  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div0u_compact", (char *) 0));
3162
3163#undef FLD
3164    return idesc;
3165  }
3166
3167 extract_sfmt_div1_compact:
3168  {
3169    const IDESC *idesc = &sh64_compact_insn_data[itype];
3170    CGEN_INSN_WORD insn = entire_insn;
3171#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3172    UINT f_rn;
3173    UINT f_rm;
3174
3175    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3176    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3177
3178  /* Record the fields for the semantic handler.  */
3179  FLD (f_rm) = f_rm;
3180  FLD (f_rn) = f_rn;
3181  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div1_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3182
3183#if WITH_PROFILE_MODEL_P
3184  /* Record the fields for profiling.  */
3185  if (PROFILE_MODEL_P (current_cpu))
3186    {
3187      FLD (in_rm) = f_rm;
3188      FLD (in_rn) = f_rn;
3189      FLD (out_rn) = f_rn;
3190    }
3191#endif
3192#undef FLD
3193    return idesc;
3194  }
3195
3196 extract_sfmt_divu_compact:
3197  {
3198    const IDESC *idesc = &sh64_compact_insn_data[itype];
3199    CGEN_INSN_WORD insn = entire_insn;
3200#define FLD(f) abuf->fields.sfmt_movw10_compact.f
3201    UINT f_rn;
3202
3203    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3204
3205  /* Record the fields for the semantic handler.  */
3206  FLD (f_rn) = f_rn;
3207  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_divu_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
3208
3209#if WITH_PROFILE_MODEL_P
3210  /* Record the fields for profiling.  */
3211  if (PROFILE_MODEL_P (current_cpu))
3212    {
3213      FLD (in_r0) = 0;
3214      FLD (in_rn) = f_rn;
3215      FLD (out_rn) = f_rn;
3216    }
3217#endif
3218#undef FLD
3219    return idesc;
3220  }
3221
3222 extract_sfmt_dmulsl_compact:
3223  {
3224    const IDESC *idesc = &sh64_compact_insn_data[itype];
3225    CGEN_INSN_WORD insn = entire_insn;
3226#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3227    UINT f_rn;
3228    UINT f_rm;
3229
3230    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3231    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3232
3233  /* Record the fields for the semantic handler.  */
3234  FLD (f_rm) = f_rm;
3235  FLD (f_rn) = f_rn;
3236  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmulsl_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3237
3238#if WITH_PROFILE_MODEL_P
3239  /* Record the fields for profiling.  */
3240  if (PROFILE_MODEL_P (current_cpu))
3241    {
3242      FLD (in_rm) = f_rm;
3243      FLD (in_rn) = f_rn;
3244    }
3245#endif
3246#undef FLD
3247    return idesc;
3248  }
3249
3250 extract_sfmt_dt_compact:
3251  {
3252    const IDESC *idesc = &sh64_compact_insn_data[itype];
3253    CGEN_INSN_WORD insn = entire_insn;
3254#define FLD(f) abuf->fields.sfmt_movw10_compact.f
3255    UINT f_rn;
3256
3257    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3258
3259  /* Record the fields for the semantic handler.  */
3260  FLD (f_rn) = f_rn;
3261  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dt_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
3262
3263#if WITH_PROFILE_MODEL_P
3264  /* Record the fields for profiling.  */
3265  if (PROFILE_MODEL_P (current_cpu))
3266    {
3267      FLD (in_rn) = f_rn;
3268      FLD (out_rn) = f_rn;
3269    }
3270#endif
3271#undef FLD
3272    return idesc;
3273  }
3274
3275 extract_sfmt_extsb_compact:
3276  {
3277    const IDESC *idesc = &sh64_compact_insn_data[itype];
3278    CGEN_INSN_WORD insn = entire_insn;
3279#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3280    UINT f_rn;
3281    UINT f_rm;
3282
3283    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3284    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3285
3286  /* Record the fields for the semantic handler.  */
3287  FLD (f_rm) = f_rm;
3288  FLD (f_rn) = f_rn;
3289  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_extsb_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3290
3291#if WITH_PROFILE_MODEL_P
3292  /* Record the fields for profiling.  */
3293  if (PROFILE_MODEL_P (current_cpu))
3294    {
3295      FLD (in_rm) = f_rm;
3296      FLD (out_rn) = f_rn;
3297    }
3298#endif
3299#undef FLD
3300    return idesc;
3301  }
3302
3303 extract_sfmt_fabs_compact:
3304  {
3305    const IDESC *idesc = &sh64_compact_insn_data[itype];
3306    CGEN_INSN_WORD insn = entire_insn;
3307#define FLD(f) abuf->fields.sfmt_movw10_compact.f
3308    UINT f_rn;
3309
3310    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3311
3312  /* Record the fields for the semantic handler.  */
3313  FLD (f_rn) = f_rn;
3314  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fabs_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
3315
3316#if WITH_PROFILE_MODEL_P
3317  /* Record the fields for profiling.  */
3318  if (PROFILE_MODEL_P (current_cpu))
3319    {
3320      FLD (in_fsdn) = f_rn;
3321      FLD (out_fsdn) = f_rn;
3322    }
3323#endif
3324#undef FLD
3325    return idesc;
3326  }
3327
3328 extract_sfmt_fadd_compact:
3329  {
3330    const IDESC *idesc = &sh64_compact_insn_data[itype];
3331    CGEN_INSN_WORD insn = entire_insn;
3332#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3333    UINT f_rn;
3334    UINT f_rm;
3335
3336    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3337    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3338
3339  /* Record the fields for the semantic handler.  */
3340  FLD (f_rm) = f_rm;
3341  FLD (f_rn) = f_rn;
3342  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fadd_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3343
3344#if WITH_PROFILE_MODEL_P
3345  /* Record the fields for profiling.  */
3346  if (PROFILE_MODEL_P (current_cpu))
3347    {
3348      FLD (in_fsdm) = f_rm;
3349      FLD (in_fsdn) = f_rn;
3350      FLD (out_fsdn) = f_rn;
3351    }
3352#endif
3353#undef FLD
3354    return idesc;
3355  }
3356
3357 extract_sfmt_fcmpeq_compact:
3358  {
3359    const IDESC *idesc = &sh64_compact_insn_data[itype];
3360    CGEN_INSN_WORD insn = entire_insn;
3361#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3362    UINT f_rn;
3363    UINT f_rm;
3364
3365    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3366    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3367
3368  /* Record the fields for the semantic handler.  */
3369  FLD (f_rm) = f_rm;
3370  FLD (f_rn) = f_rn;
3371  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fcmpeq_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3372
3373#if WITH_PROFILE_MODEL_P
3374  /* Record the fields for profiling.  */
3375  if (PROFILE_MODEL_P (current_cpu))
3376    {
3377      FLD (in_fsdm) = f_rm;
3378      FLD (in_fsdn) = f_rn;
3379    }
3380#endif
3381#undef FLD
3382    return idesc;
3383  }
3384
3385 extract_sfmt_fcnvds_compact:
3386  {
3387    const IDESC *idesc = &sh64_compact_insn_data[itype];
3388    CGEN_INSN_WORD insn = entire_insn;
3389#define FLD(f) abuf->fields.sfmt_fmov8_compact.f
3390    SI f_dn;
3391
3392    f_dn = ((EXTRACT_MSB0_UINT (insn, 16, 4, 3)) << (1));
3393
3394  /* Record the fields for the semantic handler.  */
3395  FLD (f_dn) = f_dn;
3396  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fcnvds_compact", "f_dn 0x%x", 'x', f_dn, (char *) 0));
3397
3398#if WITH_PROFILE_MODEL_P
3399  /* Record the fields for profiling.  */
3400  if (PROFILE_MODEL_P (current_cpu))
3401    {
3402      FLD (in_drn) = f_dn;
3403      FLD (out_fpul) = 32;
3404    }
3405#endif
3406#undef FLD
3407    return idesc;
3408  }
3409
3410 extract_sfmt_fcnvsd_compact:
3411  {
3412    const IDESC *idesc = &sh64_compact_insn_data[itype];
3413    CGEN_INSN_WORD insn = entire_insn;
3414#define FLD(f) abuf->fields.sfmt_fmov8_compact.f
3415    SI f_dn;
3416
3417    f_dn = ((EXTRACT_MSB0_UINT (insn, 16, 4, 3)) << (1));
3418
3419  /* Record the fields for the semantic handler.  */
3420  FLD (f_dn) = f_dn;
3421  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fcnvsd_compact", "f_dn 0x%x", 'x', f_dn, (char *) 0));
3422
3423#if WITH_PROFILE_MODEL_P
3424  /* Record the fields for profiling.  */
3425  if (PROFILE_MODEL_P (current_cpu))
3426    {
3427      FLD (in_fpul) = 32;
3428      FLD (out_drn) = f_dn;
3429    }
3430#endif
3431#undef FLD
3432    return idesc;
3433  }
3434
3435 extract_sfmt_fipr_compact:
3436  {
3437    const IDESC *idesc = &sh64_compact_insn_data[itype];
3438    CGEN_INSN_WORD insn = entire_insn;
3439#define FLD(f) abuf->fields.sfmt_fipr_compact.f
3440    SI f_vn;
3441    SI f_vm;
3442
3443    f_vn = ((EXTRACT_MSB0_UINT (insn, 16, 4, 2)) << (2));
3444    f_vm = ((EXTRACT_MSB0_UINT (insn, 16, 6, 2)) << (2));
3445
3446  /* Record the fields for the semantic handler.  */
3447  FLD (f_vm) = f_vm;
3448  FLD (f_vn) = f_vn;
3449  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fipr_compact", "f_vm 0x%x", 'x', f_vm, "f_vn 0x%x", 'x', f_vn, (char *) 0));
3450
3451#undef FLD
3452    return idesc;
3453  }
3454
3455 extract_sfmt_flds_compact:
3456  {
3457    const IDESC *idesc = &sh64_compact_insn_data[itype];
3458    CGEN_INSN_WORD insn = entire_insn;
3459#define FLD(f) abuf->fields.sfmt_movw10_compact.f
3460    UINT f_rn;
3461
3462    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3463
3464  /* Record the fields for the semantic handler.  */
3465  FLD (f_rn) = f_rn;
3466  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_flds_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
3467
3468#if WITH_PROFILE_MODEL_P
3469  /* Record the fields for profiling.  */
3470  if (PROFILE_MODEL_P (current_cpu))
3471    {
3472      FLD (in_frn) = f_rn;
3473      FLD (out_fpul) = 32;
3474    }
3475#endif
3476#undef FLD
3477    return idesc;
3478  }
3479
3480 extract_sfmt_fldi0_compact:
3481  {
3482    const IDESC *idesc = &sh64_compact_insn_data[itype];
3483    CGEN_INSN_WORD insn = entire_insn;
3484#define FLD(f) abuf->fields.sfmt_movw10_compact.f
3485    UINT f_rn;
3486
3487    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3488
3489  /* Record the fields for the semantic handler.  */
3490  FLD (f_rn) = f_rn;
3491  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fldi0_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
3492
3493#if WITH_PROFILE_MODEL_P
3494  /* Record the fields for profiling.  */
3495  if (PROFILE_MODEL_P (current_cpu))
3496    {
3497      FLD (out_frn) = f_rn;
3498    }
3499#endif
3500#undef FLD
3501    return idesc;
3502  }
3503
3504 extract_sfmt_float_compact:
3505  {
3506    const IDESC *idesc = &sh64_compact_insn_data[itype];
3507    CGEN_INSN_WORD insn = entire_insn;
3508#define FLD(f) abuf->fields.sfmt_movw10_compact.f
3509    UINT f_rn;
3510
3511    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3512
3513  /* Record the fields for the semantic handler.  */
3514  FLD (f_rn) = f_rn;
3515  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_float_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
3516
3517#if WITH_PROFILE_MODEL_P
3518  /* Record the fields for profiling.  */
3519  if (PROFILE_MODEL_P (current_cpu))
3520    {
3521      FLD (in_fpul) = 32;
3522      FLD (out_fsdn) = f_rn;
3523    }
3524#endif
3525#undef FLD
3526    return idesc;
3527  }
3528
3529 extract_sfmt_fmac_compact:
3530  {
3531    const IDESC *idesc = &sh64_compact_insn_data[itype];
3532    CGEN_INSN_WORD insn = entire_insn;
3533#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3534    UINT f_rn;
3535    UINT f_rm;
3536
3537    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3538    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3539
3540  /* Record the fields for the semantic handler.  */
3541  FLD (f_rm) = f_rm;
3542  FLD (f_rn) = f_rn;
3543  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmac_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3544
3545#if WITH_PROFILE_MODEL_P
3546  /* Record the fields for profiling.  */
3547  if (PROFILE_MODEL_P (current_cpu))
3548    {
3549      FLD (in_fr0) = 0;
3550      FLD (in_frm) = f_rm;
3551      FLD (in_frn) = f_rn;
3552      FLD (out_frn) = f_rn;
3553    }
3554#endif
3555#undef FLD
3556    return idesc;
3557  }
3558
3559 extract_sfmt_fmov1_compact:
3560  {
3561    const IDESC *idesc = &sh64_compact_insn_data[itype];
3562    CGEN_INSN_WORD insn = entire_insn;
3563#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3564    UINT f_rn;
3565    UINT f_rm;
3566
3567    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3568    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3569
3570  /* Record the fields for the semantic handler.  */
3571  FLD (f_rm) = f_rm;
3572  FLD (f_rn) = f_rn;
3573  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmov1_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3574
3575#if WITH_PROFILE_MODEL_P
3576  /* Record the fields for profiling.  */
3577  if (PROFILE_MODEL_P (current_cpu))
3578    {
3579      FLD (in_fmovm) = f_rm;
3580      FLD (out_fmovn) = f_rn;
3581    }
3582#endif
3583#undef FLD
3584    return idesc;
3585  }
3586
3587 extract_sfmt_fmov2_compact:
3588  {
3589    const IDESC *idesc = &sh64_compact_insn_data[itype];
3590    CGEN_INSN_WORD insn = entire_insn;
3591#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3592    UINT f_rn;
3593    UINT f_rm;
3594
3595    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3596    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3597
3598  /* Record the fields for the semantic handler.  */
3599  FLD (f_rm) = f_rm;
3600  FLD (f_rn) = f_rn;
3601  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmov2_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3602
3603#if WITH_PROFILE_MODEL_P
3604  /* Record the fields for profiling.  */
3605  if (PROFILE_MODEL_P (current_cpu))
3606    {
3607      FLD (in_rm) = f_rm;
3608      FLD (out_fmovn) = f_rn;
3609    }
3610#endif
3611#undef FLD
3612    return idesc;
3613  }
3614
3615 extract_sfmt_fmov3_compact:
3616  {
3617    const IDESC *idesc = &sh64_compact_insn_data[itype];
3618    CGEN_INSN_WORD insn = entire_insn;
3619#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3620    UINT f_rn;
3621    UINT f_rm;
3622
3623    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3624    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3625
3626  /* Record the fields for the semantic handler.  */
3627  FLD (f_rm) = f_rm;
3628  FLD (f_rn) = f_rn;
3629  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmov3_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3630
3631#if WITH_PROFILE_MODEL_P
3632  /* Record the fields for profiling.  */
3633  if (PROFILE_MODEL_P (current_cpu))
3634    {
3635      FLD (in_rm) = f_rm;
3636      FLD (out_fmovn) = f_rn;
3637      FLD (out_rm) = f_rm;
3638    }
3639#endif
3640#undef FLD
3641    return idesc;
3642  }
3643
3644 extract_sfmt_fmov4_compact:
3645  {
3646    const IDESC *idesc = &sh64_compact_insn_data[itype];
3647    CGEN_INSN_WORD insn = entire_insn;
3648#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3649    UINT f_rn;
3650    UINT f_rm;
3651
3652    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3653    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3654
3655  /* Record the fields for the semantic handler.  */
3656  FLD (f_rm) = f_rm;
3657  FLD (f_rn) = f_rn;
3658  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmov4_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3659
3660#if WITH_PROFILE_MODEL_P
3661  /* Record the fields for profiling.  */
3662  if (PROFILE_MODEL_P (current_cpu))
3663    {
3664      FLD (in_r0) = 0;
3665      FLD (in_rm) = f_rm;
3666      FLD (out_fmovn) = f_rn;
3667    }
3668#endif
3669#undef FLD
3670    return idesc;
3671  }
3672
3673 extract_sfmt_fmov5_compact:
3674  {
3675    const IDESC *idesc = &sh64_compact_insn_data[itype];
3676    CGEN_INSN_WORD insn = entire_insn;
3677#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3678    UINT f_rn;
3679    UINT f_rm;
3680
3681    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3682    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3683
3684  /* Record the fields for the semantic handler.  */
3685  FLD (f_rm) = f_rm;
3686  FLD (f_rn) = f_rn;
3687  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmov5_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3688
3689#if WITH_PROFILE_MODEL_P
3690  /* Record the fields for profiling.  */
3691  if (PROFILE_MODEL_P (current_cpu))
3692    {
3693      FLD (in_fmovm) = f_rm;
3694      FLD (in_rn) = f_rn;
3695    }
3696#endif
3697#undef FLD
3698    return idesc;
3699  }
3700
3701 extract_sfmt_fmov6_compact:
3702  {
3703    const IDESC *idesc = &sh64_compact_insn_data[itype];
3704    CGEN_INSN_WORD insn = entire_insn;
3705#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3706    UINT f_rn;
3707    UINT f_rm;
3708
3709    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3710    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3711
3712  /* Record the fields for the semantic handler.  */
3713  FLD (f_rm) = f_rm;
3714  FLD (f_rn) = f_rn;
3715  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmov6_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3716
3717#if WITH_PROFILE_MODEL_P
3718  /* Record the fields for profiling.  */
3719  if (PROFILE_MODEL_P (current_cpu))
3720    {
3721      FLD (in_fmovm) = f_rm;
3722      FLD (in_rn) = f_rn;
3723      FLD (out_rn) = f_rn;
3724    }
3725#endif
3726#undef FLD
3727    return idesc;
3728  }
3729
3730 extract_sfmt_fmov7_compact:
3731  {
3732    const IDESC *idesc = &sh64_compact_insn_data[itype];
3733    CGEN_INSN_WORD insn = entire_insn;
3734#define FLD(f) abuf->fields.sfmt_movl12_compact.f
3735    UINT f_rn;
3736    UINT f_rm;
3737
3738    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3739    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3740
3741  /* Record the fields for the semantic handler.  */
3742  FLD (f_rm) = f_rm;
3743  FLD (f_rn) = f_rn;
3744  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmov7_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3745
3746#if WITH_PROFILE_MODEL_P
3747  /* Record the fields for profiling.  */
3748  if (PROFILE_MODEL_P (current_cpu))
3749    {
3750      FLD (in_fmovm) = f_rm;
3751      FLD (in_r0) = 0;
3752      FLD (in_rn) = f_rn;
3753    }
3754#endif
3755#undef FLD
3756    return idesc;
3757  }
3758
3759 extract_sfmt_fmov8_compact:
3760  {
3761    const IDESC *idesc = &sh64_compact_insn_data[itype];
3762    CGEN_INSN_WORD insn = entire_insn;
3763#define FLD(f) abuf->fields.sfmt_fmov8_compact.f
3764    SI f_dn;
3765    UINT f_rm;
3766    SI f_imm12x8;
3767
3768    f_dn = ((EXTRACT_MSB0_UINT (insn, 32, 4, 3)) << (1));
3769    f_rm = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
3770    f_imm12x8 = ((EXTRACT_MSB0_SINT (insn, 32, 20, 12)) << (3));
3771
3772  /* Record the fields for the semantic handler.  */
3773  FLD (f_imm12x8) = f_imm12x8;
3774  FLD (f_rm) = f_rm;
3775  FLD (f_dn) = f_dn;
3776  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmov8_compact", "f_imm12x8 0x%x", 'x', f_imm12x8, "f_rm 0x%x", 'x', f_rm, "f_dn 0x%x", 'x', f_dn, (char *) 0));
3777
3778#if WITH_PROFILE_MODEL_P
3779  /* Record the fields for profiling.  */
3780  if (PROFILE_MODEL_P (current_cpu))
3781    {
3782      FLD (in_rm) = f_rm;
3783      FLD (out_drn) = f_dn;
3784    }
3785#endif
3786#undef FLD
3787    return idesc;
3788  }
3789
3790 extract_sfmt_fmov9_compact:
3791  {
3792    const IDESC *idesc = &sh64_compact_insn_data[itype];
3793    CGEN_INSN_WORD insn = entire_insn;
3794#define FLD(f) abuf->fields.sfmt_fmov9_compact.f
3795    UINT f_rn;
3796    SI f_dm;
3797    SI f_imm12x8;
3798
3799    f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4);
3800    f_dm = ((EXTRACT_MSB0_UINT (insn, 32, 8, 3)) << (1));
3801    f_imm12x8 = ((EXTRACT_MSB0_SINT (insn, 32, 20, 12)) << (3));
3802
3803  /* Record the fields for the semantic handler.  */
3804  FLD (f_dm) = f_dm;
3805  FLD (f_imm12x8) = f_imm12x8;
3806  FLD (f_rn) = f_rn;
3807  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmov9_compact", "f_dm 0x%x", 'x', f_dm, "f_imm12x8 0x%x", 'x', f_imm12x8, "f_rn 0x%x", 'x', f_rn, (char *) 0));
3808
3809#if WITH_PROFILE_MODEL_P
3810  /* Record the fields for profiling.  */
3811  if (PROFILE_MODEL_P (current_cpu))
3812    {
3813      FLD (in_drm) = f_dm;
3814      FLD (in_rn) = f_rn;
3815    }
3816#endif
3817#undef FLD
3818    return idesc;
3819  }
3820
3821 extract_sfmt_frchg_compact:
3822  {
3823    const IDESC *idesc = &sh64_compact_insn_data[itype];
3824#define FLD(f) abuf->fields.sfmt_empty.f
3825
3826
3827  /* Record the fields for the semantic handler.  */
3828  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_frchg_compact", (char *) 0));
3829
3830#undef FLD
3831    return idesc;
3832  }
3833
3834 extract_sfmt_fschg_compact:
3835  {
3836    const IDESC *idesc = &sh64_compact_insn_data[itype];
3837#define FLD(f) abuf->fields.sfmt_empty.f
3838
3839
3840  /* Record the fields for the semantic handler.  */
3841  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fschg_compact", (char *) 0));
3842
3843#undef FLD
3844    return idesc;
3845  }
3846
3847 extract_sfmt_fsts_compact:
3848  {
3849    const IDESC *idesc = &sh64_compact_insn_data[itype];
3850    CGEN_INSN_WORD insn = entire_insn;
3851#define FLD(f) abuf->fields.sfmt_movw10_compact.f
3852    UINT f_rn;
3853
3854    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3855
3856  /* Record the fields for the semantic handler.  */
3857  FLD (f_rn) = f_rn;
3858  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fsts_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
3859
3860#if WITH_PROFILE_MODEL_P
3861  /* Record the fields for profiling.  */
3862  if (PROFILE_MODEL_P (current_cpu))
3863    {
3864      FLD (in_fpul) = 32;
3865      FLD (out_frn) = f_rn;
3866    }
3867#endif
3868#undef FLD
3869    return idesc;
3870  }
3871
3872 extract_sfmt_ftrc_compact:
3873  {
3874    const IDESC *idesc = &sh64_compact_insn_data[itype];
3875    CGEN_INSN_WORD insn = entire_insn;
3876#define FLD(f) abuf->fields.sfmt_movw10_compact.f
3877    UINT f_rn;
3878
3879    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3880
3881  /* Record the fields for the semantic handler.  */
3882  FLD (f_rn) = f_rn;
3883  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ftrc_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
3884
3885#if WITH_PROFILE_MODEL_P
3886  /* Record the fields for profiling.  */
3887  if (PROFILE_MODEL_P (current_cpu))
3888    {
3889      FLD (in_fsdn) = f_rn;
3890      FLD (out_fpul) = 32;
3891    }
3892#endif
3893#undef FLD
3894    return idesc;
3895  }
3896
3897 extract_sfmt_ftrv_compact:
3898  {
3899    const IDESC *idesc = &sh64_compact_insn_data[itype];
3900    CGEN_INSN_WORD insn = entire_insn;
3901#define FLD(f) abuf->fields.sfmt_fipr_compact.f
3902    SI f_vn;
3903
3904    f_vn = ((EXTRACT_MSB0_UINT (insn, 16, 4, 2)) << (2));
3905
3906  /* Record the fields for the semantic handler.  */
3907  FLD (f_vn) = f_vn;
3908  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ftrv_compact", "f_vn 0x%x", 'x', f_vn, (char *) 0));
3909
3910#undef FLD
3911    return idesc;
3912  }
3913
3914 extract_sfmt_ldc_gbr_compact:
3915  {
3916    const IDESC *idesc = &sh64_compact_insn_data[itype];
3917    CGEN_INSN_WORD insn = entire_insn;
3918#define FLD(f) abuf->fields.sfmt_movw10_compact.f
3919    UINT f_rn;
3920
3921    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3922
3923  /* Record the fields for the semantic handler.  */
3924  FLD (f_rn) = f_rn;
3925  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldc_gbr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
3926
3927#if WITH_PROFILE_MODEL_P
3928  /* Record the fields for profiling.  */
3929  if (PROFILE_MODEL_P (current_cpu))
3930    {
3931      FLD (in_rn) = f_rn;
3932    }
3933#endif
3934#undef FLD
3935    return idesc;
3936  }
3937
3938 extract_sfmt_ldc_vbr_compact:
3939  {
3940    const IDESC *idesc = &sh64_compact_insn_data[itype];
3941    CGEN_INSN_WORD insn = entire_insn;
3942#define FLD(f) abuf->fields.sfmt_movw10_compact.f
3943    UINT f_rn;
3944
3945    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3946
3947  /* Record the fields for the semantic handler.  */
3948  FLD (f_rn) = f_rn;
3949  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldc_vbr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
3950
3951#if WITH_PROFILE_MODEL_P
3952  /* Record the fields for profiling.  */
3953  if (PROFILE_MODEL_P (current_cpu))
3954    {
3955      FLD (in_rn) = f_rn;
3956    }
3957#endif
3958#undef FLD
3959    return idesc;
3960  }
3961
3962 extract_sfmt_ldc_sr_compact:
3963  {
3964    const IDESC *idesc = &sh64_compact_insn_data[itype];
3965    CGEN_INSN_WORD insn = entire_insn;
3966#define FLD(f) abuf->fields.sfmt_movw10_compact.f
3967    UINT f_rn;
3968
3969    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3970
3971  /* Record the fields for the semantic handler.  */
3972  FLD (f_rn) = f_rn;
3973  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldc_sr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
3974
3975#if WITH_PROFILE_MODEL_P
3976  /* Record the fields for profiling.  */
3977  if (PROFILE_MODEL_P (current_cpu))
3978    {
3979      FLD (in_rn) = f_rn;
3980    }
3981#endif
3982#undef FLD
3983    return idesc;
3984  }
3985
3986 extract_sfmt_ldcl_gbr_compact:
3987  {
3988    const IDESC *idesc = &sh64_compact_insn_data[itype];
3989    CGEN_INSN_WORD insn = entire_insn;
3990#define FLD(f) abuf->fields.sfmt_movw10_compact.f
3991    UINT f_rn;
3992
3993    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3994
3995  /* Record the fields for the semantic handler.  */
3996  FLD (f_rn) = f_rn;
3997  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldcl_gbr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
3998
3999#if WITH_PROFILE_MODEL_P
4000  /* Record the fields for profiling.  */
4001  if (PROFILE_MODEL_P (current_cpu))
4002    {
4003      FLD (in_rn) = f_rn;
4004      FLD (out_rn) = f_rn;
4005    }
4006#endif
4007#undef FLD
4008    return idesc;
4009  }
4010
4011 extract_sfmt_ldcl_vbr_compact:
4012  {
4013    const IDESC *idesc = &sh64_compact_insn_data[itype];
4014    CGEN_INSN_WORD insn = entire_insn;
4015#define FLD(f) abuf->fields.sfmt_movw10_compact.f
4016    UINT f_rn;
4017
4018    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4019
4020  /* Record the fields for the semantic handler.  */
4021  FLD (f_rn) = f_rn;
4022  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldcl_vbr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
4023
4024#if WITH_PROFILE_MODEL_P
4025  /* Record the fields for profiling.  */
4026  if (PROFILE_MODEL_P (current_cpu))
4027    {
4028      FLD (in_rn) = f_rn;
4029      FLD (out_rn) = f_rn;
4030    }
4031#endif
4032#undef FLD
4033    return idesc;
4034  }
4035
4036 extract_sfmt_lds_fpscr_compact:
4037  {
4038    const IDESC *idesc = &sh64_compact_insn_data[itype];
4039    CGEN_INSN_WORD insn = entire_insn;
4040#define FLD(f) abuf->fields.sfmt_movw10_compact.f
4041    UINT f_rn;
4042
4043    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4044
4045  /* Record the fields for the semantic handler.  */
4046  FLD (f_rn) = f_rn;
4047  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lds_fpscr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
4048
4049#if WITH_PROFILE_MODEL_P
4050  /* Record the fields for profiling.  */
4051  if (PROFILE_MODEL_P (current_cpu))
4052    {
4053      FLD (in_rn) = f_rn;
4054    }
4055#endif
4056#undef FLD
4057    return idesc;
4058  }
4059
4060 extract_sfmt_ldsl_fpscr_compact:
4061  {
4062    const IDESC *idesc = &sh64_compact_insn_data[itype];
4063    CGEN_INSN_WORD insn = entire_insn;
4064#define FLD(f) abuf->fields.sfmt_movw10_compact.f
4065    UINT f_rn;
4066
4067    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4068
4069  /* Record the fields for the semantic handler.  */
4070  FLD (f_rn) = f_rn;
4071  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldsl_fpscr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
4072
4073#if WITH_PROFILE_MODEL_P
4074  /* Record the fields for profiling.  */
4075  if (PROFILE_MODEL_P (current_cpu))
4076    {
4077      FLD (in_rn) = f_rn;
4078      FLD (out_rn) = f_rn;
4079    }
4080#endif
4081#undef FLD
4082    return idesc;
4083  }
4084
4085 extract_sfmt_lds_fpul_compact:
4086  {
4087    const IDESC *idesc = &sh64_compact_insn_data[itype];
4088    CGEN_INSN_WORD insn = entire_insn;
4089#define FLD(f) abuf->fields.sfmt_movw10_compact.f
4090    UINT f_rn;
4091
4092    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4093
4094  /* Record the fields for the semantic handler.  */
4095  FLD (f_rn) = f_rn;
4096  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lds_fpul_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
4097
4098#if WITH_PROFILE_MODEL_P
4099  /* Record the fields for profiling.  */
4100  if (PROFILE_MODEL_P (current_cpu))
4101    {
4102      FLD (in_rn) = f_rn;
4103      FLD (out_fpul) = 32;
4104    }
4105#endif
4106#undef FLD
4107    return idesc;
4108  }
4109
4110 extract_sfmt_ldsl_fpul_compact:
4111  {
4112    const IDESC *idesc = &sh64_compact_insn_data[itype];
4113    CGEN_INSN_WORD insn = entire_insn;
4114#define FLD(f) abuf->fields.sfmt_movw10_compact.f
4115    UINT f_rn;
4116
4117    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4118
4119  /* Record the fields for the semantic handler.  */
4120  FLD (f_rn) = f_rn;
4121  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldsl_fpul_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
4122
4123#if WITH_PROFILE_MODEL_P
4124  /* Record the fields for profiling.  */
4125  if (PROFILE_MODEL_P (current_cpu))
4126    {
4127      FLD (in_rn) = f_rn;
4128      FLD (out_fpul) = 32;
4129      FLD (out_rn) = f_rn;
4130    }
4131#endif
4132#undef FLD
4133    return idesc;
4134  }
4135
4136 extract_sfmt_lds_mach_compact:
4137  {
4138    const IDESC *idesc = &sh64_compact_insn_data[itype];
4139    CGEN_INSN_WORD insn = entire_insn;
4140#define FLD(f) abuf->fields.sfmt_movw10_compact.f
4141    UINT f_rn;
4142
4143    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4144
4145  /* Record the fields for the semantic handler.  */
4146  FLD (f_rn) = f_rn;
4147  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lds_mach_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
4148
4149#if WITH_PROFILE_MODEL_P
4150  /* Record the fields for profiling.  */
4151  if (PROFILE_MODEL_P (current_cpu))
4152    {
4153      FLD (in_rn) = f_rn;
4154    }
4155#endif
4156#undef FLD
4157    return idesc;
4158  }
4159
4160 extract_sfmt_ldsl_mach_compact:
4161  {
4162    const IDESC *idesc = &sh64_compact_insn_data[itype];
4163    CGEN_INSN_WORD insn = entire_insn;
4164#define FLD(f) abuf->fields.sfmt_movw10_compact.f
4165    UINT f_rn;
4166
4167    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4168
4169  /* Record the fields for the semantic handler.  */
4170  FLD (f_rn) = f_rn;
4171  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldsl_mach_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
4172
4173#if WITH_PROFILE_MODEL_P
4174  /* Record the fields for profiling.  */
4175  if (PROFILE_MODEL_P (current_cpu))
4176    {
4177      FLD (in_rn) = f_rn;
4178      FLD (out_rn) = f_rn;
4179    }
4180#endif
4181#undef FLD
4182    return idesc;
4183  }
4184
4185 extract_sfmt_lds_macl_compact:
4186  {
4187    const IDESC *idesc = &sh64_compact_insn_data[itype];
4188    CGEN_INSN_WORD insn = entire_insn;
4189#define FLD(f) abuf->fields.sfmt_movw10_compact.f
4190    UINT f_rn;
4191
4192    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4193
4194  /* Record the fields for the semantic handler.  */
4195  FLD (f_rn) = f_rn;
4196  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lds_macl_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
4197
4198#if WITH_PROFILE_MODEL_P
4199  /* Record the fields for profiling.  */
4200  if (PROFILE_MODEL_P (current_cpu))
4201    {
4202      FLD (in_rn) = f_rn;
4203    }
4204#endif
4205#undef FLD
4206    return idesc;
4207  }
4208
4209 extract_sfmt_ldsl_macl_compact:
4210  {
4211    const IDESC *idesc = &sh64_compact_insn_data[itype];
4212    CGEN_INSN_WORD insn = entire_insn;
4213#define FLD(f) abuf->fields.sfmt_movw10_compact.f
4214    UINT f_rn;
4215
4216    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4217
4218  /* Record the fields for the semantic handler.  */
4219  FLD (f_rn) = f_rn;
4220  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldsl_macl_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
4221
4222#if WITH_PROFILE_MODEL_P
4223  /* Record the fields for profiling.  */
4224  if (PROFILE_MODEL_P (current_cpu))
4225    {
4226      FLD (in_rn) = f_rn;
4227      FLD (out_rn) = f_rn;
4228    }
4229#endif
4230#undef FLD
4231    return idesc;
4232  }
4233
4234 extract_sfmt_lds_pr_compact:
4235  {
4236    const IDESC *idesc = &sh64_compact_insn_data[itype];
4237    CGEN_INSN_WORD insn = entire_insn;
4238#define FLD(f) abuf->fields.sfmt_movw10_compact.f
4239    UINT f_rn;
4240
4241    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4242
4243  /* Record the fields for the semantic handler.  */
4244  FLD (f_rn) = f_rn;
4245  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lds_pr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
4246
4247#if WITH_PROFILE_MODEL_P
4248  /* Record the fields for profiling.  */
4249  if (PROFILE_MODEL_P (current_cpu))
4250    {
4251      FLD (in_rn) = f_rn;
4252    }
4253#endif
4254#undef FLD
4255    return idesc;
4256  }
4257
4258 extract_sfmt_ldsl_pr_compact:
4259  {
4260    const IDESC *idesc = &sh64_compact_insn_data[itype];
4261    CGEN_INSN_WORD insn = entire_insn;
4262#define FLD(f) abuf->fields.sfmt_movw10_compact.f
4263    UINT f_rn;
4264
4265    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4266
4267  /* Record the fields for the semantic handler.  */
4268  FLD (f_rn) = f_rn;
4269  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldsl_pr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
4270
4271#if WITH_PROFILE_MODEL_P
4272  /* Record the fields for profiling.  */
4273  if (PROFILE_MODEL_P (current_cpu))
4274    {
4275      FLD (in_rn) = f_rn;
4276      FLD (out_rn) = f_rn;
4277    }
4278#endif
4279#undef FLD
4280    return idesc;
4281  }
4282
4283 extract_sfmt_macl_compact:
4284  {
4285    const IDESC *idesc = &sh64_compact_insn_data[itype];
4286    CGEN_INSN_WORD insn = entire_insn;
4287#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4288    UINT f_rn;
4289    UINT f_rm;
4290
4291    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4292    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4293
4294  /* Record the fields for the semantic handler.  */
4295  FLD (f_rm) = f_rm;
4296  FLD (f_rn) = f_rn;
4297  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_macl_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4298
4299#if WITH_PROFILE_MODEL_P
4300  /* Record the fields for profiling.  */
4301  if (PROFILE_MODEL_P (current_cpu))
4302    {
4303      FLD (in_rm) = f_rm;
4304      FLD (in_rn) = f_rn;
4305      FLD (out_rm) = f_rm;
4306      FLD (out_rn) = f_rn;
4307    }
4308#endif
4309#undef FLD
4310    return idesc;
4311  }
4312
4313 extract_sfmt_macw_compact:
4314  {
4315    const IDESC *idesc = &sh64_compact_insn_data[itype];
4316    CGEN_INSN_WORD insn = entire_insn;
4317#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4318    UINT f_rn;
4319    UINT f_rm;
4320
4321    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4322    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4323
4324  /* Record the fields for the semantic handler.  */
4325  FLD (f_rm) = f_rm;
4326  FLD (f_rn) = f_rn;
4327  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_macw_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4328
4329#if WITH_PROFILE_MODEL_P
4330  /* Record the fields for profiling.  */
4331  if (PROFILE_MODEL_P (current_cpu))
4332    {
4333      FLD (in_rm) = f_rm;
4334      FLD (in_rn) = f_rn;
4335      FLD (out_rm) = f_rm;
4336      FLD (out_rn) = f_rn;
4337    }
4338#endif
4339#undef FLD
4340    return idesc;
4341  }
4342
4343 extract_sfmt_mov_compact:
4344  {
4345    const IDESC *idesc = &sh64_compact_insn_data[itype];
4346    CGEN_INSN_WORD insn = entire_insn;
4347#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4348    UINT f_rn;
4349    UINT f_rm;
4350
4351    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4352    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4353
4354  /* Record the fields for the semantic handler.  */
4355  FLD (f_rm) = f_rm;
4356  FLD (f_rn) = f_rn;
4357  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mov_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4358
4359#if WITH_PROFILE_MODEL_P
4360  /* Record the fields for profiling.  */
4361  if (PROFILE_MODEL_P (current_cpu))
4362    {
4363      FLD (in_rm64) = f_rm;
4364      FLD (out_rn64) = f_rn;
4365    }
4366#endif
4367#undef FLD
4368    return idesc;
4369  }
4370
4371 extract_sfmt_movi_compact:
4372  {
4373    const IDESC *idesc = &sh64_compact_insn_data[itype];
4374    CGEN_INSN_WORD insn = entire_insn;
4375#define FLD(f) abuf->fields.sfmt_addi_compact.f
4376    UINT f_rn;
4377    UINT f_imm8;
4378
4379    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4380    f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
4381
4382  /* Record the fields for the semantic handler.  */
4383  FLD (f_imm8) = f_imm8;
4384  FLD (f_rn) = f_rn;
4385  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movi_compact", "f_imm8 0x%x", 'x', f_imm8, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4386
4387#if WITH_PROFILE_MODEL_P
4388  /* Record the fields for profiling.  */
4389  if (PROFILE_MODEL_P (current_cpu))
4390    {
4391      FLD (out_rn) = f_rn;
4392    }
4393#endif
4394#undef FLD
4395    return idesc;
4396  }
4397
4398 extract_sfmt_movi20_compact:
4399  {
4400    const IDESC *idesc = &sh64_compact_insn_data[itype];
4401    CGEN_INSN_WORD insn = entire_insn;
4402#define FLD(f) abuf->fields.sfmt_movi20_compact.f
4403    UINT f_rn;
4404    INT f_imm20_hi;
4405    UINT f_imm20_lo;
4406    INT f_imm20;
4407
4408    f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4);
4409    f_imm20_hi = EXTRACT_MSB0_SINT (insn, 32, 8, 4);
4410    f_imm20_lo = EXTRACT_MSB0_UINT (insn, 32, 16, 16);
4411  f_imm20 = ((((f_imm20_hi) << (16))) | (f_imm20_lo));
4412
4413  /* Record the fields for the semantic handler.  */
4414  FLD (f_imm20) = f_imm20;
4415  FLD (f_rn) = f_rn;
4416  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movi20_compact", "f_imm20 0x%x", 'x', f_imm20, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4417
4418#if WITH_PROFILE_MODEL_P
4419  /* Record the fields for profiling.  */
4420  if (PROFILE_MODEL_P (current_cpu))
4421    {
4422      FLD (out_rn) = f_rn;
4423    }
4424#endif
4425#undef FLD
4426    return idesc;
4427  }
4428
4429 extract_sfmt_movb1_compact:
4430  {
4431    const IDESC *idesc = &sh64_compact_insn_data[itype];
4432    CGEN_INSN_WORD insn = entire_insn;
4433#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4434    UINT f_rn;
4435    UINT f_rm;
4436
4437    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4438    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4439
4440  /* Record the fields for the semantic handler.  */
4441  FLD (f_rm) = f_rm;
4442  FLD (f_rn) = f_rn;
4443  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movb1_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4444
4445#if WITH_PROFILE_MODEL_P
4446  /* Record the fields for profiling.  */
4447  if (PROFILE_MODEL_P (current_cpu))
4448    {
4449      FLD (in_rm) = f_rm;
4450      FLD (in_rn) = f_rn;
4451    }
4452#endif
4453#undef FLD
4454    return idesc;
4455  }
4456
4457 extract_sfmt_movb2_compact:
4458  {
4459    const IDESC *idesc = &sh64_compact_insn_data[itype];
4460    CGEN_INSN_WORD insn = entire_insn;
4461#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4462    UINT f_rn;
4463    UINT f_rm;
4464
4465    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4466    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4467
4468  /* Record the fields for the semantic handler.  */
4469  FLD (f_rm) = f_rm;
4470  FLD (f_rn) = f_rn;
4471  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movb2_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4472
4473#if WITH_PROFILE_MODEL_P
4474  /* Record the fields for profiling.  */
4475  if (PROFILE_MODEL_P (current_cpu))
4476    {
4477      FLD (in_rm) = f_rm;
4478      FLD (in_rn) = f_rn;
4479      FLD (out_rn) = f_rn;
4480    }
4481#endif
4482#undef FLD
4483    return idesc;
4484  }
4485
4486 extract_sfmt_movb3_compact:
4487  {
4488    const IDESC *idesc = &sh64_compact_insn_data[itype];
4489    CGEN_INSN_WORD insn = entire_insn;
4490#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4491    UINT f_rn;
4492    UINT f_rm;
4493
4494    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4495    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4496
4497  /* Record the fields for the semantic handler.  */
4498  FLD (f_rm) = f_rm;
4499  FLD (f_rn) = f_rn;
4500  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movb3_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4501
4502#if WITH_PROFILE_MODEL_P
4503  /* Record the fields for profiling.  */
4504  if (PROFILE_MODEL_P (current_cpu))
4505    {
4506      FLD (in_r0) = 0;
4507      FLD (in_rm) = f_rm;
4508      FLD (in_rn) = f_rn;
4509    }
4510#endif
4511#undef FLD
4512    return idesc;
4513  }
4514
4515 extract_sfmt_movb4_compact:
4516  {
4517    const IDESC *idesc = &sh64_compact_insn_data[itype];
4518    CGEN_INSN_WORD insn = entire_insn;
4519#define FLD(f) abuf->fields.sfmt_addi_compact.f
4520    UINT f_imm8;
4521
4522    f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
4523
4524  /* Record the fields for the semantic handler.  */
4525  FLD (f_imm8) = f_imm8;
4526  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movb4_compact", "f_imm8 0x%x", 'x', f_imm8, (char *) 0));
4527
4528#if WITH_PROFILE_MODEL_P
4529  /* Record the fields for profiling.  */
4530  if (PROFILE_MODEL_P (current_cpu))
4531    {
4532      FLD (in_r0) = 0;
4533    }
4534#endif
4535#undef FLD
4536    return idesc;
4537  }
4538
4539 extract_sfmt_movb5_compact:
4540  {
4541    const IDESC *idesc = &sh64_compact_insn_data[itype];
4542    CGEN_INSN_WORD insn = entire_insn;
4543#define FLD(f) abuf->fields.sfmt_movb5_compact.f
4544    UINT f_rm;
4545    UINT f_imm4;
4546
4547    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4548    f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4549
4550  /* Record the fields for the semantic handler.  */
4551  FLD (f_imm4) = f_imm4;
4552  FLD (f_rm) = f_rm;
4553  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movb5_compact", "f_imm4 0x%x", 'x', f_imm4, "f_rm 0x%x", 'x', f_rm, (char *) 0));
4554
4555#if WITH_PROFILE_MODEL_P
4556  /* Record the fields for profiling.  */
4557  if (PROFILE_MODEL_P (current_cpu))
4558    {
4559      FLD (in_r0) = 0;
4560      FLD (in_rm) = f_rm;
4561    }
4562#endif
4563#undef FLD
4564    return idesc;
4565  }
4566
4567 extract_sfmt_movb6_compact:
4568  {
4569    const IDESC *idesc = &sh64_compact_insn_data[itype];
4570    CGEN_INSN_WORD insn = entire_insn;
4571#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4572    UINT f_rn;
4573    UINT f_rm;
4574
4575    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4576    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4577
4578  /* Record the fields for the semantic handler.  */
4579  FLD (f_rm) = f_rm;
4580  FLD (f_rn) = f_rn;
4581  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movb6_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4582
4583#if WITH_PROFILE_MODEL_P
4584  /* Record the fields for profiling.  */
4585  if (PROFILE_MODEL_P (current_cpu))
4586    {
4587      FLD (in_rm) = f_rm;
4588      FLD (out_rn) = f_rn;
4589    }
4590#endif
4591#undef FLD
4592    return idesc;
4593  }
4594
4595 extract_sfmt_movb7_compact:
4596  {
4597    const IDESC *idesc = &sh64_compact_insn_data[itype];
4598    CGEN_INSN_WORD insn = entire_insn;
4599#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4600    UINT f_rn;
4601    UINT f_rm;
4602
4603    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4604    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4605
4606  /* Record the fields for the semantic handler.  */
4607  FLD (f_rm) = f_rm;
4608  FLD (f_rn) = f_rn;
4609  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movb7_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4610
4611#if WITH_PROFILE_MODEL_P
4612  /* Record the fields for profiling.  */
4613  if (PROFILE_MODEL_P (current_cpu))
4614    {
4615      FLD (in_rm) = f_rm;
4616      FLD (out_rm) = f_rm;
4617      FLD (out_rn) = f_rn;
4618    }
4619#endif
4620#undef FLD
4621    return idesc;
4622  }
4623
4624 extract_sfmt_movb8_compact:
4625  {
4626    const IDESC *idesc = &sh64_compact_insn_data[itype];
4627    CGEN_INSN_WORD insn = entire_insn;
4628#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4629    UINT f_rn;
4630    UINT f_rm;
4631
4632    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4633    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4634
4635  /* Record the fields for the semantic handler.  */
4636  FLD (f_rm) = f_rm;
4637  FLD (f_rn) = f_rn;
4638  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movb8_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4639
4640#if WITH_PROFILE_MODEL_P
4641  /* Record the fields for profiling.  */
4642  if (PROFILE_MODEL_P (current_cpu))
4643    {
4644      FLD (in_r0) = 0;
4645      FLD (in_rm) = f_rm;
4646      FLD (out_rn) = f_rn;
4647    }
4648#endif
4649#undef FLD
4650    return idesc;
4651  }
4652
4653 extract_sfmt_movb9_compact:
4654  {
4655    const IDESC *idesc = &sh64_compact_insn_data[itype];
4656    CGEN_INSN_WORD insn = entire_insn;
4657#define FLD(f) abuf->fields.sfmt_addi_compact.f
4658    UINT f_imm8;
4659
4660    f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
4661
4662  /* Record the fields for the semantic handler.  */
4663  FLD (f_imm8) = f_imm8;
4664  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movb9_compact", "f_imm8 0x%x", 'x', f_imm8, (char *) 0));
4665
4666#if WITH_PROFILE_MODEL_P
4667  /* Record the fields for profiling.  */
4668  if (PROFILE_MODEL_P (current_cpu))
4669    {
4670      FLD (out_r0) = 0;
4671    }
4672#endif
4673#undef FLD
4674    return idesc;
4675  }
4676
4677 extract_sfmt_movb10_compact:
4678  {
4679    const IDESC *idesc = &sh64_compact_insn_data[itype];
4680    CGEN_INSN_WORD insn = entire_insn;
4681#define FLD(f) abuf->fields.sfmt_movb5_compact.f
4682    UINT f_rm;
4683    UINT f_imm4;
4684
4685    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4686    f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4687
4688  /* Record the fields for the semantic handler.  */
4689  FLD (f_imm4) = f_imm4;
4690  FLD (f_rm) = f_rm;
4691  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movb10_compact", "f_imm4 0x%x", 'x', f_imm4, "f_rm 0x%x", 'x', f_rm, (char *) 0));
4692
4693#if WITH_PROFILE_MODEL_P
4694  /* Record the fields for profiling.  */
4695  if (PROFILE_MODEL_P (current_cpu))
4696    {
4697      FLD (in_rm) = f_rm;
4698      FLD (out_r0) = 0;
4699    }
4700#endif
4701#undef FLD
4702    return idesc;
4703  }
4704
4705 extract_sfmt_movl1_compact:
4706  {
4707    const IDESC *idesc = &sh64_compact_insn_data[itype];
4708    CGEN_INSN_WORD insn = entire_insn;
4709#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4710    UINT f_rn;
4711    UINT f_rm;
4712
4713    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4714    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4715
4716  /* Record the fields for the semantic handler.  */
4717  FLD (f_rm) = f_rm;
4718  FLD (f_rn) = f_rn;
4719  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl1_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4720
4721#if WITH_PROFILE_MODEL_P
4722  /* Record the fields for profiling.  */
4723  if (PROFILE_MODEL_P (current_cpu))
4724    {
4725      FLD (in_rm) = f_rm;
4726      FLD (in_rn) = f_rn;
4727    }
4728#endif
4729#undef FLD
4730    return idesc;
4731  }
4732
4733 extract_sfmt_movl2_compact:
4734  {
4735    const IDESC *idesc = &sh64_compact_insn_data[itype];
4736    CGEN_INSN_WORD insn = entire_insn;
4737#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4738    UINT f_rn;
4739    UINT f_rm;
4740
4741    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4742    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4743
4744  /* Record the fields for the semantic handler.  */
4745  FLD (f_rm) = f_rm;
4746  FLD (f_rn) = f_rn;
4747  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl2_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4748
4749#if WITH_PROFILE_MODEL_P
4750  /* Record the fields for profiling.  */
4751  if (PROFILE_MODEL_P (current_cpu))
4752    {
4753      FLD (in_rm) = f_rm;
4754      FLD (in_rn) = f_rn;
4755      FLD (out_rn) = f_rn;
4756    }
4757#endif
4758#undef FLD
4759    return idesc;
4760  }
4761
4762 extract_sfmt_movl3_compact:
4763  {
4764    const IDESC *idesc = &sh64_compact_insn_data[itype];
4765    CGEN_INSN_WORD insn = entire_insn;
4766#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4767    UINT f_rn;
4768    UINT f_rm;
4769
4770    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4771    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4772
4773  /* Record the fields for the semantic handler.  */
4774  FLD (f_rm) = f_rm;
4775  FLD (f_rn) = f_rn;
4776  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl3_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4777
4778#if WITH_PROFILE_MODEL_P
4779  /* Record the fields for profiling.  */
4780  if (PROFILE_MODEL_P (current_cpu))
4781    {
4782      FLD (in_r0) = 0;
4783      FLD (in_rm) = f_rm;
4784      FLD (in_rn) = f_rn;
4785    }
4786#endif
4787#undef FLD
4788    return idesc;
4789  }
4790
4791 extract_sfmt_movl4_compact:
4792  {
4793    const IDESC *idesc = &sh64_compact_insn_data[itype];
4794    CGEN_INSN_WORD insn = entire_insn;
4795#define FLD(f) abuf->fields.sfmt_movl10_compact.f
4796    SI f_imm8x4;
4797
4798    f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
4799
4800  /* Record the fields for the semantic handler.  */
4801  FLD (f_imm8x4) = f_imm8x4;
4802  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl4_compact", "f_imm8x4 0x%x", 'x', f_imm8x4, (char *) 0));
4803
4804#if WITH_PROFILE_MODEL_P
4805  /* Record the fields for profiling.  */
4806  if (PROFILE_MODEL_P (current_cpu))
4807    {
4808      FLD (in_r0) = 0;
4809    }
4810#endif
4811#undef FLD
4812    return idesc;
4813  }
4814
4815 extract_sfmt_movl5_compact:
4816  {
4817    const IDESC *idesc = &sh64_compact_insn_data[itype];
4818    CGEN_INSN_WORD insn = entire_insn;
4819#define FLD(f) abuf->fields.sfmt_movl5_compact.f
4820    UINT f_rn;
4821    UINT f_rm;
4822    SI f_imm4x4;
4823
4824    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4825    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4826    f_imm4x4 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (2));
4827
4828  /* Record the fields for the semantic handler.  */
4829  FLD (f_imm4x4) = f_imm4x4;
4830  FLD (f_rm) = f_rm;
4831  FLD (f_rn) = f_rn;
4832  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl5_compact", "f_imm4x4 0x%x", 'x', f_imm4x4, "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4833
4834#if WITH_PROFILE_MODEL_P
4835  /* Record the fields for profiling.  */
4836  if (PROFILE_MODEL_P (current_cpu))
4837    {
4838      FLD (in_rm) = f_rm;
4839      FLD (in_rn) = f_rn;
4840    }
4841#endif
4842#undef FLD
4843    return idesc;
4844  }
4845
4846 extract_sfmt_movl6_compact:
4847  {
4848    const IDESC *idesc = &sh64_compact_insn_data[itype];
4849    CGEN_INSN_WORD insn = entire_insn;
4850#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4851    UINT f_rn;
4852    UINT f_rm;
4853
4854    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4855    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4856
4857  /* Record the fields for the semantic handler.  */
4858  FLD (f_rm) = f_rm;
4859  FLD (f_rn) = f_rn;
4860  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl6_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4861
4862#if WITH_PROFILE_MODEL_P
4863  /* Record the fields for profiling.  */
4864  if (PROFILE_MODEL_P (current_cpu))
4865    {
4866      FLD (in_rm) = f_rm;
4867      FLD (out_rn) = f_rn;
4868    }
4869#endif
4870#undef FLD
4871    return idesc;
4872  }
4873
4874 extract_sfmt_movl7_compact:
4875  {
4876    const IDESC *idesc = &sh64_compact_insn_data[itype];
4877    CGEN_INSN_WORD insn = entire_insn;
4878#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4879    UINT f_rn;
4880    UINT f_rm;
4881
4882    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4883    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4884
4885  /* Record the fields for the semantic handler.  */
4886  FLD (f_rm) = f_rm;
4887  FLD (f_rn) = f_rn;
4888  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl7_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4889
4890#if WITH_PROFILE_MODEL_P
4891  /* Record the fields for profiling.  */
4892  if (PROFILE_MODEL_P (current_cpu))
4893    {
4894      FLD (in_rm) = f_rm;
4895      FLD (in_rn) = f_rn;
4896      FLD (out_rm) = f_rm;
4897      FLD (out_rn) = f_rn;
4898    }
4899#endif
4900#undef FLD
4901    return idesc;
4902  }
4903
4904 extract_sfmt_movl8_compact:
4905  {
4906    const IDESC *idesc = &sh64_compact_insn_data[itype];
4907    CGEN_INSN_WORD insn = entire_insn;
4908#define FLD(f) abuf->fields.sfmt_movl12_compact.f
4909    UINT f_rn;
4910    UINT f_rm;
4911
4912    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4913    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4914
4915  /* Record the fields for the semantic handler.  */
4916  FLD (f_rm) = f_rm;
4917  FLD (f_rn) = f_rn;
4918  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl8_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4919
4920#if WITH_PROFILE_MODEL_P
4921  /* Record the fields for profiling.  */
4922  if (PROFILE_MODEL_P (current_cpu))
4923    {
4924      FLD (in_r0) = 0;
4925      FLD (in_rm) = f_rm;
4926      FLD (out_rn) = f_rn;
4927    }
4928#endif
4929#undef FLD
4930    return idesc;
4931  }
4932
4933 extract_sfmt_movl9_compact:
4934  {
4935    const IDESC *idesc = &sh64_compact_insn_data[itype];
4936    CGEN_INSN_WORD insn = entire_insn;
4937#define FLD(f) abuf->fields.sfmt_movl10_compact.f
4938    SI f_imm8x4;
4939
4940    f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
4941
4942  /* Record the fields for the semantic handler.  */
4943  FLD (f_imm8x4) = f_imm8x4;
4944  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl9_compact", "f_imm8x4 0x%x", 'x', f_imm8x4, (char *) 0));
4945
4946#if WITH_PROFILE_MODEL_P
4947  /* Record the fields for profiling.  */
4948  if (PROFILE_MODEL_P (current_cpu))
4949    {
4950      FLD (out_r0) = 0;
4951    }
4952#endif
4953#undef FLD
4954    return idesc;
4955  }
4956
4957 extract_sfmt_movl10_compact:
4958  {
4959    const IDESC *idesc = &sh64_compact_insn_data[itype];
4960    CGEN_INSN_WORD insn = entire_insn;
4961#define FLD(f) abuf->fields.sfmt_movl10_compact.f
4962    UINT f_rn;
4963    SI f_imm8x4;
4964
4965    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4966    f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
4967
4968  /* Record the fields for the semantic handler.  */
4969  FLD (f_imm8x4) = f_imm8x4;
4970  FLD (f_rn) = f_rn;
4971  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl10_compact", "f_imm8x4 0x%x", 'x', f_imm8x4, "f_rn 0x%x", 'x', f_rn, (char *) 0));
4972
4973#if WITH_PROFILE_MODEL_P
4974  /* Record the fields for profiling.  */
4975  if (PROFILE_MODEL_P (current_cpu))
4976    {
4977      FLD (out_rn) = f_rn;
4978    }
4979#endif
4980#undef FLD
4981    return idesc;
4982  }
4983
4984 extract_sfmt_movl11_compact:
4985  {
4986    const IDESC *idesc = &sh64_compact_insn_data[itype];
4987    CGEN_INSN_WORD insn = entire_insn;
4988#define FLD(f) abuf->fields.sfmt_movl5_compact.f
4989    UINT f_rn;
4990    UINT f_rm;
4991    SI f_imm4x4;
4992
4993    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4994    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4995    f_imm4x4 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (2));
4996
4997  /* Record the fields for the semantic handler.  */
4998  FLD (f_imm4x4) = f_imm4x4;
4999  FLD (f_rm) = f_rm;
5000  FLD (f_rn) = f_rn;
5001  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl11_compact", "f_imm4x4 0x%x", 'x', f_imm4x4, "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
5002
5003#if WITH_PROFILE_MODEL_P
5004  /* Record the fields for profiling.  */
5005  if (PROFILE_MODEL_P (current_cpu))
5006    {
5007      FLD (in_rm) = f_rm;
5008      FLD (out_rn) = f_rn;
5009    }
5010#endif
5011#undef FLD
5012    return idesc;
5013  }
5014
5015 extract_sfmt_movl12_compact:
5016  {
5017    const IDESC *idesc = &sh64_compact_insn_data[itype];
5018    CGEN_INSN_WORD insn = entire_insn;
5019#define FLD(f) abuf->fields.sfmt_movl12_compact.f
5020    UINT f_rn;
5021    UINT f_rm;
5022    SI f_imm12x4;
5023
5024    f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4);
5025    f_rm = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
5026    f_imm12x4 = ((EXTRACT_MSB0_SINT (insn, 32, 20, 12)) << (2));
5027
5028  /* Record the fields for the semantic handler.  */
5029  FLD (f_imm12x4) = f_imm12x4;
5030  FLD (f_rm) = f_rm;
5031  FLD (f_rn) = f_rn;
5032  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl12_compact", "f_imm12x4 0x%x", 'x', f_imm12x4, "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
5033
5034#if WITH_PROFILE_MODEL_P
5035  /* Record the fields for profiling.  */
5036  if (PROFILE_MODEL_P (current_cpu))
5037    {
5038      FLD (in_rm) = f_rm;
5039      FLD (out_rn) = f_rn;
5040    }
5041#endif
5042#undef FLD
5043    return idesc;
5044  }
5045
5046 extract_sfmt_movl13_compact:
5047  {
5048    const IDESC *idesc = &sh64_compact_insn_data[itype];
5049    CGEN_INSN_WORD insn = entire_insn;
5050#define FLD(f) abuf->fields.sfmt_movl12_compact.f
5051    UINT f_rn;
5052    UINT f_rm;
5053    SI f_imm12x4;
5054
5055    f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4);
5056    f_rm = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
5057    f_imm12x4 = ((EXTRACT_MSB0_SINT (insn, 32, 20, 12)) << (2));
5058
5059  /* Record the fields for the semantic handler.  */
5060  FLD (f_imm12x4) = f_imm12x4;
5061  FLD (f_rm) = f_rm;
5062  FLD (f_rn) = f_rn;
5063  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl13_compact", "f_imm12x4 0x%x", 'x', f_imm12x4, "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
5064
5065#if WITH_PROFILE_MODEL_P
5066  /* Record the fields for profiling.  */
5067  if (PROFILE_MODEL_P (current_cpu))
5068    {
5069      FLD (in_rm) = f_rm;
5070      FLD (in_rn) = f_rn;
5071    }
5072#endif
5073#undef FLD
5074    return idesc;
5075  }
5076
5077 extract_sfmt_movw1_compact:
5078  {
5079    const IDESC *idesc = &sh64_compact_insn_data[itype];
5080    CGEN_INSN_WORD insn = entire_insn;
5081#define FLD(f) abuf->fields.sfmt_movl12_compact.f
5082    UINT f_rn;
5083    UINT f_rm;
5084
5085    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5086    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5087
5088  /* Record the fields for the semantic handler.  */
5089  FLD (f_rm) = f_rm;
5090  FLD (f_rn) = f_rn;
5091  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movw1_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
5092
5093#if WITH_PROFILE_MODEL_P
5094  /* Record the fields for profiling.  */
5095  if (PROFILE_MODEL_P (current_cpu))
5096    {
5097      FLD (in_rm) = f_rm;
5098      FLD (in_rn) = f_rn;
5099    }
5100#endif
5101#undef FLD
5102    return idesc;
5103  }
5104
5105 extract_sfmt_movw2_compact:
5106  {
5107    const IDESC *idesc = &sh64_compact_insn_data[itype];
5108    CGEN_INSN_WORD insn = entire_insn;
5109#define FLD(f) abuf->fields.sfmt_movl12_compact.f
5110    UINT f_rn;
5111    UINT f_rm;
5112
5113    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5114    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5115
5116  /* Record the fields for the semantic handler.  */
5117  FLD (f_rm) = f_rm;
5118  FLD (f_rn) = f_rn;
5119  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movw2_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
5120
5121#if WITH_PROFILE_MODEL_P
5122  /* Record the fields for profiling.  */
5123  if (PROFILE_MODEL_P (current_cpu))
5124    {
5125      FLD (in_rm) = f_rm;
5126      FLD (in_rn) = f_rn;
5127      FLD (out_rn) = f_rn;
5128    }
5129#endif
5130#undef FLD
5131    return idesc;
5132  }
5133
5134 extract_sfmt_movw3_compact:
5135  {
5136    const IDESC *idesc = &sh64_compact_insn_data[itype];
5137    CGEN_INSN_WORD insn = entire_insn;
5138#define FLD(f) abuf->fields.sfmt_movl12_compact.f
5139    UINT f_rn;
5140    UINT f_rm;
5141
5142    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5143    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5144
5145  /* Record the fields for the semantic handler.  */
5146  FLD (f_rm) = f_rm;
5147  FLD (f_rn) = f_rn;
5148  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movw3_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
5149
5150#if WITH_PROFILE_MODEL_P
5151  /* Record the fields for profiling.  */
5152  if (PROFILE_MODEL_P (current_cpu))
5153    {
5154      FLD (in_r0) = 0;
5155      FLD (in_rm) = f_rm;
5156      FLD (in_rn) = f_rn;
5157    }
5158#endif
5159#undef FLD
5160    return idesc;
5161  }
5162
5163 extract_sfmt_movw4_compact:
5164  {
5165    const IDESC *idesc = &sh64_compact_insn_data[itype];
5166    CGEN_INSN_WORD insn = entire_insn;
5167#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5168    SI f_imm8x2;
5169
5170    f_imm8x2 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
5171
5172  /* Record the fields for the semantic handler.  */
5173  FLD (f_imm8x2) = f_imm8x2;
5174  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movw4_compact", "f_imm8x2 0x%x", 'x', f_imm8x2, (char *) 0));
5175
5176#if WITH_PROFILE_MODEL_P
5177  /* Record the fields for profiling.  */
5178  if (PROFILE_MODEL_P (current_cpu))
5179    {
5180      FLD (in_r0) = 0;
5181    }
5182#endif
5183#undef FLD
5184    return idesc;
5185  }
5186
5187 extract_sfmt_movw5_compact:
5188  {
5189    const IDESC *idesc = &sh64_compact_insn_data[itype];
5190    CGEN_INSN_WORD insn = entire_insn;
5191#define FLD(f) abuf->fields.sfmt_movw5_compact.f
5192    UINT f_rm;
5193    SI f_imm4x2;
5194
5195    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5196    f_imm4x2 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (1));
5197
5198  /* Record the fields for the semantic handler.  */
5199  FLD (f_imm4x2) = f_imm4x2;
5200  FLD (f_rm) = f_rm;
5201  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movw5_compact", "f_imm4x2 0x%x", 'x', f_imm4x2, "f_rm 0x%x", 'x', f_rm, (char *) 0));
5202
5203#if WITH_PROFILE_MODEL_P
5204  /* Record the fields for profiling.  */
5205  if (PROFILE_MODEL_P (current_cpu))
5206    {
5207      FLD (in_r0) = 0;
5208      FLD (in_rm) = f_rm;
5209    }
5210#endif
5211#undef FLD
5212    return idesc;
5213  }
5214
5215 extract_sfmt_movw6_compact:
5216  {
5217    const IDESC *idesc = &sh64_compact_insn_data[itype];
5218    CGEN_INSN_WORD insn = entire_insn;
5219#define FLD(f) abuf->fields.sfmt_movl12_compact.f
5220    UINT f_rn;
5221    UINT f_rm;
5222
5223    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5224    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5225
5226  /* Record the fields for the semantic handler.  */
5227  FLD (f_rm) = f_rm;
5228  FLD (f_rn) = f_rn;
5229  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movw6_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
5230
5231#if WITH_PROFILE_MODEL_P
5232  /* Record the fields for profiling.  */
5233  if (PROFILE_MODEL_P (current_cpu))
5234    {
5235      FLD (in_rm) = f_rm;
5236      FLD (out_rn) = f_rn;
5237    }
5238#endif
5239#undef FLD
5240    return idesc;
5241  }
5242
5243 extract_sfmt_movw7_compact:
5244  {
5245    const IDESC *idesc = &sh64_compact_insn_data[itype];
5246    CGEN_INSN_WORD insn = entire_insn;
5247#define FLD(f) abuf->fields.sfmt_movl12_compact.f
5248    UINT f_rn;
5249    UINT f_rm;
5250
5251    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5252    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5253
5254  /* Record the fields for the semantic handler.  */
5255  FLD (f_rm) = f_rm;
5256  FLD (f_rn) = f_rn;
5257  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movw7_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
5258
5259#if WITH_PROFILE_MODEL_P
5260  /* Record the fields for profiling.  */
5261  if (PROFILE_MODEL_P (current_cpu))
5262    {
5263      FLD (in_rm) = f_rm;
5264      FLD (out_rm) = f_rm;
5265      FLD (out_rn) = f_rn;
5266    }
5267#endif
5268#undef FLD
5269    return idesc;
5270  }
5271
5272 extract_sfmt_movw8_compact:
5273  {
5274    const IDESC *idesc = &sh64_compact_insn_data[itype];
5275    CGEN_INSN_WORD insn = entire_insn;
5276#define FLD(f) abuf->fields.sfmt_movl12_compact.f
5277    UINT f_rn;
5278    UINT f_rm;
5279
5280    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5281    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5282
5283  /* Record the fields for the semantic handler.  */
5284  FLD (f_rm) = f_rm;
5285  FLD (f_rn) = f_rn;
5286  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movw8_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
5287
5288#if WITH_PROFILE_MODEL_P
5289  /* Record the fields for profiling.  */
5290  if (PROFILE_MODEL_P (current_cpu))
5291    {
5292      FLD (in_r0) = 0;
5293      FLD (in_rm) = f_rm;
5294      FLD (out_rn) = f_rn;
5295    }
5296#endif
5297#undef FLD
5298    return idesc;
5299  }
5300
5301 extract_sfmt_movw9_compact:
5302  {
5303    const IDESC *idesc = &sh64_compact_insn_data[itype];
5304    CGEN_INSN_WORD insn = entire_insn;
5305#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5306    SI f_imm8x2;
5307
5308    f_imm8x2 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
5309
5310  /* Record the fields for the semantic handler.  */
5311  FLD (f_imm8x2) = f_imm8x2;
5312  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movw9_compact", "f_imm8x2 0x%x", 'x', f_imm8x2, (char *) 0));
5313
5314#if WITH_PROFILE_MODEL_P
5315  /* Record the fields for profiling.  */
5316  if (PROFILE_MODEL_P (current_cpu))
5317    {
5318      FLD (out_r0) = 0;
5319    }
5320#endif
5321#undef FLD
5322    return idesc;
5323  }
5324
5325 extract_sfmt_movw10_compact:
5326  {
5327    const IDESC *idesc = &sh64_compact_insn_data[itype];
5328    CGEN_INSN_WORD insn = entire_insn;
5329#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5330    UINT f_rn;
5331    SI f_imm8x2;
5332
5333    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5334    f_imm8x2 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
5335
5336  /* Record the fields for the semantic handler.  */
5337  FLD (f_imm8x2) = f_imm8x2;
5338  FLD (f_rn) = f_rn;
5339  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movw10_compact", "f_imm8x2 0x%x", 'x', f_imm8x2, "f_rn 0x%x", 'x', f_rn, (char *) 0));
5340
5341#if WITH_PROFILE_MODEL_P
5342  /* Record the fields for profiling.  */
5343  if (PROFILE_MODEL_P (current_cpu))
5344    {
5345      FLD (out_rn) = f_rn;
5346    }
5347#endif
5348#undef FLD
5349    return idesc;
5350  }
5351
5352 extract_sfmt_movw11_compact:
5353  {
5354    const IDESC *idesc = &sh64_compact_insn_data[itype];
5355    CGEN_INSN_WORD insn = entire_insn;
5356#define FLD(f) abuf->fields.sfmt_movw5_compact.f
5357    UINT f_rm;
5358    SI f_imm4x2;
5359
5360    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5361    f_imm4x2 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (1));
5362
5363  /* Record the fields for the semantic handler.  */
5364  FLD (f_imm4x2) = f_imm4x2;
5365  FLD (f_rm) = f_rm;
5366  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movw11_compact", "f_imm4x2 0x%x", 'x', f_imm4x2, "f_rm 0x%x", 'x', f_rm, (char *) 0));
5367
5368#if WITH_PROFILE_MODEL_P
5369  /* Record the fields for profiling.  */
5370  if (PROFILE_MODEL_P (current_cpu))
5371    {
5372      FLD (in_rm) = f_rm;
5373      FLD (out_r0) = 0;
5374    }
5375#endif
5376#undef FLD
5377    return idesc;
5378  }
5379
5380 extract_sfmt_mova_compact:
5381  {
5382    const IDESC *idesc = &sh64_compact_insn_data[itype];
5383    CGEN_INSN_WORD insn = entire_insn;
5384#define FLD(f) abuf->fields.sfmt_movl10_compact.f
5385    SI f_imm8x4;
5386
5387    f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
5388
5389  /* Record the fields for the semantic handler.  */
5390  FLD (f_imm8x4) = f_imm8x4;
5391  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mova_compact", "f_imm8x4 0x%x", 'x', f_imm8x4, (char *) 0));
5392
5393#if WITH_PROFILE_MODEL_P
5394  /* Record the fields for profiling.  */
5395  if (PROFILE_MODEL_P (current_cpu))
5396    {
5397      FLD (out_r0) = 0;
5398    }
5399#endif
5400#undef FLD
5401    return idesc;
5402  }
5403
5404 extract_sfmt_movcal_compact:
5405  {
5406    const IDESC *idesc = &sh64_compact_insn_data[itype];
5407    CGEN_INSN_WORD insn = entire_insn;
5408#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5409    UINT f_rn;
5410
5411    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5412
5413  /* Record the fields for the semantic handler.  */
5414  FLD (f_rn) = f_rn;
5415  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movcal_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5416
5417#if WITH_PROFILE_MODEL_P
5418  /* Record the fields for profiling.  */
5419  if (PROFILE_MODEL_P (current_cpu))
5420    {
5421      FLD (in_r0) = 0;
5422      FLD (in_rn) = f_rn;
5423    }
5424#endif
5425#undef FLD
5426    return idesc;
5427  }
5428
5429 extract_sfmt_movcol_compact:
5430  {
5431    const IDESC *idesc = &sh64_compact_insn_data[itype];
5432    CGEN_INSN_WORD insn = entire_insn;
5433#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5434    UINT f_rn;
5435
5436    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5437
5438  /* Record the fields for the semantic handler.  */
5439  FLD (f_rn) = f_rn;
5440  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movcol_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5441
5442#if WITH_PROFILE_MODEL_P
5443  /* Record the fields for profiling.  */
5444  if (PROFILE_MODEL_P (current_cpu))
5445    {
5446      FLD (in_rn) = f_rn;
5447      FLD (out_rn) = f_rn;
5448    }
5449#endif
5450#undef FLD
5451    return idesc;
5452  }
5453
5454 extract_sfmt_movt_compact:
5455  {
5456    const IDESC *idesc = &sh64_compact_insn_data[itype];
5457    CGEN_INSN_WORD insn = entire_insn;
5458#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5459    UINT f_rn;
5460
5461    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5462
5463  /* Record the fields for the semantic handler.  */
5464  FLD (f_rn) = f_rn;
5465  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movt_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5466
5467#if WITH_PROFILE_MODEL_P
5468  /* Record the fields for profiling.  */
5469  if (PROFILE_MODEL_P (current_cpu))
5470    {
5471      FLD (out_rn) = f_rn;
5472    }
5473#endif
5474#undef FLD
5475    return idesc;
5476  }
5477
5478 extract_sfmt_movual_compact:
5479  {
5480    const IDESC *idesc = &sh64_compact_insn_data[itype];
5481    CGEN_INSN_WORD insn = entire_insn;
5482#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5483    UINT f_rn;
5484
5485    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5486
5487  /* Record the fields for the semantic handler.  */
5488  FLD (f_rn) = f_rn;
5489  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movual_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5490
5491#if WITH_PROFILE_MODEL_P
5492  /* Record the fields for profiling.  */
5493  if (PROFILE_MODEL_P (current_cpu))
5494    {
5495      FLD (in_rn) = f_rn;
5496      FLD (out_r0) = 0;
5497    }
5498#endif
5499#undef FLD
5500    return idesc;
5501  }
5502
5503 extract_sfmt_movual2_compact:
5504  {
5505    const IDESC *idesc = &sh64_compact_insn_data[itype];
5506    CGEN_INSN_WORD insn = entire_insn;
5507#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5508    UINT f_rn;
5509
5510    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5511
5512  /* Record the fields for the semantic handler.  */
5513  FLD (f_rn) = f_rn;
5514  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movual2_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5515
5516#if WITH_PROFILE_MODEL_P
5517  /* Record the fields for profiling.  */
5518  if (PROFILE_MODEL_P (current_cpu))
5519    {
5520      FLD (in_rn) = f_rn;
5521      FLD (out_r0) = 0;
5522      FLD (out_rn) = f_rn;
5523    }
5524#endif
5525#undef FLD
5526    return idesc;
5527  }
5528
5529 extract_sfmt_mull_compact:
5530  {
5531    const IDESC *idesc = &sh64_compact_insn_data[itype];
5532    CGEN_INSN_WORD insn = entire_insn;
5533#define FLD(f) abuf->fields.sfmt_movl12_compact.f
5534    UINT f_rn;
5535    UINT f_rm;
5536
5537    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5538    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5539
5540  /* Record the fields for the semantic handler.  */
5541  FLD (f_rm) = f_rm;
5542  FLD (f_rn) = f_rn;
5543  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mull_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
5544
5545#if WITH_PROFILE_MODEL_P
5546  /* Record the fields for profiling.  */
5547  if (PROFILE_MODEL_P (current_cpu))
5548    {
5549      FLD (in_rm) = f_rm;
5550      FLD (in_rn) = f_rn;
5551    }
5552#endif
5553#undef FLD
5554    return idesc;
5555  }
5556
5557 extract_sfmt_negc_compact:
5558  {
5559    const IDESC *idesc = &sh64_compact_insn_data[itype];
5560    CGEN_INSN_WORD insn = entire_insn;
5561#define FLD(f) abuf->fields.sfmt_movl12_compact.f
5562    UINT f_rn;
5563    UINT f_rm;
5564
5565    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5566    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5567
5568  /* Record the fields for the semantic handler.  */
5569  FLD (f_rm) = f_rm;
5570  FLD (f_rn) = f_rn;
5571  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_negc_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
5572
5573#if WITH_PROFILE_MODEL_P
5574  /* Record the fields for profiling.  */
5575  if (PROFILE_MODEL_P (current_cpu))
5576    {
5577      FLD (in_rm) = f_rm;
5578      FLD (out_rn) = f_rn;
5579    }
5580#endif
5581#undef FLD
5582    return idesc;
5583  }
5584
5585 extract_sfmt_nop_compact:
5586  {
5587    const IDESC *idesc = &sh64_compact_insn_data[itype];
5588#define FLD(f) abuf->fields.sfmt_empty.f
5589
5590
5591  /* Record the fields for the semantic handler.  */
5592  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_nop_compact", (char *) 0));
5593
5594#undef FLD
5595    return idesc;
5596  }
5597
5598 extract_sfmt_pref_compact:
5599  {
5600    const IDESC *idesc = &sh64_compact_insn_data[itype];
5601    CGEN_INSN_WORD insn = entire_insn;
5602#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5603    UINT f_rn;
5604
5605    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5606
5607  /* Record the fields for the semantic handler.  */
5608  FLD (f_rn) = f_rn;
5609  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_pref_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5610
5611#if WITH_PROFILE_MODEL_P
5612  /* Record the fields for profiling.  */
5613  if (PROFILE_MODEL_P (current_cpu))
5614    {
5615      FLD (in_rn) = f_rn;
5616    }
5617#endif
5618#undef FLD
5619    return idesc;
5620  }
5621
5622 extract_sfmt_rotcl_compact:
5623  {
5624    const IDESC *idesc = &sh64_compact_insn_data[itype];
5625    CGEN_INSN_WORD insn = entire_insn;
5626#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5627    UINT f_rn;
5628
5629    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5630
5631  /* Record the fields for the semantic handler.  */
5632  FLD (f_rn) = f_rn;
5633  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rotcl_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5634
5635#if WITH_PROFILE_MODEL_P
5636  /* Record the fields for profiling.  */
5637  if (PROFILE_MODEL_P (current_cpu))
5638    {
5639      FLD (in_rn) = f_rn;
5640      FLD (out_rn) = f_rn;
5641    }
5642#endif
5643#undef FLD
5644    return idesc;
5645  }
5646
5647 extract_sfmt_rts_compact:
5648  {
5649    const IDESC *idesc = &sh64_compact_insn_data[itype];
5650#define FLD(f) abuf->fields.sfmt_empty.f
5651
5652
5653  /* Record the fields for the semantic handler.  */
5654  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rts_compact", (char *) 0));
5655
5656#if WITH_PROFILE_MODEL_P
5657  /* Record the fields for profiling.  */
5658  if (PROFILE_MODEL_P (current_cpu))
5659    {
5660    }
5661#endif
5662#undef FLD
5663    return idesc;
5664  }
5665
5666 extract_sfmt_shad_compact:
5667  {
5668    const IDESC *idesc = &sh64_compact_insn_data[itype];
5669    CGEN_INSN_WORD insn = entire_insn;
5670#define FLD(f) abuf->fields.sfmt_movl12_compact.f
5671    UINT f_rn;
5672    UINT f_rm;
5673
5674    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5675    f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5676
5677  /* Record the fields for the semantic handler.  */
5678  FLD (f_rm) = f_rm;
5679  FLD (f_rn) = f_rn;
5680  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_shad_compact", "f_rm 0x%x", 'x', f_rm, "f_rn 0x%x", 'x', f_rn, (char *) 0));
5681
5682#if WITH_PROFILE_MODEL_P
5683  /* Record the fields for profiling.  */
5684  if (PROFILE_MODEL_P (current_cpu))
5685    {
5686      FLD (in_rm) = f_rm;
5687      FLD (in_rn) = f_rn;
5688      FLD (out_rn) = f_rn;
5689    }
5690#endif
5691#undef FLD
5692    return idesc;
5693  }
5694
5695 extract_sfmt_stc_gbr_compact:
5696  {
5697    const IDESC *idesc = &sh64_compact_insn_data[itype];
5698    CGEN_INSN_WORD insn = entire_insn;
5699#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5700    UINT f_rn;
5701
5702    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5703
5704  /* Record the fields for the semantic handler.  */
5705  FLD (f_rn) = f_rn;
5706  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stc_gbr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5707
5708#if WITH_PROFILE_MODEL_P
5709  /* Record the fields for profiling.  */
5710  if (PROFILE_MODEL_P (current_cpu))
5711    {
5712      FLD (out_rn) = f_rn;
5713    }
5714#endif
5715#undef FLD
5716    return idesc;
5717  }
5718
5719 extract_sfmt_stc_vbr_compact:
5720  {
5721    const IDESC *idesc = &sh64_compact_insn_data[itype];
5722    CGEN_INSN_WORD insn = entire_insn;
5723#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5724    UINT f_rn;
5725
5726    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5727
5728  /* Record the fields for the semantic handler.  */
5729  FLD (f_rn) = f_rn;
5730  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stc_vbr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5731
5732#if WITH_PROFILE_MODEL_P
5733  /* Record the fields for profiling.  */
5734  if (PROFILE_MODEL_P (current_cpu))
5735    {
5736      FLD (out_rn) = f_rn;
5737    }
5738#endif
5739#undef FLD
5740    return idesc;
5741  }
5742
5743 extract_sfmt_stcl_gbr_compact:
5744  {
5745    const IDESC *idesc = &sh64_compact_insn_data[itype];
5746    CGEN_INSN_WORD insn = entire_insn;
5747#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5748    UINT f_rn;
5749
5750    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5751
5752  /* Record the fields for the semantic handler.  */
5753  FLD (f_rn) = f_rn;
5754  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stcl_gbr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5755
5756#if WITH_PROFILE_MODEL_P
5757  /* Record the fields for profiling.  */
5758  if (PROFILE_MODEL_P (current_cpu))
5759    {
5760      FLD (in_rn) = f_rn;
5761      FLD (out_rn) = f_rn;
5762    }
5763#endif
5764#undef FLD
5765    return idesc;
5766  }
5767
5768 extract_sfmt_stcl_vbr_compact:
5769  {
5770    const IDESC *idesc = &sh64_compact_insn_data[itype];
5771    CGEN_INSN_WORD insn = entire_insn;
5772#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5773    UINT f_rn;
5774
5775    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5776
5777  /* Record the fields for the semantic handler.  */
5778  FLD (f_rn) = f_rn;
5779  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stcl_vbr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5780
5781#if WITH_PROFILE_MODEL_P
5782  /* Record the fields for profiling.  */
5783  if (PROFILE_MODEL_P (current_cpu))
5784    {
5785      FLD (in_rn) = f_rn;
5786      FLD (out_rn) = f_rn;
5787    }
5788#endif
5789#undef FLD
5790    return idesc;
5791  }
5792
5793 extract_sfmt_sts_fpscr_compact:
5794  {
5795    const IDESC *idesc = &sh64_compact_insn_data[itype];
5796    CGEN_INSN_WORD insn = entire_insn;
5797#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5798    UINT f_rn;
5799
5800    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5801
5802  /* Record the fields for the semantic handler.  */
5803  FLD (f_rn) = f_rn;
5804  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sts_fpscr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5805
5806#if WITH_PROFILE_MODEL_P
5807  /* Record the fields for profiling.  */
5808  if (PROFILE_MODEL_P (current_cpu))
5809    {
5810      FLD (out_rn) = f_rn;
5811    }
5812#endif
5813#undef FLD
5814    return idesc;
5815  }
5816
5817 extract_sfmt_stsl_fpscr_compact:
5818  {
5819    const IDESC *idesc = &sh64_compact_insn_data[itype];
5820    CGEN_INSN_WORD insn = entire_insn;
5821#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5822    UINT f_rn;
5823
5824    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5825
5826  /* Record the fields for the semantic handler.  */
5827  FLD (f_rn) = f_rn;
5828  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stsl_fpscr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5829
5830#if WITH_PROFILE_MODEL_P
5831  /* Record the fields for profiling.  */
5832  if (PROFILE_MODEL_P (current_cpu))
5833    {
5834      FLD (in_rn) = f_rn;
5835      FLD (out_rn) = f_rn;
5836    }
5837#endif
5838#undef FLD
5839    return idesc;
5840  }
5841
5842 extract_sfmt_sts_fpul_compact:
5843  {
5844    const IDESC *idesc = &sh64_compact_insn_data[itype];
5845    CGEN_INSN_WORD insn = entire_insn;
5846#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5847    UINT f_rn;
5848
5849    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5850
5851  /* Record the fields for the semantic handler.  */
5852  FLD (f_rn) = f_rn;
5853  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sts_fpul_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5854
5855#if WITH_PROFILE_MODEL_P
5856  /* Record the fields for profiling.  */
5857  if (PROFILE_MODEL_P (current_cpu))
5858    {
5859      FLD (in_fpul) = 32;
5860      FLD (out_rn) = f_rn;
5861    }
5862#endif
5863#undef FLD
5864    return idesc;
5865  }
5866
5867 extract_sfmt_stsl_fpul_compact:
5868  {
5869    const IDESC *idesc = &sh64_compact_insn_data[itype];
5870    CGEN_INSN_WORD insn = entire_insn;
5871#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5872    UINT f_rn;
5873
5874    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5875
5876  /* Record the fields for the semantic handler.  */
5877  FLD (f_rn) = f_rn;
5878  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stsl_fpul_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5879
5880#if WITH_PROFILE_MODEL_P
5881  /* Record the fields for profiling.  */
5882  if (PROFILE_MODEL_P (current_cpu))
5883    {
5884      FLD (in_fpul) = 32;
5885      FLD (in_rn) = f_rn;
5886      FLD (out_rn) = f_rn;
5887    }
5888#endif
5889#undef FLD
5890    return idesc;
5891  }
5892
5893 extract_sfmt_sts_mach_compact:
5894  {
5895    const IDESC *idesc = &sh64_compact_insn_data[itype];
5896    CGEN_INSN_WORD insn = entire_insn;
5897#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5898    UINT f_rn;
5899
5900    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5901
5902  /* Record the fields for the semantic handler.  */
5903  FLD (f_rn) = f_rn;
5904  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sts_mach_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5905
5906#if WITH_PROFILE_MODEL_P
5907  /* Record the fields for profiling.  */
5908  if (PROFILE_MODEL_P (current_cpu))
5909    {
5910      FLD (out_rn) = f_rn;
5911    }
5912#endif
5913#undef FLD
5914    return idesc;
5915  }
5916
5917 extract_sfmt_stsl_mach_compact:
5918  {
5919    const IDESC *idesc = &sh64_compact_insn_data[itype];
5920    CGEN_INSN_WORD insn = entire_insn;
5921#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5922    UINT f_rn;
5923
5924    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5925
5926  /* Record the fields for the semantic handler.  */
5927  FLD (f_rn) = f_rn;
5928  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stsl_mach_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5929
5930#if WITH_PROFILE_MODEL_P
5931  /* Record the fields for profiling.  */
5932  if (PROFILE_MODEL_P (current_cpu))
5933    {
5934      FLD (in_rn) = f_rn;
5935      FLD (out_rn) = f_rn;
5936    }
5937#endif
5938#undef FLD
5939    return idesc;
5940  }
5941
5942 extract_sfmt_sts_macl_compact:
5943  {
5944    const IDESC *idesc = &sh64_compact_insn_data[itype];
5945    CGEN_INSN_WORD insn = entire_insn;
5946#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5947    UINT f_rn;
5948
5949    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5950
5951  /* Record the fields for the semantic handler.  */
5952  FLD (f_rn) = f_rn;
5953  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sts_macl_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5954
5955#if WITH_PROFILE_MODEL_P
5956  /* Record the fields for profiling.  */
5957  if (PROFILE_MODEL_P (current_cpu))
5958    {
5959      FLD (out_rn) = f_rn;
5960    }
5961#endif
5962#undef FLD
5963    return idesc;
5964  }
5965
5966 extract_sfmt_stsl_macl_compact:
5967  {
5968    const IDESC *idesc = &sh64_compact_insn_data[itype];
5969    CGEN_INSN_WORD insn = entire_insn;
5970#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5971    UINT f_rn;
5972
5973    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5974
5975  /* Record the fields for the semantic handler.  */
5976  FLD (f_rn) = f_rn;
5977  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stsl_macl_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
5978
5979#if WITH_PROFILE_MODEL_P
5980  /* Record the fields for profiling.  */
5981  if (PROFILE_MODEL_P (current_cpu))
5982    {
5983      FLD (in_rn) = f_rn;
5984      FLD (out_rn) = f_rn;
5985    }
5986#endif
5987#undef FLD
5988    return idesc;
5989  }
5990
5991 extract_sfmt_sts_pr_compact:
5992  {
5993    const IDESC *idesc = &sh64_compact_insn_data[itype];
5994    CGEN_INSN_WORD insn = entire_insn;
5995#define FLD(f) abuf->fields.sfmt_movw10_compact.f
5996    UINT f_rn;
5997
5998    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5999
6000  /* Record the fields for the semantic handler.  */
6001  FLD (f_rn) = f_rn;
6002  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sts_pr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
6003
6004#if WITH_PROFILE_MODEL_P
6005  /* Record the fields for profiling.  */
6006  if (PROFILE_MODEL_P (current_cpu))
6007    {
6008      FLD (out_rn) = f_rn;
6009    }
6010#endif
6011#undef FLD
6012    return idesc;
6013  }
6014
6015 extract_sfmt_stsl_pr_compact:
6016  {
6017    const IDESC *idesc = &sh64_compact_insn_data[itype];
6018    CGEN_INSN_WORD insn = entire_insn;
6019#define FLD(f) abuf->fields.sfmt_movw10_compact.f
6020    UINT f_rn;
6021
6022    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6023
6024  /* Record the fields for the semantic handler.  */
6025  FLD (f_rn) = f_rn;
6026  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stsl_pr_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
6027
6028#if WITH_PROFILE_MODEL_P
6029  /* Record the fields for profiling.  */
6030  if (PROFILE_MODEL_P (current_cpu))
6031    {
6032      FLD (in_rn) = f_rn;
6033      FLD (out_rn) = f_rn;
6034    }
6035#endif
6036#undef FLD
6037    return idesc;
6038  }
6039
6040 extract_sfmt_tasb_compact:
6041  {
6042    const IDESC *idesc = &sh64_compact_insn_data[itype];
6043    CGEN_INSN_WORD insn = entire_insn;
6044#define FLD(f) abuf->fields.sfmt_movw10_compact.f
6045    UINT f_rn;
6046
6047    f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6048
6049  /* Record the fields for the semantic handler.  */
6050  FLD (f_rn) = f_rn;
6051  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_tasb_compact", "f_rn 0x%x", 'x', f_rn, (char *) 0));
6052
6053#if WITH_PROFILE_MODEL_P
6054  /* Record the fields for profiling.  */
6055  if (PROFILE_MODEL_P (current_cpu))
6056    {
6057      FLD (in_rn) = f_rn;
6058    }
6059#endif
6060#undef FLD
6061    return idesc;
6062  }
6063
6064 extract_sfmt_trapa_compact:
6065  {
6066    const IDESC *idesc = &sh64_compact_insn_data[itype];
6067    CGEN_INSN_WORD insn = entire_insn;
6068#define FLD(f) abuf->fields.sfmt_addi_compact.f
6069    UINT f_imm8;
6070
6071    f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
6072
6073  /* Record the fields for the semantic handler.  */
6074  FLD (f_imm8) = f_imm8;
6075  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_trapa_compact", "f_imm8 0x%x", 'x', f_imm8, (char *) 0));
6076
6077#if WITH_PROFILE_MODEL_P
6078  /* Record the fields for profiling.  */
6079  if (PROFILE_MODEL_P (current_cpu))
6080    {
6081    }
6082#endif
6083#undef FLD
6084    return idesc;
6085  }
6086
6087 extract_sfmt_tsti_compact:
6088  {
6089    const IDESC *idesc = &sh64_compact_insn_data[itype];
6090    CGEN_INSN_WORD insn = entire_insn;
6091#define FLD(f) abuf->fields.sfmt_addi_compact.f
6092    UINT f_imm8;
6093
6094    f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
6095
6096  /* Record the fields for the semantic handler.  */
6097  FLD (f_imm8) = f_imm8;
6098  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_tsti_compact", "f_imm8 0x%x", 'x', f_imm8, (char *) 0));
6099
6100#if WITH_PROFILE_MODEL_P
6101  /* Record the fields for profiling.  */
6102  if (PROFILE_MODEL_P (current_cpu))
6103    {
6104      FLD (in_r0) = 0;
6105    }
6106#endif
6107#undef FLD
6108    return idesc;
6109  }
6110
6111 extract_sfmt_tstb_compact:
6112  {
6113    const IDESC *idesc = &sh64_compact_insn_data[itype];
6114    CGEN_INSN_WORD insn = entire_insn;
6115#define FLD(f) abuf->fields.sfmt_addi_compact.f
6116    UINT f_imm8;
6117
6118    f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
6119
6120  /* Record the fields for the semantic handler.  */
6121  FLD (f_imm8) = f_imm8;
6122  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_tstb_compact", "f_imm8 0x%x", 'x', f_imm8, (char *) 0));
6123
6124#if WITH_PROFILE_MODEL_P
6125  /* Record the fields for profiling.  */
6126  if (PROFILE_MODEL_P (current_cpu))
6127    {
6128      FLD (in_r0) = 0;
6129    }
6130#endif
6131#undef FLD
6132    return idesc;
6133  }
6134
6135}
6136