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