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

Subversion Repositories openrisc_me

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

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

Line No. Rev Author Line
1 24 jeremybenn
/* Simulator instruction decoder for sh64_media.
2
 
3
THIS FILE IS MACHINE GENERATED WITH CGEN.
4
 
5
Copyright 1996-2005 Free Software Foundation, Inc.
6
 
7
This file is part of the GNU simulators.
8
 
9
This program is free software; you can redistribute it and/or modify
10
it under the terms of the GNU General Public License as published by
11
the Free Software Foundation; either version 3 of the License, or
12
(at your option) any later version.
13
 
14
This program is distributed in the hope that it will be useful,
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
GNU General Public License for more details.
18
 
19
You should have received a copy of the GNU General Public License
20
along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
 
22
*/
23
 
24
#define WANT_CPU sh64
25
#define WANT_CPU_SH64
26
 
27
#include "sim-main.h"
28
#include "sim-assert.h"
29
 
30
/* The instruction descriptor array.
31
   This is computed at runtime.  Space for it is not malloc'd to save a
32
   teensy bit of cpu in the decoder.  Moving it to malloc space is trivial
33
   but won't be done until necessary (we don't currently support the runtime
34
   addition of instructions nor an SMP machine with different cpus).  */
35
static IDESC sh64_media_insn_data[SH64_MEDIA_INSN__MAX];
36
 
37
/* Commas between elements are contained in the macros.
38
   Some of these are conditionally compiled out.  */
39
 
40
static const struct insn_sem sh64_media_insn_sem[] =
41
{
42
  { VIRTUAL_INSN_X_INVALID, SH64_MEDIA_INSN_X_INVALID, SH64_MEDIA_SFMT_EMPTY },
43
  { VIRTUAL_INSN_X_AFTER, SH64_MEDIA_INSN_X_AFTER, SH64_MEDIA_SFMT_EMPTY },
44
  { VIRTUAL_INSN_X_BEFORE, SH64_MEDIA_INSN_X_BEFORE, SH64_MEDIA_SFMT_EMPTY },
45
  { VIRTUAL_INSN_X_CTI_CHAIN, SH64_MEDIA_INSN_X_CTI_CHAIN, SH64_MEDIA_SFMT_EMPTY },
46
  { VIRTUAL_INSN_X_CHAIN, SH64_MEDIA_INSN_X_CHAIN, SH64_MEDIA_SFMT_EMPTY },
47
  { VIRTUAL_INSN_X_BEGIN, SH64_MEDIA_INSN_X_BEGIN, SH64_MEDIA_SFMT_EMPTY },
48
  { SH_INSN_ADD, SH64_MEDIA_INSN_ADD, SH64_MEDIA_SFMT_ADD },
49
  { SH_INSN_ADDL, SH64_MEDIA_INSN_ADDL, SH64_MEDIA_SFMT_ADD },
50
  { SH_INSN_ADDI, SH64_MEDIA_INSN_ADDI, SH64_MEDIA_SFMT_ADDI },
51
  { SH_INSN_ADDIL, SH64_MEDIA_INSN_ADDIL, SH64_MEDIA_SFMT_ADDI },
52
  { SH_INSN_ADDZL, SH64_MEDIA_INSN_ADDZL, SH64_MEDIA_SFMT_ADD },
53
  { SH_INSN_ALLOCO, SH64_MEDIA_INSN_ALLOCO, SH64_MEDIA_SFMT_ALLOCO },
54
  { SH_INSN_AND, SH64_MEDIA_INSN_AND, SH64_MEDIA_SFMT_ADD },
55
  { SH_INSN_ANDC, SH64_MEDIA_INSN_ANDC, SH64_MEDIA_SFMT_ADD },
56
  { SH_INSN_ANDI, SH64_MEDIA_INSN_ANDI, SH64_MEDIA_SFMT_ADDI },
57
  { SH_INSN_BEQ, SH64_MEDIA_INSN_BEQ, SH64_MEDIA_SFMT_BEQ },
58
  { SH_INSN_BEQI, SH64_MEDIA_INSN_BEQI, SH64_MEDIA_SFMT_BEQI },
59
  { SH_INSN_BGE, SH64_MEDIA_INSN_BGE, SH64_MEDIA_SFMT_BEQ },
60
  { SH_INSN_BGEU, SH64_MEDIA_INSN_BGEU, SH64_MEDIA_SFMT_BEQ },
61
  { SH_INSN_BGT, SH64_MEDIA_INSN_BGT, SH64_MEDIA_SFMT_BEQ },
62
  { SH_INSN_BGTU, SH64_MEDIA_INSN_BGTU, SH64_MEDIA_SFMT_BEQ },
63
  { SH_INSN_BLINK, SH64_MEDIA_INSN_BLINK, SH64_MEDIA_SFMT_BLINK },
64
  { SH_INSN_BNE, SH64_MEDIA_INSN_BNE, SH64_MEDIA_SFMT_BEQ },
65
  { SH_INSN_BNEI, SH64_MEDIA_INSN_BNEI, SH64_MEDIA_SFMT_BEQI },
66
  { SH_INSN_BRK, SH64_MEDIA_INSN_BRK, SH64_MEDIA_SFMT_BRK },
67
  { SH_INSN_BYTEREV, SH64_MEDIA_INSN_BYTEREV, SH64_MEDIA_SFMT_BYTEREV },
68
  { SH_INSN_CMPEQ, SH64_MEDIA_INSN_CMPEQ, SH64_MEDIA_SFMT_ADD },
69
  { SH_INSN_CMPGT, SH64_MEDIA_INSN_CMPGT, SH64_MEDIA_SFMT_ADD },
70
  { SH_INSN_CMPGTU, SH64_MEDIA_INSN_CMPGTU, SH64_MEDIA_SFMT_ADD },
71
  { SH_INSN_CMVEQ, SH64_MEDIA_INSN_CMVEQ, SH64_MEDIA_SFMT_CMVEQ },
72
  { SH_INSN_CMVNE, SH64_MEDIA_INSN_CMVNE, SH64_MEDIA_SFMT_CMVEQ },
73
  { SH_INSN_FABSD, SH64_MEDIA_INSN_FABSD, SH64_MEDIA_SFMT_FABSD },
74
  { SH_INSN_FABSS, SH64_MEDIA_INSN_FABSS, SH64_MEDIA_SFMT_FABSS },
75
  { SH_INSN_FADDD, SH64_MEDIA_INSN_FADDD, SH64_MEDIA_SFMT_FADDD },
76
  { SH_INSN_FADDS, SH64_MEDIA_INSN_FADDS, SH64_MEDIA_SFMT_FADDS },
77
  { SH_INSN_FCMPEQD, SH64_MEDIA_INSN_FCMPEQD, SH64_MEDIA_SFMT_FCMPEQD },
78
  { SH_INSN_FCMPEQS, SH64_MEDIA_INSN_FCMPEQS, SH64_MEDIA_SFMT_FCMPEQS },
79
  { SH_INSN_FCMPGED, SH64_MEDIA_INSN_FCMPGED, SH64_MEDIA_SFMT_FCMPEQD },
80
  { SH_INSN_FCMPGES, SH64_MEDIA_INSN_FCMPGES, SH64_MEDIA_SFMT_FCMPEQS },
81
  { SH_INSN_FCMPGTD, SH64_MEDIA_INSN_FCMPGTD, SH64_MEDIA_SFMT_FCMPEQD },
82
  { SH_INSN_FCMPGTS, SH64_MEDIA_INSN_FCMPGTS, SH64_MEDIA_SFMT_FCMPEQS },
83
  { SH_INSN_FCMPUND, SH64_MEDIA_INSN_FCMPUND, SH64_MEDIA_SFMT_FCMPEQD },
84
  { SH_INSN_FCMPUNS, SH64_MEDIA_INSN_FCMPUNS, SH64_MEDIA_SFMT_FCMPEQS },
85
  { SH_INSN_FCNVDS, SH64_MEDIA_INSN_FCNVDS, SH64_MEDIA_SFMT_FCNVDS },
86
  { SH_INSN_FCNVSD, SH64_MEDIA_INSN_FCNVSD, SH64_MEDIA_SFMT_FCNVSD },
87
  { SH_INSN_FDIVD, SH64_MEDIA_INSN_FDIVD, SH64_MEDIA_SFMT_FADDD },
88
  { SH_INSN_FDIVS, SH64_MEDIA_INSN_FDIVS, SH64_MEDIA_SFMT_FADDS },
89
  { SH_INSN_FGETSCR, SH64_MEDIA_INSN_FGETSCR, SH64_MEDIA_SFMT_FGETSCR },
90
  { SH_INSN_FIPRS, SH64_MEDIA_INSN_FIPRS, SH64_MEDIA_SFMT_FIPRS },
91
  { SH_INSN_FLDD, SH64_MEDIA_INSN_FLDD, SH64_MEDIA_SFMT_FLDD },
92
  { SH_INSN_FLDP, SH64_MEDIA_INSN_FLDP, SH64_MEDIA_SFMT_FLDP },
93
  { SH_INSN_FLDS, SH64_MEDIA_INSN_FLDS, SH64_MEDIA_SFMT_FLDS },
94
  { SH_INSN_FLDXD, SH64_MEDIA_INSN_FLDXD, SH64_MEDIA_SFMT_FLDXD },
95
  { SH_INSN_FLDXP, SH64_MEDIA_INSN_FLDXP, SH64_MEDIA_SFMT_FLDXP },
96
  { SH_INSN_FLDXS, SH64_MEDIA_INSN_FLDXS, SH64_MEDIA_SFMT_FLDXS },
97
  { SH_INSN_FLOATLD, SH64_MEDIA_INSN_FLOATLD, SH64_MEDIA_SFMT_FCNVSD },
98
  { SH_INSN_FLOATLS, SH64_MEDIA_INSN_FLOATLS, SH64_MEDIA_SFMT_FABSS },
99
  { SH_INSN_FLOATQD, SH64_MEDIA_INSN_FLOATQD, SH64_MEDIA_SFMT_FABSD },
100
  { SH_INSN_FLOATQS, SH64_MEDIA_INSN_FLOATQS, SH64_MEDIA_SFMT_FCNVDS },
101
  { SH_INSN_FMACS, SH64_MEDIA_INSN_FMACS, SH64_MEDIA_SFMT_FMACS },
102
  { SH_INSN_FMOVD, SH64_MEDIA_INSN_FMOVD, SH64_MEDIA_SFMT_FABSD },
103
  { SH_INSN_FMOVDQ, SH64_MEDIA_INSN_FMOVDQ, SH64_MEDIA_SFMT_FMOVDQ },
104
  { SH_INSN_FMOVLS, SH64_MEDIA_INSN_FMOVLS, SH64_MEDIA_SFMT_FMOVLS },
105
  { SH_INSN_FMOVQD, SH64_MEDIA_INSN_FMOVQD, SH64_MEDIA_SFMT_FMOVQD },
106
  { SH_INSN_FMOVS, SH64_MEDIA_INSN_FMOVS, SH64_MEDIA_SFMT_FABSS },
107
  { SH_INSN_FMOVSL, SH64_MEDIA_INSN_FMOVSL, SH64_MEDIA_SFMT_FMOVSL },
108
  { SH_INSN_FMULD, SH64_MEDIA_INSN_FMULD, SH64_MEDIA_SFMT_FADDD },
109
  { SH_INSN_FMULS, SH64_MEDIA_INSN_FMULS, SH64_MEDIA_SFMT_FADDS },
110
  { SH_INSN_FNEGD, SH64_MEDIA_INSN_FNEGD, SH64_MEDIA_SFMT_FABSD },
111
  { SH_INSN_FNEGS, SH64_MEDIA_INSN_FNEGS, SH64_MEDIA_SFMT_FABSS },
112
  { SH_INSN_FPUTSCR, SH64_MEDIA_INSN_FPUTSCR, SH64_MEDIA_SFMT_FPUTSCR },
113
  { SH_INSN_FSQRTD, SH64_MEDIA_INSN_FSQRTD, SH64_MEDIA_SFMT_FABSD },
114
  { SH_INSN_FSQRTS, SH64_MEDIA_INSN_FSQRTS, SH64_MEDIA_SFMT_FABSS },
115
  { SH_INSN_FSTD, SH64_MEDIA_INSN_FSTD, SH64_MEDIA_SFMT_FSTD },
116
  { SH_INSN_FSTP, SH64_MEDIA_INSN_FSTP, SH64_MEDIA_SFMT_FLDP },
117
  { SH_INSN_FSTS, SH64_MEDIA_INSN_FSTS, SH64_MEDIA_SFMT_FSTS },
118
  { SH_INSN_FSTXD, SH64_MEDIA_INSN_FSTXD, SH64_MEDIA_SFMT_FSTXD },
119
  { SH_INSN_FSTXP, SH64_MEDIA_INSN_FSTXP, SH64_MEDIA_SFMT_FLDXP },
120
  { SH_INSN_FSTXS, SH64_MEDIA_INSN_FSTXS, SH64_MEDIA_SFMT_FSTXS },
121
  { SH_INSN_FSUBD, SH64_MEDIA_INSN_FSUBD, SH64_MEDIA_SFMT_FADDD },
122
  { SH_INSN_FSUBS, SH64_MEDIA_INSN_FSUBS, SH64_MEDIA_SFMT_FADDS },
123
  { SH_INSN_FTRCDL, SH64_MEDIA_INSN_FTRCDL, SH64_MEDIA_SFMT_FCNVDS },
124
  { SH_INSN_FTRCSL, SH64_MEDIA_INSN_FTRCSL, SH64_MEDIA_SFMT_FABSS },
125
  { SH_INSN_FTRCDQ, SH64_MEDIA_INSN_FTRCDQ, SH64_MEDIA_SFMT_FABSD },
126
  { SH_INSN_FTRCSQ, SH64_MEDIA_INSN_FTRCSQ, SH64_MEDIA_SFMT_FCNVSD },
127
  { SH_INSN_FTRVS, SH64_MEDIA_INSN_FTRVS, SH64_MEDIA_SFMT_FTRVS },
128
  { SH_INSN_GETCFG, SH64_MEDIA_INSN_GETCFG, SH64_MEDIA_SFMT_GETCFG },
129
  { SH_INSN_GETCON, SH64_MEDIA_INSN_GETCON, SH64_MEDIA_SFMT_GETCON },
130
  { SH_INSN_GETTR, SH64_MEDIA_INSN_GETTR, SH64_MEDIA_SFMT_GETTR },
131
  { SH_INSN_ICBI, SH64_MEDIA_INSN_ICBI, SH64_MEDIA_SFMT_ALLOCO },
132
  { SH_INSN_LDB, SH64_MEDIA_INSN_LDB, SH64_MEDIA_SFMT_LDB },
133
  { SH_INSN_LDL, SH64_MEDIA_INSN_LDL, SH64_MEDIA_SFMT_LDL },
134
  { SH_INSN_LDQ, SH64_MEDIA_INSN_LDQ, SH64_MEDIA_SFMT_LDQ },
135
  { SH_INSN_LDUB, SH64_MEDIA_INSN_LDUB, SH64_MEDIA_SFMT_LDB },
136
  { SH_INSN_LDUW, SH64_MEDIA_INSN_LDUW, SH64_MEDIA_SFMT_LDUW },
137
  { SH_INSN_LDW, SH64_MEDIA_INSN_LDW, SH64_MEDIA_SFMT_LDUW },
138
  { SH_INSN_LDHIL, SH64_MEDIA_INSN_LDHIL, SH64_MEDIA_SFMT_LDHIL },
139
  { SH_INSN_LDHIQ, SH64_MEDIA_INSN_LDHIQ, SH64_MEDIA_SFMT_LDHIQ },
140
  { SH_INSN_LDLOL, SH64_MEDIA_INSN_LDLOL, SH64_MEDIA_SFMT_LDLOL },
141
  { SH_INSN_LDLOQ, SH64_MEDIA_INSN_LDLOQ, SH64_MEDIA_SFMT_LDLOQ },
142
  { SH_INSN_LDXB, SH64_MEDIA_INSN_LDXB, SH64_MEDIA_SFMT_LDXB },
143
  { SH_INSN_LDXL, SH64_MEDIA_INSN_LDXL, SH64_MEDIA_SFMT_LDXL },
144
  { SH_INSN_LDXQ, SH64_MEDIA_INSN_LDXQ, SH64_MEDIA_SFMT_LDXQ },
145
  { SH_INSN_LDXUB, SH64_MEDIA_INSN_LDXUB, SH64_MEDIA_SFMT_LDXUB },
146
  { SH_INSN_LDXUW, SH64_MEDIA_INSN_LDXUW, SH64_MEDIA_SFMT_LDXUW },
147
  { SH_INSN_LDXW, SH64_MEDIA_INSN_LDXW, SH64_MEDIA_SFMT_LDXW },
148
  { SH_INSN_MABSL, SH64_MEDIA_INSN_MABSL, SH64_MEDIA_SFMT_BYTEREV },
149
  { SH_INSN_MABSW, SH64_MEDIA_INSN_MABSW, SH64_MEDIA_SFMT_BYTEREV },
150
  { SH_INSN_MADDL, SH64_MEDIA_INSN_MADDL, SH64_MEDIA_SFMT_ADD },
151
  { SH_INSN_MADDW, SH64_MEDIA_INSN_MADDW, SH64_MEDIA_SFMT_ADD },
152
  { SH_INSN_MADDSL, SH64_MEDIA_INSN_MADDSL, SH64_MEDIA_SFMT_ADD },
153
  { SH_INSN_MADDSUB, SH64_MEDIA_INSN_MADDSUB, SH64_MEDIA_SFMT_ADD },
154
  { SH_INSN_MADDSW, SH64_MEDIA_INSN_MADDSW, SH64_MEDIA_SFMT_ADD },
155
  { SH_INSN_MCMPEQB, SH64_MEDIA_INSN_MCMPEQB, SH64_MEDIA_SFMT_ADD },
156
  { SH_INSN_MCMPEQL, SH64_MEDIA_INSN_MCMPEQL, SH64_MEDIA_SFMT_ADD },
157
  { SH_INSN_MCMPEQW, SH64_MEDIA_INSN_MCMPEQW, SH64_MEDIA_SFMT_ADD },
158
  { SH_INSN_MCMPGTL, SH64_MEDIA_INSN_MCMPGTL, SH64_MEDIA_SFMT_ADD },
159
  { SH_INSN_MCMPGTUB, SH64_MEDIA_INSN_MCMPGTUB, SH64_MEDIA_SFMT_ADD },
160
  { SH_INSN_MCMPGTW, SH64_MEDIA_INSN_MCMPGTW, SH64_MEDIA_SFMT_ADD },
161
  { SH_INSN_MCMV, SH64_MEDIA_INSN_MCMV, SH64_MEDIA_SFMT_MCMV },
162
  { SH_INSN_MCNVSLW, SH64_MEDIA_INSN_MCNVSLW, SH64_MEDIA_SFMT_ADD },
163
  { SH_INSN_MCNVSWB, SH64_MEDIA_INSN_MCNVSWB, SH64_MEDIA_SFMT_ADD },
164
  { SH_INSN_MCNVSWUB, SH64_MEDIA_INSN_MCNVSWUB, SH64_MEDIA_SFMT_ADD },
165
  { SH_INSN_MEXTR1, SH64_MEDIA_INSN_MEXTR1, SH64_MEDIA_SFMT_ADD },
166
  { SH_INSN_MEXTR2, SH64_MEDIA_INSN_MEXTR2, SH64_MEDIA_SFMT_ADD },
167
  { SH_INSN_MEXTR3, SH64_MEDIA_INSN_MEXTR3, SH64_MEDIA_SFMT_ADD },
168
  { SH_INSN_MEXTR4, SH64_MEDIA_INSN_MEXTR4, SH64_MEDIA_SFMT_ADD },
169
  { SH_INSN_MEXTR5, SH64_MEDIA_INSN_MEXTR5, SH64_MEDIA_SFMT_ADD },
170
  { SH_INSN_MEXTR6, SH64_MEDIA_INSN_MEXTR6, SH64_MEDIA_SFMT_ADD },
171
  { SH_INSN_MEXTR7, SH64_MEDIA_INSN_MEXTR7, SH64_MEDIA_SFMT_ADD },
172
  { SH_INSN_MMACFXWL, SH64_MEDIA_INSN_MMACFXWL, SH64_MEDIA_SFMT_MCMV },
173
  { SH_INSN_MMACNFX_WL, SH64_MEDIA_INSN_MMACNFX_WL, SH64_MEDIA_SFMT_MCMV },
174
  { SH_INSN_MMULL, SH64_MEDIA_INSN_MMULL, SH64_MEDIA_SFMT_ADD },
175
  { SH_INSN_MMULW, SH64_MEDIA_INSN_MMULW, SH64_MEDIA_SFMT_ADD },
176
  { SH_INSN_MMULFXL, SH64_MEDIA_INSN_MMULFXL, SH64_MEDIA_SFMT_ADD },
177
  { SH_INSN_MMULFXW, SH64_MEDIA_INSN_MMULFXW, SH64_MEDIA_SFMT_ADD },
178
  { SH_INSN_MMULFXRPW, SH64_MEDIA_INSN_MMULFXRPW, SH64_MEDIA_SFMT_ADD },
179
  { SH_INSN_MMULHIWL, SH64_MEDIA_INSN_MMULHIWL, SH64_MEDIA_SFMT_ADD },
180
  { SH_INSN_MMULLOWL, SH64_MEDIA_INSN_MMULLOWL, SH64_MEDIA_SFMT_ADD },
181
  { SH_INSN_MMULSUMWQ, SH64_MEDIA_INSN_MMULSUMWQ, SH64_MEDIA_SFMT_MCMV },
182
  { SH_INSN_MOVI, SH64_MEDIA_INSN_MOVI, SH64_MEDIA_SFMT_MOVI },
183
  { SH_INSN_MPERMW, SH64_MEDIA_INSN_MPERMW, SH64_MEDIA_SFMT_MPERMW },
184
  { SH_INSN_MSADUBQ, SH64_MEDIA_INSN_MSADUBQ, SH64_MEDIA_SFMT_MCMV },
185
  { SH_INSN_MSHALDSL, SH64_MEDIA_INSN_MSHALDSL, SH64_MEDIA_SFMT_ADD },
186
  { SH_INSN_MSHALDSW, SH64_MEDIA_INSN_MSHALDSW, SH64_MEDIA_SFMT_ADD },
187
  { SH_INSN_MSHARDL, SH64_MEDIA_INSN_MSHARDL, SH64_MEDIA_SFMT_ADD },
188
  { SH_INSN_MSHARDW, SH64_MEDIA_INSN_MSHARDW, SH64_MEDIA_SFMT_ADD },
189
  { SH_INSN_MSHARDSQ, SH64_MEDIA_INSN_MSHARDSQ, SH64_MEDIA_SFMT_ADD },
190
  { SH_INSN_MSHFHIB, SH64_MEDIA_INSN_MSHFHIB, SH64_MEDIA_SFMT_ADD },
191
  { SH_INSN_MSHFHIL, SH64_MEDIA_INSN_MSHFHIL, SH64_MEDIA_SFMT_ADD },
192
  { SH_INSN_MSHFHIW, SH64_MEDIA_INSN_MSHFHIW, SH64_MEDIA_SFMT_ADD },
193
  { SH_INSN_MSHFLOB, SH64_MEDIA_INSN_MSHFLOB, SH64_MEDIA_SFMT_ADD },
194
  { SH_INSN_MSHFLOL, SH64_MEDIA_INSN_MSHFLOL, SH64_MEDIA_SFMT_ADD },
195
  { SH_INSN_MSHFLOW, SH64_MEDIA_INSN_MSHFLOW, SH64_MEDIA_SFMT_ADD },
196
  { SH_INSN_MSHLLDL, SH64_MEDIA_INSN_MSHLLDL, SH64_MEDIA_SFMT_ADD },
197
  { SH_INSN_MSHLLDW, SH64_MEDIA_INSN_MSHLLDW, SH64_MEDIA_SFMT_ADD },
198
  { SH_INSN_MSHLRDL, SH64_MEDIA_INSN_MSHLRDL, SH64_MEDIA_SFMT_ADD },
199
  { SH_INSN_MSHLRDW, SH64_MEDIA_INSN_MSHLRDW, SH64_MEDIA_SFMT_ADD },
200
  { SH_INSN_MSUBL, SH64_MEDIA_INSN_MSUBL, SH64_MEDIA_SFMT_ADD },
201
  { SH_INSN_MSUBW, SH64_MEDIA_INSN_MSUBW, SH64_MEDIA_SFMT_ADD },
202
  { SH_INSN_MSUBSL, SH64_MEDIA_INSN_MSUBSL, SH64_MEDIA_SFMT_ADD },
203
  { SH_INSN_MSUBSUB, SH64_MEDIA_INSN_MSUBSUB, SH64_MEDIA_SFMT_ADD },
204
  { SH_INSN_MSUBSW, SH64_MEDIA_INSN_MSUBSW, SH64_MEDIA_SFMT_ADD },
205
  { SH_INSN_MULSL, SH64_MEDIA_INSN_MULSL, SH64_MEDIA_SFMT_ADD },
206
  { SH_INSN_MULUL, SH64_MEDIA_INSN_MULUL, SH64_MEDIA_SFMT_ADD },
207
  { SH_INSN_NOP, SH64_MEDIA_INSN_NOP, SH64_MEDIA_SFMT_NOP },
208
  { SH_INSN_NSB, SH64_MEDIA_INSN_NSB, SH64_MEDIA_SFMT_BYTEREV },
209
  { SH_INSN_OCBI, SH64_MEDIA_INSN_OCBI, SH64_MEDIA_SFMT_ALLOCO },
210
  { SH_INSN_OCBP, SH64_MEDIA_INSN_OCBP, SH64_MEDIA_SFMT_ALLOCO },
211
  { SH_INSN_OCBWB, SH64_MEDIA_INSN_OCBWB, SH64_MEDIA_SFMT_ALLOCO },
212
  { SH_INSN_OR, SH64_MEDIA_INSN_OR, SH64_MEDIA_SFMT_ADD },
213
  { SH_INSN_ORI, SH64_MEDIA_INSN_ORI, SH64_MEDIA_SFMT_ORI },
214
  { SH_INSN_PREFI, SH64_MEDIA_INSN_PREFI, SH64_MEDIA_SFMT_ALLOCO },
215
  { SH_INSN_PTA, SH64_MEDIA_INSN_PTA, SH64_MEDIA_SFMT_PTA },
216
  { SH_INSN_PTABS, SH64_MEDIA_INSN_PTABS, SH64_MEDIA_SFMT_PTABS },
217
  { SH_INSN_PTB, SH64_MEDIA_INSN_PTB, SH64_MEDIA_SFMT_PTA },
218
  { SH_INSN_PTREL, SH64_MEDIA_INSN_PTREL, SH64_MEDIA_SFMT_PTREL },
219
  { SH_INSN_PUTCFG, SH64_MEDIA_INSN_PUTCFG, SH64_MEDIA_SFMT_PUTCFG },
220
  { SH_INSN_PUTCON, SH64_MEDIA_INSN_PUTCON, SH64_MEDIA_SFMT_PUTCON },
221
  { SH_INSN_RTE, SH64_MEDIA_INSN_RTE, SH64_MEDIA_SFMT_NOP },
222
  { SH_INSN_SHARD, SH64_MEDIA_INSN_SHARD, SH64_MEDIA_SFMT_ADD },
223
  { SH_INSN_SHARDL, SH64_MEDIA_INSN_SHARDL, SH64_MEDIA_SFMT_ADD },
224
  { SH_INSN_SHARI, SH64_MEDIA_INSN_SHARI, SH64_MEDIA_SFMT_SHARI },
225
  { SH_INSN_SHARIL, SH64_MEDIA_INSN_SHARIL, SH64_MEDIA_SFMT_SHARIL },
226
  { SH_INSN_SHLLD, SH64_MEDIA_INSN_SHLLD, SH64_MEDIA_SFMT_ADD },
227
  { SH_INSN_SHLLDL, SH64_MEDIA_INSN_SHLLDL, SH64_MEDIA_SFMT_ADD },
228
  { SH_INSN_SHLLI, SH64_MEDIA_INSN_SHLLI, SH64_MEDIA_SFMT_SHARI },
229
  { SH_INSN_SHLLIL, SH64_MEDIA_INSN_SHLLIL, SH64_MEDIA_SFMT_SHARIL },
230
  { SH_INSN_SHLRD, SH64_MEDIA_INSN_SHLRD, SH64_MEDIA_SFMT_ADD },
231
  { SH_INSN_SHLRDL, SH64_MEDIA_INSN_SHLRDL, SH64_MEDIA_SFMT_ADD },
232
  { SH_INSN_SHLRI, SH64_MEDIA_INSN_SHLRI, SH64_MEDIA_SFMT_SHARI },
233
  { SH_INSN_SHLRIL, SH64_MEDIA_INSN_SHLRIL, SH64_MEDIA_SFMT_SHARIL },
234
  { SH_INSN_SHORI, SH64_MEDIA_INSN_SHORI, SH64_MEDIA_SFMT_SHORI },
235
  { SH_INSN_SLEEP, SH64_MEDIA_INSN_SLEEP, SH64_MEDIA_SFMT_NOP },
236
  { SH_INSN_STB, SH64_MEDIA_INSN_STB, SH64_MEDIA_SFMT_STB },
237
  { SH_INSN_STL, SH64_MEDIA_INSN_STL, SH64_MEDIA_SFMT_STL },
238
  { SH_INSN_STQ, SH64_MEDIA_INSN_STQ, SH64_MEDIA_SFMT_STQ },
239
  { SH_INSN_STW, SH64_MEDIA_INSN_STW, SH64_MEDIA_SFMT_STW },
240
  { SH_INSN_STHIL, SH64_MEDIA_INSN_STHIL, SH64_MEDIA_SFMT_STHIL },
241
  { SH_INSN_STHIQ, SH64_MEDIA_INSN_STHIQ, SH64_MEDIA_SFMT_STHIQ },
242
  { SH_INSN_STLOL, SH64_MEDIA_INSN_STLOL, SH64_MEDIA_SFMT_STLOL },
243
  { SH_INSN_STLOQ, SH64_MEDIA_INSN_STLOQ, SH64_MEDIA_SFMT_STLOQ },
244
  { SH_INSN_STXB, SH64_MEDIA_INSN_STXB, SH64_MEDIA_SFMT_STXB },
245
  { SH_INSN_STXL, SH64_MEDIA_INSN_STXL, SH64_MEDIA_SFMT_STXL },
246
  { SH_INSN_STXQ, SH64_MEDIA_INSN_STXQ, SH64_MEDIA_SFMT_STXQ },
247
  { SH_INSN_STXW, SH64_MEDIA_INSN_STXW, SH64_MEDIA_SFMT_STXW },
248
  { SH_INSN_SUB, SH64_MEDIA_INSN_SUB, SH64_MEDIA_SFMT_ADD },
249
  { SH_INSN_SUBL, SH64_MEDIA_INSN_SUBL, SH64_MEDIA_SFMT_ADD },
250
  { SH_INSN_SWAPQ, SH64_MEDIA_INSN_SWAPQ, SH64_MEDIA_SFMT_SWAPQ },
251
  { SH_INSN_SYNCI, SH64_MEDIA_INSN_SYNCI, SH64_MEDIA_SFMT_NOP },
252
  { SH_INSN_SYNCO, SH64_MEDIA_INSN_SYNCO, SH64_MEDIA_SFMT_NOP },
253
  { SH_INSN_TRAPA, SH64_MEDIA_INSN_TRAPA, SH64_MEDIA_SFMT_TRAPA },
254
  { SH_INSN_XOR, SH64_MEDIA_INSN_XOR, SH64_MEDIA_SFMT_ADD },
255
  { SH_INSN_XORI, SH64_MEDIA_INSN_XORI, SH64_MEDIA_SFMT_XORI },
256
};
257
 
258
static const struct insn_sem sh64_media_insn_sem_invalid = {
259
  VIRTUAL_INSN_X_INVALID, SH64_MEDIA_INSN_X_INVALID, SH64_MEDIA_SFMT_EMPTY
260
};
261
 
262
/* Initialize an IDESC from the compile-time computable parts.  */
263
 
264
static INLINE void
265
init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
266
{
267
  const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
268
 
269
  id->num = t->index;
270
  id->sfmt = t->sfmt;
271
  if ((int) t->type <= 0)
272
    id->idata = & cgen_virtual_insn_table[- (int) t->type];
273
  else
274
    id->idata = & insn_table[t->type];
275
  id->attrs = CGEN_INSN_ATTRS (id->idata);
276
  /* Oh my god, a magic number.  */
277
  id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
278
 
279
#if WITH_PROFILE_MODEL_P
280
  id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
281
  {
282
    SIM_DESC sd = CPU_STATE (cpu);
283
    SIM_ASSERT (t->index == id->timing->num);
284
  }
285
#endif
286
 
287
  /* Semantic pointers are initialized elsewhere.  */
288
}
289
 
290
/* Initialize the instruction descriptor table.  */
291
 
292
void
293
sh64_media_init_idesc_table (SIM_CPU *cpu)
294
{
295
  IDESC *id,*tabend;
296
  const struct insn_sem *t,*tend;
297
  int tabsize = SH64_MEDIA_INSN__MAX;
298
  IDESC *table = sh64_media_insn_data;
299
 
300
  memset (table, 0, tabsize * sizeof (IDESC));
301
 
302
  /* First set all entries to the `invalid insn'.  */
303
  t = & sh64_media_insn_sem_invalid;
304
  for (id = table, tabend = table + tabsize; id < tabend; ++id)
305
    init_idesc (cpu, id, t);
306
 
307
  /* Now fill in the values for the chosen cpu.  */
308
  for (t = sh64_media_insn_sem, tend = t + sizeof (sh64_media_insn_sem) / sizeof (*t);
309
       t != tend; ++t)
310
    {
311
      init_idesc (cpu, & table[t->index], t);
312
    }
313
 
314
  /* Link the IDESC table into the cpu.  */
315
  CPU_IDESC (cpu) = table;
316
}
317
 
318
/* Given an instruction, return a pointer to its IDESC entry.  */
319
 
320
const IDESC *
321
sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
322
              CGEN_INSN_INT base_insn, CGEN_INSN_INT entire_insn,
323
              ARGBUF *abuf)
324
{
325
  /* Result of decoder.  */
326
  SH64_MEDIA_INSN_TYPE itype;
327
 
328
  {
329
    CGEN_INSN_INT insn = base_insn;
330
 
331
    {
332
      unsigned int val = (((insn >> 22) & (63 << 4)) | ((insn >> 16) & (15 << 0)));
333
      switch (val)
334
      {
335
      case 1 :
336
        if ((entire_insn & 0xfc0f000f) == 0x10000)
337
          { itype = SH64_MEDIA_INSN_CMPEQ; goto extract_sfmt_add; }
338
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
339
      case 3 :
340
        if ((entire_insn & 0xfc0f000f) == 0x30000)
341
          { itype = SH64_MEDIA_INSN_CMPGT; goto extract_sfmt_add; }
342
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
343
      case 7 :
344
        if ((entire_insn & 0xfc0f000f) == 0x70000)
345
          { itype = SH64_MEDIA_INSN_CMPGTU; goto extract_sfmt_add; }
346
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
347
      case 8 :
348
        if ((entire_insn & 0xfc0f000f) == 0x80000)
349
          { itype = SH64_MEDIA_INSN_ADDL; goto extract_sfmt_add; }
350
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
351
      case 9 :
352
        if ((entire_insn & 0xfc0f000f) == 0x90000)
353
          { itype = SH64_MEDIA_INSN_ADD; goto extract_sfmt_add; }
354
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
355
      case 10 :
356
        if ((entire_insn & 0xfc0f000f) == 0xa0000)
357
          { itype = SH64_MEDIA_INSN_SUBL; goto extract_sfmt_add; }
358
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
359
      case 11 :
360
        if ((entire_insn & 0xfc0f000f) == 0xb0000)
361
          { itype = SH64_MEDIA_INSN_SUB; goto extract_sfmt_add; }
362
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
363
      case 12 :
364
        if ((entire_insn & 0xfc0f000f) == 0xc0000)
365
          { itype = SH64_MEDIA_INSN_ADDZL; goto extract_sfmt_add; }
366
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
367
      case 13 :
368
        if ((entire_insn & 0xfc0ffc0f) == 0xdfc00)
369
          { itype = SH64_MEDIA_INSN_NSB; goto extract_sfmt_byterev; }
370
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
371
      case 14 :
372
        if ((entire_insn & 0xfc0f000f) == 0xe0000)
373
          { itype = SH64_MEDIA_INSN_MULUL; goto extract_sfmt_add; }
374
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
375
      case 15 :
376
        if ((entire_insn & 0xfc0ffc0f) == 0xffc00)
377
          { itype = SH64_MEDIA_INSN_BYTEREV; goto extract_sfmt_byterev; }
378
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
379
      case 16 :
380
        if ((entire_insn & 0xfc0f000f) == 0x4000000)
381
          { itype = SH64_MEDIA_INSN_SHLLDL; goto extract_sfmt_add; }
382
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
383
      case 17 :
384
        if ((entire_insn & 0xfc0f000f) == 0x4010000)
385
          { itype = SH64_MEDIA_INSN_SHLLD; goto extract_sfmt_add; }
386
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
387
      case 18 :
388
        if ((entire_insn & 0xfc0f000f) == 0x4020000)
389
          { itype = SH64_MEDIA_INSN_SHLRDL; goto extract_sfmt_add; }
390
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
391
      case 19 :
392
        if ((entire_insn & 0xfc0f000f) == 0x4030000)
393
          { itype = SH64_MEDIA_INSN_SHLRD; goto extract_sfmt_add; }
394
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
395
      case 22 :
396
        if ((entire_insn & 0xfc0f000f) == 0x4060000)
397
          { itype = SH64_MEDIA_INSN_SHARDL; goto extract_sfmt_add; }
398
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
399
      case 23 :
400
        if ((entire_insn & 0xfc0f000f) == 0x4070000)
401
          { itype = SH64_MEDIA_INSN_SHARD; goto extract_sfmt_add; }
402
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
403
      case 25 :
404
        if ((entire_insn & 0xfc0f000f) == 0x4090000)
405
          { itype = SH64_MEDIA_INSN_OR; goto extract_sfmt_add; }
406
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
407
      case 27 :
408
        if ((entire_insn & 0xfc0f000f) == 0x40b0000)
409
          { itype = SH64_MEDIA_INSN_AND; goto extract_sfmt_add; }
410
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
411
      case 29 :
412
        if ((entire_insn & 0xfc0f000f) == 0x40d0000)
413
          { itype = SH64_MEDIA_INSN_XOR; goto extract_sfmt_add; }
414
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
415
      case 30 :
416
        if ((entire_insn & 0xfc0f000f) == 0x40e0000)
417
          { itype = SH64_MEDIA_INSN_MULSL; goto extract_sfmt_add; }
418
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
419
      case 31 :
420
        if ((entire_insn & 0xfc0f000f) == 0x40f0000)
421
          { itype = SH64_MEDIA_INSN_ANDC; goto extract_sfmt_add; }
422
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
423
      case 33 :
424
        if ((entire_insn & 0xfc0f000f) == 0x8010000)
425
          { itype = SH64_MEDIA_INSN_MADDW; goto extract_sfmt_add; }
426
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
427
      case 34 :
428
        if ((entire_insn & 0xfc0f000f) == 0x8020000)
429
          { itype = SH64_MEDIA_INSN_MADDL; goto extract_sfmt_add; }
430
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
431
      case 36 :
432
        if ((entire_insn & 0xfc0f000f) == 0x8040000)
433
          { itype = SH64_MEDIA_INSN_MADDSUB; goto extract_sfmt_add; }
434
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
435
      case 37 :
436
        if ((entire_insn & 0xfc0f000f) == 0x8050000)
437
          { itype = SH64_MEDIA_INSN_MADDSW; goto extract_sfmt_add; }
438
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
439
      case 38 :
440
        if ((entire_insn & 0xfc0f000f) == 0x8060000)
441
          { itype = SH64_MEDIA_INSN_MADDSL; goto extract_sfmt_add; }
442
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
443
      case 41 :
444
        if ((entire_insn & 0xfc0f000f) == 0x8090000)
445
          { itype = SH64_MEDIA_INSN_MSUBW; goto extract_sfmt_add; }
446
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
447
      case 42 :
448
        if ((entire_insn & 0xfc0f000f) == 0x80a0000)
449
          { itype = SH64_MEDIA_INSN_MSUBL; goto extract_sfmt_add; }
450
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
451
      case 44 :
452
        if ((entire_insn & 0xfc0f000f) == 0x80c0000)
453
          { itype = SH64_MEDIA_INSN_MSUBSUB; goto extract_sfmt_add; }
454
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
455
      case 45 :
456
        if ((entire_insn & 0xfc0f000f) == 0x80d0000)
457
          { itype = SH64_MEDIA_INSN_MSUBSW; goto extract_sfmt_add; }
458
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
459
      case 46 :
460
        if ((entire_insn & 0xfc0f000f) == 0x80e0000)
461
          { itype = SH64_MEDIA_INSN_MSUBSL; goto extract_sfmt_add; }
462
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
463
      case 49 :
464
        if ((entire_insn & 0xfc0f000f) == 0xc010000)
465
          { itype = SH64_MEDIA_INSN_MSHLLDW; goto extract_sfmt_add; }
466
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
467
      case 50 :
468
        if ((entire_insn & 0xfc0f000f) == 0xc020000)
469
          { itype = SH64_MEDIA_INSN_MSHLLDL; goto extract_sfmt_add; }
470
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
471
      case 53 :
472
        if ((entire_insn & 0xfc0f000f) == 0xc050000)
473
          { itype = SH64_MEDIA_INSN_MSHALDSW; goto extract_sfmt_add; }
474
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
475
      case 54 :
476
        if ((entire_insn & 0xfc0f000f) == 0xc060000)
477
          { itype = SH64_MEDIA_INSN_MSHALDSL; goto extract_sfmt_add; }
478
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
479
      case 57 :
480
        if ((entire_insn & 0xfc0f000f) == 0xc090000)
481
          { itype = SH64_MEDIA_INSN_MSHARDW; goto extract_sfmt_add; }
482
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
483
      case 58 :
484
        if ((entire_insn & 0xfc0f000f) == 0xc0a0000)
485
          { itype = SH64_MEDIA_INSN_MSHARDL; goto extract_sfmt_add; }
486
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
487
      case 59 :
488
        if ((entire_insn & 0xfc0f000f) == 0xc0b0000)
489
          { itype = SH64_MEDIA_INSN_MSHARDSQ; goto extract_sfmt_add; }
490
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
491
      case 61 :
492
        if ((entire_insn & 0xfc0f000f) == 0xc0d0000)
493
          { itype = SH64_MEDIA_INSN_MSHLRDW; goto extract_sfmt_add; }
494
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
495
      case 62 :
496
        if ((entire_insn & 0xfc0f000f) == 0xc0e0000)
497
          { itype = SH64_MEDIA_INSN_MSHLRDL; goto extract_sfmt_add; }
498
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
499
      case 86 :
500
        if ((entire_insn & 0xfc0f000f) == 0x14060000)
501
          { itype = SH64_MEDIA_INSN_FIPRS; goto extract_sfmt_fiprs; }
502
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
503
      case 94 :
504
        if ((entire_insn & 0xfc0f000f) == 0x140e0000)
505
          { itype = SH64_MEDIA_INSN_FTRVS; goto extract_sfmt_ftrvs; }
506
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
507
      case 96 :
508
        if ((entire_insn & 0xfc0f000f) == 0x18000000)
509
          { itype = SH64_MEDIA_INSN_FABSS; goto extract_sfmt_fabss; }
510
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
511
      case 97 :
512
        if ((entire_insn & 0xfc0f000f) == 0x18010000)
513
          { itype = SH64_MEDIA_INSN_FABSD; goto extract_sfmt_fabsd; }
514
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
515
      case 98 :
516
        if ((entire_insn & 0xfc0f000f) == 0x18020000)
517
          { itype = SH64_MEDIA_INSN_FNEGS; goto extract_sfmt_fabss; }
518
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
519
      case 99 :
520
        if ((entire_insn & 0xfc0f000f) == 0x18030000)
521
          { itype = SH64_MEDIA_INSN_FNEGD; goto extract_sfmt_fabsd; }
522
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
523
      case 112 :
524
        if ((entire_insn & 0xfc0ffc0f) == 0x1c00fc00)
525
          { itype = SH64_MEDIA_INSN_FMOVLS; goto extract_sfmt_fmovls; }
526
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
527
      case 113 :
528
        if ((entire_insn & 0xfc0ffc0f) == 0x1c01fc00)
529
          { itype = SH64_MEDIA_INSN_FMOVQD; goto extract_sfmt_fmovqd; }
530
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
531
      case 114 :
532
        if ((entire_insn & 0xfffffc0f) == 0x1ff2fc00)
533
          { itype = SH64_MEDIA_INSN_FGETSCR; goto extract_sfmt_fgetscr; }
534
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
535
      case 120 :
536
        if ((entire_insn & 0xfc0f000f) == 0x1c080000)
537
          { itype = SH64_MEDIA_INSN_FLDXS; goto extract_sfmt_fldxs; }
538
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
539
      case 121 :
540
        if ((entire_insn & 0xfc0f000f) == 0x1c090000)
541
          { itype = SH64_MEDIA_INSN_FLDXD; goto extract_sfmt_fldxd; }
542
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
543
      case 125 :
544
        if ((entire_insn & 0xfc0f000f) == 0x1c0d0000)
545
          { itype = SH64_MEDIA_INSN_FLDXP; goto extract_sfmt_fldxp; }
546
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
547
      case 129 :
548
        if ((entire_insn & 0xfc0f000f) == 0x20010000)
549
          { itype = SH64_MEDIA_INSN_CMVEQ; goto extract_sfmt_cmveq; }
550
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
551
      case 131 :
552
        if ((entire_insn & 0xfc0f000f) == 0x20030000)
553
          { itype = SH64_MEDIA_INSN_SWAPQ; goto extract_sfmt_swapq; }
554
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
555
      case 133 :
556
        if ((entire_insn & 0xfc0f000f) == 0x20050000)
557
          { itype = SH64_MEDIA_INSN_CMVNE; goto extract_sfmt_cmveq; }
558
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
559
      case 159 :
560
        if ((entire_insn & 0xfc0ffc0f) == 0x240ffc00)
561
          { itype = SH64_MEDIA_INSN_GETCON; goto extract_sfmt_getcon; }
562
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
563
      case 160 :
564
        if ((entire_insn & 0xfc0f000f) == 0x28000000)
565
          { itype = SH64_MEDIA_INSN_MCMPEQB; goto extract_sfmt_add; }
566
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
567
      case 161 :
568
        if ((entire_insn & 0xfc0f000f) == 0x28010000)
569
          { itype = SH64_MEDIA_INSN_MCMPEQW; goto extract_sfmt_add; }
570
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
571
      case 162 :
572
        if ((entire_insn & 0xfc0f000f) == 0x28020000)
573
          { itype = SH64_MEDIA_INSN_MCMPEQL; goto extract_sfmt_add; }
574
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
575
      case 164 :
576
        if ((entire_insn & 0xfc0f000f) == 0x28040000)
577
          { itype = SH64_MEDIA_INSN_MCMPGTUB; goto extract_sfmt_add; }
578
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
579
      case 165 :
580
        if ((entire_insn & 0xfc0f000f) == 0x28050000)
581
          { itype = SH64_MEDIA_INSN_MCMPGTW; goto extract_sfmt_add; }
582
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
583
      case 166 :
584
        if ((entire_insn & 0xfc0f000f) == 0x28060000)
585
          { itype = SH64_MEDIA_INSN_MCMPGTL; goto extract_sfmt_add; }
586
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
587
      case 167 :
588
        if ((entire_insn & 0xfc0f000f) == 0x28070000)
589
          { itype = SH64_MEDIA_INSN_MEXTR1; goto extract_sfmt_add; }
590
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
591
      case 169 :
592
        if ((entire_insn & 0xfc0ffc0f) == 0x2809fc00)
593
          { itype = SH64_MEDIA_INSN_MABSW; goto extract_sfmt_byterev; }
594
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
595
      case 170 :
596
        if ((entire_insn & 0xfc0ffc0f) == 0x280afc00)
597
          { itype = SH64_MEDIA_INSN_MABSL; goto extract_sfmt_byterev; }
598
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
599
      case 171 :
600
        if ((entire_insn & 0xfc0f000f) == 0x280b0000)
601
          { itype = SH64_MEDIA_INSN_MEXTR2; goto extract_sfmt_add; }
602
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
603
      case 173 :
604
        if ((entire_insn & 0xfc0f000f) == 0x280d0000)
605
          { itype = SH64_MEDIA_INSN_MPERMW; goto extract_sfmt_mpermw; }
606
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
607
      case 175 :
608
        if ((entire_insn & 0xfc0f000f) == 0x280f0000)
609
          { itype = SH64_MEDIA_INSN_MEXTR3; goto extract_sfmt_add; }
610
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
611
      case 176 :
612
        if ((entire_insn & 0xfc0f000f) == 0x2c000000)
613
          { itype = SH64_MEDIA_INSN_MSHFLOB; goto extract_sfmt_add; }
614
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
615
      case 177 :
616
        if ((entire_insn & 0xfc0f000f) == 0x2c010000)
617
          { itype = SH64_MEDIA_INSN_MSHFLOW; goto extract_sfmt_add; }
618
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
619
      case 178 :
620
        if ((entire_insn & 0xfc0f000f) == 0x2c020000)
621
          { itype = SH64_MEDIA_INSN_MSHFLOL; goto extract_sfmt_add; }
622
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
623
      case 179 :
624
        if ((entire_insn & 0xfc0f000f) == 0x2c030000)
625
          { itype = SH64_MEDIA_INSN_MEXTR4; goto extract_sfmt_add; }
626
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
627
      case 180 :
628
        if ((entire_insn & 0xfc0f000f) == 0x2c040000)
629
          { itype = SH64_MEDIA_INSN_MSHFHIB; goto extract_sfmt_add; }
630
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
631
      case 181 :
632
        if ((entire_insn & 0xfc0f000f) == 0x2c050000)
633
          { itype = SH64_MEDIA_INSN_MSHFHIW; goto extract_sfmt_add; }
634
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
635
      case 182 :
636
        if ((entire_insn & 0xfc0f000f) == 0x2c060000)
637
          { itype = SH64_MEDIA_INSN_MSHFHIL; goto extract_sfmt_add; }
638
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
639
      case 183 :
640
        if ((entire_insn & 0xfc0f000f) == 0x2c070000)
641
          { itype = SH64_MEDIA_INSN_MEXTR5; goto extract_sfmt_add; }
642
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
643
      case 187 :
644
        if ((entire_insn & 0xfc0f000f) == 0x2c0b0000)
645
          { itype = SH64_MEDIA_INSN_MEXTR6; goto extract_sfmt_add; }
646
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
647
      case 191 :
648
        if ((entire_insn & 0xfc0f000f) == 0x2c0f0000)
649
          { itype = SH64_MEDIA_INSN_MEXTR7; goto extract_sfmt_add; }
650
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
651
      case 192 :
652
        if ((entire_insn & 0xfc0f000f) == 0x30000000)
653
          { itype = SH64_MEDIA_INSN_FMOVSL; goto extract_sfmt_fmovsl; }
654
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
655
      case 193 :
656
        if ((entire_insn & 0xfc0f000f) == 0x30010000)
657
          { itype = SH64_MEDIA_INSN_FMOVDQ; goto extract_sfmt_fmovdq; }
658
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
659
      case 194 :
660
        if ((entire_insn & 0xfc0f03ff) == 0x300203f0)
661
          { itype = SH64_MEDIA_INSN_FPUTSCR; goto extract_sfmt_fputscr; }
662
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
663
      case 200 :
664
        if ((entire_insn & 0xfc0f000f) == 0x30080000)
665
          { itype = SH64_MEDIA_INSN_FCMPEQS; goto extract_sfmt_fcmpeqs; }
666
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
667
      case 201 :
668
        if ((entire_insn & 0xfc0f000f) == 0x30090000)
669
          { itype = SH64_MEDIA_INSN_FCMPEQD; goto extract_sfmt_fcmpeqd; }
670
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
671
      case 202 :
672
        if ((entire_insn & 0xfc0f000f) == 0x300a0000)
673
          { itype = SH64_MEDIA_INSN_FCMPUNS; goto extract_sfmt_fcmpeqs; }
674
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
675
      case 203 :
676
        if ((entire_insn & 0xfc0f000f) == 0x300b0000)
677
          { itype = SH64_MEDIA_INSN_FCMPUND; goto extract_sfmt_fcmpeqd; }
678
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
679
      case 204 :
680
        if ((entire_insn & 0xfc0f000f) == 0x300c0000)
681
          { itype = SH64_MEDIA_INSN_FCMPGTS; goto extract_sfmt_fcmpeqs; }
682
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
683
      case 205 :
684
        if ((entire_insn & 0xfc0f000f) == 0x300d0000)
685
          { itype = SH64_MEDIA_INSN_FCMPGTD; goto extract_sfmt_fcmpeqd; }
686
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
687
      case 206 :
688
        if ((entire_insn & 0xfc0f000f) == 0x300e0000)
689
          { itype = SH64_MEDIA_INSN_FCMPGES; goto extract_sfmt_fcmpeqs; }
690
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
691
      case 207 :
692
        if ((entire_insn & 0xfc0f000f) == 0x300f0000)
693
          { itype = SH64_MEDIA_INSN_FCMPGED; goto extract_sfmt_fcmpeqd; }
694
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
695
      case 208 :
696
        if ((entire_insn & 0xfc0f000f) == 0x34000000)
697
          { itype = SH64_MEDIA_INSN_FADDS; goto extract_sfmt_fadds; }
698
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
699
      case 209 :
700
        if ((entire_insn & 0xfc0f000f) == 0x34010000)
701
          { itype = SH64_MEDIA_INSN_FADDD; goto extract_sfmt_faddd; }
702
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
703
      case 210 :
704
        if ((entire_insn & 0xfc0f000f) == 0x34020000)
705
          { itype = SH64_MEDIA_INSN_FSUBS; goto extract_sfmt_fadds; }
706
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
707
      case 211 :
708
        if ((entire_insn & 0xfc0f000f) == 0x34030000)
709
          { itype = SH64_MEDIA_INSN_FSUBD; goto extract_sfmt_faddd; }
710
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
711
      case 212 :
712
        if ((entire_insn & 0xfc0f000f) == 0x34040000)
713
          { itype = SH64_MEDIA_INSN_FDIVS; goto extract_sfmt_fadds; }
714
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
715
      case 213 :
716
        if ((entire_insn & 0xfc0f000f) == 0x34050000)
717
          { itype = SH64_MEDIA_INSN_FDIVD; goto extract_sfmt_faddd; }
718
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
719
      case 214 :
720
        if ((entire_insn & 0xfc0f000f) == 0x34060000)
721
          { itype = SH64_MEDIA_INSN_FMULS; goto extract_sfmt_fadds; }
722
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
723
      case 215 :
724
        if ((entire_insn & 0xfc0f000f) == 0x34070000)
725
          { itype = SH64_MEDIA_INSN_FMULD; goto extract_sfmt_faddd; }
726
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
727
      case 222 :
728
        if ((entire_insn & 0xfc0f000f) == 0x340e0000)
729
          { itype = SH64_MEDIA_INSN_FMACS; goto extract_sfmt_fmacs; }
730
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
731
      case 224 :
732
        if ((entire_insn & 0xfc0f000f) == 0x38000000)
733
          { itype = SH64_MEDIA_INSN_FMOVS; goto extract_sfmt_fabss; }
734
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
735
      case 225 :
736
        if ((entire_insn & 0xfc0f000f) == 0x38010000)
737
          { itype = SH64_MEDIA_INSN_FMOVD; goto extract_sfmt_fabsd; }
738
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
739
      case 228 :
740
        if ((entire_insn & 0xfc0f000f) == 0x38040000)
741
          { itype = SH64_MEDIA_INSN_FSQRTS; goto extract_sfmt_fabss; }
742
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
743
      case 229 :
744
        if ((entire_insn & 0xfc0f000f) == 0x38050000)
745
          { itype = SH64_MEDIA_INSN_FSQRTD; goto extract_sfmt_fabsd; }
746
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
747
      case 230 :
748
        if ((entire_insn & 0xfc0f000f) == 0x38060000)
749
          { itype = SH64_MEDIA_INSN_FCNVSD; goto extract_sfmt_fcnvsd; }
750
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
751
      case 231 :
752
        if ((entire_insn & 0xfc0f000f) == 0x38070000)
753
          { itype = SH64_MEDIA_INSN_FCNVDS; goto extract_sfmt_fcnvds; }
754
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
755
      case 232 :
756
        if ((entire_insn & 0xfc0f000f) == 0x38080000)
757
          { itype = SH64_MEDIA_INSN_FTRCSL; goto extract_sfmt_fabss; }
758
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
759
      case 233 :
760
        if ((entire_insn & 0xfc0f000f) == 0x38090000)
761
          { itype = SH64_MEDIA_INSN_FTRCDQ; goto extract_sfmt_fabsd; }
762
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
763
      case 234 :
764
        if ((entire_insn & 0xfc0f000f) == 0x380a0000)
765
          { itype = SH64_MEDIA_INSN_FTRCSQ; goto extract_sfmt_fcnvsd; }
766
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
767
      case 235 :
768
        if ((entire_insn & 0xfc0f000f) == 0x380b0000)
769
          { itype = SH64_MEDIA_INSN_FTRCDL; goto extract_sfmt_fcnvds; }
770
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
771
      case 236 :
772
        if ((entire_insn & 0xfc0f000f) == 0x380c0000)
773
          { itype = SH64_MEDIA_INSN_FLOATLS; goto extract_sfmt_fabss; }
774
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
775
      case 237 :
776
        if ((entire_insn & 0xfc0f000f) == 0x380d0000)
777
          { itype = SH64_MEDIA_INSN_FLOATQD; goto extract_sfmt_fabsd; }
778
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
779
      case 238 :
780
        if ((entire_insn & 0xfc0f000f) == 0x380e0000)
781
          { itype = SH64_MEDIA_INSN_FLOATLD; goto extract_sfmt_fcnvsd; }
782
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
783
      case 239 :
784
        if ((entire_insn & 0xfc0f000f) == 0x380f0000)
785
          { itype = SH64_MEDIA_INSN_FLOATQS; goto extract_sfmt_fcnvds; }
786
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
787
      case 248 :
788
        if ((entire_insn & 0xfc0f000f) == 0x3c080000)
789
          { itype = SH64_MEDIA_INSN_FSTXS; goto extract_sfmt_fstxs; }
790
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
791
      case 249 :
792
        if ((entire_insn & 0xfc0f000f) == 0x3c090000)
793
          { itype = SH64_MEDIA_INSN_FSTXD; goto extract_sfmt_fstxd; }
794
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
795
      case 253 :
796
        if ((entire_insn & 0xfc0f000f) == 0x3c0d0000)
797
          { itype = SH64_MEDIA_INSN_FSTXP; goto extract_sfmt_fldxp; }
798
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
799
      case 256 :
800
        if ((entire_insn & 0xfc0f000f) == 0x40000000)
801
          { itype = SH64_MEDIA_INSN_LDXB; goto extract_sfmt_ldxb; }
802
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
803
      case 257 :
804
        if ((entire_insn & 0xfc0f000f) == 0x40010000)
805
          { itype = SH64_MEDIA_INSN_LDXW; goto extract_sfmt_ldxw; }
806
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
807
      case 258 :
808
        if ((entire_insn & 0xfc0f000f) == 0x40020000)
809
          { itype = SH64_MEDIA_INSN_LDXL; goto extract_sfmt_ldxl; }
810
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
811
      case 259 :
812
        if ((entire_insn & 0xfc0f000f) == 0x40030000)
813
          { itype = SH64_MEDIA_INSN_LDXQ; goto extract_sfmt_ldxq; }
814
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
815
      case 260 :
816
        if ((entire_insn & 0xfc0f000f) == 0x40040000)
817
          { itype = SH64_MEDIA_INSN_LDXUB; goto extract_sfmt_ldxub; }
818
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
819
      case 261 :
820
        if ((entire_insn & 0xfc0f000f) == 0x40050000)
821
          { itype = SH64_MEDIA_INSN_LDXUW; goto extract_sfmt_ldxuw; }
822
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
823
      case 273 :
824
        if ((entire_insn & 0xff8ffc0f) == 0x4401fc00)
825
          { itype = SH64_MEDIA_INSN_BLINK; goto extract_sfmt_blink; }
826
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
827
      case 277 :
828
        if ((entire_insn & 0xff8ffc0f) == 0x4405fc00)
829
          { itype = SH64_MEDIA_INSN_GETTR; goto extract_sfmt_gettr; }
830
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
831
      case 288 :
832
        if ((entire_insn & 0xfc0f000f) == 0x48000000)
833
          { itype = SH64_MEDIA_INSN_MSADUBQ; goto extract_sfmt_mcmv; }
834
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
835
      case 289 :
836
        if ((entire_insn & 0xfc0f000f) == 0x48010000)
837
          { itype = SH64_MEDIA_INSN_MMACFXWL; goto extract_sfmt_mcmv; }
838
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
839
      case 291 :
840
        if ((entire_insn & 0xfc0f000f) == 0x48030000)
841
          { itype = SH64_MEDIA_INSN_MCMV; goto extract_sfmt_mcmv; }
842
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
843
      case 293 :
844
        if ((entire_insn & 0xfc0f000f) == 0x48050000)
845
          { itype = SH64_MEDIA_INSN_MMACNFX_WL; goto extract_sfmt_mcmv; }
846
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
847
      case 297 :
848
        if ((entire_insn & 0xfc0f000f) == 0x48090000)
849
          { itype = SH64_MEDIA_INSN_MMULSUMWQ; goto extract_sfmt_mcmv; }
850
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
851
      case 305 :
852
        if ((entire_insn & 0xfc0f000f) == 0x4c010000)
853
          { itype = SH64_MEDIA_INSN_MMULW; goto extract_sfmt_add; }
854
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
855
      case 306 :
856
        if ((entire_insn & 0xfc0f000f) == 0x4c020000)
857
          { itype = SH64_MEDIA_INSN_MMULL; goto extract_sfmt_add; }
858
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
859
      case 309 :
860
        if ((entire_insn & 0xfc0f000f) == 0x4c050000)
861
          { itype = SH64_MEDIA_INSN_MMULFXW; goto extract_sfmt_add; }
862
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
863
      case 310 :
864
        if ((entire_insn & 0xfc0f000f) == 0x4c060000)
865
          { itype = SH64_MEDIA_INSN_MMULFXL; goto extract_sfmt_add; }
866
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
867
      case 312 :
868
        if ((entire_insn & 0xfc0f000f) == 0x4c080000)
869
          { itype = SH64_MEDIA_INSN_MCNVSWB; goto extract_sfmt_add; }
870
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
871
      case 313 :
872
        if ((entire_insn & 0xfc0f000f) == 0x4c090000)
873
          { itype = SH64_MEDIA_INSN_MMULFXRPW; goto extract_sfmt_add; }
874
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
875
      case 314 :
876
        if ((entire_insn & 0xfc0f000f) == 0x4c0a0000)
877
          { itype = SH64_MEDIA_INSN_MMULLOWL; goto extract_sfmt_add; }
878
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
879
      case 316 :
880
        if ((entire_insn & 0xfc0f000f) == 0x4c0c0000)
881
          { itype = SH64_MEDIA_INSN_MCNVSWUB; goto extract_sfmt_add; }
882
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
883
      case 317 :
884
        if ((entire_insn & 0xfc0f000f) == 0x4c0d0000)
885
          { itype = SH64_MEDIA_INSN_MCNVSLW; goto extract_sfmt_add; }
886
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
887
      case 318 :
888
        if ((entire_insn & 0xfc0f000f) == 0x4c0e0000)
889
          { itype = SH64_MEDIA_INSN_MMULHIWL; goto extract_sfmt_add; }
890
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
891
      case 384 :
892
        if ((entire_insn & 0xfc0f000f) == 0x60000000)
893
          { itype = SH64_MEDIA_INSN_STXB; goto extract_sfmt_stxb; }
894
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
895
      case 385 :
896
        if ((entire_insn & 0xfc0f000f) == 0x60010000)
897
          { itype = SH64_MEDIA_INSN_STXW; goto extract_sfmt_stxw; }
898
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
899
      case 386 :
900
        if ((entire_insn & 0xfc0f000f) == 0x60020000)
901
          { itype = SH64_MEDIA_INSN_STXL; goto extract_sfmt_stxl; }
902
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
903
      case 387 :
904
        if ((entire_insn & 0xfc0f000f) == 0x60030000)
905
          { itype = SH64_MEDIA_INSN_STXQ; goto extract_sfmt_stxq; }
906
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
907
      case 401 :
908
        if ((entire_insn & 0xfc0f018f) == 0x64010000)
909
          { itype = SH64_MEDIA_INSN_BEQ; goto extract_sfmt_beq; }
910
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
911
      case 403 :
912
        if ((entire_insn & 0xfc0f018f) == 0x64030000)
913
          { itype = SH64_MEDIA_INSN_BGE; goto extract_sfmt_beq; }
914
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
915
      case 405 :
916
        if ((entire_insn & 0xfc0f018f) == 0x64050000)
917
          { itype = SH64_MEDIA_INSN_BNE; goto extract_sfmt_beq; }
918
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
919
      case 407 :
920
        if ((entire_insn & 0xfc0f018f) == 0x64070000)
921
          { itype = SH64_MEDIA_INSN_BGT; goto extract_sfmt_beq; }
922
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
923
      case 411 :
924
        if ((entire_insn & 0xfc0f018f) == 0x640b0000)
925
          { itype = SH64_MEDIA_INSN_BGEU; goto extract_sfmt_beq; }
926
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
927
      case 415 :
928
        if ((entire_insn & 0xfc0f018f) == 0x640f0000)
929
          { itype = SH64_MEDIA_INSN_BGTU; goto extract_sfmt_beq; }
930
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
931
      case 417 :
932
        if ((entire_insn & 0xffff018f) == 0x6bf10000)
933
          { itype = SH64_MEDIA_INSN_PTABS; goto extract_sfmt_ptabs; }
934
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
935
      case 421 :
936
        if ((entire_insn & 0xffff018f) == 0x6bf50000)
937
          { itype = SH64_MEDIA_INSN_PTREL; goto extract_sfmt_ptrel; }
938
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
939
      case 432 :
940
        if ((entire_insn & 0xffffffff) == 0x6ff0fff0)
941
          { itype = SH64_MEDIA_INSN_NOP; goto extract_sfmt_nop; }
942
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
943
      case 433 :
944
        if ((entire_insn & 0xfc0fffff) == 0x6c01fff0)
945
          { itype = SH64_MEDIA_INSN_TRAPA; goto extract_sfmt_trapa; }
946
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
947
      case 434 :
948
        if ((entire_insn & 0xffffffff) == 0x6ff2fff0)
949
          { itype = SH64_MEDIA_INSN_SYNCI; goto extract_sfmt_nop; }
950
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
951
      case 435 :
952
        if ((entire_insn & 0xffffffff) == 0x6ff3fff0)
953
          { itype = SH64_MEDIA_INSN_RTE; goto extract_sfmt_nop; }
954
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
955
      case 437 :
956
        if ((entire_insn & 0xffffffff) == 0x6ff5fff0)
957
          { itype = SH64_MEDIA_INSN_BRK; goto extract_sfmt_brk; }
958
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
959
      case 438 :
960
        if ((entire_insn & 0xffffffff) == 0x6ff6fff0)
961
          { itype = SH64_MEDIA_INSN_SYNCO; goto extract_sfmt_nop; }
962
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
963
      case 439 :
964
        if ((entire_insn & 0xffffffff) == 0x6ff7fff0)
965
          { itype = SH64_MEDIA_INSN_SLEEP; goto extract_sfmt_nop; }
966
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
967
      case 447 :
968
        if ((entire_insn & 0xfc0ffc0f) == 0x6c0ffc00)
969
          { itype = SH64_MEDIA_INSN_PUTCON; goto extract_sfmt_putcon; }
970
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
971
      case 512 : /* fall through */
972
      case 513 : /* fall through */
973
      case 514 : /* fall through */
974
      case 515 : /* fall through */
975
      case 516 : /* fall through */
976
      case 517 : /* fall through */
977
      case 518 : /* fall through */
978
      case 519 : /* fall through */
979
      case 520 : /* fall through */
980
      case 521 : /* fall through */
981
      case 522 : /* fall through */
982
      case 523 : /* fall through */
983
      case 524 : /* fall through */
984
      case 525 : /* fall through */
985
      case 526 : /* fall through */
986
      case 527 :
987
        if ((entire_insn & 0xfc00000f) == 0x80000000)
988
          { itype = SH64_MEDIA_INSN_LDB; goto extract_sfmt_ldb; }
989
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
990
      case 528 : /* fall through */
991
      case 529 : /* fall through */
992
      case 530 : /* fall through */
993
      case 531 : /* fall through */
994
      case 532 : /* fall through */
995
      case 533 : /* fall through */
996
      case 534 : /* fall through */
997
      case 535 : /* fall through */
998
      case 536 : /* fall through */
999
      case 537 : /* fall through */
1000
      case 538 : /* fall through */
1001
      case 539 : /* fall through */
1002
      case 540 : /* fall through */
1003
      case 541 : /* fall through */
1004
      case 542 : /* fall through */
1005
      case 543 :
1006
        if ((entire_insn & 0xfc00000f) == 0x84000000)
1007
          { itype = SH64_MEDIA_INSN_LDW; goto extract_sfmt_lduw; }
1008
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1009
      case 544 : /* fall through */
1010
      case 545 : /* fall through */
1011
      case 546 : /* fall through */
1012
      case 547 : /* fall through */
1013
      case 548 : /* fall through */
1014
      case 549 : /* fall through */
1015
      case 550 : /* fall through */
1016
      case 551 : /* fall through */
1017
      case 552 : /* fall through */
1018
      case 553 : /* fall through */
1019
      case 554 : /* fall through */
1020
      case 555 : /* fall through */
1021
      case 556 : /* fall through */
1022
      case 557 : /* fall through */
1023
      case 558 : /* fall through */
1024
      case 559 :
1025
        if ((entire_insn & 0xfc00000f) == 0x88000000)
1026
          { itype = SH64_MEDIA_INSN_LDL; goto extract_sfmt_ldl; }
1027
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1028
      case 560 : /* fall through */
1029
      case 561 : /* fall through */
1030
      case 562 : /* fall through */
1031
      case 563 : /* fall through */
1032
      case 564 : /* fall through */
1033
      case 565 : /* fall through */
1034
      case 566 : /* fall through */
1035
      case 567 : /* fall through */
1036
      case 568 : /* fall through */
1037
      case 569 : /* fall through */
1038
      case 570 : /* fall through */
1039
      case 571 : /* fall through */
1040
      case 572 : /* fall through */
1041
      case 573 : /* fall through */
1042
      case 574 : /* fall through */
1043
      case 575 :
1044
        if ((entire_insn & 0xfc00000f) == 0x8c000000)
1045
          { itype = SH64_MEDIA_INSN_LDQ; goto extract_sfmt_ldq; }
1046
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1047
      case 576 : /* fall through */
1048
      case 577 : /* fall through */
1049
      case 578 : /* fall through */
1050
      case 579 : /* fall through */
1051
      case 580 : /* fall through */
1052
      case 581 : /* fall through */
1053
      case 582 : /* fall through */
1054
      case 583 : /* fall through */
1055
      case 584 : /* fall through */
1056
      case 585 : /* fall through */
1057
      case 586 : /* fall through */
1058
      case 587 : /* fall through */
1059
      case 588 : /* fall through */
1060
      case 589 : /* fall through */
1061
      case 590 : /* fall through */
1062
      case 591 :
1063
        if ((entire_insn & 0xfc00000f) == 0x90000000)
1064
          { itype = SH64_MEDIA_INSN_LDUB; goto extract_sfmt_ldb; }
1065
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1066
      case 592 : /* fall through */
1067
      case 593 : /* fall through */
1068
      case 594 : /* fall through */
1069
      case 595 : /* fall through */
1070
      case 596 : /* fall through */
1071
      case 597 : /* fall through */
1072
      case 598 : /* fall through */
1073
      case 599 : /* fall through */
1074
      case 600 : /* fall through */
1075
      case 601 : /* fall through */
1076
      case 602 : /* fall through */
1077
      case 603 : /* fall through */
1078
      case 604 : /* fall through */
1079
      case 605 : /* fall through */
1080
      case 606 : /* fall through */
1081
      case 607 :
1082
        if ((entire_insn & 0xfc00000f) == 0x94000000)
1083
          { itype = SH64_MEDIA_INSN_FLDS; goto extract_sfmt_flds; }
1084
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1085
      case 608 : /* fall through */
1086
      case 609 : /* fall through */
1087
      case 610 : /* fall through */
1088
      case 611 : /* fall through */
1089
      case 612 : /* fall through */
1090
      case 613 : /* fall through */
1091
      case 614 : /* fall through */
1092
      case 615 : /* fall through */
1093
      case 616 : /* fall through */
1094
      case 617 : /* fall through */
1095
      case 618 : /* fall through */
1096
      case 619 : /* fall through */
1097
      case 620 : /* fall through */
1098
      case 621 : /* fall through */
1099
      case 622 : /* fall through */
1100
      case 623 :
1101
        if ((entire_insn & 0xfc00000f) == 0x98000000)
1102
          { itype = SH64_MEDIA_INSN_FLDP; goto extract_sfmt_fldp; }
1103
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1104
      case 624 : /* fall through */
1105
      case 625 : /* fall through */
1106
      case 626 : /* fall through */
1107
      case 627 : /* fall through */
1108
      case 628 : /* fall through */
1109
      case 629 : /* fall through */
1110
      case 630 : /* fall through */
1111
      case 631 : /* fall through */
1112
      case 632 : /* fall through */
1113
      case 633 : /* fall through */
1114
      case 634 : /* fall through */
1115
      case 635 : /* fall through */
1116
      case 636 : /* fall through */
1117
      case 637 : /* fall through */
1118
      case 638 : /* fall through */
1119
      case 639 :
1120
        if ((entire_insn & 0xfc00000f) == 0x9c000000)
1121
          { itype = SH64_MEDIA_INSN_FLDD; goto extract_sfmt_fldd; }
1122
        itype = SH64_MEDIA_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 :
1139
        if ((entire_insn & 0xfc00000f) == 0xa0000000)
1140
          { itype = SH64_MEDIA_INSN_STB; goto extract_sfmt_stb; }
1141
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1142
      case 656 : /* fall through */
1143
      case 657 : /* fall through */
1144
      case 658 : /* fall through */
1145
      case 659 : /* fall through */
1146
      case 660 : /* fall through */
1147
      case 661 : /* fall through */
1148
      case 662 : /* fall through */
1149
      case 663 : /* fall through */
1150
      case 664 : /* fall through */
1151
      case 665 : /* fall through */
1152
      case 666 : /* fall through */
1153
      case 667 : /* fall through */
1154
      case 668 : /* fall through */
1155
      case 669 : /* fall through */
1156
      case 670 : /* fall through */
1157
      case 671 :
1158
        if ((entire_insn & 0xfc00000f) == 0xa4000000)
1159
          { itype = SH64_MEDIA_INSN_STW; goto extract_sfmt_stw; }
1160
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1161
      case 672 : /* fall through */
1162
      case 673 : /* fall through */
1163
      case 674 : /* fall through */
1164
      case 675 : /* fall through */
1165
      case 676 : /* fall through */
1166
      case 677 : /* fall through */
1167
      case 678 : /* fall through */
1168
      case 679 : /* fall through */
1169
      case 680 : /* fall through */
1170
      case 681 : /* fall through */
1171
      case 682 : /* fall through */
1172
      case 683 : /* fall through */
1173
      case 684 : /* fall through */
1174
      case 685 : /* fall through */
1175
      case 686 : /* fall through */
1176
      case 687 :
1177
        if ((entire_insn & 0xfc00000f) == 0xa8000000)
1178
          { itype = SH64_MEDIA_INSN_STL; goto extract_sfmt_stl; }
1179
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1180
      case 688 : /* fall through */
1181
      case 689 : /* fall through */
1182
      case 690 : /* fall through */
1183
      case 691 : /* fall through */
1184
      case 692 : /* fall through */
1185
      case 693 : /* fall through */
1186
      case 694 : /* fall through */
1187
      case 695 : /* fall through */
1188
      case 696 : /* fall through */
1189
      case 697 : /* fall through */
1190
      case 698 : /* fall through */
1191
      case 699 : /* fall through */
1192
      case 700 : /* fall through */
1193
      case 701 : /* fall through */
1194
      case 702 : /* fall through */
1195
      case 703 :
1196
        if ((entire_insn & 0xfc00000f) == 0xac000000)
1197
          { itype = SH64_MEDIA_INSN_STQ; goto extract_sfmt_stq; }
1198
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1199
      case 704 : /* fall through */
1200
      case 705 : /* fall through */
1201
      case 706 : /* fall through */
1202
      case 707 : /* fall through */
1203
      case 708 : /* fall through */
1204
      case 709 : /* fall through */
1205
      case 710 : /* fall through */
1206
      case 711 : /* fall through */
1207
      case 712 : /* fall through */
1208
      case 713 : /* fall through */
1209
      case 714 : /* fall through */
1210
      case 715 : /* fall through */
1211
      case 716 : /* fall through */
1212
      case 717 : /* fall through */
1213
      case 718 : /* fall through */
1214
      case 719 :
1215
        if ((entire_insn & 0xfc00000f) == 0xb0000000)
1216
          { itype = SH64_MEDIA_INSN_LDUW; goto extract_sfmt_lduw; }
1217
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1218
      case 720 : /* fall through */
1219
      case 721 : /* fall through */
1220
      case 722 : /* fall through */
1221
      case 723 : /* fall through */
1222
      case 724 : /* fall through */
1223
      case 725 : /* fall through */
1224
      case 726 : /* fall through */
1225
      case 727 : /* fall through */
1226
      case 728 : /* fall through */
1227
      case 729 : /* fall through */
1228
      case 730 : /* fall through */
1229
      case 731 : /* fall through */
1230
      case 732 : /* fall through */
1231
      case 733 : /* fall through */
1232
      case 734 : /* fall through */
1233
      case 735 :
1234
        if ((entire_insn & 0xfc00000f) == 0xb4000000)
1235
          { itype = SH64_MEDIA_INSN_FSTS; goto extract_sfmt_fsts; }
1236
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1237
      case 736 : /* fall through */
1238
      case 737 : /* fall through */
1239
      case 738 : /* fall through */
1240
      case 739 : /* fall through */
1241
      case 740 : /* fall through */
1242
      case 741 : /* fall through */
1243
      case 742 : /* fall through */
1244
      case 743 : /* fall through */
1245
      case 744 : /* fall through */
1246
      case 745 : /* fall through */
1247
      case 746 : /* fall through */
1248
      case 747 : /* fall through */
1249
      case 748 : /* fall through */
1250
      case 749 : /* fall through */
1251
      case 750 : /* fall through */
1252
      case 751 :
1253
        if ((entire_insn & 0xfc00000f) == 0xb8000000)
1254
          { itype = SH64_MEDIA_INSN_FSTP; goto extract_sfmt_fldp; }
1255
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1256
      case 752 : /* fall through */
1257
      case 753 : /* fall through */
1258
      case 754 : /* fall through */
1259
      case 755 : /* fall through */
1260
      case 756 : /* fall through */
1261
      case 757 : /* fall through */
1262
      case 758 : /* fall through */
1263
      case 759 : /* fall through */
1264
      case 760 : /* fall through */
1265
      case 761 : /* fall through */
1266
      case 762 : /* fall through */
1267
      case 763 : /* fall through */
1268
      case 764 : /* fall through */
1269
      case 765 : /* fall through */
1270
      case 766 : /* fall through */
1271
      case 767 :
1272
        if ((entire_insn & 0xfc00000f) == 0xbc000000)
1273
          { itype = SH64_MEDIA_INSN_FSTD; goto extract_sfmt_fstd; }
1274
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1275
      case 770 :
1276
        if ((entire_insn & 0xfc0f000f) == 0xc0020000)
1277
          { itype = SH64_MEDIA_INSN_LDLOL; goto extract_sfmt_ldlol; }
1278
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1279
      case 771 :
1280
        if ((entire_insn & 0xfc0f000f) == 0xc0030000)
1281
          { itype = SH64_MEDIA_INSN_LDLOQ; goto extract_sfmt_ldloq; }
1282
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1283
      case 774 :
1284
        if ((entire_insn & 0xfc0f000f) == 0xc0060000)
1285
          { itype = SH64_MEDIA_INSN_LDHIL; goto extract_sfmt_ldhil; }
1286
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1287
      case 775 :
1288
        if ((entire_insn & 0xfc0f000f) == 0xc0070000)
1289
          { itype = SH64_MEDIA_INSN_LDHIQ; goto extract_sfmt_ldhiq; }
1290
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1291
      case 783 :
1292
        if ((entire_insn & 0xfc0f000f) == 0xc00f0000)
1293
          { itype = SH64_MEDIA_INSN_GETCFG; goto extract_sfmt_getcfg; }
1294
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1295
      case 784 :
1296
        if ((entire_insn & 0xfc0f000f) == 0xc4000000)
1297
          { itype = SH64_MEDIA_INSN_SHLLIL; goto extract_sfmt_sharil; }
1298
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1299
      case 785 :
1300
        if ((entire_insn & 0xfc0f000f) == 0xc4010000)
1301
          { itype = SH64_MEDIA_INSN_SHLLI; goto extract_sfmt_shari; }
1302
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1303
      case 786 :
1304
        if ((entire_insn & 0xfc0f000f) == 0xc4020000)
1305
          { itype = SH64_MEDIA_INSN_SHLRIL; goto extract_sfmt_sharil; }
1306
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1307
      case 787 :
1308
        if ((entire_insn & 0xfc0f000f) == 0xc4030000)
1309
          { itype = SH64_MEDIA_INSN_SHLRI; goto extract_sfmt_shari; }
1310
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1311
      case 790 :
1312
        if ((entire_insn & 0xfc0f000f) == 0xc4060000)
1313
          { itype = SH64_MEDIA_INSN_SHARIL; goto extract_sfmt_sharil; }
1314
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1315
      case 791 :
1316
        if ((entire_insn & 0xfc0f000f) == 0xc4070000)
1317
          { itype = SH64_MEDIA_INSN_SHARI; goto extract_sfmt_shari; }
1318
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1319
      case 797 :
1320
        if ((entire_insn & 0xfc0f000f) == 0xc40d0000)
1321
          { itype = SH64_MEDIA_INSN_XORI; goto extract_sfmt_xori; }
1322
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1323
      case 800 : /* fall through */
1324
      case 801 : /* fall through */
1325
      case 802 : /* fall through */
1326
      case 803 : /* fall through */
1327
      case 804 : /* fall through */
1328
      case 805 : /* fall through */
1329
      case 806 : /* fall through */
1330
      case 807 : /* fall through */
1331
      case 808 : /* fall through */
1332
      case 809 : /* fall through */
1333
      case 810 : /* fall through */
1334
      case 811 : /* fall through */
1335
      case 812 : /* fall through */
1336
      case 813 : /* fall through */
1337
      case 814 : /* fall through */
1338
      case 815 :
1339
        if ((entire_insn & 0xfc00000f) == 0xc8000000)
1340
          { itype = SH64_MEDIA_INSN_SHORI; goto extract_sfmt_shori; }
1341
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1342
      case 816 : /* fall through */
1343
      case 817 : /* fall through */
1344
      case 818 : /* fall through */
1345
      case 819 : /* fall through */
1346
      case 820 : /* fall through */
1347
      case 821 : /* fall through */
1348
      case 822 : /* fall through */
1349
      case 823 : /* fall through */
1350
      case 824 : /* fall through */
1351
      case 825 : /* fall through */
1352
      case 826 : /* fall through */
1353
      case 827 : /* fall through */
1354
      case 828 : /* fall through */
1355
      case 829 : /* fall through */
1356
      case 830 : /* fall through */
1357
      case 831 :
1358
        if ((entire_insn & 0xfc00000f) == 0xcc000000)
1359
          { itype = SH64_MEDIA_INSN_MOVI; goto extract_sfmt_movi; }
1360
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1361
      case 832 : /* fall through */
1362
      case 833 : /* fall through */
1363
      case 834 : /* fall through */
1364
      case 835 : /* fall through */
1365
      case 836 : /* fall through */
1366
      case 837 : /* fall through */
1367
      case 838 : /* fall through */
1368
      case 839 : /* fall through */
1369
      case 840 : /* fall through */
1370
      case 841 : /* fall through */
1371
      case 842 : /* fall through */
1372
      case 843 : /* fall through */
1373
      case 844 : /* fall through */
1374
      case 845 : /* fall through */
1375
      case 846 : /* fall through */
1376
      case 847 :
1377
        if ((entire_insn & 0xfc00000f) == 0xd0000000)
1378
          { itype = SH64_MEDIA_INSN_ADDI; goto extract_sfmt_addi; }
1379
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1380
      case 848 : /* fall through */
1381
      case 849 : /* fall through */
1382
      case 850 : /* fall through */
1383
      case 851 : /* fall through */
1384
      case 852 : /* fall through */
1385
      case 853 : /* fall through */
1386
      case 854 : /* fall through */
1387
      case 855 : /* fall through */
1388
      case 856 : /* fall through */
1389
      case 857 : /* fall through */
1390
      case 858 : /* fall through */
1391
      case 859 : /* fall through */
1392
      case 860 : /* fall through */
1393
      case 861 : /* fall through */
1394
      case 862 : /* fall through */
1395
      case 863 :
1396
        if ((entire_insn & 0xfc00000f) == 0xd4000000)
1397
          { itype = SH64_MEDIA_INSN_ADDIL; goto extract_sfmt_addi; }
1398
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1399
      case 864 : /* fall through */
1400
      case 865 : /* fall through */
1401
      case 866 : /* fall through */
1402
      case 867 : /* fall through */
1403
      case 868 : /* fall through */
1404
      case 869 : /* fall through */
1405
      case 870 : /* fall through */
1406
      case 871 : /* fall through */
1407
      case 872 : /* fall through */
1408
      case 873 : /* fall through */
1409
      case 874 : /* fall through */
1410
      case 875 : /* fall through */
1411
      case 876 : /* fall through */
1412
      case 877 : /* fall through */
1413
      case 878 : /* fall through */
1414
      case 879 :
1415
        if ((entire_insn & 0xfc00000f) == 0xd8000000)
1416
          { itype = SH64_MEDIA_INSN_ANDI; goto extract_sfmt_addi; }
1417
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1418
      case 880 : /* fall through */
1419
      case 881 : /* fall through */
1420
      case 882 : /* fall through */
1421
      case 883 : /* fall through */
1422
      case 884 : /* fall through */
1423
      case 885 : /* fall through */
1424
      case 886 : /* fall through */
1425
      case 887 : /* fall through */
1426
      case 888 : /* fall through */
1427
      case 889 : /* fall through */
1428
      case 890 : /* fall through */
1429
      case 891 : /* fall through */
1430
      case 892 : /* fall through */
1431
      case 893 : /* fall through */
1432
      case 894 : /* fall through */
1433
      case 895 :
1434
        if ((entire_insn & 0xfc00000f) == 0xdc000000)
1435
          { itype = SH64_MEDIA_INSN_ORI; goto extract_sfmt_ori; }
1436
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1437
      case 897 :
1438
        if ((entire_insn & 0xfc0ffc0f) == 0xe001fc00)
1439
          { itype = SH64_MEDIA_INSN_PREFI; goto extract_sfmt_alloco; }
1440
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1441
      case 898 :
1442
        if ((entire_insn & 0xfc0f000f) == 0xe0020000)
1443
          { itype = SH64_MEDIA_INSN_STLOL; goto extract_sfmt_stlol; }
1444
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1445
      case 899 :
1446
        if ((entire_insn & 0xfc0f000f) == 0xe0030000)
1447
          { itype = SH64_MEDIA_INSN_STLOQ; goto extract_sfmt_stloq; }
1448
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1449
      case 900 :
1450
        if ((entire_insn & 0xfc0f03ff) == 0xe00403f0)
1451
          { itype = SH64_MEDIA_INSN_ALLOCO; goto extract_sfmt_alloco; }
1452
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1453
      case 901 :
1454
        if ((entire_insn & 0xfc0f03ff) == 0xe00503f0)
1455
          { itype = SH64_MEDIA_INSN_ICBI; goto extract_sfmt_alloco; }
1456
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1457
      case 902 :
1458
        if ((entire_insn & 0xfc0f000f) == 0xe0060000)
1459
          { itype = SH64_MEDIA_INSN_STHIL; goto extract_sfmt_sthil; }
1460
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1461
      case 903 :
1462
        if ((entire_insn & 0xfc0f000f) == 0xe0070000)
1463
          { itype = SH64_MEDIA_INSN_STHIQ; goto extract_sfmt_sthiq; }
1464
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1465
      case 904 :
1466
        if ((entire_insn & 0xfc0f03ff) == 0xe00803f0)
1467
          { itype = SH64_MEDIA_INSN_OCBP; goto extract_sfmt_alloco; }
1468
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1469
      case 905 :
1470
        if ((entire_insn & 0xfc0f03ff) == 0xe00903f0)
1471
          { itype = SH64_MEDIA_INSN_OCBI; goto extract_sfmt_alloco; }
1472
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1473
      case 908 :
1474
        if ((entire_insn & 0xfc0f03ff) == 0xe00c03f0)
1475
          { itype = SH64_MEDIA_INSN_OCBWB; goto extract_sfmt_alloco; }
1476
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1477
      case 911 :
1478
        if ((entire_insn & 0xfc0f000f) == 0xe00f0000)
1479
          { itype = SH64_MEDIA_INSN_PUTCFG; goto extract_sfmt_putcfg; }
1480
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1481
      case 913 :
1482
        if ((entire_insn & 0xfc0f018f) == 0xe4010000)
1483
          { itype = SH64_MEDIA_INSN_BEQI; goto extract_sfmt_beqi; }
1484
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1485
      case 917 :
1486
        if ((entire_insn & 0xfc0f018f) == 0xe4050000)
1487
          { itype = SH64_MEDIA_INSN_BNEI; goto extract_sfmt_beqi; }
1488
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1489
      case 928 : /* fall through */
1490
      case 929 : /* fall through */
1491
      case 930 : /* fall through */
1492
      case 931 : /* fall through */
1493
      case 932 : /* fall through */
1494
      case 933 : /* fall through */
1495
      case 934 : /* fall through */
1496
      case 935 : /* fall through */
1497
      case 936 : /* fall through */
1498
      case 937 : /* fall through */
1499
      case 938 : /* fall through */
1500
      case 939 : /* fall through */
1501
      case 940 : /* fall through */
1502
      case 941 : /* fall through */
1503
      case 942 : /* fall through */
1504
      case 943 :
1505
        if ((entire_insn & 0xfc00018f) == 0xe8000000)
1506
          { itype = SH64_MEDIA_INSN_PTA; goto extract_sfmt_pta; }
1507
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1508
      case 944 : /* fall through */
1509
      case 945 : /* fall through */
1510
      case 946 : /* fall through */
1511
      case 947 : /* fall through */
1512
      case 948 : /* fall through */
1513
      case 949 : /* fall through */
1514
      case 950 : /* fall through */
1515
      case 951 : /* fall through */
1516
      case 952 : /* fall through */
1517
      case 953 : /* fall through */
1518
      case 954 : /* fall through */
1519
      case 955 : /* fall through */
1520
      case 956 : /* fall through */
1521
      case 957 : /* fall through */
1522
      case 958 : /* fall through */
1523
      case 959 :
1524
        if ((entire_insn & 0xfc00018f) == 0xec000000)
1525
          { itype = SH64_MEDIA_INSN_PTB; goto extract_sfmt_pta; }
1526
        itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1527
      default : itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
1528
      }
1529
    }
1530
  }
1531
 
1532
  /* The instruction has been decoded, now extract the fields.  */
1533
 
1534
 extract_sfmt_empty:
1535
  {
1536
    const IDESC *idesc = &sh64_media_insn_data[itype];
1537
#define FLD(f) abuf->fields.fmt_empty.f
1538
 
1539
 
1540
  /* Record the fields for the semantic handler.  */
1541
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
1542
 
1543
#undef FLD
1544
    return idesc;
1545
  }
1546
 
1547
 extract_sfmt_add:
1548
  {
1549
    const IDESC *idesc = &sh64_media_insn_data[itype];
1550
    CGEN_INSN_INT insn = entire_insn;
1551
#define FLD(f) abuf->fields.sfmt_add.f
1552
    UINT f_left;
1553
    UINT f_right;
1554
    UINT f_dest;
1555
 
1556
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
1557
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
1558
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
1559
 
1560
  /* Record the fields for the semantic handler.  */
1561
  FLD (f_left) = f_left;
1562
  FLD (f_right) = f_right;
1563
  FLD (f_dest) = f_dest;
1564
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
1565
 
1566
#if WITH_PROFILE_MODEL_P
1567
  /* Record the fields for profiling.  */
1568
  if (PROFILE_MODEL_P (current_cpu))
1569
    {
1570
      FLD (in_rm) = f_left;
1571
      FLD (in_rn) = f_right;
1572
      FLD (out_rd) = f_dest;
1573
    }
1574
#endif
1575
#undef FLD
1576
    return idesc;
1577
  }
1578
 
1579
 extract_sfmt_addi:
1580
  {
1581
    const IDESC *idesc = &sh64_media_insn_data[itype];
1582
    CGEN_INSN_INT insn = entire_insn;
1583
#define FLD(f) abuf->fields.sfmt_addi.f
1584
    UINT f_left;
1585
    INT f_disp10;
1586
    UINT f_dest;
1587
 
1588
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
1589
    f_disp10 = EXTRACT_MSB0_INT (insn, 32, 12, 10);
1590
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
1591
 
1592
  /* Record the fields for the semantic handler.  */
1593
  FLD (f_disp10) = f_disp10;
1594
  FLD (f_left) = f_left;
1595
  FLD (f_dest) = f_dest;
1596
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi", "f_disp10 0x%x", 'x', f_disp10, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
1597
 
1598
#if WITH_PROFILE_MODEL_P
1599
  /* Record the fields for profiling.  */
1600
  if (PROFILE_MODEL_P (current_cpu))
1601
    {
1602
      FLD (in_rm) = f_left;
1603
      FLD (out_rd) = f_dest;
1604
    }
1605
#endif
1606
#undef FLD
1607
    return idesc;
1608
  }
1609
 
1610
 extract_sfmt_alloco:
1611
  {
1612
    const IDESC *idesc = &sh64_media_insn_data[itype];
1613
    CGEN_INSN_INT insn = entire_insn;
1614
#define FLD(f) abuf->fields.sfmt_xori.f
1615
    UINT f_left;
1616
 
1617
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
1618
 
1619
  /* Record the fields for the semantic handler.  */
1620
  FLD (f_left) = f_left;
1621
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_alloco", "f_left 0x%x", 'x', f_left, (char *) 0));
1622
 
1623
#if WITH_PROFILE_MODEL_P
1624
  /* Record the fields for profiling.  */
1625
  if (PROFILE_MODEL_P (current_cpu))
1626
    {
1627
      FLD (in_rm) = f_left;
1628
      FLD (out_rm) = f_left;
1629
    }
1630
#endif
1631
#undef FLD
1632
    return idesc;
1633
  }
1634
 
1635
 extract_sfmt_beq:
1636
  {
1637
    const IDESC *idesc = &sh64_media_insn_data[itype];
1638
    CGEN_INSN_INT insn = entire_insn;
1639
#define FLD(f) abuf->fields.sfmt_beq.f
1640
    UINT f_left;
1641
    UINT f_right;
1642
    UINT f_tra;
1643
 
1644
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
1645
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
1646
    f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
1647
 
1648
  /* Record the fields for the semantic handler.  */
1649
  FLD (f_left) = f_left;
1650
  FLD (f_right) = f_right;
1651
  FLD (f_tra) = f_tra;
1652
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_beq", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_tra 0x%x", 'x', f_tra, (char *) 0));
1653
 
1654
#if WITH_PROFILE_MODEL_P
1655
  /* Record the fields for profiling.  */
1656
  if (PROFILE_MODEL_P (current_cpu))
1657
    {
1658
      FLD (in_rm) = f_left;
1659
      FLD (in_rn) = f_right;
1660
      FLD (in_tra) = f_tra;
1661
    }
1662
#endif
1663
#undef FLD
1664
    return idesc;
1665
  }
1666
 
1667
 extract_sfmt_beqi:
1668
  {
1669
    const IDESC *idesc = &sh64_media_insn_data[itype];
1670
    CGEN_INSN_INT insn = entire_insn;
1671
#define FLD(f) abuf->fields.sfmt_beqi.f
1672
    UINT f_left;
1673
    INT f_imm6;
1674
    UINT f_tra;
1675
 
1676
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
1677
    f_imm6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
1678
    f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
1679
 
1680
  /* Record the fields for the semantic handler.  */
1681
  FLD (f_imm6) = f_imm6;
1682
  FLD (f_left) = f_left;
1683
  FLD (f_tra) = f_tra;
1684
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_beqi", "f_imm6 0x%x", 'x', f_imm6, "f_left 0x%x", 'x', f_left, "f_tra 0x%x", 'x', f_tra, (char *) 0));
1685
 
1686
#if WITH_PROFILE_MODEL_P
1687
  /* Record the fields for profiling.  */
1688
  if (PROFILE_MODEL_P (current_cpu))
1689
    {
1690
      FLD (in_rm) = f_left;
1691
      FLD (in_tra) = f_tra;
1692
    }
1693
#endif
1694
#undef FLD
1695
    return idesc;
1696
  }
1697
 
1698
 extract_sfmt_blink:
1699
  {
1700
    const IDESC *idesc = &sh64_media_insn_data[itype];
1701
    CGEN_INSN_INT insn = entire_insn;
1702
#define FLD(f) abuf->fields.sfmt_blink.f
1703
    UINT f_trb;
1704
    UINT f_dest;
1705
 
1706
    f_trb = EXTRACT_MSB0_UINT (insn, 32, 9, 3);
1707
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
1708
 
1709
  /* Record the fields for the semantic handler.  */
1710
  FLD (f_dest) = f_dest;
1711
  FLD (f_trb) = f_trb;
1712
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_blink", "f_dest 0x%x", 'x', f_dest, "f_trb 0x%x", 'x', f_trb, (char *) 0));
1713
 
1714
#if WITH_PROFILE_MODEL_P
1715
  /* Record the fields for profiling.  */
1716
  if (PROFILE_MODEL_P (current_cpu))
1717
    {
1718
      FLD (in_trb) = f_trb;
1719
      FLD (out_rd) = f_dest;
1720
    }
1721
#endif
1722
#undef FLD
1723
    return idesc;
1724
  }
1725
 
1726
 extract_sfmt_brk:
1727
  {
1728
    const IDESC *idesc = &sh64_media_insn_data[itype];
1729
#define FLD(f) abuf->fields.fmt_empty.f
1730
 
1731
 
1732
  /* Record the fields for the semantic handler.  */
1733
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_brk", (char *) 0));
1734
 
1735
#if WITH_PROFILE_MODEL_P
1736
  /* Record the fields for profiling.  */
1737
  if (PROFILE_MODEL_P (current_cpu))
1738
    {
1739
    }
1740
#endif
1741
#undef FLD
1742
    return idesc;
1743
  }
1744
 
1745
 extract_sfmt_byterev:
1746
  {
1747
    const IDESC *idesc = &sh64_media_insn_data[itype];
1748
    CGEN_INSN_INT insn = entire_insn;
1749
#define FLD(f) abuf->fields.sfmt_xori.f
1750
    UINT f_left;
1751
    UINT f_dest;
1752
 
1753
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
1754
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
1755
 
1756
  /* Record the fields for the semantic handler.  */
1757
  FLD (f_left) = f_left;
1758
  FLD (f_dest) = f_dest;
1759
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_byterev", "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
1760
 
1761
#if WITH_PROFILE_MODEL_P
1762
  /* Record the fields for profiling.  */
1763
  if (PROFILE_MODEL_P (current_cpu))
1764
    {
1765
      FLD (in_rm) = f_left;
1766
      FLD (out_rd) = f_dest;
1767
    }
1768
#endif
1769
#undef FLD
1770
    return idesc;
1771
  }
1772
 
1773
 extract_sfmt_cmveq:
1774
  {
1775
    const IDESC *idesc = &sh64_media_insn_data[itype];
1776
    CGEN_INSN_INT insn = entire_insn;
1777
#define FLD(f) abuf->fields.sfmt_add.f
1778
    UINT f_left;
1779
    UINT f_right;
1780
    UINT f_dest;
1781
 
1782
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
1783
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
1784
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
1785
 
1786
  /* Record the fields for the semantic handler.  */
1787
  FLD (f_left) = f_left;
1788
  FLD (f_right) = f_right;
1789
  FLD (f_dest) = f_dest;
1790
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmveq", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
1791
 
1792
#if WITH_PROFILE_MODEL_P
1793
  /* Record the fields for profiling.  */
1794
  if (PROFILE_MODEL_P (current_cpu))
1795
    {
1796
      FLD (in_rm) = f_left;
1797
      FLD (in_rn) = f_right;
1798
      FLD (out_rd) = f_dest;
1799
    }
1800
#endif
1801
#undef FLD
1802
    return idesc;
1803
  }
1804
 
1805
 extract_sfmt_fabsd:
1806
  {
1807
    const IDESC *idesc = &sh64_media_insn_data[itype];
1808
    CGEN_INSN_INT insn = entire_insn;
1809
#define FLD(f) abuf->fields.sfmt_fabsd.f
1810
    UINT f_left;
1811
    UINT f_right;
1812
    UINT f_dest;
1813
    UINT f_left_right;
1814
 
1815
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
1816
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
1817
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
1818
  f_left_right = f_left;
1819
 
1820
  /* Record the fields for the semantic handler.  */
1821
  FLD (f_left_right) = f_left_right;
1822
  FLD (f_dest) = f_dest;
1823
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fabsd", "f_left_right 0x%x", 'x', f_left_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
1824
 
1825
#if WITH_PROFILE_MODEL_P
1826
  /* Record the fields for profiling.  */
1827
  if (PROFILE_MODEL_P (current_cpu))
1828
    {
1829
      FLD (in_drgh) = f_left_right;
1830
      FLD (out_drf) = f_dest;
1831
    }
1832
#endif
1833
#undef FLD
1834
    return idesc;
1835
  }
1836
 
1837
 extract_sfmt_fabss:
1838
  {
1839
    const IDESC *idesc = &sh64_media_insn_data[itype];
1840
    CGEN_INSN_INT insn = entire_insn;
1841
#define FLD(f) abuf->fields.sfmt_fabsd.f
1842
    UINT f_left;
1843
    UINT f_right;
1844
    UINT f_dest;
1845
    UINT f_left_right;
1846
 
1847
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
1848
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
1849
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
1850
  f_left_right = f_left;
1851
 
1852
  /* Record the fields for the semantic handler.  */
1853
  FLD (f_left_right) = f_left_right;
1854
  FLD (f_dest) = f_dest;
1855
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fabss", "f_left_right 0x%x", 'x', f_left_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
1856
 
1857
#if WITH_PROFILE_MODEL_P
1858
  /* Record the fields for profiling.  */
1859
  if (PROFILE_MODEL_P (current_cpu))
1860
    {
1861
      FLD (in_frgh) = f_left_right;
1862
      FLD (out_frf) = f_dest;
1863
    }
1864
#endif
1865
#undef FLD
1866
    return idesc;
1867
  }
1868
 
1869
 extract_sfmt_faddd:
1870
  {
1871
    const IDESC *idesc = &sh64_media_insn_data[itype];
1872
    CGEN_INSN_INT insn = entire_insn;
1873
#define FLD(f) abuf->fields.sfmt_add.f
1874
    UINT f_left;
1875
    UINT f_right;
1876
    UINT f_dest;
1877
 
1878
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
1879
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
1880
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
1881
 
1882
  /* Record the fields for the semantic handler.  */
1883
  FLD (f_left) = f_left;
1884
  FLD (f_right) = f_right;
1885
  FLD (f_dest) = f_dest;
1886
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_faddd", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
1887
 
1888
#if WITH_PROFILE_MODEL_P
1889
  /* Record the fields for profiling.  */
1890
  if (PROFILE_MODEL_P (current_cpu))
1891
    {
1892
      FLD (in_drg) = f_left;
1893
      FLD (in_drh) = f_right;
1894
      FLD (out_drf) = f_dest;
1895
    }
1896
#endif
1897
#undef FLD
1898
    return idesc;
1899
  }
1900
 
1901
 extract_sfmt_fadds:
1902
  {
1903
    const IDESC *idesc = &sh64_media_insn_data[itype];
1904
    CGEN_INSN_INT insn = entire_insn;
1905
#define FLD(f) abuf->fields.sfmt_add.f
1906
    UINT f_left;
1907
    UINT f_right;
1908
    UINT f_dest;
1909
 
1910
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
1911
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
1912
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
1913
 
1914
  /* Record the fields for the semantic handler.  */
1915
  FLD (f_left) = f_left;
1916
  FLD (f_right) = f_right;
1917
  FLD (f_dest) = f_dest;
1918
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fadds", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
1919
 
1920
#if WITH_PROFILE_MODEL_P
1921
  /* Record the fields for profiling.  */
1922
  if (PROFILE_MODEL_P (current_cpu))
1923
    {
1924
      FLD (in_frg) = f_left;
1925
      FLD (in_frh) = f_right;
1926
      FLD (out_frf) = f_dest;
1927
    }
1928
#endif
1929
#undef FLD
1930
    return idesc;
1931
  }
1932
 
1933
 extract_sfmt_fcmpeqd:
1934
  {
1935
    const IDESC *idesc = &sh64_media_insn_data[itype];
1936
    CGEN_INSN_INT insn = entire_insn;
1937
#define FLD(f) abuf->fields.sfmt_add.f
1938
    UINT f_left;
1939
    UINT f_right;
1940
    UINT f_dest;
1941
 
1942
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
1943
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
1944
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
1945
 
1946
  /* Record the fields for the semantic handler.  */
1947
  FLD (f_left) = f_left;
1948
  FLD (f_right) = f_right;
1949
  FLD (f_dest) = f_dest;
1950
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fcmpeqd", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
1951
 
1952
#if WITH_PROFILE_MODEL_P
1953
  /* Record the fields for profiling.  */
1954
  if (PROFILE_MODEL_P (current_cpu))
1955
    {
1956
      FLD (in_drg) = f_left;
1957
      FLD (in_drh) = f_right;
1958
      FLD (out_rd) = f_dest;
1959
    }
1960
#endif
1961
#undef FLD
1962
    return idesc;
1963
  }
1964
 
1965
 extract_sfmt_fcmpeqs:
1966
  {
1967
    const IDESC *idesc = &sh64_media_insn_data[itype];
1968
    CGEN_INSN_INT insn = entire_insn;
1969
#define FLD(f) abuf->fields.sfmt_add.f
1970
    UINT f_left;
1971
    UINT f_right;
1972
    UINT f_dest;
1973
 
1974
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
1975
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
1976
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
1977
 
1978
  /* Record the fields for the semantic handler.  */
1979
  FLD (f_left) = f_left;
1980
  FLD (f_right) = f_right;
1981
  FLD (f_dest) = f_dest;
1982
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fcmpeqs", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
1983
 
1984
#if WITH_PROFILE_MODEL_P
1985
  /* Record the fields for profiling.  */
1986
  if (PROFILE_MODEL_P (current_cpu))
1987
    {
1988
      FLD (in_frg) = f_left;
1989
      FLD (in_frh) = f_right;
1990
      FLD (out_rd) = f_dest;
1991
    }
1992
#endif
1993
#undef FLD
1994
    return idesc;
1995
  }
1996
 
1997
 extract_sfmt_fcnvds:
1998
  {
1999
    const IDESC *idesc = &sh64_media_insn_data[itype];
2000
    CGEN_INSN_INT insn = entire_insn;
2001
#define FLD(f) abuf->fields.sfmt_fabsd.f
2002
    UINT f_left;
2003
    UINT f_right;
2004
    UINT f_dest;
2005
    UINT f_left_right;
2006
 
2007
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2008
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
2009
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2010
  f_left_right = f_left;
2011
 
2012
  /* Record the fields for the semantic handler.  */
2013
  FLD (f_left_right) = f_left_right;
2014
  FLD (f_dest) = f_dest;
2015
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fcnvds", "f_left_right 0x%x", 'x', f_left_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2016
 
2017
#if WITH_PROFILE_MODEL_P
2018
  /* Record the fields for profiling.  */
2019
  if (PROFILE_MODEL_P (current_cpu))
2020
    {
2021
      FLD (in_drgh) = f_left_right;
2022
      FLD (out_frf) = f_dest;
2023
    }
2024
#endif
2025
#undef FLD
2026
    return idesc;
2027
  }
2028
 
2029
 extract_sfmt_fcnvsd:
2030
  {
2031
    const IDESC *idesc = &sh64_media_insn_data[itype];
2032
    CGEN_INSN_INT insn = entire_insn;
2033
#define FLD(f) abuf->fields.sfmt_fabsd.f
2034
    UINT f_left;
2035
    UINT f_right;
2036
    UINT f_dest;
2037
    UINT f_left_right;
2038
 
2039
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2040
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
2041
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2042
  f_left_right = f_left;
2043
 
2044
  /* Record the fields for the semantic handler.  */
2045
  FLD (f_left_right) = f_left_right;
2046
  FLD (f_dest) = f_dest;
2047
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fcnvsd", "f_left_right 0x%x", 'x', f_left_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2048
 
2049
#if WITH_PROFILE_MODEL_P
2050
  /* Record the fields for profiling.  */
2051
  if (PROFILE_MODEL_P (current_cpu))
2052
    {
2053
      FLD (in_frgh) = f_left_right;
2054
      FLD (out_drf) = f_dest;
2055
    }
2056
#endif
2057
#undef FLD
2058
    return idesc;
2059
  }
2060
 
2061
 extract_sfmt_fgetscr:
2062
  {
2063
    const IDESC *idesc = &sh64_media_insn_data[itype];
2064
    CGEN_INSN_INT insn = entire_insn;
2065
#define FLD(f) abuf->fields.sfmt_shori.f
2066
    UINT f_dest;
2067
 
2068
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2069
 
2070
  /* Record the fields for the semantic handler.  */
2071
  FLD (f_dest) = f_dest;
2072
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fgetscr", "f_dest 0x%x", 'x', f_dest, (char *) 0));
2073
 
2074
#if WITH_PROFILE_MODEL_P
2075
  /* Record the fields for profiling.  */
2076
  if (PROFILE_MODEL_P (current_cpu))
2077
    {
2078
      FLD (out_frf) = f_dest;
2079
    }
2080
#endif
2081
#undef FLD
2082
    return idesc;
2083
  }
2084
 
2085
 extract_sfmt_fiprs:
2086
  {
2087
    const IDESC *idesc = &sh64_media_insn_data[itype];
2088
    CGEN_INSN_INT insn = entire_insn;
2089
#define FLD(f) abuf->fields.sfmt_add.f
2090
    UINT f_left;
2091
    UINT f_right;
2092
    UINT f_dest;
2093
 
2094
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2095
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
2096
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2097
 
2098
  /* Record the fields for the semantic handler.  */
2099
  FLD (f_left) = f_left;
2100
  FLD (f_right) = f_right;
2101
  FLD (f_dest) = f_dest;
2102
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fiprs", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2103
 
2104
#if WITH_PROFILE_MODEL_P
2105
  /* Record the fields for profiling.  */
2106
  if (PROFILE_MODEL_P (current_cpu))
2107
    {
2108
      FLD (in_fvg) = f_left;
2109
      FLD (in_fvh) = f_right;
2110
      FLD (out_frf) = f_dest;
2111
      FLD (out_fvg) = f_left;
2112
      FLD (out_fvh) = f_right;
2113
    }
2114
#endif
2115
#undef FLD
2116
    return idesc;
2117
  }
2118
 
2119
 extract_sfmt_fldd:
2120
  {
2121
    const IDESC *idesc = &sh64_media_insn_data[itype];
2122
    CGEN_INSN_INT insn = entire_insn;
2123
#define FLD(f) abuf->fields.sfmt_fldd.f
2124
    UINT f_left;
2125
    SI f_disp10x8;
2126
    UINT f_dest;
2127
 
2128
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2129
    f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
2130
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2131
 
2132
  /* Record the fields for the semantic handler.  */
2133
  FLD (f_disp10x8) = f_disp10x8;
2134
  FLD (f_left) = f_left;
2135
  FLD (f_dest) = f_dest;
2136
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fldd", "f_disp10x8 0x%x", 'x', f_disp10x8, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2137
 
2138
#if WITH_PROFILE_MODEL_P
2139
  /* Record the fields for profiling.  */
2140
  if (PROFILE_MODEL_P (current_cpu))
2141
    {
2142
      FLD (in_rm) = f_left;
2143
      FLD (out_drf) = f_dest;
2144
    }
2145
#endif
2146
#undef FLD
2147
    return idesc;
2148
  }
2149
 
2150
 extract_sfmt_fldp:
2151
  {
2152
    const IDESC *idesc = &sh64_media_insn_data[itype];
2153
    CGEN_INSN_INT insn = entire_insn;
2154
#define FLD(f) abuf->fields.sfmt_fldd.f
2155
    UINT f_left;
2156
    SI f_disp10x8;
2157
    UINT f_dest;
2158
 
2159
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2160
    f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
2161
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2162
 
2163
  /* Record the fields for the semantic handler.  */
2164
  FLD (f_disp10x8) = f_disp10x8;
2165
  FLD (f_dest) = f_dest;
2166
  FLD (f_left) = f_left;
2167
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fldp", "f_disp10x8 0x%x", 'x', f_disp10x8, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
2168
 
2169
#if WITH_PROFILE_MODEL_P
2170
  /* Record the fields for profiling.  */
2171
  if (PROFILE_MODEL_P (current_cpu))
2172
    {
2173
      FLD (in_fpf) = f_dest;
2174
      FLD (in_rm) = f_left;
2175
      FLD (out_fpf) = f_dest;
2176
    }
2177
#endif
2178
#undef FLD
2179
    return idesc;
2180
  }
2181
 
2182
 extract_sfmt_flds:
2183
  {
2184
    const IDESC *idesc = &sh64_media_insn_data[itype];
2185
    CGEN_INSN_INT insn = entire_insn;
2186
#define FLD(f) abuf->fields.sfmt_flds.f
2187
    UINT f_left;
2188
    SI f_disp10x4;
2189
    UINT f_dest;
2190
 
2191
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2192
    f_disp10x4 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (2));
2193
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2194
 
2195
  /* Record the fields for the semantic handler.  */
2196
  FLD (f_disp10x4) = f_disp10x4;
2197
  FLD (f_left) = f_left;
2198
  FLD (f_dest) = f_dest;
2199
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_flds", "f_disp10x4 0x%x", 'x', f_disp10x4, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2200
 
2201
#if WITH_PROFILE_MODEL_P
2202
  /* Record the fields for profiling.  */
2203
  if (PROFILE_MODEL_P (current_cpu))
2204
    {
2205
      FLD (in_rm) = f_left;
2206
      FLD (out_frf) = f_dest;
2207
    }
2208
#endif
2209
#undef FLD
2210
    return idesc;
2211
  }
2212
 
2213
 extract_sfmt_fldxd:
2214
  {
2215
    const IDESC *idesc = &sh64_media_insn_data[itype];
2216
    CGEN_INSN_INT insn = entire_insn;
2217
#define FLD(f) abuf->fields.sfmt_add.f
2218
    UINT f_left;
2219
    UINT f_right;
2220
    UINT f_dest;
2221
 
2222
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2223
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
2224
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2225
 
2226
  /* Record the fields for the semantic handler.  */
2227
  FLD (f_left) = f_left;
2228
  FLD (f_right) = f_right;
2229
  FLD (f_dest) = f_dest;
2230
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fldxd", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2231
 
2232
#if WITH_PROFILE_MODEL_P
2233
  /* Record the fields for profiling.  */
2234
  if (PROFILE_MODEL_P (current_cpu))
2235
    {
2236
      FLD (in_rm) = f_left;
2237
      FLD (in_rn) = f_right;
2238
      FLD (out_drf) = f_dest;
2239
    }
2240
#endif
2241
#undef FLD
2242
    return idesc;
2243
  }
2244
 
2245
 extract_sfmt_fldxp:
2246
  {
2247
    const IDESC *idesc = &sh64_media_insn_data[itype];
2248
    CGEN_INSN_INT insn = entire_insn;
2249
#define FLD(f) abuf->fields.sfmt_add.f
2250
    UINT f_left;
2251
    UINT f_right;
2252
    UINT f_dest;
2253
 
2254
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2255
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
2256
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2257
 
2258
  /* Record the fields for the semantic handler.  */
2259
  FLD (f_dest) = f_dest;
2260
  FLD (f_left) = f_left;
2261
  FLD (f_right) = f_right;
2262
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fldxp", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
2263
 
2264
#if WITH_PROFILE_MODEL_P
2265
  /* Record the fields for profiling.  */
2266
  if (PROFILE_MODEL_P (current_cpu))
2267
    {
2268
      FLD (in_fpf) = f_dest;
2269
      FLD (in_rm) = f_left;
2270
      FLD (in_rn) = f_right;
2271
      FLD (out_fpf) = f_dest;
2272
    }
2273
#endif
2274
#undef FLD
2275
    return idesc;
2276
  }
2277
 
2278
 extract_sfmt_fldxs:
2279
  {
2280
    const IDESC *idesc = &sh64_media_insn_data[itype];
2281
    CGEN_INSN_INT insn = entire_insn;
2282
#define FLD(f) abuf->fields.sfmt_add.f
2283
    UINT f_left;
2284
    UINT f_right;
2285
    UINT f_dest;
2286
 
2287
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2288
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
2289
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2290
 
2291
  /* Record the fields for the semantic handler.  */
2292
  FLD (f_left) = f_left;
2293
  FLD (f_right) = f_right;
2294
  FLD (f_dest) = f_dest;
2295
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fldxs", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2296
 
2297
#if WITH_PROFILE_MODEL_P
2298
  /* Record the fields for profiling.  */
2299
  if (PROFILE_MODEL_P (current_cpu))
2300
    {
2301
      FLD (in_rm) = f_left;
2302
      FLD (in_rn) = f_right;
2303
      FLD (out_frf) = f_dest;
2304
    }
2305
#endif
2306
#undef FLD
2307
    return idesc;
2308
  }
2309
 
2310
 extract_sfmt_fmacs:
2311
  {
2312
    const IDESC *idesc = &sh64_media_insn_data[itype];
2313
    CGEN_INSN_INT insn = entire_insn;
2314
#define FLD(f) abuf->fields.sfmt_add.f
2315
    UINT f_left;
2316
    UINT f_right;
2317
    UINT f_dest;
2318
 
2319
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2320
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
2321
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2322
 
2323
  /* Record the fields for the semantic handler.  */
2324
  FLD (f_dest) = f_dest;
2325
  FLD (f_left) = f_left;
2326
  FLD (f_right) = f_right;
2327
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmacs", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
2328
 
2329
#if WITH_PROFILE_MODEL_P
2330
  /* Record the fields for profiling.  */
2331
  if (PROFILE_MODEL_P (current_cpu))
2332
    {
2333
      FLD (in_frf) = f_dest;
2334
      FLD (in_frg) = f_left;
2335
      FLD (in_frh) = f_right;
2336
      FLD (out_frf) = f_dest;
2337
    }
2338
#endif
2339
#undef FLD
2340
    return idesc;
2341
  }
2342
 
2343
 extract_sfmt_fmovdq:
2344
  {
2345
    const IDESC *idesc = &sh64_media_insn_data[itype];
2346
    CGEN_INSN_INT insn = entire_insn;
2347
#define FLD(f) abuf->fields.sfmt_fabsd.f
2348
    UINT f_left;
2349
    UINT f_right;
2350
    UINT f_dest;
2351
    UINT f_left_right;
2352
 
2353
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2354
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
2355
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2356
  f_left_right = f_left;
2357
 
2358
  /* Record the fields for the semantic handler.  */
2359
  FLD (f_left_right) = f_left_right;
2360
  FLD (f_dest) = f_dest;
2361
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmovdq", "f_left_right 0x%x", 'x', f_left_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2362
 
2363
#if WITH_PROFILE_MODEL_P
2364
  /* Record the fields for profiling.  */
2365
  if (PROFILE_MODEL_P (current_cpu))
2366
    {
2367
      FLD (in_drgh) = f_left_right;
2368
      FLD (out_rd) = f_dest;
2369
    }
2370
#endif
2371
#undef FLD
2372
    return idesc;
2373
  }
2374
 
2375
 extract_sfmt_fmovls:
2376
  {
2377
    const IDESC *idesc = &sh64_media_insn_data[itype];
2378
    CGEN_INSN_INT insn = entire_insn;
2379
#define FLD(f) abuf->fields.sfmt_xori.f
2380
    UINT f_left;
2381
    UINT f_dest;
2382
 
2383
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2384
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2385
 
2386
  /* Record the fields for the semantic handler.  */
2387
  FLD (f_left) = f_left;
2388
  FLD (f_dest) = f_dest;
2389
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmovls", "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2390
 
2391
#if WITH_PROFILE_MODEL_P
2392
  /* Record the fields for profiling.  */
2393
  if (PROFILE_MODEL_P (current_cpu))
2394
    {
2395
      FLD (in_rm) = f_left;
2396
      FLD (out_frf) = f_dest;
2397
    }
2398
#endif
2399
#undef FLD
2400
    return idesc;
2401
  }
2402
 
2403
 extract_sfmt_fmovqd:
2404
  {
2405
    const IDESC *idesc = &sh64_media_insn_data[itype];
2406
    CGEN_INSN_INT insn = entire_insn;
2407
#define FLD(f) abuf->fields.sfmt_xori.f
2408
    UINT f_left;
2409
    UINT f_dest;
2410
 
2411
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2412
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2413
 
2414
  /* Record the fields for the semantic handler.  */
2415
  FLD (f_left) = f_left;
2416
  FLD (f_dest) = f_dest;
2417
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmovqd", "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2418
 
2419
#if WITH_PROFILE_MODEL_P
2420
  /* Record the fields for profiling.  */
2421
  if (PROFILE_MODEL_P (current_cpu))
2422
    {
2423
      FLD (in_rm) = f_left;
2424
      FLD (out_drf) = f_dest;
2425
    }
2426
#endif
2427
#undef FLD
2428
    return idesc;
2429
  }
2430
 
2431
 extract_sfmt_fmovsl:
2432
  {
2433
    const IDESC *idesc = &sh64_media_insn_data[itype];
2434
    CGEN_INSN_INT insn = entire_insn;
2435
#define FLD(f) abuf->fields.sfmt_fabsd.f
2436
    UINT f_left;
2437
    UINT f_right;
2438
    UINT f_dest;
2439
    UINT f_left_right;
2440
 
2441
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2442
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
2443
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2444
  f_left_right = f_left;
2445
 
2446
  /* Record the fields for the semantic handler.  */
2447
  FLD (f_left_right) = f_left_right;
2448
  FLD (f_dest) = f_dest;
2449
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmovsl", "f_left_right 0x%x", 'x', f_left_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2450
 
2451
#if WITH_PROFILE_MODEL_P
2452
  /* Record the fields for profiling.  */
2453
  if (PROFILE_MODEL_P (current_cpu))
2454
    {
2455
      FLD (in_frgh) = f_left_right;
2456
      FLD (out_rd) = f_dest;
2457
    }
2458
#endif
2459
#undef FLD
2460
    return idesc;
2461
  }
2462
 
2463
 extract_sfmt_fputscr:
2464
  {
2465
    const IDESC *idesc = &sh64_media_insn_data[itype];
2466
    CGEN_INSN_INT insn = entire_insn;
2467
#define FLD(f) abuf->fields.sfmt_fabsd.f
2468
    UINT f_left;
2469
    UINT f_right;
2470
    UINT f_left_right;
2471
 
2472
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2473
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
2474
  f_left_right = f_left;
2475
 
2476
  /* Record the fields for the semantic handler.  */
2477
  FLD (f_left_right) = f_left_right;
2478
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fputscr", "f_left_right 0x%x", 'x', f_left_right, (char *) 0));
2479
 
2480
#if WITH_PROFILE_MODEL_P
2481
  /* Record the fields for profiling.  */
2482
  if (PROFILE_MODEL_P (current_cpu))
2483
    {
2484
      FLD (in_frgh) = f_left_right;
2485
    }
2486
#endif
2487
#undef FLD
2488
    return idesc;
2489
  }
2490
 
2491
 extract_sfmt_fstd:
2492
  {
2493
    const IDESC *idesc = &sh64_media_insn_data[itype];
2494
    CGEN_INSN_INT insn = entire_insn;
2495
#define FLD(f) abuf->fields.sfmt_fldd.f
2496
    UINT f_left;
2497
    SI f_disp10x8;
2498
    UINT f_dest;
2499
 
2500
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2501
    f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
2502
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2503
 
2504
  /* Record the fields for the semantic handler.  */
2505
  FLD (f_disp10x8) = f_disp10x8;
2506
  FLD (f_dest) = f_dest;
2507
  FLD (f_left) = f_left;
2508
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fstd", "f_disp10x8 0x%x", 'x', f_disp10x8, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
2509
 
2510
#if WITH_PROFILE_MODEL_P
2511
  /* Record the fields for profiling.  */
2512
  if (PROFILE_MODEL_P (current_cpu))
2513
    {
2514
      FLD (in_drf) = f_dest;
2515
      FLD (in_rm) = f_left;
2516
    }
2517
#endif
2518
#undef FLD
2519
    return idesc;
2520
  }
2521
 
2522
 extract_sfmt_fsts:
2523
  {
2524
    const IDESC *idesc = &sh64_media_insn_data[itype];
2525
    CGEN_INSN_INT insn = entire_insn;
2526
#define FLD(f) abuf->fields.sfmt_flds.f
2527
    UINT f_left;
2528
    SI f_disp10x4;
2529
    UINT f_dest;
2530
 
2531
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2532
    f_disp10x4 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (2));
2533
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2534
 
2535
  /* Record the fields for the semantic handler.  */
2536
  FLD (f_disp10x4) = f_disp10x4;
2537
  FLD (f_dest) = f_dest;
2538
  FLD (f_left) = f_left;
2539
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fsts", "f_disp10x4 0x%x", 'x', f_disp10x4, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
2540
 
2541
#if WITH_PROFILE_MODEL_P
2542
  /* Record the fields for profiling.  */
2543
  if (PROFILE_MODEL_P (current_cpu))
2544
    {
2545
      FLD (in_frf) = f_dest;
2546
      FLD (in_rm) = f_left;
2547
    }
2548
#endif
2549
#undef FLD
2550
    return idesc;
2551
  }
2552
 
2553
 extract_sfmt_fstxd:
2554
  {
2555
    const IDESC *idesc = &sh64_media_insn_data[itype];
2556
    CGEN_INSN_INT insn = entire_insn;
2557
#define FLD(f) abuf->fields.sfmt_add.f
2558
    UINT f_left;
2559
    UINT f_right;
2560
    UINT f_dest;
2561
 
2562
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2563
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
2564
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2565
 
2566
  /* Record the fields for the semantic handler.  */
2567
  FLD (f_dest) = f_dest;
2568
  FLD (f_left) = f_left;
2569
  FLD (f_right) = f_right;
2570
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fstxd", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
2571
 
2572
#if WITH_PROFILE_MODEL_P
2573
  /* Record the fields for profiling.  */
2574
  if (PROFILE_MODEL_P (current_cpu))
2575
    {
2576
      FLD (in_drf) = f_dest;
2577
      FLD (in_rm) = f_left;
2578
      FLD (in_rn) = f_right;
2579
    }
2580
#endif
2581
#undef FLD
2582
    return idesc;
2583
  }
2584
 
2585
 extract_sfmt_fstxs:
2586
  {
2587
    const IDESC *idesc = &sh64_media_insn_data[itype];
2588
    CGEN_INSN_INT insn = entire_insn;
2589
#define FLD(f) abuf->fields.sfmt_add.f
2590
    UINT f_left;
2591
    UINT f_right;
2592
    UINT f_dest;
2593
 
2594
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2595
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
2596
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2597
 
2598
  /* Record the fields for the semantic handler.  */
2599
  FLD (f_dest) = f_dest;
2600
  FLD (f_left) = f_left;
2601
  FLD (f_right) = f_right;
2602
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fstxs", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
2603
 
2604
#if WITH_PROFILE_MODEL_P
2605
  /* Record the fields for profiling.  */
2606
  if (PROFILE_MODEL_P (current_cpu))
2607
    {
2608
      FLD (in_frf) = f_dest;
2609
      FLD (in_rm) = f_left;
2610
      FLD (in_rn) = f_right;
2611
    }
2612
#endif
2613
#undef FLD
2614
    return idesc;
2615
  }
2616
 
2617
 extract_sfmt_ftrvs:
2618
  {
2619
    const IDESC *idesc = &sh64_media_insn_data[itype];
2620
    CGEN_INSN_INT insn = entire_insn;
2621
#define FLD(f) abuf->fields.sfmt_add.f
2622
    UINT f_left;
2623
    UINT f_right;
2624
    UINT f_dest;
2625
 
2626
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2627
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
2628
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2629
 
2630
  /* Record the fields for the semantic handler.  */
2631
  FLD (f_dest) = f_dest;
2632
  FLD (f_left) = f_left;
2633
  FLD (f_right) = f_right;
2634
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ftrvs", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
2635
 
2636
#if WITH_PROFILE_MODEL_P
2637
  /* Record the fields for profiling.  */
2638
  if (PROFILE_MODEL_P (current_cpu))
2639
    {
2640
      FLD (in_fvf) = f_dest;
2641
      FLD (in_fvh) = f_right;
2642
      FLD (in_mtrxg) = f_left;
2643
      FLD (out_fvf) = f_dest;
2644
      FLD (out_fvh) = f_right;
2645
      FLD (out_mtrxg) = f_left;
2646
    }
2647
#endif
2648
#undef FLD
2649
    return idesc;
2650
  }
2651
 
2652
 extract_sfmt_getcfg:
2653
  {
2654
    const IDESC *idesc = &sh64_media_insn_data[itype];
2655
    CGEN_INSN_INT insn = entire_insn;
2656
#define FLD(f) abuf->fields.sfmt_getcfg.f
2657
    UINT f_left;
2658
    INT f_disp6;
2659
    UINT f_dest;
2660
 
2661
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2662
    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
2663
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2664
 
2665
  /* Record the fields for the semantic handler.  */
2666
  FLD (f_disp6) = f_disp6;
2667
  FLD (f_left) = f_left;
2668
  FLD (f_dest) = f_dest;
2669
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_getcfg", "f_disp6 0x%x", 'x', f_disp6, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2670
 
2671
#if WITH_PROFILE_MODEL_P
2672
  /* Record the fields for profiling.  */
2673
  if (PROFILE_MODEL_P (current_cpu))
2674
    {
2675
      FLD (in_rm) = f_left;
2676
      FLD (out_rd) = f_dest;
2677
    }
2678
#endif
2679
#undef FLD
2680
    return idesc;
2681
  }
2682
 
2683
 extract_sfmt_getcon:
2684
  {
2685
    const IDESC *idesc = &sh64_media_insn_data[itype];
2686
    CGEN_INSN_INT insn = entire_insn;
2687
#define FLD(f) abuf->fields.sfmt_xori.f
2688
    UINT f_left;
2689
    UINT f_dest;
2690
 
2691
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2692
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2693
 
2694
  /* Record the fields for the semantic handler.  */
2695
  FLD (f_left) = f_left;
2696
  FLD (f_dest) = f_dest;
2697
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_getcon", "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2698
 
2699
#if WITH_PROFILE_MODEL_P
2700
  /* Record the fields for profiling.  */
2701
  if (PROFILE_MODEL_P (current_cpu))
2702
    {
2703
      FLD (out_rd) = f_dest;
2704
    }
2705
#endif
2706
#undef FLD
2707
    return idesc;
2708
  }
2709
 
2710
 extract_sfmt_gettr:
2711
  {
2712
    const IDESC *idesc = &sh64_media_insn_data[itype];
2713
    CGEN_INSN_INT insn = entire_insn;
2714
#define FLD(f) abuf->fields.sfmt_blink.f
2715
    UINT f_trb;
2716
    UINT f_dest;
2717
 
2718
    f_trb = EXTRACT_MSB0_UINT (insn, 32, 9, 3);
2719
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2720
 
2721
  /* Record the fields for the semantic handler.  */
2722
  FLD (f_trb) = f_trb;
2723
  FLD (f_dest) = f_dest;
2724
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_gettr", "f_trb 0x%x", 'x', f_trb, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2725
 
2726
#if WITH_PROFILE_MODEL_P
2727
  /* Record the fields for profiling.  */
2728
  if (PROFILE_MODEL_P (current_cpu))
2729
    {
2730
      FLD (in_trb) = f_trb;
2731
      FLD (out_rd) = f_dest;
2732
    }
2733
#endif
2734
#undef FLD
2735
    return idesc;
2736
  }
2737
 
2738
 extract_sfmt_ldb:
2739
  {
2740
    const IDESC *idesc = &sh64_media_insn_data[itype];
2741
    CGEN_INSN_INT insn = entire_insn;
2742
#define FLD(f) abuf->fields.sfmt_addi.f
2743
    UINT f_left;
2744
    INT f_disp10;
2745
    UINT f_dest;
2746
 
2747
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2748
    f_disp10 = EXTRACT_MSB0_INT (insn, 32, 12, 10);
2749
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2750
 
2751
  /* Record the fields for the semantic handler.  */
2752
  FLD (f_disp10) = f_disp10;
2753
  FLD (f_left) = f_left;
2754
  FLD (f_dest) = f_dest;
2755
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldb", "f_disp10 0x%x", 'x', f_disp10, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2756
 
2757
#if WITH_PROFILE_MODEL_P
2758
  /* Record the fields for profiling.  */
2759
  if (PROFILE_MODEL_P (current_cpu))
2760
    {
2761
      FLD (in_rm) = f_left;
2762
      FLD (out_rd) = f_dest;
2763
    }
2764
#endif
2765
#undef FLD
2766
    return idesc;
2767
  }
2768
 
2769
 extract_sfmt_ldl:
2770
  {
2771
    const IDESC *idesc = &sh64_media_insn_data[itype];
2772
    CGEN_INSN_INT insn = entire_insn;
2773
#define FLD(f) abuf->fields.sfmt_flds.f
2774
    UINT f_left;
2775
    SI f_disp10x4;
2776
    UINT f_dest;
2777
 
2778
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2779
    f_disp10x4 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (2));
2780
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2781
 
2782
  /* Record the fields for the semantic handler.  */
2783
  FLD (f_disp10x4) = f_disp10x4;
2784
  FLD (f_left) = f_left;
2785
  FLD (f_dest) = f_dest;
2786
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldl", "f_disp10x4 0x%x", 'x', f_disp10x4, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2787
 
2788
#if WITH_PROFILE_MODEL_P
2789
  /* Record the fields for profiling.  */
2790
  if (PROFILE_MODEL_P (current_cpu))
2791
    {
2792
      FLD (in_rm) = f_left;
2793
      FLD (out_rd) = f_dest;
2794
    }
2795
#endif
2796
#undef FLD
2797
    return idesc;
2798
  }
2799
 
2800
 extract_sfmt_ldq:
2801
  {
2802
    const IDESC *idesc = &sh64_media_insn_data[itype];
2803
    CGEN_INSN_INT insn = entire_insn;
2804
#define FLD(f) abuf->fields.sfmt_fldd.f
2805
    UINT f_left;
2806
    SI f_disp10x8;
2807
    UINT f_dest;
2808
 
2809
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2810
    f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
2811
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2812
 
2813
  /* Record the fields for the semantic handler.  */
2814
  FLD (f_disp10x8) = f_disp10x8;
2815
  FLD (f_left) = f_left;
2816
  FLD (f_dest) = f_dest;
2817
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldq", "f_disp10x8 0x%x", 'x', f_disp10x8, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2818
 
2819
#if WITH_PROFILE_MODEL_P
2820
  /* Record the fields for profiling.  */
2821
  if (PROFILE_MODEL_P (current_cpu))
2822
    {
2823
      FLD (in_rm) = f_left;
2824
      FLD (out_rd) = f_dest;
2825
    }
2826
#endif
2827
#undef FLD
2828
    return idesc;
2829
  }
2830
 
2831
 extract_sfmt_lduw:
2832
  {
2833
    const IDESC *idesc = &sh64_media_insn_data[itype];
2834
    CGEN_INSN_INT insn = entire_insn;
2835
#define FLD(f) abuf->fields.sfmt_lduw.f
2836
    UINT f_left;
2837
    SI f_disp10x2;
2838
    UINT f_dest;
2839
 
2840
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2841
    f_disp10x2 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (1));
2842
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2843
 
2844
  /* Record the fields for the semantic handler.  */
2845
  FLD (f_disp10x2) = f_disp10x2;
2846
  FLD (f_left) = f_left;
2847
  FLD (f_dest) = f_dest;
2848
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lduw", "f_disp10x2 0x%x", 'x', f_disp10x2, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2849
 
2850
#if WITH_PROFILE_MODEL_P
2851
  /* Record the fields for profiling.  */
2852
  if (PROFILE_MODEL_P (current_cpu))
2853
    {
2854
      FLD (in_rm) = f_left;
2855
      FLD (out_rd) = f_dest;
2856
    }
2857
#endif
2858
#undef FLD
2859
    return idesc;
2860
  }
2861
 
2862
 extract_sfmt_ldhil:
2863
  {
2864
    const IDESC *idesc = &sh64_media_insn_data[itype];
2865
    CGEN_INSN_INT insn = entire_insn;
2866
#define FLD(f) abuf->fields.sfmt_getcfg.f
2867
    UINT f_left;
2868
    INT f_disp6;
2869
    UINT f_dest;
2870
 
2871
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2872
    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
2873
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2874
 
2875
  /* Record the fields for the semantic handler.  */
2876
  FLD (f_disp6) = f_disp6;
2877
  FLD (f_left) = f_left;
2878
  FLD (f_dest) = f_dest;
2879
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldhil", "f_disp6 0x%x", 'x', f_disp6, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2880
 
2881
#if WITH_PROFILE_MODEL_P
2882
  /* Record the fields for profiling.  */
2883
  if (PROFILE_MODEL_P (current_cpu))
2884
    {
2885
      FLD (in_rm) = f_left;
2886
      FLD (out_rd) = f_dest;
2887
    }
2888
#endif
2889
#undef FLD
2890
    return idesc;
2891
  }
2892
 
2893
 extract_sfmt_ldhiq:
2894
  {
2895
    const IDESC *idesc = &sh64_media_insn_data[itype];
2896
    CGEN_INSN_INT insn = entire_insn;
2897
#define FLD(f) abuf->fields.sfmt_getcfg.f
2898
    UINT f_left;
2899
    INT f_disp6;
2900
    UINT f_dest;
2901
 
2902
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2903
    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
2904
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2905
 
2906
  /* Record the fields for the semantic handler.  */
2907
  FLD (f_disp6) = f_disp6;
2908
  FLD (f_left) = f_left;
2909
  FLD (f_dest) = f_dest;
2910
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldhiq", "f_disp6 0x%x", 'x', f_disp6, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2911
 
2912
#if WITH_PROFILE_MODEL_P
2913
  /* Record the fields for profiling.  */
2914
  if (PROFILE_MODEL_P (current_cpu))
2915
    {
2916
      FLD (in_rm) = f_left;
2917
      FLD (out_rd) = f_dest;
2918
    }
2919
#endif
2920
#undef FLD
2921
    return idesc;
2922
  }
2923
 
2924
 extract_sfmt_ldlol:
2925
  {
2926
    const IDESC *idesc = &sh64_media_insn_data[itype];
2927
    CGEN_INSN_INT insn = entire_insn;
2928
#define FLD(f) abuf->fields.sfmt_getcfg.f
2929
    UINT f_left;
2930
    INT f_disp6;
2931
    UINT f_dest;
2932
 
2933
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2934
    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
2935
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2936
 
2937
  /* Record the fields for the semantic handler.  */
2938
  FLD (f_disp6) = f_disp6;
2939
  FLD (f_left) = f_left;
2940
  FLD (f_dest) = f_dest;
2941
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldlol", "f_disp6 0x%x", 'x', f_disp6, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2942
 
2943
#if WITH_PROFILE_MODEL_P
2944
  /* Record the fields for profiling.  */
2945
  if (PROFILE_MODEL_P (current_cpu))
2946
    {
2947
      FLD (in_rm) = f_left;
2948
      FLD (out_rd) = f_dest;
2949
    }
2950
#endif
2951
#undef FLD
2952
    return idesc;
2953
  }
2954
 
2955
 extract_sfmt_ldloq:
2956
  {
2957
    const IDESC *idesc = &sh64_media_insn_data[itype];
2958
    CGEN_INSN_INT insn = entire_insn;
2959
#define FLD(f) abuf->fields.sfmt_getcfg.f
2960
    UINT f_left;
2961
    INT f_disp6;
2962
    UINT f_dest;
2963
 
2964
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2965
    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
2966
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2967
 
2968
  /* Record the fields for the semantic handler.  */
2969
  FLD (f_disp6) = f_disp6;
2970
  FLD (f_left) = f_left;
2971
  FLD (f_dest) = f_dest;
2972
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldloq", "f_disp6 0x%x", 'x', f_disp6, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
2973
 
2974
#if WITH_PROFILE_MODEL_P
2975
  /* Record the fields for profiling.  */
2976
  if (PROFILE_MODEL_P (current_cpu))
2977
    {
2978
      FLD (in_rm) = f_left;
2979
      FLD (out_rd) = f_dest;
2980
    }
2981
#endif
2982
#undef FLD
2983
    return idesc;
2984
  }
2985
 
2986
 extract_sfmt_ldxb:
2987
  {
2988
    const IDESC *idesc = &sh64_media_insn_data[itype];
2989
    CGEN_INSN_INT insn = entire_insn;
2990
#define FLD(f) abuf->fields.sfmt_add.f
2991
    UINT f_left;
2992
    UINT f_right;
2993
    UINT f_dest;
2994
 
2995
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
2996
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
2997
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
2998
 
2999
  /* Record the fields for the semantic handler.  */
3000
  FLD (f_left) = f_left;
3001
  FLD (f_right) = f_right;
3002
  FLD (f_dest) = f_dest;
3003
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldxb", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
3004
 
3005
#if WITH_PROFILE_MODEL_P
3006
  /* Record the fields for profiling.  */
3007
  if (PROFILE_MODEL_P (current_cpu))
3008
    {
3009
      FLD (in_rm) = f_left;
3010
      FLD (in_rn) = f_right;
3011
      FLD (out_rd) = f_dest;
3012
    }
3013
#endif
3014
#undef FLD
3015
    return idesc;
3016
  }
3017
 
3018
 extract_sfmt_ldxl:
3019
  {
3020
    const IDESC *idesc = &sh64_media_insn_data[itype];
3021
    CGEN_INSN_INT insn = entire_insn;
3022
#define FLD(f) abuf->fields.sfmt_add.f
3023
    UINT f_left;
3024
    UINT f_right;
3025
    UINT f_dest;
3026
 
3027
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3028
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3029
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3030
 
3031
  /* Record the fields for the semantic handler.  */
3032
  FLD (f_left) = f_left;
3033
  FLD (f_right) = f_right;
3034
  FLD (f_dest) = f_dest;
3035
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldxl", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
3036
 
3037
#if WITH_PROFILE_MODEL_P
3038
  /* Record the fields for profiling.  */
3039
  if (PROFILE_MODEL_P (current_cpu))
3040
    {
3041
      FLD (in_rm) = f_left;
3042
      FLD (in_rn) = f_right;
3043
      FLD (out_rd) = f_dest;
3044
    }
3045
#endif
3046
#undef FLD
3047
    return idesc;
3048
  }
3049
 
3050
 extract_sfmt_ldxq:
3051
  {
3052
    const IDESC *idesc = &sh64_media_insn_data[itype];
3053
    CGEN_INSN_INT insn = entire_insn;
3054
#define FLD(f) abuf->fields.sfmt_add.f
3055
    UINT f_left;
3056
    UINT f_right;
3057
    UINT f_dest;
3058
 
3059
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3060
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3061
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3062
 
3063
  /* Record the fields for the semantic handler.  */
3064
  FLD (f_left) = f_left;
3065
  FLD (f_right) = f_right;
3066
  FLD (f_dest) = f_dest;
3067
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldxq", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
3068
 
3069
#if WITH_PROFILE_MODEL_P
3070
  /* Record the fields for profiling.  */
3071
  if (PROFILE_MODEL_P (current_cpu))
3072
    {
3073
      FLD (in_rm) = f_left;
3074
      FLD (in_rn) = f_right;
3075
      FLD (out_rd) = f_dest;
3076
    }
3077
#endif
3078
#undef FLD
3079
    return idesc;
3080
  }
3081
 
3082
 extract_sfmt_ldxub:
3083
  {
3084
    const IDESC *idesc = &sh64_media_insn_data[itype];
3085
    CGEN_INSN_INT insn = entire_insn;
3086
#define FLD(f) abuf->fields.sfmt_add.f
3087
    UINT f_left;
3088
    UINT f_right;
3089
    UINT f_dest;
3090
 
3091
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3092
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3093
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3094
 
3095
  /* Record the fields for the semantic handler.  */
3096
  FLD (f_left) = f_left;
3097
  FLD (f_right) = f_right;
3098
  FLD (f_dest) = f_dest;
3099
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldxub", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
3100
 
3101
#if WITH_PROFILE_MODEL_P
3102
  /* Record the fields for profiling.  */
3103
  if (PROFILE_MODEL_P (current_cpu))
3104
    {
3105
      FLD (in_rm) = f_left;
3106
      FLD (in_rn) = f_right;
3107
      FLD (out_rd) = f_dest;
3108
    }
3109
#endif
3110
#undef FLD
3111
    return idesc;
3112
  }
3113
 
3114
 extract_sfmt_ldxuw:
3115
  {
3116
    const IDESC *idesc = &sh64_media_insn_data[itype];
3117
    CGEN_INSN_INT insn = entire_insn;
3118
#define FLD(f) abuf->fields.sfmt_add.f
3119
    UINT f_left;
3120
    UINT f_right;
3121
    UINT f_dest;
3122
 
3123
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3124
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3125
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3126
 
3127
  /* Record the fields for the semantic handler.  */
3128
  FLD (f_left) = f_left;
3129
  FLD (f_right) = f_right;
3130
  FLD (f_dest) = f_dest;
3131
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldxuw", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
3132
 
3133
#if WITH_PROFILE_MODEL_P
3134
  /* Record the fields for profiling.  */
3135
  if (PROFILE_MODEL_P (current_cpu))
3136
    {
3137
      FLD (in_rm) = f_left;
3138
      FLD (in_rn) = f_right;
3139
      FLD (out_rd) = f_dest;
3140
    }
3141
#endif
3142
#undef FLD
3143
    return idesc;
3144
  }
3145
 
3146
 extract_sfmt_ldxw:
3147
  {
3148
    const IDESC *idesc = &sh64_media_insn_data[itype];
3149
    CGEN_INSN_INT insn = entire_insn;
3150
#define FLD(f) abuf->fields.sfmt_add.f
3151
    UINT f_left;
3152
    UINT f_right;
3153
    UINT f_dest;
3154
 
3155
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3156
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3157
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3158
 
3159
  /* Record the fields for the semantic handler.  */
3160
  FLD (f_left) = f_left;
3161
  FLD (f_right) = f_right;
3162
  FLD (f_dest) = f_dest;
3163
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldxw", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
3164
 
3165
#if WITH_PROFILE_MODEL_P
3166
  /* Record the fields for profiling.  */
3167
  if (PROFILE_MODEL_P (current_cpu))
3168
    {
3169
      FLD (in_rm) = f_left;
3170
      FLD (in_rn) = f_right;
3171
      FLD (out_rd) = f_dest;
3172
    }
3173
#endif
3174
#undef FLD
3175
    return idesc;
3176
  }
3177
 
3178
 extract_sfmt_mcmv:
3179
  {
3180
    const IDESC *idesc = &sh64_media_insn_data[itype];
3181
    CGEN_INSN_INT insn = entire_insn;
3182
#define FLD(f) abuf->fields.sfmt_add.f
3183
    UINT f_left;
3184
    UINT f_right;
3185
    UINT f_dest;
3186
 
3187
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3188
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3189
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3190
 
3191
  /* Record the fields for the semantic handler.  */
3192
  FLD (f_dest) = f_dest;
3193
  FLD (f_left) = f_left;
3194
  FLD (f_right) = f_right;
3195
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mcmv", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
3196
 
3197
#if WITH_PROFILE_MODEL_P
3198
  /* Record the fields for profiling.  */
3199
  if (PROFILE_MODEL_P (current_cpu))
3200
    {
3201
      FLD (in_rd) = f_dest;
3202
      FLD (in_rm) = f_left;
3203
      FLD (in_rn) = f_right;
3204
      FLD (out_rd) = f_dest;
3205
    }
3206
#endif
3207
#undef FLD
3208
    return idesc;
3209
  }
3210
 
3211
 extract_sfmt_movi:
3212
  {
3213
    const IDESC *idesc = &sh64_media_insn_data[itype];
3214
    CGEN_INSN_INT insn = entire_insn;
3215
#define FLD(f) abuf->fields.sfmt_movi.f
3216
    INT f_imm16;
3217
    UINT f_dest;
3218
 
3219
    f_imm16 = EXTRACT_MSB0_INT (insn, 32, 6, 16);
3220
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3221
 
3222
  /* Record the fields for the semantic handler.  */
3223
  FLD (f_imm16) = f_imm16;
3224
  FLD (f_dest) = f_dest;
3225
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movi", "f_imm16 0x%x", 'x', f_imm16, "f_dest 0x%x", 'x', f_dest, (char *) 0));
3226
 
3227
#if WITH_PROFILE_MODEL_P
3228
  /* Record the fields for profiling.  */
3229
  if (PROFILE_MODEL_P (current_cpu))
3230
    {
3231
      FLD (out_rd) = f_dest;
3232
    }
3233
#endif
3234
#undef FLD
3235
    return idesc;
3236
  }
3237
 
3238
 extract_sfmt_mpermw:
3239
  {
3240
    const IDESC *idesc = &sh64_media_insn_data[itype];
3241
    CGEN_INSN_INT insn = entire_insn;
3242
#define FLD(f) abuf->fields.sfmt_add.f
3243
    UINT f_left;
3244
    UINT f_right;
3245
    UINT f_dest;
3246
 
3247
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3248
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3249
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3250
 
3251
  /* Record the fields for the semantic handler.  */
3252
  FLD (f_left) = f_left;
3253
  FLD (f_right) = f_right;
3254
  FLD (f_dest) = f_dest;
3255
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mpermw", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
3256
 
3257
#if WITH_PROFILE_MODEL_P
3258
  /* Record the fields for profiling.  */
3259
  if (PROFILE_MODEL_P (current_cpu))
3260
    {
3261
      FLD (in_rm) = f_left;
3262
      FLD (in_rn) = f_right;
3263
      FLD (out_rd) = f_dest;
3264
    }
3265
#endif
3266
#undef FLD
3267
    return idesc;
3268
  }
3269
 
3270
 extract_sfmt_nop:
3271
  {
3272
    const IDESC *idesc = &sh64_media_insn_data[itype];
3273
#define FLD(f) abuf->fields.fmt_empty.f
3274
 
3275
 
3276
  /* Record the fields for the semantic handler.  */
3277
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_nop", (char *) 0));
3278
 
3279
#undef FLD
3280
    return idesc;
3281
  }
3282
 
3283
 extract_sfmt_ori:
3284
  {
3285
    const IDESC *idesc = &sh64_media_insn_data[itype];
3286
    CGEN_INSN_INT insn = entire_insn;
3287
#define FLD(f) abuf->fields.sfmt_ori.f
3288
    UINT f_left;
3289
    INT f_imm10;
3290
    UINT f_dest;
3291
 
3292
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3293
    f_imm10 = EXTRACT_MSB0_INT (insn, 32, 12, 10);
3294
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3295
 
3296
  /* Record the fields for the semantic handler.  */
3297
  FLD (f_imm10) = f_imm10;
3298
  FLD (f_left) = f_left;
3299
  FLD (f_dest) = f_dest;
3300
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ori", "f_imm10 0x%x", 'x', f_imm10, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
3301
 
3302
#if WITH_PROFILE_MODEL_P
3303
  /* Record the fields for profiling.  */
3304
  if (PROFILE_MODEL_P (current_cpu))
3305
    {
3306
      FLD (in_rm) = f_left;
3307
      FLD (out_rd) = f_dest;
3308
    }
3309
#endif
3310
#undef FLD
3311
    return idesc;
3312
  }
3313
 
3314
 extract_sfmt_pta:
3315
  {
3316
    const IDESC *idesc = &sh64_media_insn_data[itype];
3317
    CGEN_INSN_INT insn = entire_insn;
3318
#define FLD(f) abuf->fields.sfmt_pta.f
3319
    DI f_disp16;
3320
    UINT f_tra;
3321
 
3322
    f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 6, 16)) << (2))) + (pc));
3323
    f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
3324
 
3325
  /* Record the fields for the semantic handler.  */
3326
  FLD (f_disp16) = f_disp16;
3327
  FLD (f_tra) = f_tra;
3328
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_pta", "f_disp16 0x%x", 'x', f_disp16, "f_tra 0x%x", 'x', f_tra, (char *) 0));
3329
 
3330
#if WITH_PROFILE_MODEL_P
3331
  /* Record the fields for profiling.  */
3332
  if (PROFILE_MODEL_P (current_cpu))
3333
    {
3334
      FLD (out_tra) = f_tra;
3335
    }
3336
#endif
3337
#undef FLD
3338
    return idesc;
3339
  }
3340
 
3341
 extract_sfmt_ptabs:
3342
  {
3343
    const IDESC *idesc = &sh64_media_insn_data[itype];
3344
    CGEN_INSN_INT insn = entire_insn;
3345
#define FLD(f) abuf->fields.sfmt_beq.f
3346
    UINT f_right;
3347
    UINT f_tra;
3348
 
3349
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3350
    f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
3351
 
3352
  /* Record the fields for the semantic handler.  */
3353
  FLD (f_right) = f_right;
3354
  FLD (f_tra) = f_tra;
3355
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ptabs", "f_right 0x%x", 'x', f_right, "f_tra 0x%x", 'x', f_tra, (char *) 0));
3356
 
3357
#if WITH_PROFILE_MODEL_P
3358
  /* Record the fields for profiling.  */
3359
  if (PROFILE_MODEL_P (current_cpu))
3360
    {
3361
      FLD (in_rn) = f_right;
3362
      FLD (out_tra) = f_tra;
3363
    }
3364
#endif
3365
#undef FLD
3366
    return idesc;
3367
  }
3368
 
3369
 extract_sfmt_ptrel:
3370
  {
3371
    const IDESC *idesc = &sh64_media_insn_data[itype];
3372
    CGEN_INSN_INT insn = entire_insn;
3373
#define FLD(f) abuf->fields.sfmt_beq.f
3374
    UINT f_right;
3375
    UINT f_tra;
3376
 
3377
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3378
    f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
3379
 
3380
  /* Record the fields for the semantic handler.  */
3381
  FLD (f_right) = f_right;
3382
  FLD (f_tra) = f_tra;
3383
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ptrel", "f_right 0x%x", 'x', f_right, "f_tra 0x%x", 'x', f_tra, (char *) 0));
3384
 
3385
#if WITH_PROFILE_MODEL_P
3386
  /* Record the fields for profiling.  */
3387
  if (PROFILE_MODEL_P (current_cpu))
3388
    {
3389
      FLD (in_rn) = f_right;
3390
      FLD (out_tra) = f_tra;
3391
    }
3392
#endif
3393
#undef FLD
3394
    return idesc;
3395
  }
3396
 
3397
 extract_sfmt_putcfg:
3398
  {
3399
    const IDESC *idesc = &sh64_media_insn_data[itype];
3400
    CGEN_INSN_INT insn = entire_insn;
3401
#define FLD(f) abuf->fields.sfmt_getcfg.f
3402
    UINT f_left;
3403
    INT f_disp6;
3404
    UINT f_dest;
3405
 
3406
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3407
    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
3408
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3409
 
3410
  /* Record the fields for the semantic handler.  */
3411
  FLD (f_disp6) = f_disp6;
3412
  FLD (f_dest) = f_dest;
3413
  FLD (f_left) = f_left;
3414
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_putcfg", "f_disp6 0x%x", 'x', f_disp6, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
3415
 
3416
#if WITH_PROFILE_MODEL_P
3417
  /* Record the fields for profiling.  */
3418
  if (PROFILE_MODEL_P (current_cpu))
3419
    {
3420
      FLD (in_rd) = f_dest;
3421
      FLD (in_rm) = f_left;
3422
    }
3423
#endif
3424
#undef FLD
3425
    return idesc;
3426
  }
3427
 
3428
 extract_sfmt_putcon:
3429
  {
3430
    const IDESC *idesc = &sh64_media_insn_data[itype];
3431
    CGEN_INSN_INT insn = entire_insn;
3432
#define FLD(f) abuf->fields.sfmt_xori.f
3433
    UINT f_left;
3434
    UINT f_dest;
3435
 
3436
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3437
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3438
 
3439
  /* Record the fields for the semantic handler.  */
3440
  FLD (f_left) = f_left;
3441
  FLD (f_dest) = f_dest;
3442
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_putcon", "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
3443
 
3444
#if WITH_PROFILE_MODEL_P
3445
  /* Record the fields for profiling.  */
3446
  if (PROFILE_MODEL_P (current_cpu))
3447
    {
3448
      FLD (in_rm) = f_left;
3449
    }
3450
#endif
3451
#undef FLD
3452
    return idesc;
3453
  }
3454
 
3455
 extract_sfmt_shari:
3456
  {
3457
    const IDESC *idesc = &sh64_media_insn_data[itype];
3458
    CGEN_INSN_INT insn = entire_insn;
3459
#define FLD(f) abuf->fields.sfmt_shari.f
3460
    UINT f_left;
3461
    UINT f_uimm6;
3462
    UINT f_dest;
3463
 
3464
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3465
    f_uimm6 = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3466
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3467
 
3468
  /* Record the fields for the semantic handler.  */
3469
  FLD (f_left) = f_left;
3470
  FLD (f_uimm6) = f_uimm6;
3471
  FLD (f_dest) = f_dest;
3472
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_shari", "f_left 0x%x", 'x', f_left, "f_uimm6 0x%x", 'x', f_uimm6, "f_dest 0x%x", 'x', f_dest, (char *) 0));
3473
 
3474
#if WITH_PROFILE_MODEL_P
3475
  /* Record the fields for profiling.  */
3476
  if (PROFILE_MODEL_P (current_cpu))
3477
    {
3478
      FLD (in_rm) = f_left;
3479
      FLD (out_rd) = f_dest;
3480
    }
3481
#endif
3482
#undef FLD
3483
    return idesc;
3484
  }
3485
 
3486
 extract_sfmt_sharil:
3487
  {
3488
    const IDESC *idesc = &sh64_media_insn_data[itype];
3489
    CGEN_INSN_INT insn = entire_insn;
3490
#define FLD(f) abuf->fields.sfmt_shari.f
3491
    UINT f_left;
3492
    UINT f_uimm6;
3493
    UINT f_dest;
3494
 
3495
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3496
    f_uimm6 = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3497
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3498
 
3499
  /* Record the fields for the semantic handler.  */
3500
  FLD (f_left) = f_left;
3501
  FLD (f_uimm6) = f_uimm6;
3502
  FLD (f_dest) = f_dest;
3503
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sharil", "f_left 0x%x", 'x', f_left, "f_uimm6 0x%x", 'x', f_uimm6, "f_dest 0x%x", 'x', f_dest, (char *) 0));
3504
 
3505
#if WITH_PROFILE_MODEL_P
3506
  /* Record the fields for profiling.  */
3507
  if (PROFILE_MODEL_P (current_cpu))
3508
    {
3509
      FLD (in_rm) = f_left;
3510
      FLD (out_rd) = f_dest;
3511
    }
3512
#endif
3513
#undef FLD
3514
    return idesc;
3515
  }
3516
 
3517
 extract_sfmt_shori:
3518
  {
3519
    const IDESC *idesc = &sh64_media_insn_data[itype];
3520
    CGEN_INSN_INT insn = entire_insn;
3521
#define FLD(f) abuf->fields.sfmt_shori.f
3522
    UINT f_uimm16;
3523
    UINT f_dest;
3524
 
3525
    f_uimm16 = EXTRACT_MSB0_UINT (insn, 32, 6, 16);
3526
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3527
 
3528
  /* Record the fields for the semantic handler.  */
3529
  FLD (f_dest) = f_dest;
3530
  FLD (f_uimm16) = f_uimm16;
3531
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_shori", "f_dest 0x%x", 'x', f_dest, "f_uimm16 0x%x", 'x', f_uimm16, (char *) 0));
3532
 
3533
#if WITH_PROFILE_MODEL_P
3534
  /* Record the fields for profiling.  */
3535
  if (PROFILE_MODEL_P (current_cpu))
3536
    {
3537
      FLD (in_rd) = f_dest;
3538
      FLD (out_rd) = f_dest;
3539
    }
3540
#endif
3541
#undef FLD
3542
    return idesc;
3543
  }
3544
 
3545
 extract_sfmt_stb:
3546
  {
3547
    const IDESC *idesc = &sh64_media_insn_data[itype];
3548
    CGEN_INSN_INT insn = entire_insn;
3549
#define FLD(f) abuf->fields.sfmt_addi.f
3550
    UINT f_left;
3551
    INT f_disp10;
3552
    UINT f_dest;
3553
 
3554
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3555
    f_disp10 = EXTRACT_MSB0_INT (insn, 32, 12, 10);
3556
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3557
 
3558
  /* Record the fields for the semantic handler.  */
3559
  FLD (f_disp10) = f_disp10;
3560
  FLD (f_dest) = f_dest;
3561
  FLD (f_left) = f_left;
3562
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stb", "f_disp10 0x%x", 'x', f_disp10, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
3563
 
3564
#if WITH_PROFILE_MODEL_P
3565
  /* Record the fields for profiling.  */
3566
  if (PROFILE_MODEL_P (current_cpu))
3567
    {
3568
      FLD (in_rd) = f_dest;
3569
      FLD (in_rm) = f_left;
3570
    }
3571
#endif
3572
#undef FLD
3573
    return idesc;
3574
  }
3575
 
3576
 extract_sfmt_stl:
3577
  {
3578
    const IDESC *idesc = &sh64_media_insn_data[itype];
3579
    CGEN_INSN_INT insn = entire_insn;
3580
#define FLD(f) abuf->fields.sfmt_flds.f
3581
    UINT f_left;
3582
    SI f_disp10x4;
3583
    UINT f_dest;
3584
 
3585
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3586
    f_disp10x4 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (2));
3587
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3588
 
3589
  /* Record the fields for the semantic handler.  */
3590
  FLD (f_disp10x4) = f_disp10x4;
3591
  FLD (f_dest) = f_dest;
3592
  FLD (f_left) = f_left;
3593
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stl", "f_disp10x4 0x%x", 'x', f_disp10x4, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
3594
 
3595
#if WITH_PROFILE_MODEL_P
3596
  /* Record the fields for profiling.  */
3597
  if (PROFILE_MODEL_P (current_cpu))
3598
    {
3599
      FLD (in_rd) = f_dest;
3600
      FLD (in_rm) = f_left;
3601
    }
3602
#endif
3603
#undef FLD
3604
    return idesc;
3605
  }
3606
 
3607
 extract_sfmt_stq:
3608
  {
3609
    const IDESC *idesc = &sh64_media_insn_data[itype];
3610
    CGEN_INSN_INT insn = entire_insn;
3611
#define FLD(f) abuf->fields.sfmt_fldd.f
3612
    UINT f_left;
3613
    SI f_disp10x8;
3614
    UINT f_dest;
3615
 
3616
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3617
    f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
3618
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3619
 
3620
  /* Record the fields for the semantic handler.  */
3621
  FLD (f_disp10x8) = f_disp10x8;
3622
  FLD (f_dest) = f_dest;
3623
  FLD (f_left) = f_left;
3624
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stq", "f_disp10x8 0x%x", 'x', f_disp10x8, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
3625
 
3626
#if WITH_PROFILE_MODEL_P
3627
  /* Record the fields for profiling.  */
3628
  if (PROFILE_MODEL_P (current_cpu))
3629
    {
3630
      FLD (in_rd) = f_dest;
3631
      FLD (in_rm) = f_left;
3632
    }
3633
#endif
3634
#undef FLD
3635
    return idesc;
3636
  }
3637
 
3638
 extract_sfmt_stw:
3639
  {
3640
    const IDESC *idesc = &sh64_media_insn_data[itype];
3641
    CGEN_INSN_INT insn = entire_insn;
3642
#define FLD(f) abuf->fields.sfmt_lduw.f
3643
    UINT f_left;
3644
    SI f_disp10x2;
3645
    UINT f_dest;
3646
 
3647
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3648
    f_disp10x2 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (1));
3649
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3650
 
3651
  /* Record the fields for the semantic handler.  */
3652
  FLD (f_disp10x2) = f_disp10x2;
3653
  FLD (f_dest) = f_dest;
3654
  FLD (f_left) = f_left;
3655
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stw", "f_disp10x2 0x%x", 'x', f_disp10x2, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
3656
 
3657
#if WITH_PROFILE_MODEL_P
3658
  /* Record the fields for profiling.  */
3659
  if (PROFILE_MODEL_P (current_cpu))
3660
    {
3661
      FLD (in_rd) = f_dest;
3662
      FLD (in_rm) = f_left;
3663
    }
3664
#endif
3665
#undef FLD
3666
    return idesc;
3667
  }
3668
 
3669
 extract_sfmt_sthil:
3670
  {
3671
    const IDESC *idesc = &sh64_media_insn_data[itype];
3672
    CGEN_INSN_INT insn = entire_insn;
3673
#define FLD(f) abuf->fields.sfmt_getcfg.f
3674
    UINT f_left;
3675
    INT f_disp6;
3676
    UINT f_dest;
3677
 
3678
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3679
    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
3680
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3681
 
3682
  /* Record the fields for the semantic handler.  */
3683
  FLD (f_disp6) = f_disp6;
3684
  FLD (f_dest) = f_dest;
3685
  FLD (f_left) = f_left;
3686
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sthil", "f_disp6 0x%x", 'x', f_disp6, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
3687
 
3688
#if WITH_PROFILE_MODEL_P
3689
  /* Record the fields for profiling.  */
3690
  if (PROFILE_MODEL_P (current_cpu))
3691
    {
3692
      FLD (in_rd) = f_dest;
3693
      FLD (in_rm) = f_left;
3694
    }
3695
#endif
3696
#undef FLD
3697
    return idesc;
3698
  }
3699
 
3700
 extract_sfmt_sthiq:
3701
  {
3702
    const IDESC *idesc = &sh64_media_insn_data[itype];
3703
    CGEN_INSN_INT insn = entire_insn;
3704
#define FLD(f) abuf->fields.sfmt_getcfg.f
3705
    UINT f_left;
3706
    INT f_disp6;
3707
    UINT f_dest;
3708
 
3709
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3710
    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
3711
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3712
 
3713
  /* Record the fields for the semantic handler.  */
3714
  FLD (f_disp6) = f_disp6;
3715
  FLD (f_dest) = f_dest;
3716
  FLD (f_left) = f_left;
3717
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sthiq", "f_disp6 0x%x", 'x', f_disp6, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
3718
 
3719
#if WITH_PROFILE_MODEL_P
3720
  /* Record the fields for profiling.  */
3721
  if (PROFILE_MODEL_P (current_cpu))
3722
    {
3723
      FLD (in_rd) = f_dest;
3724
      FLD (in_rm) = f_left;
3725
    }
3726
#endif
3727
#undef FLD
3728
    return idesc;
3729
  }
3730
 
3731
 extract_sfmt_stlol:
3732
  {
3733
    const IDESC *idesc = &sh64_media_insn_data[itype];
3734
    CGEN_INSN_INT insn = entire_insn;
3735
#define FLD(f) abuf->fields.sfmt_getcfg.f
3736
    UINT f_left;
3737
    INT f_disp6;
3738
    UINT f_dest;
3739
 
3740
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3741
    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
3742
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3743
 
3744
  /* Record the fields for the semantic handler.  */
3745
  FLD (f_disp6) = f_disp6;
3746
  FLD (f_dest) = f_dest;
3747
  FLD (f_left) = f_left;
3748
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stlol", "f_disp6 0x%x", 'x', f_disp6, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
3749
 
3750
#if WITH_PROFILE_MODEL_P
3751
  /* Record the fields for profiling.  */
3752
  if (PROFILE_MODEL_P (current_cpu))
3753
    {
3754
      FLD (in_rd) = f_dest;
3755
      FLD (in_rm) = f_left;
3756
    }
3757
#endif
3758
#undef FLD
3759
    return idesc;
3760
  }
3761
 
3762
 extract_sfmt_stloq:
3763
  {
3764
    const IDESC *idesc = &sh64_media_insn_data[itype];
3765
    CGEN_INSN_INT insn = entire_insn;
3766
#define FLD(f) abuf->fields.sfmt_getcfg.f
3767
    UINT f_left;
3768
    INT f_disp6;
3769
    UINT f_dest;
3770
 
3771
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3772
    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
3773
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3774
 
3775
  /* Record the fields for the semantic handler.  */
3776
  FLD (f_disp6) = f_disp6;
3777
  FLD (f_dest) = f_dest;
3778
  FLD (f_left) = f_left;
3779
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stloq", "f_disp6 0x%x", 'x', f_disp6, "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, (char *) 0));
3780
 
3781
#if WITH_PROFILE_MODEL_P
3782
  /* Record the fields for profiling.  */
3783
  if (PROFILE_MODEL_P (current_cpu))
3784
    {
3785
      FLD (in_rd) = f_dest;
3786
      FLD (in_rm) = f_left;
3787
    }
3788
#endif
3789
#undef FLD
3790
    return idesc;
3791
  }
3792
 
3793
 extract_sfmt_stxb:
3794
  {
3795
    const IDESC *idesc = &sh64_media_insn_data[itype];
3796
    CGEN_INSN_INT insn = entire_insn;
3797
#define FLD(f) abuf->fields.sfmt_add.f
3798
    UINT f_left;
3799
    UINT f_right;
3800
    UINT f_dest;
3801
 
3802
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3803
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3804
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3805
 
3806
  /* Record the fields for the semantic handler.  */
3807
  FLD (f_dest) = f_dest;
3808
  FLD (f_left) = f_left;
3809
  FLD (f_right) = f_right;
3810
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stxb", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
3811
 
3812
#if WITH_PROFILE_MODEL_P
3813
  /* Record the fields for profiling.  */
3814
  if (PROFILE_MODEL_P (current_cpu))
3815
    {
3816
      FLD (in_rd) = f_dest;
3817
      FLD (in_rm) = f_left;
3818
      FLD (in_rn) = f_right;
3819
    }
3820
#endif
3821
#undef FLD
3822
    return idesc;
3823
  }
3824
 
3825
 extract_sfmt_stxl:
3826
  {
3827
    const IDESC *idesc = &sh64_media_insn_data[itype];
3828
    CGEN_INSN_INT insn = entire_insn;
3829
#define FLD(f) abuf->fields.sfmt_add.f
3830
    UINT f_left;
3831
    UINT f_right;
3832
    UINT f_dest;
3833
 
3834
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3835
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3836
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3837
 
3838
  /* Record the fields for the semantic handler.  */
3839
  FLD (f_dest) = f_dest;
3840
  FLD (f_left) = f_left;
3841
  FLD (f_right) = f_right;
3842
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stxl", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
3843
 
3844
#if WITH_PROFILE_MODEL_P
3845
  /* Record the fields for profiling.  */
3846
  if (PROFILE_MODEL_P (current_cpu))
3847
    {
3848
      FLD (in_rd) = f_dest;
3849
      FLD (in_rm) = f_left;
3850
      FLD (in_rn) = f_right;
3851
    }
3852
#endif
3853
#undef FLD
3854
    return idesc;
3855
  }
3856
 
3857
 extract_sfmt_stxq:
3858
  {
3859
    const IDESC *idesc = &sh64_media_insn_data[itype];
3860
    CGEN_INSN_INT insn = entire_insn;
3861
#define FLD(f) abuf->fields.sfmt_add.f
3862
    UINT f_left;
3863
    UINT f_right;
3864
    UINT f_dest;
3865
 
3866
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3867
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3868
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3869
 
3870
  /* Record the fields for the semantic handler.  */
3871
  FLD (f_dest) = f_dest;
3872
  FLD (f_left) = f_left;
3873
  FLD (f_right) = f_right;
3874
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stxq", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
3875
 
3876
#if WITH_PROFILE_MODEL_P
3877
  /* Record the fields for profiling.  */
3878
  if (PROFILE_MODEL_P (current_cpu))
3879
    {
3880
      FLD (in_rd) = f_dest;
3881
      FLD (in_rm) = f_left;
3882
      FLD (in_rn) = f_right;
3883
    }
3884
#endif
3885
#undef FLD
3886
    return idesc;
3887
  }
3888
 
3889
 extract_sfmt_stxw:
3890
  {
3891
    const IDESC *idesc = &sh64_media_insn_data[itype];
3892
    CGEN_INSN_INT insn = entire_insn;
3893
#define FLD(f) abuf->fields.sfmt_add.f
3894
    UINT f_left;
3895
    UINT f_right;
3896
    UINT f_dest;
3897
 
3898
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3899
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3900
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3901
 
3902
  /* Record the fields for the semantic handler.  */
3903
  FLD (f_dest) = f_dest;
3904
  FLD (f_left) = f_left;
3905
  FLD (f_right) = f_right;
3906
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stxw", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
3907
 
3908
#if WITH_PROFILE_MODEL_P
3909
  /* Record the fields for profiling.  */
3910
  if (PROFILE_MODEL_P (current_cpu))
3911
    {
3912
      FLD (in_rd) = f_dest;
3913
      FLD (in_rm) = f_left;
3914
      FLD (in_rn) = f_right;
3915
    }
3916
#endif
3917
#undef FLD
3918
    return idesc;
3919
  }
3920
 
3921
 extract_sfmt_swapq:
3922
  {
3923
    const IDESC *idesc = &sh64_media_insn_data[itype];
3924
    CGEN_INSN_INT insn = entire_insn;
3925
#define FLD(f) abuf->fields.sfmt_add.f
3926
    UINT f_left;
3927
    UINT f_right;
3928
    UINT f_dest;
3929
 
3930
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3931
    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
3932
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3933
 
3934
  /* Record the fields for the semantic handler.  */
3935
  FLD (f_dest) = f_dest;
3936
  FLD (f_left) = f_left;
3937
  FLD (f_right) = f_right;
3938
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_swapq", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
3939
 
3940
#if WITH_PROFILE_MODEL_P
3941
  /* Record the fields for profiling.  */
3942
  if (PROFILE_MODEL_P (current_cpu))
3943
    {
3944
      FLD (in_rd) = f_dest;
3945
      FLD (in_rm) = f_left;
3946
      FLD (in_rn) = f_right;
3947
      FLD (out_rd) = f_dest;
3948
    }
3949
#endif
3950
#undef FLD
3951
    return idesc;
3952
  }
3953
 
3954
 extract_sfmt_trapa:
3955
  {
3956
    const IDESC *idesc = &sh64_media_insn_data[itype];
3957
    CGEN_INSN_INT insn = entire_insn;
3958
#define FLD(f) abuf->fields.sfmt_xori.f
3959
    UINT f_left;
3960
 
3961
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3962
 
3963
  /* Record the fields for the semantic handler.  */
3964
  FLD (f_left) = f_left;
3965
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_trapa", "f_left 0x%x", 'x', f_left, (char *) 0));
3966
 
3967
#if WITH_PROFILE_MODEL_P
3968
  /* Record the fields for profiling.  */
3969
  if (PROFILE_MODEL_P (current_cpu))
3970
    {
3971
      FLD (in_rm) = f_left;
3972
    }
3973
#endif
3974
#undef FLD
3975
    return idesc;
3976
  }
3977
 
3978
 extract_sfmt_xori:
3979
  {
3980
    const IDESC *idesc = &sh64_media_insn_data[itype];
3981
    CGEN_INSN_INT insn = entire_insn;
3982
#define FLD(f) abuf->fields.sfmt_xori.f
3983
    UINT f_left;
3984
    INT f_imm6;
3985
    UINT f_dest;
3986
 
3987
    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
3988
    f_imm6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
3989
    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
3990
 
3991
  /* Record the fields for the semantic handler.  */
3992
  FLD (f_imm6) = f_imm6;
3993
  FLD (f_left) = f_left;
3994
  FLD (f_dest) = f_dest;
3995
  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_xori", "f_imm6 0x%x", 'x', f_imm6, "f_left 0x%x", 'x', f_left, "f_dest 0x%x", 'x', f_dest, (char *) 0));
3996
 
3997
#if WITH_PROFILE_MODEL_P
3998
  /* Record the fields for profiling.  */
3999
  if (PROFILE_MODEL_P (current_cpu))
4000
    {
4001
      FLD (in_rm) = f_left;
4002
      FLD (out_rd) = f_dest;
4003
    }
4004
#endif
4005
#undef FLD
4006
    return idesc;
4007
  }
4008
 
4009
}

powered by: WebSVN 2.1.0

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