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