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