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

Subversion Repositories openrisc

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

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

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

powered by: WebSVN 2.1.0

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