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