OSDN Git Service

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