OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gdb-7.1/] [sim/] [sh64/] [decode-compact.c] - Blame information for rev 853

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

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

powered by: WebSVN 2.1.0

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