OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-6.8/] [sim/] [sh64/] [decode-compact.c] - Blame information for rev 278

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.