1 /* Simulator instruction decoder for sh64_compact.
2 
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4 
5 Copyright 1996-2010 Free Software Foundation, Inc.
6 
7 This file is part of the GNU simulators.
8 
9    This file is free software; you can redistribute it and/or modify
10    it under the terms of the GNU General Public License as published by
11    the Free Software Foundation; either version 3, or (at your option)
12    any later version.
13 
14    It is distributed in the hope that it will be useful, but WITHOUT
15    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
17    License for more details.
18 
19    You should have received a copy of the GNU General Public License along
20    with this program; if not, write to the Free Software Foundation, Inc.,
21    51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
22 
23 */
24 
25 #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).  */
36 static 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 
41 static 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 
245 static 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 
252 static INLINE void
init_idesc(SIM_CPU * cpu,IDESC * id,const struct insn_sem * t)253 init_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 
280 void
sh64_compact_init_idesc_table(SIM_CPU * cpu)281 sh64_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 
308 const IDESC *
sh64_compact_decode(SIM_CPU * current_cpu,IADDR pc,CGEN_INSN_WORD base_insn,CGEN_INSN_WORD entire_insn,ARGBUF * abuf)309 sh64_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