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