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