OSDN Git Service

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