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