1 /* Simulator instruction decoder for sh64_media.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2005 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
28 #include "sim-assert.h"
30 /* The instruction descriptor array.
31 This is computed at runtime. Space for it is not malloc'd to save a
32 teensy bit of cpu in the decoder. Moving it to malloc space is trivial
33 but won't be done until necessary (we don't currently support the runtime
34 addition of instructions nor an SMP machine with different cpus). */
35 static IDESC sh64_media_insn_data
[SH64_MEDIA_INSN__MAX
];
37 /* Commas between elements are contained in the macros.
38 Some of these are conditionally compiled out. */
40 static const struct insn_sem sh64_media_insn_sem
[] =
42 { VIRTUAL_INSN_X_INVALID
, SH64_MEDIA_INSN_X_INVALID
, SH64_MEDIA_SFMT_EMPTY
},
43 { VIRTUAL_INSN_X_AFTER
, SH64_MEDIA_INSN_X_AFTER
, SH64_MEDIA_SFMT_EMPTY
},
44 { VIRTUAL_INSN_X_BEFORE
, SH64_MEDIA_INSN_X_BEFORE
, SH64_MEDIA_SFMT_EMPTY
},
45 { VIRTUAL_INSN_X_CTI_CHAIN
, SH64_MEDIA_INSN_X_CTI_CHAIN
, SH64_MEDIA_SFMT_EMPTY
},
46 { VIRTUAL_INSN_X_CHAIN
, SH64_MEDIA_INSN_X_CHAIN
, SH64_MEDIA_SFMT_EMPTY
},
47 { VIRTUAL_INSN_X_BEGIN
, SH64_MEDIA_INSN_X_BEGIN
, SH64_MEDIA_SFMT_EMPTY
},
48 { SH_INSN_ADD
, SH64_MEDIA_INSN_ADD
, SH64_MEDIA_SFMT_ADD
},
49 { SH_INSN_ADDL
, SH64_MEDIA_INSN_ADDL
, SH64_MEDIA_SFMT_ADD
},
50 { SH_INSN_ADDI
, SH64_MEDIA_INSN_ADDI
, SH64_MEDIA_SFMT_ADDI
},
51 { SH_INSN_ADDIL
, SH64_MEDIA_INSN_ADDIL
, SH64_MEDIA_SFMT_ADDI
},
52 { SH_INSN_ADDZL
, SH64_MEDIA_INSN_ADDZL
, SH64_MEDIA_SFMT_ADD
},
53 { SH_INSN_ALLOCO
, SH64_MEDIA_INSN_ALLOCO
, SH64_MEDIA_SFMT_ALLOCO
},
54 { SH_INSN_AND
, SH64_MEDIA_INSN_AND
, SH64_MEDIA_SFMT_ADD
},
55 { SH_INSN_ANDC
, SH64_MEDIA_INSN_ANDC
, SH64_MEDIA_SFMT_ADD
},
56 { SH_INSN_ANDI
, SH64_MEDIA_INSN_ANDI
, SH64_MEDIA_SFMT_ADDI
},
57 { SH_INSN_BEQ
, SH64_MEDIA_INSN_BEQ
, SH64_MEDIA_SFMT_BEQ
},
58 { SH_INSN_BEQI
, SH64_MEDIA_INSN_BEQI
, SH64_MEDIA_SFMT_BEQI
},
59 { SH_INSN_BGE
, SH64_MEDIA_INSN_BGE
, SH64_MEDIA_SFMT_BEQ
},
60 { SH_INSN_BGEU
, SH64_MEDIA_INSN_BGEU
, SH64_MEDIA_SFMT_BEQ
},
61 { SH_INSN_BGT
, SH64_MEDIA_INSN_BGT
, SH64_MEDIA_SFMT_BEQ
},
62 { SH_INSN_BGTU
, SH64_MEDIA_INSN_BGTU
, SH64_MEDIA_SFMT_BEQ
},
63 { SH_INSN_BLINK
, SH64_MEDIA_INSN_BLINK
, SH64_MEDIA_SFMT_BLINK
},
64 { SH_INSN_BNE
, SH64_MEDIA_INSN_BNE
, SH64_MEDIA_SFMT_BEQ
},
65 { SH_INSN_BNEI
, SH64_MEDIA_INSN_BNEI
, SH64_MEDIA_SFMT_BEQI
},
66 { SH_INSN_BRK
, SH64_MEDIA_INSN_BRK
, SH64_MEDIA_SFMT_BRK
},
67 { SH_INSN_BYTEREV
, SH64_MEDIA_INSN_BYTEREV
, SH64_MEDIA_SFMT_BYTEREV
},
68 { SH_INSN_CMPEQ
, SH64_MEDIA_INSN_CMPEQ
, SH64_MEDIA_SFMT_ADD
},
69 { SH_INSN_CMPGT
, SH64_MEDIA_INSN_CMPGT
, SH64_MEDIA_SFMT_ADD
},
70 { SH_INSN_CMPGTU
, SH64_MEDIA_INSN_CMPGTU
, SH64_MEDIA_SFMT_ADD
},
71 { SH_INSN_CMVEQ
, SH64_MEDIA_INSN_CMVEQ
, SH64_MEDIA_SFMT_CMVEQ
},
72 { SH_INSN_CMVNE
, SH64_MEDIA_INSN_CMVNE
, SH64_MEDIA_SFMT_CMVEQ
},
73 { SH_INSN_FABSD
, SH64_MEDIA_INSN_FABSD
, SH64_MEDIA_SFMT_FABSD
},
74 { SH_INSN_FABSS
, SH64_MEDIA_INSN_FABSS
, SH64_MEDIA_SFMT_FABSS
},
75 { SH_INSN_FADDD
, SH64_MEDIA_INSN_FADDD
, SH64_MEDIA_SFMT_FADDD
},
76 { SH_INSN_FADDS
, SH64_MEDIA_INSN_FADDS
, SH64_MEDIA_SFMT_FADDS
},
77 { SH_INSN_FCMPEQD
, SH64_MEDIA_INSN_FCMPEQD
, SH64_MEDIA_SFMT_FCMPEQD
},
78 { SH_INSN_FCMPEQS
, SH64_MEDIA_INSN_FCMPEQS
, SH64_MEDIA_SFMT_FCMPEQS
},
79 { SH_INSN_FCMPGED
, SH64_MEDIA_INSN_FCMPGED
, SH64_MEDIA_SFMT_FCMPEQD
},
80 { SH_INSN_FCMPGES
, SH64_MEDIA_INSN_FCMPGES
, SH64_MEDIA_SFMT_FCMPEQS
},
81 { SH_INSN_FCMPGTD
, SH64_MEDIA_INSN_FCMPGTD
, SH64_MEDIA_SFMT_FCMPEQD
},
82 { SH_INSN_FCMPGTS
, SH64_MEDIA_INSN_FCMPGTS
, SH64_MEDIA_SFMT_FCMPEQS
},
83 { SH_INSN_FCMPUND
, SH64_MEDIA_INSN_FCMPUND
, SH64_MEDIA_SFMT_FCMPEQD
},
84 { SH_INSN_FCMPUNS
, SH64_MEDIA_INSN_FCMPUNS
, SH64_MEDIA_SFMT_FCMPEQS
},
85 { SH_INSN_FCNVDS
, SH64_MEDIA_INSN_FCNVDS
, SH64_MEDIA_SFMT_FCNVDS
},
86 { SH_INSN_FCNVSD
, SH64_MEDIA_INSN_FCNVSD
, SH64_MEDIA_SFMT_FCNVSD
},
87 { SH_INSN_FDIVD
, SH64_MEDIA_INSN_FDIVD
, SH64_MEDIA_SFMT_FADDD
},
88 { SH_INSN_FDIVS
, SH64_MEDIA_INSN_FDIVS
, SH64_MEDIA_SFMT_FADDS
},
89 { SH_INSN_FGETSCR
, SH64_MEDIA_INSN_FGETSCR
, SH64_MEDIA_SFMT_FGETSCR
},
90 { SH_INSN_FIPRS
, SH64_MEDIA_INSN_FIPRS
, SH64_MEDIA_SFMT_FIPRS
},
91 { SH_INSN_FLDD
, SH64_MEDIA_INSN_FLDD
, SH64_MEDIA_SFMT_FLDD
},
92 { SH_INSN_FLDP
, SH64_MEDIA_INSN_FLDP
, SH64_MEDIA_SFMT_FLDP
},
93 { SH_INSN_FLDS
, SH64_MEDIA_INSN_FLDS
, SH64_MEDIA_SFMT_FLDS
},
94 { SH_INSN_FLDXD
, SH64_MEDIA_INSN_FLDXD
, SH64_MEDIA_SFMT_FLDXD
},
95 { SH_INSN_FLDXP
, SH64_MEDIA_INSN_FLDXP
, SH64_MEDIA_SFMT_FLDXP
},
96 { SH_INSN_FLDXS
, SH64_MEDIA_INSN_FLDXS
, SH64_MEDIA_SFMT_FLDXS
},
97 { SH_INSN_FLOATLD
, SH64_MEDIA_INSN_FLOATLD
, SH64_MEDIA_SFMT_FCNVSD
},
98 { SH_INSN_FLOATLS
, SH64_MEDIA_INSN_FLOATLS
, SH64_MEDIA_SFMT_FABSS
},
99 { SH_INSN_FLOATQD
, SH64_MEDIA_INSN_FLOATQD
, SH64_MEDIA_SFMT_FABSD
},
100 { SH_INSN_FLOATQS
, SH64_MEDIA_INSN_FLOATQS
, SH64_MEDIA_SFMT_FCNVDS
},
101 { SH_INSN_FMACS
, SH64_MEDIA_INSN_FMACS
, SH64_MEDIA_SFMT_FMACS
},
102 { SH_INSN_FMOVD
, SH64_MEDIA_INSN_FMOVD
, SH64_MEDIA_SFMT_FABSD
},
103 { SH_INSN_FMOVDQ
, SH64_MEDIA_INSN_FMOVDQ
, SH64_MEDIA_SFMT_FMOVDQ
},
104 { SH_INSN_FMOVLS
, SH64_MEDIA_INSN_FMOVLS
, SH64_MEDIA_SFMT_FMOVLS
},
105 { SH_INSN_FMOVQD
, SH64_MEDIA_INSN_FMOVQD
, SH64_MEDIA_SFMT_FMOVQD
},
106 { SH_INSN_FMOVS
, SH64_MEDIA_INSN_FMOVS
, SH64_MEDIA_SFMT_FABSS
},
107 { SH_INSN_FMOVSL
, SH64_MEDIA_INSN_FMOVSL
, SH64_MEDIA_SFMT_FMOVSL
},
108 { SH_INSN_FMULD
, SH64_MEDIA_INSN_FMULD
, SH64_MEDIA_SFMT_FADDD
},
109 { SH_INSN_FMULS
, SH64_MEDIA_INSN_FMULS
, SH64_MEDIA_SFMT_FADDS
},
110 { SH_INSN_FNEGD
, SH64_MEDIA_INSN_FNEGD
, SH64_MEDIA_SFMT_FABSD
},
111 { SH_INSN_FNEGS
, SH64_MEDIA_INSN_FNEGS
, SH64_MEDIA_SFMT_FABSS
},
112 { SH_INSN_FPUTSCR
, SH64_MEDIA_INSN_FPUTSCR
, SH64_MEDIA_SFMT_FPUTSCR
},
113 { SH_INSN_FSQRTD
, SH64_MEDIA_INSN_FSQRTD
, SH64_MEDIA_SFMT_FABSD
},
114 { SH_INSN_FSQRTS
, SH64_MEDIA_INSN_FSQRTS
, SH64_MEDIA_SFMT_FABSS
},
115 { SH_INSN_FSTD
, SH64_MEDIA_INSN_FSTD
, SH64_MEDIA_SFMT_FSTD
},
116 { SH_INSN_FSTP
, SH64_MEDIA_INSN_FSTP
, SH64_MEDIA_SFMT_FLDP
},
117 { SH_INSN_FSTS
, SH64_MEDIA_INSN_FSTS
, SH64_MEDIA_SFMT_FSTS
},
118 { SH_INSN_FSTXD
, SH64_MEDIA_INSN_FSTXD
, SH64_MEDIA_SFMT_FSTXD
},
119 { SH_INSN_FSTXP
, SH64_MEDIA_INSN_FSTXP
, SH64_MEDIA_SFMT_FLDXP
},
120 { SH_INSN_FSTXS
, SH64_MEDIA_INSN_FSTXS
, SH64_MEDIA_SFMT_FSTXS
},
121 { SH_INSN_FSUBD
, SH64_MEDIA_INSN_FSUBD
, SH64_MEDIA_SFMT_FADDD
},
122 { SH_INSN_FSUBS
, SH64_MEDIA_INSN_FSUBS
, SH64_MEDIA_SFMT_FADDS
},
123 { SH_INSN_FTRCDL
, SH64_MEDIA_INSN_FTRCDL
, SH64_MEDIA_SFMT_FCNVDS
},
124 { SH_INSN_FTRCSL
, SH64_MEDIA_INSN_FTRCSL
, SH64_MEDIA_SFMT_FABSS
},
125 { SH_INSN_FTRCDQ
, SH64_MEDIA_INSN_FTRCDQ
, SH64_MEDIA_SFMT_FABSD
},
126 { SH_INSN_FTRCSQ
, SH64_MEDIA_INSN_FTRCSQ
, SH64_MEDIA_SFMT_FCNVSD
},
127 { SH_INSN_FTRVS
, SH64_MEDIA_INSN_FTRVS
, SH64_MEDIA_SFMT_FTRVS
},
128 { SH_INSN_GETCFG
, SH64_MEDIA_INSN_GETCFG
, SH64_MEDIA_SFMT_GETCFG
},
129 { SH_INSN_GETCON
, SH64_MEDIA_INSN_GETCON
, SH64_MEDIA_SFMT_GETCON
},
130 { SH_INSN_GETTR
, SH64_MEDIA_INSN_GETTR
, SH64_MEDIA_SFMT_GETTR
},
131 { SH_INSN_ICBI
, SH64_MEDIA_INSN_ICBI
, SH64_MEDIA_SFMT_ALLOCO
},
132 { SH_INSN_LDB
, SH64_MEDIA_INSN_LDB
, SH64_MEDIA_SFMT_LDB
},
133 { SH_INSN_LDL
, SH64_MEDIA_INSN_LDL
, SH64_MEDIA_SFMT_LDL
},
134 { SH_INSN_LDQ
, SH64_MEDIA_INSN_LDQ
, SH64_MEDIA_SFMT_LDQ
},
135 { SH_INSN_LDUB
, SH64_MEDIA_INSN_LDUB
, SH64_MEDIA_SFMT_LDB
},
136 { SH_INSN_LDUW
, SH64_MEDIA_INSN_LDUW
, SH64_MEDIA_SFMT_LDUW
},
137 { SH_INSN_LDW
, SH64_MEDIA_INSN_LDW
, SH64_MEDIA_SFMT_LDUW
},
138 { SH_INSN_LDHIL
, SH64_MEDIA_INSN_LDHIL
, SH64_MEDIA_SFMT_LDHIL
},
139 { SH_INSN_LDHIQ
, SH64_MEDIA_INSN_LDHIQ
, SH64_MEDIA_SFMT_LDHIQ
},
140 { SH_INSN_LDLOL
, SH64_MEDIA_INSN_LDLOL
, SH64_MEDIA_SFMT_LDLOL
},
141 { SH_INSN_LDLOQ
, SH64_MEDIA_INSN_LDLOQ
, SH64_MEDIA_SFMT_LDLOQ
},
142 { SH_INSN_LDXB
, SH64_MEDIA_INSN_LDXB
, SH64_MEDIA_SFMT_LDXB
},
143 { SH_INSN_LDXL
, SH64_MEDIA_INSN_LDXL
, SH64_MEDIA_SFMT_LDXL
},
144 { SH_INSN_LDXQ
, SH64_MEDIA_INSN_LDXQ
, SH64_MEDIA_SFMT_LDXQ
},
145 { SH_INSN_LDXUB
, SH64_MEDIA_INSN_LDXUB
, SH64_MEDIA_SFMT_LDXUB
},
146 { SH_INSN_LDXUW
, SH64_MEDIA_INSN_LDXUW
, SH64_MEDIA_SFMT_LDXUW
},
147 { SH_INSN_LDXW
, SH64_MEDIA_INSN_LDXW
, SH64_MEDIA_SFMT_LDXW
},
148 { SH_INSN_MABSL
, SH64_MEDIA_INSN_MABSL
, SH64_MEDIA_SFMT_BYTEREV
},
149 { SH_INSN_MABSW
, SH64_MEDIA_INSN_MABSW
, SH64_MEDIA_SFMT_BYTEREV
},
150 { SH_INSN_MADDL
, SH64_MEDIA_INSN_MADDL
, SH64_MEDIA_SFMT_ADD
},
151 { SH_INSN_MADDW
, SH64_MEDIA_INSN_MADDW
, SH64_MEDIA_SFMT_ADD
},
152 { SH_INSN_MADDSL
, SH64_MEDIA_INSN_MADDSL
, SH64_MEDIA_SFMT_ADD
},
153 { SH_INSN_MADDSUB
, SH64_MEDIA_INSN_MADDSUB
, SH64_MEDIA_SFMT_ADD
},
154 { SH_INSN_MADDSW
, SH64_MEDIA_INSN_MADDSW
, SH64_MEDIA_SFMT_ADD
},
155 { SH_INSN_MCMPEQB
, SH64_MEDIA_INSN_MCMPEQB
, SH64_MEDIA_SFMT_ADD
},
156 { SH_INSN_MCMPEQL
, SH64_MEDIA_INSN_MCMPEQL
, SH64_MEDIA_SFMT_ADD
},
157 { SH_INSN_MCMPEQW
, SH64_MEDIA_INSN_MCMPEQW
, SH64_MEDIA_SFMT_ADD
},
158 { SH_INSN_MCMPGTL
, SH64_MEDIA_INSN_MCMPGTL
, SH64_MEDIA_SFMT_ADD
},
159 { SH_INSN_MCMPGTUB
, SH64_MEDIA_INSN_MCMPGTUB
, SH64_MEDIA_SFMT_ADD
},
160 { SH_INSN_MCMPGTW
, SH64_MEDIA_INSN_MCMPGTW
, SH64_MEDIA_SFMT_ADD
},
161 { SH_INSN_MCMV
, SH64_MEDIA_INSN_MCMV
, SH64_MEDIA_SFMT_MCMV
},
162 { SH_INSN_MCNVSLW
, SH64_MEDIA_INSN_MCNVSLW
, SH64_MEDIA_SFMT_ADD
},
163 { SH_INSN_MCNVSWB
, SH64_MEDIA_INSN_MCNVSWB
, SH64_MEDIA_SFMT_ADD
},
164 { SH_INSN_MCNVSWUB
, SH64_MEDIA_INSN_MCNVSWUB
, SH64_MEDIA_SFMT_ADD
},
165 { SH_INSN_MEXTR1
, SH64_MEDIA_INSN_MEXTR1
, SH64_MEDIA_SFMT_ADD
},
166 { SH_INSN_MEXTR2
, SH64_MEDIA_INSN_MEXTR2
, SH64_MEDIA_SFMT_ADD
},
167 { SH_INSN_MEXTR3
, SH64_MEDIA_INSN_MEXTR3
, SH64_MEDIA_SFMT_ADD
},
168 { SH_INSN_MEXTR4
, SH64_MEDIA_INSN_MEXTR4
, SH64_MEDIA_SFMT_ADD
},
169 { SH_INSN_MEXTR5
, SH64_MEDIA_INSN_MEXTR5
, SH64_MEDIA_SFMT_ADD
},
170 { SH_INSN_MEXTR6
, SH64_MEDIA_INSN_MEXTR6
, SH64_MEDIA_SFMT_ADD
},
171 { SH_INSN_MEXTR7
, SH64_MEDIA_INSN_MEXTR7
, SH64_MEDIA_SFMT_ADD
},
172 { SH_INSN_MMACFXWL
, SH64_MEDIA_INSN_MMACFXWL
, SH64_MEDIA_SFMT_MCMV
},
173 { SH_INSN_MMACNFX_WL
, SH64_MEDIA_INSN_MMACNFX_WL
, SH64_MEDIA_SFMT_MCMV
},
174 { SH_INSN_MMULL
, SH64_MEDIA_INSN_MMULL
, SH64_MEDIA_SFMT_ADD
},
175 { SH_INSN_MMULW
, SH64_MEDIA_INSN_MMULW
, SH64_MEDIA_SFMT_ADD
},
176 { SH_INSN_MMULFXL
, SH64_MEDIA_INSN_MMULFXL
, SH64_MEDIA_SFMT_ADD
},
177 { SH_INSN_MMULFXW
, SH64_MEDIA_INSN_MMULFXW
, SH64_MEDIA_SFMT_ADD
},
178 { SH_INSN_MMULFXRPW
, SH64_MEDIA_INSN_MMULFXRPW
, SH64_MEDIA_SFMT_ADD
},
179 { SH_INSN_MMULHIWL
, SH64_MEDIA_INSN_MMULHIWL
, SH64_MEDIA_SFMT_ADD
},
180 { SH_INSN_MMULLOWL
, SH64_MEDIA_INSN_MMULLOWL
, SH64_MEDIA_SFMT_ADD
},
181 { SH_INSN_MMULSUMWQ
, SH64_MEDIA_INSN_MMULSUMWQ
, SH64_MEDIA_SFMT_MCMV
},
182 { SH_INSN_MOVI
, SH64_MEDIA_INSN_MOVI
, SH64_MEDIA_SFMT_MOVI
},
183 { SH_INSN_MPERMW
, SH64_MEDIA_INSN_MPERMW
, SH64_MEDIA_SFMT_MPERMW
},
184 { SH_INSN_MSADUBQ
, SH64_MEDIA_INSN_MSADUBQ
, SH64_MEDIA_SFMT_MCMV
},
185 { SH_INSN_MSHALDSL
, SH64_MEDIA_INSN_MSHALDSL
, SH64_MEDIA_SFMT_ADD
},
186 { SH_INSN_MSHALDSW
, SH64_MEDIA_INSN_MSHALDSW
, SH64_MEDIA_SFMT_ADD
},
187 { SH_INSN_MSHARDL
, SH64_MEDIA_INSN_MSHARDL
, SH64_MEDIA_SFMT_ADD
},
188 { SH_INSN_MSHARDW
, SH64_MEDIA_INSN_MSHARDW
, SH64_MEDIA_SFMT_ADD
},
189 { SH_INSN_MSHARDSQ
, SH64_MEDIA_INSN_MSHARDSQ
, SH64_MEDIA_SFMT_ADD
},
190 { SH_INSN_MSHFHIB
, SH64_MEDIA_INSN_MSHFHIB
, SH64_MEDIA_SFMT_ADD
},
191 { SH_INSN_MSHFHIL
, SH64_MEDIA_INSN_MSHFHIL
, SH64_MEDIA_SFMT_ADD
},
192 { SH_INSN_MSHFHIW
, SH64_MEDIA_INSN_MSHFHIW
, SH64_MEDIA_SFMT_ADD
},
193 { SH_INSN_MSHFLOB
, SH64_MEDIA_INSN_MSHFLOB
, SH64_MEDIA_SFMT_ADD
},
194 { SH_INSN_MSHFLOL
, SH64_MEDIA_INSN_MSHFLOL
, SH64_MEDIA_SFMT_ADD
},
195 { SH_INSN_MSHFLOW
, SH64_MEDIA_INSN_MSHFLOW
, SH64_MEDIA_SFMT_ADD
},
196 { SH_INSN_MSHLLDL
, SH64_MEDIA_INSN_MSHLLDL
, SH64_MEDIA_SFMT_ADD
},
197 { SH_INSN_MSHLLDW
, SH64_MEDIA_INSN_MSHLLDW
, SH64_MEDIA_SFMT_ADD
},
198 { SH_INSN_MSHLRDL
, SH64_MEDIA_INSN_MSHLRDL
, SH64_MEDIA_SFMT_ADD
},
199 { SH_INSN_MSHLRDW
, SH64_MEDIA_INSN_MSHLRDW
, SH64_MEDIA_SFMT_ADD
},
200 { SH_INSN_MSUBL
, SH64_MEDIA_INSN_MSUBL
, SH64_MEDIA_SFMT_ADD
},
201 { SH_INSN_MSUBW
, SH64_MEDIA_INSN_MSUBW
, SH64_MEDIA_SFMT_ADD
},
202 { SH_INSN_MSUBSL
, SH64_MEDIA_INSN_MSUBSL
, SH64_MEDIA_SFMT_ADD
},
203 { SH_INSN_MSUBSUB
, SH64_MEDIA_INSN_MSUBSUB
, SH64_MEDIA_SFMT_ADD
},
204 { SH_INSN_MSUBSW
, SH64_MEDIA_INSN_MSUBSW
, SH64_MEDIA_SFMT_ADD
},
205 { SH_INSN_MULSL
, SH64_MEDIA_INSN_MULSL
, SH64_MEDIA_SFMT_ADD
},
206 { SH_INSN_MULUL
, SH64_MEDIA_INSN_MULUL
, SH64_MEDIA_SFMT_ADD
},
207 { SH_INSN_NOP
, SH64_MEDIA_INSN_NOP
, SH64_MEDIA_SFMT_NOP
},
208 { SH_INSN_NSB
, SH64_MEDIA_INSN_NSB
, SH64_MEDIA_SFMT_BYTEREV
},
209 { SH_INSN_OCBI
, SH64_MEDIA_INSN_OCBI
, SH64_MEDIA_SFMT_ALLOCO
},
210 { SH_INSN_OCBP
, SH64_MEDIA_INSN_OCBP
, SH64_MEDIA_SFMT_ALLOCO
},
211 { SH_INSN_OCBWB
, SH64_MEDIA_INSN_OCBWB
, SH64_MEDIA_SFMT_ALLOCO
},
212 { SH_INSN_OR
, SH64_MEDIA_INSN_OR
, SH64_MEDIA_SFMT_ADD
},
213 { SH_INSN_ORI
, SH64_MEDIA_INSN_ORI
, SH64_MEDIA_SFMT_ORI
},
214 { SH_INSN_PREFI
, SH64_MEDIA_INSN_PREFI
, SH64_MEDIA_SFMT_ALLOCO
},
215 { SH_INSN_PTA
, SH64_MEDIA_INSN_PTA
, SH64_MEDIA_SFMT_PTA
},
216 { SH_INSN_PTABS
, SH64_MEDIA_INSN_PTABS
, SH64_MEDIA_SFMT_PTABS
},
217 { SH_INSN_PTB
, SH64_MEDIA_INSN_PTB
, SH64_MEDIA_SFMT_PTA
},
218 { SH_INSN_PTREL
, SH64_MEDIA_INSN_PTREL
, SH64_MEDIA_SFMT_PTREL
},
219 { SH_INSN_PUTCFG
, SH64_MEDIA_INSN_PUTCFG
, SH64_MEDIA_SFMT_PUTCFG
},
220 { SH_INSN_PUTCON
, SH64_MEDIA_INSN_PUTCON
, SH64_MEDIA_SFMT_PUTCON
},
221 { SH_INSN_RTE
, SH64_MEDIA_INSN_RTE
, SH64_MEDIA_SFMT_NOP
},
222 { SH_INSN_SHARD
, SH64_MEDIA_INSN_SHARD
, SH64_MEDIA_SFMT_ADD
},
223 { SH_INSN_SHARDL
, SH64_MEDIA_INSN_SHARDL
, SH64_MEDIA_SFMT_ADD
},
224 { SH_INSN_SHARI
, SH64_MEDIA_INSN_SHARI
, SH64_MEDIA_SFMT_SHARI
},
225 { SH_INSN_SHARIL
, SH64_MEDIA_INSN_SHARIL
, SH64_MEDIA_SFMT_SHARIL
},
226 { SH_INSN_SHLLD
, SH64_MEDIA_INSN_SHLLD
, SH64_MEDIA_SFMT_ADD
},
227 { SH_INSN_SHLLDL
, SH64_MEDIA_INSN_SHLLDL
, SH64_MEDIA_SFMT_ADD
},
228 { SH_INSN_SHLLI
, SH64_MEDIA_INSN_SHLLI
, SH64_MEDIA_SFMT_SHARI
},
229 { SH_INSN_SHLLIL
, SH64_MEDIA_INSN_SHLLIL
, SH64_MEDIA_SFMT_SHARIL
},
230 { SH_INSN_SHLRD
, SH64_MEDIA_INSN_SHLRD
, SH64_MEDIA_SFMT_ADD
},
231 { SH_INSN_SHLRDL
, SH64_MEDIA_INSN_SHLRDL
, SH64_MEDIA_SFMT_ADD
},
232 { SH_INSN_SHLRI
, SH64_MEDIA_INSN_SHLRI
, SH64_MEDIA_SFMT_SHARI
},
233 { SH_INSN_SHLRIL
, SH64_MEDIA_INSN_SHLRIL
, SH64_MEDIA_SFMT_SHARIL
},
234 { SH_INSN_SHORI
, SH64_MEDIA_INSN_SHORI
, SH64_MEDIA_SFMT_SHORI
},
235 { SH_INSN_SLEEP
, SH64_MEDIA_INSN_SLEEP
, SH64_MEDIA_SFMT_NOP
},
236 { SH_INSN_STB
, SH64_MEDIA_INSN_STB
, SH64_MEDIA_SFMT_STB
},
237 { SH_INSN_STL
, SH64_MEDIA_INSN_STL
, SH64_MEDIA_SFMT_STL
},
238 { SH_INSN_STQ
, SH64_MEDIA_INSN_STQ
, SH64_MEDIA_SFMT_STQ
},
239 { SH_INSN_STW
, SH64_MEDIA_INSN_STW
, SH64_MEDIA_SFMT_STW
},
240 { SH_INSN_STHIL
, SH64_MEDIA_INSN_STHIL
, SH64_MEDIA_SFMT_STHIL
},
241 { SH_INSN_STHIQ
, SH64_MEDIA_INSN_STHIQ
, SH64_MEDIA_SFMT_STHIQ
},
242 { SH_INSN_STLOL
, SH64_MEDIA_INSN_STLOL
, SH64_MEDIA_SFMT_STLOL
},
243 { SH_INSN_STLOQ
, SH64_MEDIA_INSN_STLOQ
, SH64_MEDIA_SFMT_STLOQ
},
244 { SH_INSN_STXB
, SH64_MEDIA_INSN_STXB
, SH64_MEDIA_SFMT_STXB
},
245 { SH_INSN_STXL
, SH64_MEDIA_INSN_STXL
, SH64_MEDIA_SFMT_STXL
},
246 { SH_INSN_STXQ
, SH64_MEDIA_INSN_STXQ
, SH64_MEDIA_SFMT_STXQ
},
247 { SH_INSN_STXW
, SH64_MEDIA_INSN_STXW
, SH64_MEDIA_SFMT_STXW
},
248 { SH_INSN_SUB
, SH64_MEDIA_INSN_SUB
, SH64_MEDIA_SFMT_ADD
},
249 { SH_INSN_SUBL
, SH64_MEDIA_INSN_SUBL
, SH64_MEDIA_SFMT_ADD
},
250 { SH_INSN_SWAPQ
, SH64_MEDIA_INSN_SWAPQ
, SH64_MEDIA_SFMT_SWAPQ
},
251 { SH_INSN_SYNCI
, SH64_MEDIA_INSN_SYNCI
, SH64_MEDIA_SFMT_NOP
},
252 { SH_INSN_SYNCO
, SH64_MEDIA_INSN_SYNCO
, SH64_MEDIA_SFMT_NOP
},
253 { SH_INSN_TRAPA
, SH64_MEDIA_INSN_TRAPA
, SH64_MEDIA_SFMT_TRAPA
},
254 { SH_INSN_XOR
, SH64_MEDIA_INSN_XOR
, SH64_MEDIA_SFMT_ADD
},
255 { SH_INSN_XORI
, SH64_MEDIA_INSN_XORI
, SH64_MEDIA_SFMT_XORI
},
258 static const struct insn_sem sh64_media_insn_sem_invalid
= {
259 VIRTUAL_INSN_X_INVALID
, SH64_MEDIA_INSN_X_INVALID
, SH64_MEDIA_SFMT_EMPTY
262 /* Initialize an IDESC from the compile-time computable parts. */
265 init_idesc (SIM_CPU
*cpu
, IDESC
*id
, const struct insn_sem
*t
)
267 const CGEN_INSN
*insn_table
= CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu
))->init_entries
;
271 if ((int) t
->type
<= 0)
272 id
->idata
= & cgen_virtual_insn_table
[- (int) t
->type
];
274 id
->idata
= & insn_table
[t
->type
];
275 id
->attrs
= CGEN_INSN_ATTRS (id
->idata
);
276 /* Oh my god, a magic number. */
277 id
->length
= CGEN_INSN_BITSIZE (id
->idata
) / 8;
279 #if WITH_PROFILE_MODEL_P
280 id
->timing
= & MODEL_TIMING (CPU_MODEL (cpu
)) [t
->index
];
282 SIM_DESC sd
= CPU_STATE (cpu
);
283 SIM_ASSERT (t
->index
== id
->timing
->num
);
287 /* Semantic pointers are initialized elsewhere. */
290 /* Initialize the instruction descriptor table. */
293 sh64_media_init_idesc_table (SIM_CPU
*cpu
)
296 const struct insn_sem
*t
,*tend
;
297 int tabsize
= SH64_MEDIA_INSN__MAX
;
298 IDESC
*table
= sh64_media_insn_data
;
300 memset (table
, 0, tabsize
* sizeof (IDESC
));
302 /* First set all entries to the `invalid insn'. */
303 t
= & sh64_media_insn_sem_invalid
;
304 for (id
= table
, tabend
= table
+ tabsize
; id
< tabend
; ++id
)
305 init_idesc (cpu
, id
, t
);
307 /* Now fill in the values for the chosen cpu. */
308 for (t
= sh64_media_insn_sem
, tend
= t
+ sizeof (sh64_media_insn_sem
) / sizeof (*t
);
311 init_idesc (cpu
, & table
[t
->index
], t
);
314 /* Link the IDESC table into the cpu. */
315 CPU_IDESC (cpu
) = table
;
318 /* Given an instruction, return a pointer to its IDESC entry. */
321 sh64_media_decode (SIM_CPU
*current_cpu
, IADDR pc
,
322 CGEN_INSN_INT base_insn
, CGEN_INSN_INT entire_insn
,
325 /* Result of decoder. */
326 SH64_MEDIA_INSN_TYPE itype
;
329 CGEN_INSN_INT insn
= base_insn
;
332 unsigned int val
= (((insn
>> 22) & (63 << 4)) | ((insn
>> 16) & (15 << 0)));
336 if ((entire_insn
& 0xfc0f000f) == 0x10000)
337 { itype
= SH64_MEDIA_INSN_CMPEQ
; goto extract_sfmt_add
; }
338 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
340 if ((entire_insn
& 0xfc0f000f) == 0x30000)
341 { itype
= SH64_MEDIA_INSN_CMPGT
; goto extract_sfmt_add
; }
342 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
344 if ((entire_insn
& 0xfc0f000f) == 0x70000)
345 { itype
= SH64_MEDIA_INSN_CMPGTU
; goto extract_sfmt_add
; }
346 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
348 if ((entire_insn
& 0xfc0f000f) == 0x80000)
349 { itype
= SH64_MEDIA_INSN_ADDL
; goto extract_sfmt_add
; }
350 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
352 if ((entire_insn
& 0xfc0f000f) == 0x90000)
353 { itype
= SH64_MEDIA_INSN_ADD
; goto extract_sfmt_add
; }
354 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
356 if ((entire_insn
& 0xfc0f000f) == 0xa0000)
357 { itype
= SH64_MEDIA_INSN_SUBL
; goto extract_sfmt_add
; }
358 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
360 if ((entire_insn
& 0xfc0f000f) == 0xb0000)
361 { itype
= SH64_MEDIA_INSN_SUB
; goto extract_sfmt_add
; }
362 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
364 if ((entire_insn
& 0xfc0f000f) == 0xc0000)
365 { itype
= SH64_MEDIA_INSN_ADDZL
; goto extract_sfmt_add
; }
366 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
368 if ((entire_insn
& 0xfc0ffc0f) == 0xdfc00)
369 { itype
= SH64_MEDIA_INSN_NSB
; goto extract_sfmt_byterev
; }
370 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
372 if ((entire_insn
& 0xfc0f000f) == 0xe0000)
373 { itype
= SH64_MEDIA_INSN_MULUL
; goto extract_sfmt_add
; }
374 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
376 if ((entire_insn
& 0xfc0ffc0f) == 0xffc00)
377 { itype
= SH64_MEDIA_INSN_BYTEREV
; goto extract_sfmt_byterev
; }
378 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
380 if ((entire_insn
& 0xfc0f000f) == 0x4000000)
381 { itype
= SH64_MEDIA_INSN_SHLLDL
; goto extract_sfmt_add
; }
382 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
384 if ((entire_insn
& 0xfc0f000f) == 0x4010000)
385 { itype
= SH64_MEDIA_INSN_SHLLD
; goto extract_sfmt_add
; }
386 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
388 if ((entire_insn
& 0xfc0f000f) == 0x4020000)
389 { itype
= SH64_MEDIA_INSN_SHLRDL
; goto extract_sfmt_add
; }
390 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
392 if ((entire_insn
& 0xfc0f000f) == 0x4030000)
393 { itype
= SH64_MEDIA_INSN_SHLRD
; goto extract_sfmt_add
; }
394 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
396 if ((entire_insn
& 0xfc0f000f) == 0x4060000)
397 { itype
= SH64_MEDIA_INSN_SHARDL
; goto extract_sfmt_add
; }
398 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
400 if ((entire_insn
& 0xfc0f000f) == 0x4070000)
401 { itype
= SH64_MEDIA_INSN_SHARD
; goto extract_sfmt_add
; }
402 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
404 if ((entire_insn
& 0xfc0f000f) == 0x4090000)
405 { itype
= SH64_MEDIA_INSN_OR
; goto extract_sfmt_add
; }
406 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
408 if ((entire_insn
& 0xfc0f000f) == 0x40b0000)
409 { itype
= SH64_MEDIA_INSN_AND
; goto extract_sfmt_add
; }
410 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
412 if ((entire_insn
& 0xfc0f000f) == 0x40d0000)
413 { itype
= SH64_MEDIA_INSN_XOR
; goto extract_sfmt_add
; }
414 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
416 if ((entire_insn
& 0xfc0f000f) == 0x40e0000)
417 { itype
= SH64_MEDIA_INSN_MULSL
; goto extract_sfmt_add
; }
418 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
420 if ((entire_insn
& 0xfc0f000f) == 0x40f0000)
421 { itype
= SH64_MEDIA_INSN_ANDC
; goto extract_sfmt_add
; }
422 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
424 if ((entire_insn
& 0xfc0f000f) == 0x8010000)
425 { itype
= SH64_MEDIA_INSN_MADDW
; goto extract_sfmt_add
; }
426 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
428 if ((entire_insn
& 0xfc0f000f) == 0x8020000)
429 { itype
= SH64_MEDIA_INSN_MADDL
; goto extract_sfmt_add
; }
430 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
432 if ((entire_insn
& 0xfc0f000f) == 0x8040000)
433 { itype
= SH64_MEDIA_INSN_MADDSUB
; goto extract_sfmt_add
; }
434 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
436 if ((entire_insn
& 0xfc0f000f) == 0x8050000)
437 { itype
= SH64_MEDIA_INSN_MADDSW
; goto extract_sfmt_add
; }
438 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
440 if ((entire_insn
& 0xfc0f000f) == 0x8060000)
441 { itype
= SH64_MEDIA_INSN_MADDSL
; goto extract_sfmt_add
; }
442 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
444 if ((entire_insn
& 0xfc0f000f) == 0x8090000)
445 { itype
= SH64_MEDIA_INSN_MSUBW
; goto extract_sfmt_add
; }
446 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
448 if ((entire_insn
& 0xfc0f000f) == 0x80a0000)
449 { itype
= SH64_MEDIA_INSN_MSUBL
; goto extract_sfmt_add
; }
450 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
452 if ((entire_insn
& 0xfc0f000f) == 0x80c0000)
453 { itype
= SH64_MEDIA_INSN_MSUBSUB
; goto extract_sfmt_add
; }
454 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
456 if ((entire_insn
& 0xfc0f000f) == 0x80d0000)
457 { itype
= SH64_MEDIA_INSN_MSUBSW
; goto extract_sfmt_add
; }
458 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
460 if ((entire_insn
& 0xfc0f000f) == 0x80e0000)
461 { itype
= SH64_MEDIA_INSN_MSUBSL
; goto extract_sfmt_add
; }
462 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
464 if ((entire_insn
& 0xfc0f000f) == 0xc010000)
465 { itype
= SH64_MEDIA_INSN_MSHLLDW
; goto extract_sfmt_add
; }
466 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
468 if ((entire_insn
& 0xfc0f000f) == 0xc020000)
469 { itype
= SH64_MEDIA_INSN_MSHLLDL
; goto extract_sfmt_add
; }
470 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
472 if ((entire_insn
& 0xfc0f000f) == 0xc050000)
473 { itype
= SH64_MEDIA_INSN_MSHALDSW
; goto extract_sfmt_add
; }
474 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
476 if ((entire_insn
& 0xfc0f000f) == 0xc060000)
477 { itype
= SH64_MEDIA_INSN_MSHALDSL
; goto extract_sfmt_add
; }
478 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
480 if ((entire_insn
& 0xfc0f000f) == 0xc090000)
481 { itype
= SH64_MEDIA_INSN_MSHARDW
; goto extract_sfmt_add
; }
482 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
484 if ((entire_insn
& 0xfc0f000f) == 0xc0a0000)
485 { itype
= SH64_MEDIA_INSN_MSHARDL
; goto extract_sfmt_add
; }
486 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
488 if ((entire_insn
& 0xfc0f000f) == 0xc0b0000)
489 { itype
= SH64_MEDIA_INSN_MSHARDSQ
; goto extract_sfmt_add
; }
490 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
492 if ((entire_insn
& 0xfc0f000f) == 0xc0d0000)
493 { itype
= SH64_MEDIA_INSN_MSHLRDW
; goto extract_sfmt_add
; }
494 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
496 if ((entire_insn
& 0xfc0f000f) == 0xc0e0000)
497 { itype
= SH64_MEDIA_INSN_MSHLRDL
; goto extract_sfmt_add
; }
498 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
500 if ((entire_insn
& 0xfc0f000f) == 0x14060000)
501 { itype
= SH64_MEDIA_INSN_FIPRS
; goto extract_sfmt_fiprs
; }
502 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
504 if ((entire_insn
& 0xfc0f000f) == 0x140e0000)
505 { itype
= SH64_MEDIA_INSN_FTRVS
; goto extract_sfmt_ftrvs
; }
506 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
508 if ((entire_insn
& 0xfc0f000f) == 0x18000000)
509 { itype
= SH64_MEDIA_INSN_FABSS
; goto extract_sfmt_fabss
; }
510 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
512 if ((entire_insn
& 0xfc0f000f) == 0x18010000)
513 { itype
= SH64_MEDIA_INSN_FABSD
; goto extract_sfmt_fabsd
; }
514 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
516 if ((entire_insn
& 0xfc0f000f) == 0x18020000)
517 { itype
= SH64_MEDIA_INSN_FNEGS
; goto extract_sfmt_fabss
; }
518 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
520 if ((entire_insn
& 0xfc0f000f) == 0x18030000)
521 { itype
= SH64_MEDIA_INSN_FNEGD
; goto extract_sfmt_fabsd
; }
522 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
524 if ((entire_insn
& 0xfc0ffc0f) == 0x1c00fc00)
525 { itype
= SH64_MEDIA_INSN_FMOVLS
; goto extract_sfmt_fmovls
; }
526 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
528 if ((entire_insn
& 0xfc0ffc0f) == 0x1c01fc00)
529 { itype
= SH64_MEDIA_INSN_FMOVQD
; goto extract_sfmt_fmovqd
; }
530 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
532 if ((entire_insn
& 0xfffffc0f) == 0x1ff2fc00)
533 { itype
= SH64_MEDIA_INSN_FGETSCR
; goto extract_sfmt_fgetscr
; }
534 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
536 if ((entire_insn
& 0xfc0f000f) == 0x1c080000)
537 { itype
= SH64_MEDIA_INSN_FLDXS
; goto extract_sfmt_fldxs
; }
538 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
540 if ((entire_insn
& 0xfc0f000f) == 0x1c090000)
541 { itype
= SH64_MEDIA_INSN_FLDXD
; goto extract_sfmt_fldxd
; }
542 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
544 if ((entire_insn
& 0xfc0f000f) == 0x1c0d0000)
545 { itype
= SH64_MEDIA_INSN_FLDXP
; goto extract_sfmt_fldxp
; }
546 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
548 if ((entire_insn
& 0xfc0f000f) == 0x20010000)
549 { itype
= SH64_MEDIA_INSN_CMVEQ
; goto extract_sfmt_cmveq
; }
550 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
552 if ((entire_insn
& 0xfc0f000f) == 0x20030000)
553 { itype
= SH64_MEDIA_INSN_SWAPQ
; goto extract_sfmt_swapq
; }
554 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
556 if ((entire_insn
& 0xfc0f000f) == 0x20050000)
557 { itype
= SH64_MEDIA_INSN_CMVNE
; goto extract_sfmt_cmveq
; }
558 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
560 if ((entire_insn
& 0xfc0ffc0f) == 0x240ffc00)
561 { itype
= SH64_MEDIA_INSN_GETCON
; goto extract_sfmt_getcon
; }
562 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
564 if ((entire_insn
& 0xfc0f000f) == 0x28000000)
565 { itype
= SH64_MEDIA_INSN_MCMPEQB
; goto extract_sfmt_add
; }
566 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
568 if ((entire_insn
& 0xfc0f000f) == 0x28010000)
569 { itype
= SH64_MEDIA_INSN_MCMPEQW
; goto extract_sfmt_add
; }
570 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
572 if ((entire_insn
& 0xfc0f000f) == 0x28020000)
573 { itype
= SH64_MEDIA_INSN_MCMPEQL
; goto extract_sfmt_add
; }
574 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
576 if ((entire_insn
& 0xfc0f000f) == 0x28040000)
577 { itype
= SH64_MEDIA_INSN_MCMPGTUB
; goto extract_sfmt_add
; }
578 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
580 if ((entire_insn
& 0xfc0f000f) == 0x28050000)
581 { itype
= SH64_MEDIA_INSN_MCMPGTW
; goto extract_sfmt_add
; }
582 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
584 if ((entire_insn
& 0xfc0f000f) == 0x28060000)
585 { itype
= SH64_MEDIA_INSN_MCMPGTL
; goto extract_sfmt_add
; }
586 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
588 if ((entire_insn
& 0xfc0f000f) == 0x28070000)
589 { itype
= SH64_MEDIA_INSN_MEXTR1
; goto extract_sfmt_add
; }
590 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
592 if ((entire_insn
& 0xfc0ffc0f) == 0x2809fc00)
593 { itype
= SH64_MEDIA_INSN_MABSW
; goto extract_sfmt_byterev
; }
594 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
596 if ((entire_insn
& 0xfc0ffc0f) == 0x280afc00)
597 { itype
= SH64_MEDIA_INSN_MABSL
; goto extract_sfmt_byterev
; }
598 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
600 if ((entire_insn
& 0xfc0f000f) == 0x280b0000)
601 { itype
= SH64_MEDIA_INSN_MEXTR2
; goto extract_sfmt_add
; }
602 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
604 if ((entire_insn
& 0xfc0f000f) == 0x280d0000)
605 { itype
= SH64_MEDIA_INSN_MPERMW
; goto extract_sfmt_mpermw
; }
606 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
608 if ((entire_insn
& 0xfc0f000f) == 0x280f0000)
609 { itype
= SH64_MEDIA_INSN_MEXTR3
; goto extract_sfmt_add
; }
610 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
612 if ((entire_insn
& 0xfc0f000f) == 0x2c000000)
613 { itype
= SH64_MEDIA_INSN_MSHFLOB
; goto extract_sfmt_add
; }
614 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
616 if ((entire_insn
& 0xfc0f000f) == 0x2c010000)
617 { itype
= SH64_MEDIA_INSN_MSHFLOW
; goto extract_sfmt_add
; }
618 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
620 if ((entire_insn
& 0xfc0f000f) == 0x2c020000)
621 { itype
= SH64_MEDIA_INSN_MSHFLOL
; goto extract_sfmt_add
; }
622 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
624 if ((entire_insn
& 0xfc0f000f) == 0x2c030000)
625 { itype
= SH64_MEDIA_INSN_MEXTR4
; goto extract_sfmt_add
; }
626 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
628 if ((entire_insn
& 0xfc0f000f) == 0x2c040000)
629 { itype
= SH64_MEDIA_INSN_MSHFHIB
; goto extract_sfmt_add
; }
630 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
632 if ((entire_insn
& 0xfc0f000f) == 0x2c050000)
633 { itype
= SH64_MEDIA_INSN_MSHFHIW
; goto extract_sfmt_add
; }
634 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
636 if ((entire_insn
& 0xfc0f000f) == 0x2c060000)
637 { itype
= SH64_MEDIA_INSN_MSHFHIL
; goto extract_sfmt_add
; }
638 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
640 if ((entire_insn
& 0xfc0f000f) == 0x2c070000)
641 { itype
= SH64_MEDIA_INSN_MEXTR5
; goto extract_sfmt_add
; }
642 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
644 if ((entire_insn
& 0xfc0f000f) == 0x2c0b0000)
645 { itype
= SH64_MEDIA_INSN_MEXTR6
; goto extract_sfmt_add
; }
646 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
648 if ((entire_insn
& 0xfc0f000f) == 0x2c0f0000)
649 { itype
= SH64_MEDIA_INSN_MEXTR7
; goto extract_sfmt_add
; }
650 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
652 if ((entire_insn
& 0xfc0f000f) == 0x30000000)
653 { itype
= SH64_MEDIA_INSN_FMOVSL
; goto extract_sfmt_fmovsl
; }
654 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
656 if ((entire_insn
& 0xfc0f000f) == 0x30010000)
657 { itype
= SH64_MEDIA_INSN_FMOVDQ
; goto extract_sfmt_fmovdq
; }
658 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
660 if ((entire_insn
& 0xfc0f03ff) == 0x300203f0)
661 { itype
= SH64_MEDIA_INSN_FPUTSCR
; goto extract_sfmt_fputscr
; }
662 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
664 if ((entire_insn
& 0xfc0f000f) == 0x30080000)
665 { itype
= SH64_MEDIA_INSN_FCMPEQS
; goto extract_sfmt_fcmpeqs
; }
666 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
668 if ((entire_insn
& 0xfc0f000f) == 0x30090000)
669 { itype
= SH64_MEDIA_INSN_FCMPEQD
; goto extract_sfmt_fcmpeqd
; }
670 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
672 if ((entire_insn
& 0xfc0f000f) == 0x300a0000)
673 { itype
= SH64_MEDIA_INSN_FCMPUNS
; goto extract_sfmt_fcmpeqs
; }
674 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
676 if ((entire_insn
& 0xfc0f000f) == 0x300b0000)
677 { itype
= SH64_MEDIA_INSN_FCMPUND
; goto extract_sfmt_fcmpeqd
; }
678 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
680 if ((entire_insn
& 0xfc0f000f) == 0x300c0000)
681 { itype
= SH64_MEDIA_INSN_FCMPGTS
; goto extract_sfmt_fcmpeqs
; }
682 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
684 if ((entire_insn
& 0xfc0f000f) == 0x300d0000)
685 { itype
= SH64_MEDIA_INSN_FCMPGTD
; goto extract_sfmt_fcmpeqd
; }
686 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
688 if ((entire_insn
& 0xfc0f000f) == 0x300e0000)
689 { itype
= SH64_MEDIA_INSN_FCMPGES
; goto extract_sfmt_fcmpeqs
; }
690 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
692 if ((entire_insn
& 0xfc0f000f) == 0x300f0000)
693 { itype
= SH64_MEDIA_INSN_FCMPGED
; goto extract_sfmt_fcmpeqd
; }
694 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
696 if ((entire_insn
& 0xfc0f000f) == 0x34000000)
697 { itype
= SH64_MEDIA_INSN_FADDS
; goto extract_sfmt_fadds
; }
698 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
700 if ((entire_insn
& 0xfc0f000f) == 0x34010000)
701 { itype
= SH64_MEDIA_INSN_FADDD
; goto extract_sfmt_faddd
; }
702 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
704 if ((entire_insn
& 0xfc0f000f) == 0x34020000)
705 { itype
= SH64_MEDIA_INSN_FSUBS
; goto extract_sfmt_fadds
; }
706 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
708 if ((entire_insn
& 0xfc0f000f) == 0x34030000)
709 { itype
= SH64_MEDIA_INSN_FSUBD
; goto extract_sfmt_faddd
; }
710 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
712 if ((entire_insn
& 0xfc0f000f) == 0x34040000)
713 { itype
= SH64_MEDIA_INSN_FDIVS
; goto extract_sfmt_fadds
; }
714 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
716 if ((entire_insn
& 0xfc0f000f) == 0x34050000)
717 { itype
= SH64_MEDIA_INSN_FDIVD
; goto extract_sfmt_faddd
; }
718 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
720 if ((entire_insn
& 0xfc0f000f) == 0x34060000)
721 { itype
= SH64_MEDIA_INSN_FMULS
; goto extract_sfmt_fadds
; }
722 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
724 if ((entire_insn
& 0xfc0f000f) == 0x34070000)
725 { itype
= SH64_MEDIA_INSN_FMULD
; goto extract_sfmt_faddd
; }
726 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
728 if ((entire_insn
& 0xfc0f000f) == 0x340e0000)
729 { itype
= SH64_MEDIA_INSN_FMACS
; goto extract_sfmt_fmacs
; }
730 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
732 if ((entire_insn
& 0xfc0f000f) == 0x38000000)
733 { itype
= SH64_MEDIA_INSN_FMOVS
; goto extract_sfmt_fabss
; }
734 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
736 if ((entire_insn
& 0xfc0f000f) == 0x38010000)
737 { itype
= SH64_MEDIA_INSN_FMOVD
; goto extract_sfmt_fabsd
; }
738 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
740 if ((entire_insn
& 0xfc0f000f) == 0x38040000)
741 { itype
= SH64_MEDIA_INSN_FSQRTS
; goto extract_sfmt_fabss
; }
742 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
744 if ((entire_insn
& 0xfc0f000f) == 0x38050000)
745 { itype
= SH64_MEDIA_INSN_FSQRTD
; goto extract_sfmt_fabsd
; }
746 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
748 if ((entire_insn
& 0xfc0f000f) == 0x38060000)
749 { itype
= SH64_MEDIA_INSN_FCNVSD
; goto extract_sfmt_fcnvsd
; }
750 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
752 if ((entire_insn
& 0xfc0f000f) == 0x38070000)
753 { itype
= SH64_MEDIA_INSN_FCNVDS
; goto extract_sfmt_fcnvds
; }
754 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
756 if ((entire_insn
& 0xfc0f000f) == 0x38080000)
757 { itype
= SH64_MEDIA_INSN_FTRCSL
; goto extract_sfmt_fabss
; }
758 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
760 if ((entire_insn
& 0xfc0f000f) == 0x38090000)
761 { itype
= SH64_MEDIA_INSN_FTRCDQ
; goto extract_sfmt_fabsd
; }
762 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
764 if ((entire_insn
& 0xfc0f000f) == 0x380a0000)
765 { itype
= SH64_MEDIA_INSN_FTRCSQ
; goto extract_sfmt_fcnvsd
; }
766 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
768 if ((entire_insn
& 0xfc0f000f) == 0x380b0000)
769 { itype
= SH64_MEDIA_INSN_FTRCDL
; goto extract_sfmt_fcnvds
; }
770 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
772 if ((entire_insn
& 0xfc0f000f) == 0x380c0000)
773 { itype
= SH64_MEDIA_INSN_FLOATLS
; goto extract_sfmt_fabss
; }
774 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
776 if ((entire_insn
& 0xfc0f000f) == 0x380d0000)
777 { itype
= SH64_MEDIA_INSN_FLOATQD
; goto extract_sfmt_fabsd
; }
778 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
780 if ((entire_insn
& 0xfc0f000f) == 0x380e0000)
781 { itype
= SH64_MEDIA_INSN_FLOATLD
; goto extract_sfmt_fcnvsd
; }
782 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
784 if ((entire_insn
& 0xfc0f000f) == 0x380f0000)
785 { itype
= SH64_MEDIA_INSN_FLOATQS
; goto extract_sfmt_fcnvds
; }
786 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
788 if ((entire_insn
& 0xfc0f000f) == 0x3c080000)
789 { itype
= SH64_MEDIA_INSN_FSTXS
; goto extract_sfmt_fstxs
; }
790 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
792 if ((entire_insn
& 0xfc0f000f) == 0x3c090000)
793 { itype
= SH64_MEDIA_INSN_FSTXD
; goto extract_sfmt_fstxd
; }
794 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
796 if ((entire_insn
& 0xfc0f000f) == 0x3c0d0000)
797 { itype
= SH64_MEDIA_INSN_FSTXP
; goto extract_sfmt_fldxp
; }
798 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
800 if ((entire_insn
& 0xfc0f000f) == 0x40000000)
801 { itype
= SH64_MEDIA_INSN_LDXB
; goto extract_sfmt_ldxb
; }
802 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
804 if ((entire_insn
& 0xfc0f000f) == 0x40010000)
805 { itype
= SH64_MEDIA_INSN_LDXW
; goto extract_sfmt_ldxw
; }
806 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
808 if ((entire_insn
& 0xfc0f000f) == 0x40020000)
809 { itype
= SH64_MEDIA_INSN_LDXL
; goto extract_sfmt_ldxl
; }
810 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
812 if ((entire_insn
& 0xfc0f000f) == 0x40030000)
813 { itype
= SH64_MEDIA_INSN_LDXQ
; goto extract_sfmt_ldxq
; }
814 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
816 if ((entire_insn
& 0xfc0f000f) == 0x40040000)
817 { itype
= SH64_MEDIA_INSN_LDXUB
; goto extract_sfmt_ldxub
; }
818 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
820 if ((entire_insn
& 0xfc0f000f) == 0x40050000)
821 { itype
= SH64_MEDIA_INSN_LDXUW
; goto extract_sfmt_ldxuw
; }
822 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
824 if ((entire_insn
& 0xff8ffc0f) == 0x4401fc00)
825 { itype
= SH64_MEDIA_INSN_BLINK
; goto extract_sfmt_blink
; }
826 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
828 if ((entire_insn
& 0xff8ffc0f) == 0x4405fc00)
829 { itype
= SH64_MEDIA_INSN_GETTR
; goto extract_sfmt_gettr
; }
830 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
832 if ((entire_insn
& 0xfc0f000f) == 0x48000000)
833 { itype
= SH64_MEDIA_INSN_MSADUBQ
; goto extract_sfmt_mcmv
; }
834 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
836 if ((entire_insn
& 0xfc0f000f) == 0x48010000)
837 { itype
= SH64_MEDIA_INSN_MMACFXWL
; goto extract_sfmt_mcmv
; }
838 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
840 if ((entire_insn
& 0xfc0f000f) == 0x48030000)
841 { itype
= SH64_MEDIA_INSN_MCMV
; goto extract_sfmt_mcmv
; }
842 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
844 if ((entire_insn
& 0xfc0f000f) == 0x48050000)
845 { itype
= SH64_MEDIA_INSN_MMACNFX_WL
; goto extract_sfmt_mcmv
; }
846 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
848 if ((entire_insn
& 0xfc0f000f) == 0x48090000)
849 { itype
= SH64_MEDIA_INSN_MMULSUMWQ
; goto extract_sfmt_mcmv
; }
850 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
852 if ((entire_insn
& 0xfc0f000f) == 0x4c010000)
853 { itype
= SH64_MEDIA_INSN_MMULW
; goto extract_sfmt_add
; }
854 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
856 if ((entire_insn
& 0xfc0f000f) == 0x4c020000)
857 { itype
= SH64_MEDIA_INSN_MMULL
; goto extract_sfmt_add
; }
858 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
860 if ((entire_insn
& 0xfc0f000f) == 0x4c050000)
861 { itype
= SH64_MEDIA_INSN_MMULFXW
; goto extract_sfmt_add
; }
862 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
864 if ((entire_insn
& 0xfc0f000f) == 0x4c060000)
865 { itype
= SH64_MEDIA_INSN_MMULFXL
; goto extract_sfmt_add
; }
866 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
868 if ((entire_insn
& 0xfc0f000f) == 0x4c080000)
869 { itype
= SH64_MEDIA_INSN_MCNVSWB
; goto extract_sfmt_add
; }
870 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
872 if ((entire_insn
& 0xfc0f000f) == 0x4c090000)
873 { itype
= SH64_MEDIA_INSN_MMULFXRPW
; goto extract_sfmt_add
; }
874 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
876 if ((entire_insn
& 0xfc0f000f) == 0x4c0a0000)
877 { itype
= SH64_MEDIA_INSN_MMULLOWL
; goto extract_sfmt_add
; }
878 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
880 if ((entire_insn
& 0xfc0f000f) == 0x4c0c0000)
881 { itype
= SH64_MEDIA_INSN_MCNVSWUB
; goto extract_sfmt_add
; }
882 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
884 if ((entire_insn
& 0xfc0f000f) == 0x4c0d0000)
885 { itype
= SH64_MEDIA_INSN_MCNVSLW
; goto extract_sfmt_add
; }
886 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
888 if ((entire_insn
& 0xfc0f000f) == 0x4c0e0000)
889 { itype
= SH64_MEDIA_INSN_MMULHIWL
; goto extract_sfmt_add
; }
890 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
892 if ((entire_insn
& 0xfc0f000f) == 0x60000000)
893 { itype
= SH64_MEDIA_INSN_STXB
; goto extract_sfmt_stxb
; }
894 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
896 if ((entire_insn
& 0xfc0f000f) == 0x60010000)
897 { itype
= SH64_MEDIA_INSN_STXW
; goto extract_sfmt_stxw
; }
898 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
900 if ((entire_insn
& 0xfc0f000f) == 0x60020000)
901 { itype
= SH64_MEDIA_INSN_STXL
; goto extract_sfmt_stxl
; }
902 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
904 if ((entire_insn
& 0xfc0f000f) == 0x60030000)
905 { itype
= SH64_MEDIA_INSN_STXQ
; goto extract_sfmt_stxq
; }
906 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
908 if ((entire_insn
& 0xfc0f018f) == 0x64010000)
909 { itype
= SH64_MEDIA_INSN_BEQ
; goto extract_sfmt_beq
; }
910 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
912 if ((entire_insn
& 0xfc0f018f) == 0x64030000)
913 { itype
= SH64_MEDIA_INSN_BGE
; goto extract_sfmt_beq
; }
914 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
916 if ((entire_insn
& 0xfc0f018f) == 0x64050000)
917 { itype
= SH64_MEDIA_INSN_BNE
; goto extract_sfmt_beq
; }
918 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
920 if ((entire_insn
& 0xfc0f018f) == 0x64070000)
921 { itype
= SH64_MEDIA_INSN_BGT
; goto extract_sfmt_beq
; }
922 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
924 if ((entire_insn
& 0xfc0f018f) == 0x640b0000)
925 { itype
= SH64_MEDIA_INSN_BGEU
; goto extract_sfmt_beq
; }
926 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
928 if ((entire_insn
& 0xfc0f018f) == 0x640f0000)
929 { itype
= SH64_MEDIA_INSN_BGTU
; goto extract_sfmt_beq
; }
930 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
932 if ((entire_insn
& 0xffff018f) == 0x6bf10000)
933 { itype
= SH64_MEDIA_INSN_PTABS
; goto extract_sfmt_ptabs
; }
934 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
936 if ((entire_insn
& 0xffff018f) == 0x6bf50000)
937 { itype
= SH64_MEDIA_INSN_PTREL
; goto extract_sfmt_ptrel
; }
938 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
940 if ((entire_insn
& 0xffffffff) == 0x6ff0fff0)
941 { itype
= SH64_MEDIA_INSN_NOP
; goto extract_sfmt_nop
; }
942 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
944 if ((entire_insn
& 0xfc0fffff) == 0x6c01fff0)
945 { itype
= SH64_MEDIA_INSN_TRAPA
; goto extract_sfmt_trapa
; }
946 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
948 if ((entire_insn
& 0xffffffff) == 0x6ff2fff0)
949 { itype
= SH64_MEDIA_INSN_SYNCI
; goto extract_sfmt_nop
; }
950 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
952 if ((entire_insn
& 0xffffffff) == 0x6ff3fff0)
953 { itype
= SH64_MEDIA_INSN_RTE
; goto extract_sfmt_nop
; }
954 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
956 if ((entire_insn
& 0xffffffff) == 0x6ff5fff0)
957 { itype
= SH64_MEDIA_INSN_BRK
; goto extract_sfmt_brk
; }
958 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
960 if ((entire_insn
& 0xffffffff) == 0x6ff6fff0)
961 { itype
= SH64_MEDIA_INSN_SYNCO
; goto extract_sfmt_nop
; }
962 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
964 if ((entire_insn
& 0xffffffff) == 0x6ff7fff0)
965 { itype
= SH64_MEDIA_INSN_SLEEP
; goto extract_sfmt_nop
; }
966 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
968 if ((entire_insn
& 0xfc0ffc0f) == 0x6c0ffc00)
969 { itype
= SH64_MEDIA_INSN_PUTCON
; goto extract_sfmt_putcon
; }
970 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
971 case 512 : /* fall through */
972 case 513 : /* fall through */
973 case 514 : /* fall through */
974 case 515 : /* fall through */
975 case 516 : /* fall through */
976 case 517 : /* fall through */
977 case 518 : /* fall through */
978 case 519 : /* fall through */
979 case 520 : /* fall through */
980 case 521 : /* fall through */
981 case 522 : /* fall through */
982 case 523 : /* fall through */
983 case 524 : /* fall through */
984 case 525 : /* fall through */
985 case 526 : /* fall through */
987 if ((entire_insn
& 0xfc00000f) == 0x80000000)
988 { itype
= SH64_MEDIA_INSN_LDB
; goto extract_sfmt_ldb
; }
989 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
990 case 528 : /* fall through */
991 case 529 : /* fall through */
992 case 530 : /* fall through */
993 case 531 : /* fall through */
994 case 532 : /* fall through */
995 case 533 : /* fall through */
996 case 534 : /* fall through */
997 case 535 : /* fall through */
998 case 536 : /* fall through */
999 case 537 : /* fall through */
1000 case 538 : /* fall through */
1001 case 539 : /* fall through */
1002 case 540 : /* fall through */
1003 case 541 : /* fall through */
1004 case 542 : /* fall through */
1006 if ((entire_insn
& 0xfc00000f) == 0x84000000)
1007 { itype
= SH64_MEDIA_INSN_LDW
; goto extract_sfmt_lduw
; }
1008 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1009 case 544 : /* fall through */
1010 case 545 : /* fall through */
1011 case 546 : /* fall through */
1012 case 547 : /* fall through */
1013 case 548 : /* fall through */
1014 case 549 : /* fall through */
1015 case 550 : /* fall through */
1016 case 551 : /* fall through */
1017 case 552 : /* fall through */
1018 case 553 : /* fall through */
1019 case 554 : /* fall through */
1020 case 555 : /* fall through */
1021 case 556 : /* fall through */
1022 case 557 : /* fall through */
1023 case 558 : /* fall through */
1025 if ((entire_insn
& 0xfc00000f) == 0x88000000)
1026 { itype
= SH64_MEDIA_INSN_LDL
; goto extract_sfmt_ldl
; }
1027 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1028 case 560 : /* fall through */
1029 case 561 : /* fall through */
1030 case 562 : /* fall through */
1031 case 563 : /* fall through */
1032 case 564 : /* fall through */
1033 case 565 : /* fall through */
1034 case 566 : /* fall through */
1035 case 567 : /* fall through */
1036 case 568 : /* fall through */
1037 case 569 : /* fall through */
1038 case 570 : /* fall through */
1039 case 571 : /* fall through */
1040 case 572 : /* fall through */
1041 case 573 : /* fall through */
1042 case 574 : /* fall through */
1044 if ((entire_insn
& 0xfc00000f) == 0x8c000000)
1045 { itype
= SH64_MEDIA_INSN_LDQ
; goto extract_sfmt_ldq
; }
1046 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1047 case 576 : /* fall through */
1048 case 577 : /* fall through */
1049 case 578 : /* fall through */
1050 case 579 : /* fall through */
1051 case 580 : /* fall through */
1052 case 581 : /* fall through */
1053 case 582 : /* fall through */
1054 case 583 : /* fall through */
1055 case 584 : /* fall through */
1056 case 585 : /* fall through */
1057 case 586 : /* fall through */
1058 case 587 : /* fall through */
1059 case 588 : /* fall through */
1060 case 589 : /* fall through */
1061 case 590 : /* fall through */
1063 if ((entire_insn
& 0xfc00000f) == 0x90000000)
1064 { itype
= SH64_MEDIA_INSN_LDUB
; goto extract_sfmt_ldb
; }
1065 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1066 case 592 : /* fall through */
1067 case 593 : /* fall through */
1068 case 594 : /* fall through */
1069 case 595 : /* fall through */
1070 case 596 : /* fall through */
1071 case 597 : /* fall through */
1072 case 598 : /* fall through */
1073 case 599 : /* fall through */
1074 case 600 : /* fall through */
1075 case 601 : /* fall through */
1076 case 602 : /* fall through */
1077 case 603 : /* fall through */
1078 case 604 : /* fall through */
1079 case 605 : /* fall through */
1080 case 606 : /* fall through */
1082 if ((entire_insn
& 0xfc00000f) == 0x94000000)
1083 { itype
= SH64_MEDIA_INSN_FLDS
; goto extract_sfmt_flds
; }
1084 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1085 case 608 : /* fall through */
1086 case 609 : /* fall through */
1087 case 610 : /* fall through */
1088 case 611 : /* fall through */
1089 case 612 : /* fall through */
1090 case 613 : /* fall through */
1091 case 614 : /* fall through */
1092 case 615 : /* fall through */
1093 case 616 : /* fall through */
1094 case 617 : /* fall through */
1095 case 618 : /* fall through */
1096 case 619 : /* fall through */
1097 case 620 : /* fall through */
1098 case 621 : /* fall through */
1099 case 622 : /* fall through */
1101 if ((entire_insn
& 0xfc00000f) == 0x98000000)
1102 { itype
= SH64_MEDIA_INSN_FLDP
; goto extract_sfmt_fldp
; }
1103 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1104 case 624 : /* fall through */
1105 case 625 : /* fall through */
1106 case 626 : /* fall through */
1107 case 627 : /* fall through */
1108 case 628 : /* fall through */
1109 case 629 : /* fall through */
1110 case 630 : /* fall through */
1111 case 631 : /* fall through */
1112 case 632 : /* fall through */
1113 case 633 : /* fall through */
1114 case 634 : /* fall through */
1115 case 635 : /* fall through */
1116 case 636 : /* fall through */
1117 case 637 : /* fall through */
1118 case 638 : /* fall through */
1120 if ((entire_insn
& 0xfc00000f) == 0x9c000000)
1121 { itype
= SH64_MEDIA_INSN_FLDD
; goto extract_sfmt_fldd
; }
1122 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1123 case 640 : /* fall through */
1124 case 641 : /* fall through */
1125 case 642 : /* fall through */
1126 case 643 : /* fall through */
1127 case 644 : /* fall through */
1128 case 645 : /* fall through */
1129 case 646 : /* fall through */
1130 case 647 : /* fall through */
1131 case 648 : /* fall through */
1132 case 649 : /* fall through */
1133 case 650 : /* fall through */
1134 case 651 : /* fall through */
1135 case 652 : /* fall through */
1136 case 653 : /* fall through */
1137 case 654 : /* fall through */
1139 if ((entire_insn
& 0xfc00000f) == 0xa0000000)
1140 { itype
= SH64_MEDIA_INSN_STB
; goto extract_sfmt_stb
; }
1141 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1142 case 656 : /* fall through */
1143 case 657 : /* fall through */
1144 case 658 : /* fall through */
1145 case 659 : /* fall through */
1146 case 660 : /* fall through */
1147 case 661 : /* fall through */
1148 case 662 : /* fall through */
1149 case 663 : /* fall through */
1150 case 664 : /* fall through */
1151 case 665 : /* fall through */
1152 case 666 : /* fall through */
1153 case 667 : /* fall through */
1154 case 668 : /* fall through */
1155 case 669 : /* fall through */
1156 case 670 : /* fall through */
1158 if ((entire_insn
& 0xfc00000f) == 0xa4000000)
1159 { itype
= SH64_MEDIA_INSN_STW
; goto extract_sfmt_stw
; }
1160 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1161 case 672 : /* fall through */
1162 case 673 : /* fall through */
1163 case 674 : /* fall through */
1164 case 675 : /* fall through */
1165 case 676 : /* fall through */
1166 case 677 : /* fall through */
1167 case 678 : /* fall through */
1168 case 679 : /* fall through */
1169 case 680 : /* fall through */
1170 case 681 : /* fall through */
1171 case 682 : /* fall through */
1172 case 683 : /* fall through */
1173 case 684 : /* fall through */
1174 case 685 : /* fall through */
1175 case 686 : /* fall through */
1177 if ((entire_insn
& 0xfc00000f) == 0xa8000000)
1178 { itype
= SH64_MEDIA_INSN_STL
; goto extract_sfmt_stl
; }
1179 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1180 case 688 : /* fall through */
1181 case 689 : /* fall through */
1182 case 690 : /* fall through */
1183 case 691 : /* fall through */
1184 case 692 : /* fall through */
1185 case 693 : /* fall through */
1186 case 694 : /* fall through */
1187 case 695 : /* fall through */
1188 case 696 : /* fall through */
1189 case 697 : /* fall through */
1190 case 698 : /* fall through */
1191 case 699 : /* fall through */
1192 case 700 : /* fall through */
1193 case 701 : /* fall through */
1194 case 702 : /* fall through */
1196 if ((entire_insn
& 0xfc00000f) == 0xac000000)
1197 { itype
= SH64_MEDIA_INSN_STQ
; goto extract_sfmt_stq
; }
1198 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1199 case 704 : /* fall through */
1200 case 705 : /* fall through */
1201 case 706 : /* fall through */
1202 case 707 : /* fall through */
1203 case 708 : /* fall through */
1204 case 709 : /* fall through */
1205 case 710 : /* fall through */
1206 case 711 : /* fall through */
1207 case 712 : /* fall through */
1208 case 713 : /* fall through */
1209 case 714 : /* fall through */
1210 case 715 : /* fall through */
1211 case 716 : /* fall through */
1212 case 717 : /* fall through */
1213 case 718 : /* fall through */
1215 if ((entire_insn
& 0xfc00000f) == 0xb0000000)
1216 { itype
= SH64_MEDIA_INSN_LDUW
; goto extract_sfmt_lduw
; }
1217 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1218 case 720 : /* fall through */
1219 case 721 : /* fall through */
1220 case 722 : /* fall through */
1221 case 723 : /* fall through */
1222 case 724 : /* fall through */
1223 case 725 : /* fall through */
1224 case 726 : /* fall through */
1225 case 727 : /* fall through */
1226 case 728 : /* fall through */
1227 case 729 : /* fall through */
1228 case 730 : /* fall through */
1229 case 731 : /* fall through */
1230 case 732 : /* fall through */
1231 case 733 : /* fall through */
1232 case 734 : /* fall through */
1234 if ((entire_insn
& 0xfc00000f) == 0xb4000000)
1235 { itype
= SH64_MEDIA_INSN_FSTS
; goto extract_sfmt_fsts
; }
1236 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1237 case 736 : /* fall through */
1238 case 737 : /* fall through */
1239 case 738 : /* fall through */
1240 case 739 : /* fall through */
1241 case 740 : /* fall through */
1242 case 741 : /* fall through */
1243 case 742 : /* fall through */
1244 case 743 : /* fall through */
1245 case 744 : /* fall through */
1246 case 745 : /* fall through */
1247 case 746 : /* fall through */
1248 case 747 : /* fall through */
1249 case 748 : /* fall through */
1250 case 749 : /* fall through */
1251 case 750 : /* fall through */
1253 if ((entire_insn
& 0xfc00000f) == 0xb8000000)
1254 { itype
= SH64_MEDIA_INSN_FSTP
; goto extract_sfmt_fldp
; }
1255 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1256 case 752 : /* fall through */
1257 case 753 : /* fall through */
1258 case 754 : /* fall through */
1259 case 755 : /* fall through */
1260 case 756 : /* fall through */
1261 case 757 : /* fall through */
1262 case 758 : /* fall through */
1263 case 759 : /* fall through */
1264 case 760 : /* fall through */
1265 case 761 : /* fall through */
1266 case 762 : /* fall through */
1267 case 763 : /* fall through */
1268 case 764 : /* fall through */
1269 case 765 : /* fall through */
1270 case 766 : /* fall through */
1272 if ((entire_insn
& 0xfc00000f) == 0xbc000000)
1273 { itype
= SH64_MEDIA_INSN_FSTD
; goto extract_sfmt_fstd
; }
1274 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1276 if ((entire_insn
& 0xfc0f000f) == 0xc0020000)
1277 { itype
= SH64_MEDIA_INSN_LDLOL
; goto extract_sfmt_ldlol
; }
1278 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1280 if ((entire_insn
& 0xfc0f000f) == 0xc0030000)
1281 { itype
= SH64_MEDIA_INSN_LDLOQ
; goto extract_sfmt_ldloq
; }
1282 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1284 if ((entire_insn
& 0xfc0f000f) == 0xc0060000)
1285 { itype
= SH64_MEDIA_INSN_LDHIL
; goto extract_sfmt_ldhil
; }
1286 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1288 if ((entire_insn
& 0xfc0f000f) == 0xc0070000)
1289 { itype
= SH64_MEDIA_INSN_LDHIQ
; goto extract_sfmt_ldhiq
; }
1290 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1292 if ((entire_insn
& 0xfc0f000f) == 0xc00f0000)
1293 { itype
= SH64_MEDIA_INSN_GETCFG
; goto extract_sfmt_getcfg
; }
1294 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1296 if ((entire_insn
& 0xfc0f000f) == 0xc4000000)
1297 { itype
= SH64_MEDIA_INSN_SHLLIL
; goto extract_sfmt_sharil
; }
1298 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1300 if ((entire_insn
& 0xfc0f000f) == 0xc4010000)
1301 { itype
= SH64_MEDIA_INSN_SHLLI
; goto extract_sfmt_shari
; }
1302 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1304 if ((entire_insn
& 0xfc0f000f) == 0xc4020000)
1305 { itype
= SH64_MEDIA_INSN_SHLRIL
; goto extract_sfmt_sharil
; }
1306 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1308 if ((entire_insn
& 0xfc0f000f) == 0xc4030000)
1309 { itype
= SH64_MEDIA_INSN_SHLRI
; goto extract_sfmt_shari
; }
1310 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1312 if ((entire_insn
& 0xfc0f000f) == 0xc4060000)
1313 { itype
= SH64_MEDIA_INSN_SHARIL
; goto extract_sfmt_sharil
; }
1314 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1316 if ((entire_insn
& 0xfc0f000f) == 0xc4070000)
1317 { itype
= SH64_MEDIA_INSN_SHARI
; goto extract_sfmt_shari
; }
1318 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1320 if ((entire_insn
& 0xfc0f000f) == 0xc40d0000)
1321 { itype
= SH64_MEDIA_INSN_XORI
; goto extract_sfmt_xori
; }
1322 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1323 case 800 : /* fall through */
1324 case 801 : /* fall through */
1325 case 802 : /* fall through */
1326 case 803 : /* fall through */
1327 case 804 : /* fall through */
1328 case 805 : /* fall through */
1329 case 806 : /* fall through */
1330 case 807 : /* fall through */
1331 case 808 : /* fall through */
1332 case 809 : /* fall through */
1333 case 810 : /* fall through */
1334 case 811 : /* fall through */
1335 case 812 : /* fall through */
1336 case 813 : /* fall through */
1337 case 814 : /* fall through */
1339 if ((entire_insn
& 0xfc00000f) == 0xc8000000)
1340 { itype
= SH64_MEDIA_INSN_SHORI
; goto extract_sfmt_shori
; }
1341 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1342 case 816 : /* fall through */
1343 case 817 : /* fall through */
1344 case 818 : /* fall through */
1345 case 819 : /* fall through */
1346 case 820 : /* fall through */
1347 case 821 : /* fall through */
1348 case 822 : /* fall through */
1349 case 823 : /* fall through */
1350 case 824 : /* fall through */
1351 case 825 : /* fall through */
1352 case 826 : /* fall through */
1353 case 827 : /* fall through */
1354 case 828 : /* fall through */
1355 case 829 : /* fall through */
1356 case 830 : /* fall through */
1358 if ((entire_insn
& 0xfc00000f) == 0xcc000000)
1359 { itype
= SH64_MEDIA_INSN_MOVI
; goto extract_sfmt_movi
; }
1360 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1361 case 832 : /* fall through */
1362 case 833 : /* fall through */
1363 case 834 : /* fall through */
1364 case 835 : /* fall through */
1365 case 836 : /* fall through */
1366 case 837 : /* fall through */
1367 case 838 : /* fall through */
1368 case 839 : /* fall through */
1369 case 840 : /* fall through */
1370 case 841 : /* fall through */
1371 case 842 : /* fall through */
1372 case 843 : /* fall through */
1373 case 844 : /* fall through */
1374 case 845 : /* fall through */
1375 case 846 : /* fall through */
1377 if ((entire_insn
& 0xfc00000f) == 0xd0000000)
1378 { itype
= SH64_MEDIA_INSN_ADDI
; goto extract_sfmt_addi
; }
1379 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1380 case 848 : /* fall through */
1381 case 849 : /* fall through */
1382 case 850 : /* fall through */
1383 case 851 : /* fall through */
1384 case 852 : /* fall through */
1385 case 853 : /* fall through */
1386 case 854 : /* fall through */
1387 case 855 : /* fall through */
1388 case 856 : /* fall through */
1389 case 857 : /* fall through */
1390 case 858 : /* fall through */
1391 case 859 : /* fall through */
1392 case 860 : /* fall through */
1393 case 861 : /* fall through */
1394 case 862 : /* fall through */
1396 if ((entire_insn
& 0xfc00000f) == 0xd4000000)
1397 { itype
= SH64_MEDIA_INSN_ADDIL
; goto extract_sfmt_addi
; }
1398 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1399 case 864 : /* fall through */
1400 case 865 : /* fall through */
1401 case 866 : /* fall through */
1402 case 867 : /* fall through */
1403 case 868 : /* fall through */
1404 case 869 : /* fall through */
1405 case 870 : /* fall through */
1406 case 871 : /* fall through */
1407 case 872 : /* fall through */
1408 case 873 : /* fall through */
1409 case 874 : /* fall through */
1410 case 875 : /* fall through */
1411 case 876 : /* fall through */
1412 case 877 : /* fall through */
1413 case 878 : /* fall through */
1415 if ((entire_insn
& 0xfc00000f) == 0xd8000000)
1416 { itype
= SH64_MEDIA_INSN_ANDI
; goto extract_sfmt_addi
; }
1417 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1418 case 880 : /* fall through */
1419 case 881 : /* fall through */
1420 case 882 : /* fall through */
1421 case 883 : /* fall through */
1422 case 884 : /* fall through */
1423 case 885 : /* fall through */
1424 case 886 : /* fall through */
1425 case 887 : /* fall through */
1426 case 888 : /* fall through */
1427 case 889 : /* fall through */
1428 case 890 : /* fall through */
1429 case 891 : /* fall through */
1430 case 892 : /* fall through */
1431 case 893 : /* fall through */
1432 case 894 : /* fall through */
1434 if ((entire_insn
& 0xfc00000f) == 0xdc000000)
1435 { itype
= SH64_MEDIA_INSN_ORI
; goto extract_sfmt_ori
; }
1436 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1438 if ((entire_insn
& 0xfc0ffc0f) == 0xe001fc00)
1439 { itype
= SH64_MEDIA_INSN_PREFI
; goto extract_sfmt_alloco
; }
1440 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1442 if ((entire_insn
& 0xfc0f000f) == 0xe0020000)
1443 { itype
= SH64_MEDIA_INSN_STLOL
; goto extract_sfmt_stlol
; }
1444 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1446 if ((entire_insn
& 0xfc0f000f) == 0xe0030000)
1447 { itype
= SH64_MEDIA_INSN_STLOQ
; goto extract_sfmt_stloq
; }
1448 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1450 if ((entire_insn
& 0xfc0f03ff) == 0xe00403f0)
1451 { itype
= SH64_MEDIA_INSN_ALLOCO
; goto extract_sfmt_alloco
; }
1452 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1454 if ((entire_insn
& 0xfc0f03ff) == 0xe00503f0)
1455 { itype
= SH64_MEDIA_INSN_ICBI
; goto extract_sfmt_alloco
; }
1456 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1458 if ((entire_insn
& 0xfc0f000f) == 0xe0060000)
1459 { itype
= SH64_MEDIA_INSN_STHIL
; goto extract_sfmt_sthil
; }
1460 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1462 if ((entire_insn
& 0xfc0f000f) == 0xe0070000)
1463 { itype
= SH64_MEDIA_INSN_STHIQ
; goto extract_sfmt_sthiq
; }
1464 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1466 if ((entire_insn
& 0xfc0f03ff) == 0xe00803f0)
1467 { itype
= SH64_MEDIA_INSN_OCBP
; goto extract_sfmt_alloco
; }
1468 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1470 if ((entire_insn
& 0xfc0f03ff) == 0xe00903f0)
1471 { itype
= SH64_MEDIA_INSN_OCBI
; goto extract_sfmt_alloco
; }
1472 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1474 if ((entire_insn
& 0xfc0f03ff) == 0xe00c03f0)
1475 { itype
= SH64_MEDIA_INSN_OCBWB
; goto extract_sfmt_alloco
; }
1476 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1478 if ((entire_insn
& 0xfc0f000f) == 0xe00f0000)
1479 { itype
= SH64_MEDIA_INSN_PUTCFG
; goto extract_sfmt_putcfg
; }
1480 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1482 if ((entire_insn
& 0xfc0f018f) == 0xe4010000)
1483 { itype
= SH64_MEDIA_INSN_BEQI
; goto extract_sfmt_beqi
; }
1484 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1486 if ((entire_insn
& 0xfc0f018f) == 0xe4050000)
1487 { itype
= SH64_MEDIA_INSN_BNEI
; goto extract_sfmt_beqi
; }
1488 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1489 case 928 : /* fall through */
1490 case 929 : /* fall through */
1491 case 930 : /* fall through */
1492 case 931 : /* fall through */
1493 case 932 : /* fall through */
1494 case 933 : /* fall through */
1495 case 934 : /* fall through */
1496 case 935 : /* fall through */
1497 case 936 : /* fall through */
1498 case 937 : /* fall through */
1499 case 938 : /* fall through */
1500 case 939 : /* fall through */
1501 case 940 : /* fall through */
1502 case 941 : /* fall through */
1503 case 942 : /* fall through */
1505 if ((entire_insn
& 0xfc00018f) == 0xe8000000)
1506 { itype
= SH64_MEDIA_INSN_PTA
; goto extract_sfmt_pta
; }
1507 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1508 case 944 : /* fall through */
1509 case 945 : /* fall through */
1510 case 946 : /* fall through */
1511 case 947 : /* fall through */
1512 case 948 : /* fall through */
1513 case 949 : /* fall through */
1514 case 950 : /* fall through */
1515 case 951 : /* fall through */
1516 case 952 : /* fall through */
1517 case 953 : /* fall through */
1518 case 954 : /* fall through */
1519 case 955 : /* fall through */
1520 case 956 : /* fall through */
1521 case 957 : /* fall through */
1522 case 958 : /* fall through */
1524 if ((entire_insn
& 0xfc00018f) == 0xec000000)
1525 { itype
= SH64_MEDIA_INSN_PTB
; goto extract_sfmt_pta
; }
1526 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1527 default : itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1532 /* The instruction has been decoded, now extract the fields. */
1536 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1537 #define FLD(f) abuf->fields.fmt_empty.f
1540 /* Record the fields for the semantic handler. */
1541 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_empty", (char *) 0));
1549 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1550 CGEN_INSN_INT insn
= entire_insn
;
1551 #define FLD(f) abuf->fields.sfmt_add.f
1556 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1557 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
1558 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1560 /* Record the fields for the semantic handler. */
1561 FLD (f_left
) = f_left
;
1562 FLD (f_right
) = f_right
;
1563 FLD (f_dest
) = f_dest
;
1564 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_add", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
1566 #if WITH_PROFILE_MODEL_P
1567 /* Record the fields for profiling. */
1568 if (PROFILE_MODEL_P (current_cpu
))
1570 FLD (in_rm
) = f_left
;
1571 FLD (in_rn
) = f_right
;
1572 FLD (out_rd
) = f_dest
;
1581 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1582 CGEN_INSN_INT insn
= entire_insn
;
1583 #define FLD(f) abuf->fields.sfmt_addi.f
1588 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1589 f_disp10
= EXTRACT_MSB0_INT (insn
, 32, 12, 10);
1590 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1592 /* Record the fields for the semantic handler. */
1593 FLD (f_disp10
) = f_disp10
;
1594 FLD (f_left
) = f_left
;
1595 FLD (f_dest
) = f_dest
;
1596 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addi", "f_disp10 0x%x", 'x', f_disp10
, "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
1598 #if WITH_PROFILE_MODEL_P
1599 /* Record the fields for profiling. */
1600 if (PROFILE_MODEL_P (current_cpu
))
1602 FLD (in_rm
) = f_left
;
1603 FLD (out_rd
) = f_dest
;
1610 extract_sfmt_alloco
:
1612 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1613 CGEN_INSN_INT insn
= entire_insn
;
1614 #define FLD(f) abuf->fields.sfmt_xori.f
1617 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1619 /* Record the fields for the semantic handler. */
1620 FLD (f_left
) = f_left
;
1621 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_alloco", "f_left 0x%x", 'x', f_left
, (char *) 0));
1623 #if WITH_PROFILE_MODEL_P
1624 /* Record the fields for profiling. */
1625 if (PROFILE_MODEL_P (current_cpu
))
1627 FLD (in_rm
) = f_left
;
1628 FLD (out_rm
) = f_left
;
1637 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1638 CGEN_INSN_INT insn
= entire_insn
;
1639 #define FLD(f) abuf->fields.sfmt_beq.f
1644 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1645 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
1646 f_tra
= EXTRACT_MSB0_UINT (insn
, 32, 25, 3);
1648 /* Record the fields for the semantic handler. */
1649 FLD (f_left
) = f_left
;
1650 FLD (f_right
) = f_right
;
1651 FLD (f_tra
) = f_tra
;
1652 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_beq", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_tra 0x%x", 'x', f_tra
, (char *) 0));
1654 #if WITH_PROFILE_MODEL_P
1655 /* Record the fields for profiling. */
1656 if (PROFILE_MODEL_P (current_cpu
))
1658 FLD (in_rm
) = f_left
;
1659 FLD (in_rn
) = f_right
;
1660 FLD (in_tra
) = f_tra
;
1669 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1670 CGEN_INSN_INT insn
= entire_insn
;
1671 #define FLD(f) abuf->fields.sfmt_beqi.f
1676 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1677 f_imm6
= EXTRACT_MSB0_INT (insn
, 32, 16, 6);
1678 f_tra
= EXTRACT_MSB0_UINT (insn
, 32, 25, 3);
1680 /* Record the fields for the semantic handler. */
1681 FLD (f_imm6
) = f_imm6
;
1682 FLD (f_left
) = f_left
;
1683 FLD (f_tra
) = f_tra
;
1684 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_beqi", "f_imm6 0x%x", 'x', f_imm6
, "f_left 0x%x", 'x', f_left
, "f_tra 0x%x", 'x', f_tra
, (char *) 0));
1686 #if WITH_PROFILE_MODEL_P
1687 /* Record the fields for profiling. */
1688 if (PROFILE_MODEL_P (current_cpu
))
1690 FLD (in_rm
) = f_left
;
1691 FLD (in_tra
) = f_tra
;
1700 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1701 CGEN_INSN_INT insn
= entire_insn
;
1702 #define FLD(f) abuf->fields.sfmt_blink.f
1706 f_trb
= EXTRACT_MSB0_UINT (insn
, 32, 9, 3);
1707 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1709 /* Record the fields for the semantic handler. */
1710 FLD (f_dest
) = f_dest
;
1711 FLD (f_trb
) = f_trb
;
1712 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_blink", "f_dest 0x%x", 'x', f_dest
, "f_trb 0x%x", 'x', f_trb
, (char *) 0));
1714 #if WITH_PROFILE_MODEL_P
1715 /* Record the fields for profiling. */
1716 if (PROFILE_MODEL_P (current_cpu
))
1718 FLD (in_trb
) = f_trb
;
1719 FLD (out_rd
) = f_dest
;
1728 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1729 #define FLD(f) abuf->fields.fmt_empty.f
1732 /* Record the fields for the semantic handler. */
1733 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_brk", (char *) 0));
1735 #if WITH_PROFILE_MODEL_P
1736 /* Record the fields for profiling. */
1737 if (PROFILE_MODEL_P (current_cpu
))
1745 extract_sfmt_byterev
:
1747 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1748 CGEN_INSN_INT insn
= entire_insn
;
1749 #define FLD(f) abuf->fields.sfmt_xori.f
1753 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1754 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1756 /* Record the fields for the semantic handler. */
1757 FLD (f_left
) = f_left
;
1758 FLD (f_dest
) = f_dest
;
1759 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_byterev", "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
1761 #if WITH_PROFILE_MODEL_P
1762 /* Record the fields for profiling. */
1763 if (PROFILE_MODEL_P (current_cpu
))
1765 FLD (in_rm
) = f_left
;
1766 FLD (out_rd
) = f_dest
;
1775 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1776 CGEN_INSN_INT insn
= entire_insn
;
1777 #define FLD(f) abuf->fields.sfmt_add.f
1782 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1783 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
1784 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1786 /* Record the fields for the semantic handler. */
1787 FLD (f_left
) = f_left
;
1788 FLD (f_right
) = f_right
;
1789 FLD (f_dest
) = f_dest
;
1790 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_cmveq", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
1792 #if WITH_PROFILE_MODEL_P
1793 /* Record the fields for profiling. */
1794 if (PROFILE_MODEL_P (current_cpu
))
1796 FLD (in_rm
) = f_left
;
1797 FLD (in_rn
) = f_right
;
1798 FLD (out_rd
) = f_dest
;
1807 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1808 CGEN_INSN_INT insn
= entire_insn
;
1809 #define FLD(f) abuf->fields.sfmt_fabsd.f
1815 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1816 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
1817 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1818 f_left_right
= f_left
;
1820 /* Record the fields for the semantic handler. */
1821 FLD (f_left_right
) = f_left_right
;
1822 FLD (f_dest
) = f_dest
;
1823 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fabsd", "f_left_right 0x%x", 'x', f_left_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
1825 #if WITH_PROFILE_MODEL_P
1826 /* Record the fields for profiling. */
1827 if (PROFILE_MODEL_P (current_cpu
))
1829 FLD (in_drgh
) = f_left_right
;
1830 FLD (out_drf
) = f_dest
;
1839 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1840 CGEN_INSN_INT insn
= entire_insn
;
1841 #define FLD(f) abuf->fields.sfmt_fabsd.f
1847 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1848 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
1849 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1850 f_left_right
= f_left
;
1852 /* Record the fields for the semantic handler. */
1853 FLD (f_left_right
) = f_left_right
;
1854 FLD (f_dest
) = f_dest
;
1855 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fabss", "f_left_right 0x%x", 'x', f_left_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
1857 #if WITH_PROFILE_MODEL_P
1858 /* Record the fields for profiling. */
1859 if (PROFILE_MODEL_P (current_cpu
))
1861 FLD (in_frgh
) = f_left_right
;
1862 FLD (out_frf
) = f_dest
;
1871 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1872 CGEN_INSN_INT insn
= entire_insn
;
1873 #define FLD(f) abuf->fields.sfmt_add.f
1878 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1879 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
1880 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1882 /* Record the fields for the semantic handler. */
1883 FLD (f_left
) = f_left
;
1884 FLD (f_right
) = f_right
;
1885 FLD (f_dest
) = f_dest
;
1886 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_faddd", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
1888 #if WITH_PROFILE_MODEL_P
1889 /* Record the fields for profiling. */
1890 if (PROFILE_MODEL_P (current_cpu
))
1892 FLD (in_drg
) = f_left
;
1893 FLD (in_drh
) = f_right
;
1894 FLD (out_drf
) = f_dest
;
1903 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1904 CGEN_INSN_INT insn
= entire_insn
;
1905 #define FLD(f) abuf->fields.sfmt_add.f
1910 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1911 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
1912 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1914 /* Record the fields for the semantic handler. */
1915 FLD (f_left
) = f_left
;
1916 FLD (f_right
) = f_right
;
1917 FLD (f_dest
) = f_dest
;
1918 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fadds", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
1920 #if WITH_PROFILE_MODEL_P
1921 /* Record the fields for profiling. */
1922 if (PROFILE_MODEL_P (current_cpu
))
1924 FLD (in_frg
) = f_left
;
1925 FLD (in_frh
) = f_right
;
1926 FLD (out_frf
) = f_dest
;
1933 extract_sfmt_fcmpeqd
:
1935 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1936 CGEN_INSN_INT insn
= entire_insn
;
1937 #define FLD(f) abuf->fields.sfmt_add.f
1942 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1943 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
1944 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1946 /* Record the fields for the semantic handler. */
1947 FLD (f_left
) = f_left
;
1948 FLD (f_right
) = f_right
;
1949 FLD (f_dest
) = f_dest
;
1950 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fcmpeqd", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
1952 #if WITH_PROFILE_MODEL_P
1953 /* Record the fields for profiling. */
1954 if (PROFILE_MODEL_P (current_cpu
))
1956 FLD (in_drg
) = f_left
;
1957 FLD (in_drh
) = f_right
;
1958 FLD (out_rd
) = f_dest
;
1965 extract_sfmt_fcmpeqs
:
1967 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1968 CGEN_INSN_INT insn
= entire_insn
;
1969 #define FLD(f) abuf->fields.sfmt_add.f
1974 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1975 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
1976 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1978 /* Record the fields for the semantic handler. */
1979 FLD (f_left
) = f_left
;
1980 FLD (f_right
) = f_right
;
1981 FLD (f_dest
) = f_dest
;
1982 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fcmpeqs", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
1984 #if WITH_PROFILE_MODEL_P
1985 /* Record the fields for profiling. */
1986 if (PROFILE_MODEL_P (current_cpu
))
1988 FLD (in_frg
) = f_left
;
1989 FLD (in_frh
) = f_right
;
1990 FLD (out_rd
) = f_dest
;
1997 extract_sfmt_fcnvds
:
1999 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2000 CGEN_INSN_INT insn
= entire_insn
;
2001 #define FLD(f) abuf->fields.sfmt_fabsd.f
2007 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2008 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2009 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2010 f_left_right
= f_left
;
2012 /* Record the fields for the semantic handler. */
2013 FLD (f_left_right
) = f_left_right
;
2014 FLD (f_dest
) = f_dest
;
2015 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fcnvds", "f_left_right 0x%x", 'x', f_left_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2017 #if WITH_PROFILE_MODEL_P
2018 /* Record the fields for profiling. */
2019 if (PROFILE_MODEL_P (current_cpu
))
2021 FLD (in_drgh
) = f_left_right
;
2022 FLD (out_frf
) = f_dest
;
2029 extract_sfmt_fcnvsd
:
2031 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2032 CGEN_INSN_INT insn
= entire_insn
;
2033 #define FLD(f) abuf->fields.sfmt_fabsd.f
2039 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2040 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2041 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2042 f_left_right
= f_left
;
2044 /* Record the fields for the semantic handler. */
2045 FLD (f_left_right
) = f_left_right
;
2046 FLD (f_dest
) = f_dest
;
2047 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fcnvsd", "f_left_right 0x%x", 'x', f_left_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2049 #if WITH_PROFILE_MODEL_P
2050 /* Record the fields for profiling. */
2051 if (PROFILE_MODEL_P (current_cpu
))
2053 FLD (in_frgh
) = f_left_right
;
2054 FLD (out_drf
) = f_dest
;
2061 extract_sfmt_fgetscr
:
2063 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2064 CGEN_INSN_INT insn
= entire_insn
;
2065 #define FLD(f) abuf->fields.sfmt_shori.f
2068 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2070 /* Record the fields for the semantic handler. */
2071 FLD (f_dest
) = f_dest
;
2072 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fgetscr", "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2074 #if WITH_PROFILE_MODEL_P
2075 /* Record the fields for profiling. */
2076 if (PROFILE_MODEL_P (current_cpu
))
2078 FLD (out_frf
) = f_dest
;
2087 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2088 CGEN_INSN_INT insn
= entire_insn
;
2089 #define FLD(f) abuf->fields.sfmt_add.f
2094 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2095 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2096 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2098 /* Record the fields for the semantic handler. */
2099 FLD (f_left
) = f_left
;
2100 FLD (f_right
) = f_right
;
2101 FLD (f_dest
) = f_dest
;
2102 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fiprs", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2104 #if WITH_PROFILE_MODEL_P
2105 /* Record the fields for profiling. */
2106 if (PROFILE_MODEL_P (current_cpu
))
2108 FLD (in_fvg
) = f_left
;
2109 FLD (in_fvh
) = f_right
;
2110 FLD (out_frf
) = f_dest
;
2111 FLD (out_fvg
) = f_left
;
2112 FLD (out_fvh
) = f_right
;
2121 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2122 CGEN_INSN_INT insn
= entire_insn
;
2123 #define FLD(f) abuf->fields.sfmt_fldd.f
2128 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2129 f_disp10x8
= ((EXTRACT_MSB0_INT (insn
, 32, 12, 10)) << (3));
2130 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2132 /* Record the fields for the semantic handler. */
2133 FLD (f_disp10x8
) = f_disp10x8
;
2134 FLD (f_left
) = f_left
;
2135 FLD (f_dest
) = f_dest
;
2136 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fldd", "f_disp10x8 0x%x", 'x', f_disp10x8
, "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2138 #if WITH_PROFILE_MODEL_P
2139 /* Record the fields for profiling. */
2140 if (PROFILE_MODEL_P (current_cpu
))
2142 FLD (in_rm
) = f_left
;
2143 FLD (out_drf
) = f_dest
;
2152 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2153 CGEN_INSN_INT insn
= entire_insn
;
2154 #define FLD(f) abuf->fields.sfmt_fldd.f
2159 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2160 f_disp10x8
= ((EXTRACT_MSB0_INT (insn
, 32, 12, 10)) << (3));
2161 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2163 /* Record the fields for the semantic handler. */
2164 FLD (f_disp10x8
) = f_disp10x8
;
2165 FLD (f_dest
) = f_dest
;
2166 FLD (f_left
) = f_left
;
2167 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fldp", "f_disp10x8 0x%x", 'x', f_disp10x8
, "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, (char *) 0));
2169 #if WITH_PROFILE_MODEL_P
2170 /* Record the fields for profiling. */
2171 if (PROFILE_MODEL_P (current_cpu
))
2173 FLD (in_fpf
) = f_dest
;
2174 FLD (in_rm
) = f_left
;
2175 FLD (out_fpf
) = f_dest
;
2184 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2185 CGEN_INSN_INT insn
= entire_insn
;
2186 #define FLD(f) abuf->fields.sfmt_flds.f
2191 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2192 f_disp10x4
= ((EXTRACT_MSB0_INT (insn
, 32, 12, 10)) << (2));
2193 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2195 /* Record the fields for the semantic handler. */
2196 FLD (f_disp10x4
) = f_disp10x4
;
2197 FLD (f_left
) = f_left
;
2198 FLD (f_dest
) = f_dest
;
2199 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_flds", "f_disp10x4 0x%x", 'x', f_disp10x4
, "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2201 #if WITH_PROFILE_MODEL_P
2202 /* Record the fields for profiling. */
2203 if (PROFILE_MODEL_P (current_cpu
))
2205 FLD (in_rm
) = f_left
;
2206 FLD (out_frf
) = f_dest
;
2215 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2216 CGEN_INSN_INT insn
= entire_insn
;
2217 #define FLD(f) abuf->fields.sfmt_add.f
2222 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2223 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2224 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2226 /* Record the fields for the semantic handler. */
2227 FLD (f_left
) = f_left
;
2228 FLD (f_right
) = f_right
;
2229 FLD (f_dest
) = f_dest
;
2230 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fldxd", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2232 #if WITH_PROFILE_MODEL_P
2233 /* Record the fields for profiling. */
2234 if (PROFILE_MODEL_P (current_cpu
))
2236 FLD (in_rm
) = f_left
;
2237 FLD (in_rn
) = f_right
;
2238 FLD (out_drf
) = f_dest
;
2247 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2248 CGEN_INSN_INT insn
= entire_insn
;
2249 #define FLD(f) abuf->fields.sfmt_add.f
2254 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2255 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2256 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2258 /* Record the fields for the semantic handler. */
2259 FLD (f_dest
) = f_dest
;
2260 FLD (f_left
) = f_left
;
2261 FLD (f_right
) = f_right
;
2262 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fldxp", "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, (char *) 0));
2264 #if WITH_PROFILE_MODEL_P
2265 /* Record the fields for profiling. */
2266 if (PROFILE_MODEL_P (current_cpu
))
2268 FLD (in_fpf
) = f_dest
;
2269 FLD (in_rm
) = f_left
;
2270 FLD (in_rn
) = f_right
;
2271 FLD (out_fpf
) = f_dest
;
2280 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2281 CGEN_INSN_INT insn
= entire_insn
;
2282 #define FLD(f) abuf->fields.sfmt_add.f
2287 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2288 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2289 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2291 /* Record the fields for the semantic handler. */
2292 FLD (f_left
) = f_left
;
2293 FLD (f_right
) = f_right
;
2294 FLD (f_dest
) = f_dest
;
2295 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fldxs", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2297 #if WITH_PROFILE_MODEL_P
2298 /* Record the fields for profiling. */
2299 if (PROFILE_MODEL_P (current_cpu
))
2301 FLD (in_rm
) = f_left
;
2302 FLD (in_rn
) = f_right
;
2303 FLD (out_frf
) = f_dest
;
2312 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2313 CGEN_INSN_INT insn
= entire_insn
;
2314 #define FLD(f) abuf->fields.sfmt_add.f
2319 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2320 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2321 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2323 /* Record the fields for the semantic handler. */
2324 FLD (f_dest
) = f_dest
;
2325 FLD (f_left
) = f_left
;
2326 FLD (f_right
) = f_right
;
2327 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fmacs", "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, (char *) 0));
2329 #if WITH_PROFILE_MODEL_P
2330 /* Record the fields for profiling. */
2331 if (PROFILE_MODEL_P (current_cpu
))
2333 FLD (in_frf
) = f_dest
;
2334 FLD (in_frg
) = f_left
;
2335 FLD (in_frh
) = f_right
;
2336 FLD (out_frf
) = f_dest
;
2343 extract_sfmt_fmovdq
:
2345 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2346 CGEN_INSN_INT insn
= entire_insn
;
2347 #define FLD(f) abuf->fields.sfmt_fabsd.f
2353 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2354 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2355 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2356 f_left_right
= f_left
;
2358 /* Record the fields for the semantic handler. */
2359 FLD (f_left_right
) = f_left_right
;
2360 FLD (f_dest
) = f_dest
;
2361 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fmovdq", "f_left_right 0x%x", 'x', f_left_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2363 #if WITH_PROFILE_MODEL_P
2364 /* Record the fields for profiling. */
2365 if (PROFILE_MODEL_P (current_cpu
))
2367 FLD (in_drgh
) = f_left_right
;
2368 FLD (out_rd
) = f_dest
;
2375 extract_sfmt_fmovls
:
2377 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2378 CGEN_INSN_INT insn
= entire_insn
;
2379 #define FLD(f) abuf->fields.sfmt_xori.f
2383 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2384 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2386 /* Record the fields for the semantic handler. */
2387 FLD (f_left
) = f_left
;
2388 FLD (f_dest
) = f_dest
;
2389 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fmovls", "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2391 #if WITH_PROFILE_MODEL_P
2392 /* Record the fields for profiling. */
2393 if (PROFILE_MODEL_P (current_cpu
))
2395 FLD (in_rm
) = f_left
;
2396 FLD (out_frf
) = f_dest
;
2403 extract_sfmt_fmovqd
:
2405 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2406 CGEN_INSN_INT insn
= entire_insn
;
2407 #define FLD(f) abuf->fields.sfmt_xori.f
2411 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2412 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2414 /* Record the fields for the semantic handler. */
2415 FLD (f_left
) = f_left
;
2416 FLD (f_dest
) = f_dest
;
2417 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fmovqd", "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2419 #if WITH_PROFILE_MODEL_P
2420 /* Record the fields for profiling. */
2421 if (PROFILE_MODEL_P (current_cpu
))
2423 FLD (in_rm
) = f_left
;
2424 FLD (out_drf
) = f_dest
;
2431 extract_sfmt_fmovsl
:
2433 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2434 CGEN_INSN_INT insn
= entire_insn
;
2435 #define FLD(f) abuf->fields.sfmt_fabsd.f
2441 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2442 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2443 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2444 f_left_right
= f_left
;
2446 /* Record the fields for the semantic handler. */
2447 FLD (f_left_right
) = f_left_right
;
2448 FLD (f_dest
) = f_dest
;
2449 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fmovsl", "f_left_right 0x%x", 'x', f_left_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2451 #if WITH_PROFILE_MODEL_P
2452 /* Record the fields for profiling. */
2453 if (PROFILE_MODEL_P (current_cpu
))
2455 FLD (in_frgh
) = f_left_right
;
2456 FLD (out_rd
) = f_dest
;
2463 extract_sfmt_fputscr
:
2465 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2466 CGEN_INSN_INT insn
= entire_insn
;
2467 #define FLD(f) abuf->fields.sfmt_fabsd.f
2472 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2473 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2474 f_left_right
= f_left
;
2476 /* Record the fields for the semantic handler. */
2477 FLD (f_left_right
) = f_left_right
;
2478 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fputscr", "f_left_right 0x%x", 'x', f_left_right
, (char *) 0));
2480 #if WITH_PROFILE_MODEL_P
2481 /* Record the fields for profiling. */
2482 if (PROFILE_MODEL_P (current_cpu
))
2484 FLD (in_frgh
) = f_left_right
;
2493 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2494 CGEN_INSN_INT insn
= entire_insn
;
2495 #define FLD(f) abuf->fields.sfmt_fldd.f
2500 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2501 f_disp10x8
= ((EXTRACT_MSB0_INT (insn
, 32, 12, 10)) << (3));
2502 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2504 /* Record the fields for the semantic handler. */
2505 FLD (f_disp10x8
) = f_disp10x8
;
2506 FLD (f_dest
) = f_dest
;
2507 FLD (f_left
) = f_left
;
2508 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fstd", "f_disp10x8 0x%x", 'x', f_disp10x8
, "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, (char *) 0));
2510 #if WITH_PROFILE_MODEL_P
2511 /* Record the fields for profiling. */
2512 if (PROFILE_MODEL_P (current_cpu
))
2514 FLD (in_drf
) = f_dest
;
2515 FLD (in_rm
) = f_left
;
2524 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2525 CGEN_INSN_INT insn
= entire_insn
;
2526 #define FLD(f) abuf->fields.sfmt_flds.f
2531 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2532 f_disp10x4
= ((EXTRACT_MSB0_INT (insn
, 32, 12, 10)) << (2));
2533 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2535 /* Record the fields for the semantic handler. */
2536 FLD (f_disp10x4
) = f_disp10x4
;
2537 FLD (f_dest
) = f_dest
;
2538 FLD (f_left
) = f_left
;
2539 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fsts", "f_disp10x4 0x%x", 'x', f_disp10x4
, "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, (char *) 0));
2541 #if WITH_PROFILE_MODEL_P
2542 /* Record the fields for profiling. */
2543 if (PROFILE_MODEL_P (current_cpu
))
2545 FLD (in_frf
) = f_dest
;
2546 FLD (in_rm
) = f_left
;
2555 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2556 CGEN_INSN_INT insn
= entire_insn
;
2557 #define FLD(f) abuf->fields.sfmt_add.f
2562 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2563 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2564 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2566 /* Record the fields for the semantic handler. */
2567 FLD (f_dest
) = f_dest
;
2568 FLD (f_left
) = f_left
;
2569 FLD (f_right
) = f_right
;
2570 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fstxd", "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, (char *) 0));
2572 #if WITH_PROFILE_MODEL_P
2573 /* Record the fields for profiling. */
2574 if (PROFILE_MODEL_P (current_cpu
))
2576 FLD (in_drf
) = f_dest
;
2577 FLD (in_rm
) = f_left
;
2578 FLD (in_rn
) = f_right
;
2587 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2588 CGEN_INSN_INT insn
= entire_insn
;
2589 #define FLD(f) abuf->fields.sfmt_add.f
2594 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2595 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2596 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2598 /* Record the fields for the semantic handler. */
2599 FLD (f_dest
) = f_dest
;
2600 FLD (f_left
) = f_left
;
2601 FLD (f_right
) = f_right
;
2602 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fstxs", "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, (char *) 0));
2604 #if WITH_PROFILE_MODEL_P
2605 /* Record the fields for profiling. */
2606 if (PROFILE_MODEL_P (current_cpu
))
2608 FLD (in_frf
) = f_dest
;
2609 FLD (in_rm
) = f_left
;
2610 FLD (in_rn
) = f_right
;
2619 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2620 CGEN_INSN_INT insn
= entire_insn
;
2621 #define FLD(f) abuf->fields.sfmt_add.f
2626 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2627 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2628 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2630 /* Record the fields for the semantic handler. */
2631 FLD (f_dest
) = f_dest
;
2632 FLD (f_left
) = f_left
;
2633 FLD (f_right
) = f_right
;
2634 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ftrvs", "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, (char *) 0));
2636 #if WITH_PROFILE_MODEL_P
2637 /* Record the fields for profiling. */
2638 if (PROFILE_MODEL_P (current_cpu
))
2640 FLD (in_fvf
) = f_dest
;
2641 FLD (in_fvh
) = f_right
;
2642 FLD (in_mtrxg
) = f_left
;
2643 FLD (out_fvf
) = f_dest
;
2644 FLD (out_fvh
) = f_right
;
2645 FLD (out_mtrxg
) = f_left
;
2652 extract_sfmt_getcfg
:
2654 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2655 CGEN_INSN_INT insn
= entire_insn
;
2656 #define FLD(f) abuf->fields.sfmt_getcfg.f
2661 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2662 f_disp6
= EXTRACT_MSB0_INT (insn
, 32, 16, 6);
2663 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2665 /* Record the fields for the semantic handler. */
2666 FLD (f_disp6
) = f_disp6
;
2667 FLD (f_left
) = f_left
;
2668 FLD (f_dest
) = f_dest
;
2669 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_getcfg", "f_disp6 0x%x", 'x', f_disp6
, "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2671 #if WITH_PROFILE_MODEL_P
2672 /* Record the fields for profiling. */
2673 if (PROFILE_MODEL_P (current_cpu
))
2675 FLD (in_rm
) = f_left
;
2676 FLD (out_rd
) = f_dest
;
2683 extract_sfmt_getcon
:
2685 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2686 CGEN_INSN_INT insn
= entire_insn
;
2687 #define FLD(f) abuf->fields.sfmt_xori.f
2691 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2692 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2694 /* Record the fields for the semantic handler. */
2695 FLD (f_left
) = f_left
;
2696 FLD (f_dest
) = f_dest
;
2697 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_getcon", "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2699 #if WITH_PROFILE_MODEL_P
2700 /* Record the fields for profiling. */
2701 if (PROFILE_MODEL_P (current_cpu
))
2703 FLD (out_rd
) = f_dest
;
2712 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2713 CGEN_INSN_INT insn
= entire_insn
;
2714 #define FLD(f) abuf->fields.sfmt_blink.f
2718 f_trb
= EXTRACT_MSB0_UINT (insn
, 32, 9, 3);
2719 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2721 /* Record the fields for the semantic handler. */
2722 FLD (f_trb
) = f_trb
;
2723 FLD (f_dest
) = f_dest
;
2724 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_gettr", "f_trb 0x%x", 'x', f_trb
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2726 #if WITH_PROFILE_MODEL_P
2727 /* Record the fields for profiling. */
2728 if (PROFILE_MODEL_P (current_cpu
))
2730 FLD (in_trb
) = f_trb
;
2731 FLD (out_rd
) = f_dest
;
2740 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2741 CGEN_INSN_INT insn
= entire_insn
;
2742 #define FLD(f) abuf->fields.sfmt_addi.f
2747 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2748 f_disp10
= EXTRACT_MSB0_INT (insn
, 32, 12, 10);
2749 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2751 /* Record the fields for the semantic handler. */
2752 FLD (f_disp10
) = f_disp10
;
2753 FLD (f_left
) = f_left
;
2754 FLD (f_dest
) = f_dest
;
2755 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldb", "f_disp10 0x%x", 'x', f_disp10
, "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2757 #if WITH_PROFILE_MODEL_P
2758 /* Record the fields for profiling. */
2759 if (PROFILE_MODEL_P (current_cpu
))
2761 FLD (in_rm
) = f_left
;
2762 FLD (out_rd
) = f_dest
;
2771 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2772 CGEN_INSN_INT insn
= entire_insn
;
2773 #define FLD(f) abuf->fields.sfmt_flds.f
2778 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2779 f_disp10x4
= ((EXTRACT_MSB0_INT (insn
, 32, 12, 10)) << (2));
2780 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2782 /* Record the fields for the semantic handler. */
2783 FLD (f_disp10x4
) = f_disp10x4
;
2784 FLD (f_left
) = f_left
;
2785 FLD (f_dest
) = f_dest
;
2786 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldl", "f_disp10x4 0x%x", 'x', f_disp10x4
, "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2788 #if WITH_PROFILE_MODEL_P
2789 /* Record the fields for profiling. */
2790 if (PROFILE_MODEL_P (current_cpu
))
2792 FLD (in_rm
) = f_left
;
2793 FLD (out_rd
) = f_dest
;
2802 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2803 CGEN_INSN_INT insn
= entire_insn
;
2804 #define FLD(f) abuf->fields.sfmt_fldd.f
2809 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2810 f_disp10x8
= ((EXTRACT_MSB0_INT (insn
, 32, 12, 10)) << (3));
2811 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2813 /* Record the fields for the semantic handler. */
2814 FLD (f_disp10x8
) = f_disp10x8
;
2815 FLD (f_left
) = f_left
;
2816 FLD (f_dest
) = f_dest
;
2817 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldq", "f_disp10x8 0x%x", 'x', f_disp10x8
, "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2819 #if WITH_PROFILE_MODEL_P
2820 /* Record the fields for profiling. */
2821 if (PROFILE_MODEL_P (current_cpu
))
2823 FLD (in_rm
) = f_left
;
2824 FLD (out_rd
) = f_dest
;
2833 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2834 CGEN_INSN_INT insn
= entire_insn
;
2835 #define FLD(f) abuf->fields.sfmt_lduw.f
2840 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2841 f_disp10x2
= ((EXTRACT_MSB0_INT (insn
, 32, 12, 10)) << (1));
2842 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2844 /* Record the fields for the semantic handler. */
2845 FLD (f_disp10x2
) = f_disp10x2
;
2846 FLD (f_left
) = f_left
;
2847 FLD (f_dest
) = f_dest
;
2848 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lduw", "f_disp10x2 0x%x", 'x', f_disp10x2
, "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2850 #if WITH_PROFILE_MODEL_P
2851 /* Record the fields for profiling. */
2852 if (PROFILE_MODEL_P (current_cpu
))
2854 FLD (in_rm
) = f_left
;
2855 FLD (out_rd
) = f_dest
;
2864 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2865 CGEN_INSN_INT insn
= entire_insn
;
2866 #define FLD(f) abuf->fields.sfmt_getcfg.f
2871 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2872 f_disp6
= EXTRACT_MSB0_INT (insn
, 32, 16, 6);
2873 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2875 /* Record the fields for the semantic handler. */
2876 FLD (f_disp6
) = f_disp6
;
2877 FLD (f_left
) = f_left
;
2878 FLD (f_dest
) = f_dest
;
2879 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldhil", "f_disp6 0x%x", 'x', f_disp6
, "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2881 #if WITH_PROFILE_MODEL_P
2882 /* Record the fields for profiling. */
2883 if (PROFILE_MODEL_P (current_cpu
))
2885 FLD (in_rm
) = f_left
;
2886 FLD (out_rd
) = f_dest
;
2895 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2896 CGEN_INSN_INT insn
= entire_insn
;
2897 #define FLD(f) abuf->fields.sfmt_getcfg.f
2902 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2903 f_disp6
= EXTRACT_MSB0_INT (insn
, 32, 16, 6);
2904 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2906 /* Record the fields for the semantic handler. */
2907 FLD (f_disp6
) = f_disp6
;
2908 FLD (f_left
) = f_left
;
2909 FLD (f_dest
) = f_dest
;
2910 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldhiq", "f_disp6 0x%x", 'x', f_disp6
, "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2912 #if WITH_PROFILE_MODEL_P
2913 /* Record the fields for profiling. */
2914 if (PROFILE_MODEL_P (current_cpu
))
2916 FLD (in_rm
) = f_left
;
2917 FLD (out_rd
) = f_dest
;
2926 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2927 CGEN_INSN_INT insn
= entire_insn
;
2928 #define FLD(f) abuf->fields.sfmt_getcfg.f
2933 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2934 f_disp6
= EXTRACT_MSB0_INT (insn
, 32, 16, 6);
2935 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2937 /* Record the fields for the semantic handler. */
2938 FLD (f_disp6
) = f_disp6
;
2939 FLD (f_left
) = f_left
;
2940 FLD (f_dest
) = f_dest
;
2941 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldlol", "f_disp6 0x%x", 'x', f_disp6
, "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2943 #if WITH_PROFILE_MODEL_P
2944 /* Record the fields for profiling. */
2945 if (PROFILE_MODEL_P (current_cpu
))
2947 FLD (in_rm
) = f_left
;
2948 FLD (out_rd
) = f_dest
;
2957 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2958 CGEN_INSN_INT insn
= entire_insn
;
2959 #define FLD(f) abuf->fields.sfmt_getcfg.f
2964 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2965 f_disp6
= EXTRACT_MSB0_INT (insn
, 32, 16, 6);
2966 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2968 /* Record the fields for the semantic handler. */
2969 FLD (f_disp6
) = f_disp6
;
2970 FLD (f_left
) = f_left
;
2971 FLD (f_dest
) = f_dest
;
2972 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldloq", "f_disp6 0x%x", 'x', f_disp6
, "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2974 #if WITH_PROFILE_MODEL_P
2975 /* Record the fields for profiling. */
2976 if (PROFILE_MODEL_P (current_cpu
))
2978 FLD (in_rm
) = f_left
;
2979 FLD (out_rd
) = f_dest
;
2988 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2989 CGEN_INSN_INT insn
= entire_insn
;
2990 #define FLD(f) abuf->fields.sfmt_add.f
2995 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2996 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2997 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2999 /* Record the fields for the semantic handler. */
3000 FLD (f_left
) = f_left
;
3001 FLD (f_right
) = f_right
;
3002 FLD (f_dest
) = f_dest
;
3003 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldxb", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
3005 #if WITH_PROFILE_MODEL_P
3006 /* Record the fields for profiling. */
3007 if (PROFILE_MODEL_P (current_cpu
))
3009 FLD (in_rm
) = f_left
;
3010 FLD (in_rn
) = f_right
;
3011 FLD (out_rd
) = f_dest
;
3020 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3021 CGEN_INSN_INT insn
= entire_insn
;
3022 #define FLD(f) abuf->fields.sfmt_add.f
3027 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3028 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3029 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3031 /* Record the fields for the semantic handler. */
3032 FLD (f_left
) = f_left
;
3033 FLD (f_right
) = f_right
;
3034 FLD (f_dest
) = f_dest
;
3035 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldxl", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
3037 #if WITH_PROFILE_MODEL_P
3038 /* Record the fields for profiling. */
3039 if (PROFILE_MODEL_P (current_cpu
))
3041 FLD (in_rm
) = f_left
;
3042 FLD (in_rn
) = f_right
;
3043 FLD (out_rd
) = f_dest
;
3052 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3053 CGEN_INSN_INT insn
= entire_insn
;
3054 #define FLD(f) abuf->fields.sfmt_add.f
3059 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3060 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3061 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3063 /* Record the fields for the semantic handler. */
3064 FLD (f_left
) = f_left
;
3065 FLD (f_right
) = f_right
;
3066 FLD (f_dest
) = f_dest
;
3067 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldxq", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
3069 #if WITH_PROFILE_MODEL_P
3070 /* Record the fields for profiling. */
3071 if (PROFILE_MODEL_P (current_cpu
))
3073 FLD (in_rm
) = f_left
;
3074 FLD (in_rn
) = f_right
;
3075 FLD (out_rd
) = f_dest
;
3084 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3085 CGEN_INSN_INT insn
= entire_insn
;
3086 #define FLD(f) abuf->fields.sfmt_add.f
3091 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3092 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3093 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3095 /* Record the fields for the semantic handler. */
3096 FLD (f_left
) = f_left
;
3097 FLD (f_right
) = f_right
;
3098 FLD (f_dest
) = f_dest
;
3099 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldxub", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
3101 #if WITH_PROFILE_MODEL_P
3102 /* Record the fields for profiling. */
3103 if (PROFILE_MODEL_P (current_cpu
))
3105 FLD (in_rm
) = f_left
;
3106 FLD (in_rn
) = f_right
;
3107 FLD (out_rd
) = f_dest
;
3116 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3117 CGEN_INSN_INT insn
= entire_insn
;
3118 #define FLD(f) abuf->fields.sfmt_add.f
3123 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3124 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3125 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3127 /* Record the fields for the semantic handler. */
3128 FLD (f_left
) = f_left
;
3129 FLD (f_right
) = f_right
;
3130 FLD (f_dest
) = f_dest
;
3131 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldxuw", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
3133 #if WITH_PROFILE_MODEL_P
3134 /* Record the fields for profiling. */
3135 if (PROFILE_MODEL_P (current_cpu
))
3137 FLD (in_rm
) = f_left
;
3138 FLD (in_rn
) = f_right
;
3139 FLD (out_rd
) = f_dest
;
3148 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3149 CGEN_INSN_INT insn
= entire_insn
;
3150 #define FLD(f) abuf->fields.sfmt_add.f
3155 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3156 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3157 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3159 /* Record the fields for the semantic handler. */
3160 FLD (f_left
) = f_left
;
3161 FLD (f_right
) = f_right
;
3162 FLD (f_dest
) = f_dest
;
3163 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldxw", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
3165 #if WITH_PROFILE_MODEL_P
3166 /* Record the fields for profiling. */
3167 if (PROFILE_MODEL_P (current_cpu
))
3169 FLD (in_rm
) = f_left
;
3170 FLD (in_rn
) = f_right
;
3171 FLD (out_rd
) = f_dest
;
3180 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3181 CGEN_INSN_INT insn
= entire_insn
;
3182 #define FLD(f) abuf->fields.sfmt_add.f
3187 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3188 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3189 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3191 /* Record the fields for the semantic handler. */
3192 FLD (f_dest
) = f_dest
;
3193 FLD (f_left
) = f_left
;
3194 FLD (f_right
) = f_right
;
3195 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mcmv", "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, (char *) 0));
3197 #if WITH_PROFILE_MODEL_P
3198 /* Record the fields for profiling. */
3199 if (PROFILE_MODEL_P (current_cpu
))
3201 FLD (in_rd
) = f_dest
;
3202 FLD (in_rm
) = f_left
;
3203 FLD (in_rn
) = f_right
;
3204 FLD (out_rd
) = f_dest
;
3213 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3214 CGEN_INSN_INT insn
= entire_insn
;
3215 #define FLD(f) abuf->fields.sfmt_movi.f
3219 f_imm16
= EXTRACT_MSB0_INT (insn
, 32, 6, 16);
3220 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3222 /* Record the fields for the semantic handler. */
3223 FLD (f_imm16
) = f_imm16
;
3224 FLD (f_dest
) = f_dest
;
3225 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movi", "f_imm16 0x%x", 'x', f_imm16
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
3227 #if WITH_PROFILE_MODEL_P
3228 /* Record the fields for profiling. */
3229 if (PROFILE_MODEL_P (current_cpu
))
3231 FLD (out_rd
) = f_dest
;
3238 extract_sfmt_mpermw
:
3240 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3241 CGEN_INSN_INT insn
= entire_insn
;
3242 #define FLD(f) abuf->fields.sfmt_add.f
3247 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3248 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3249 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3251 /* Record the fields for the semantic handler. */
3252 FLD (f_left
) = f_left
;
3253 FLD (f_right
) = f_right
;
3254 FLD (f_dest
) = f_dest
;
3255 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mpermw", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
3257 #if WITH_PROFILE_MODEL_P
3258 /* Record the fields for profiling. */
3259 if (PROFILE_MODEL_P (current_cpu
))
3261 FLD (in_rm
) = f_left
;
3262 FLD (in_rn
) = f_right
;
3263 FLD (out_rd
) = f_dest
;
3272 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3273 #define FLD(f) abuf->fields.fmt_empty.f
3276 /* Record the fields for the semantic handler. */
3277 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_nop", (char *) 0));
3285 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3286 CGEN_INSN_INT insn
= entire_insn
;
3287 #define FLD(f) abuf->fields.sfmt_ori.f
3292 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3293 f_imm10
= EXTRACT_MSB0_INT (insn
, 32, 12, 10);
3294 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3296 /* Record the fields for the semantic handler. */
3297 FLD (f_imm10
) = f_imm10
;
3298 FLD (f_left
) = f_left
;
3299 FLD (f_dest
) = f_dest
;
3300 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ori", "f_imm10 0x%x", 'x', f_imm10
, "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
3302 #if WITH_PROFILE_MODEL_P
3303 /* Record the fields for profiling. */
3304 if (PROFILE_MODEL_P (current_cpu
))
3306 FLD (in_rm
) = f_left
;
3307 FLD (out_rd
) = f_dest
;
3316 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3317 CGEN_INSN_INT insn
= entire_insn
;
3318 #define FLD(f) abuf->fields.sfmt_pta.f
3322 f_disp16
= ((((EXTRACT_MSB0_INT (insn
, 32, 6, 16)) << (2))) + (pc
));
3323 f_tra
= EXTRACT_MSB0_UINT (insn
, 32, 25, 3);
3325 /* Record the fields for the semantic handler. */
3326 FLD (f_disp16
) = f_disp16
;
3327 FLD (f_tra
) = f_tra
;
3328 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_pta", "f_disp16 0x%x", 'x', f_disp16
, "f_tra 0x%x", 'x', f_tra
, (char *) 0));
3330 #if WITH_PROFILE_MODEL_P
3331 /* Record the fields for profiling. */
3332 if (PROFILE_MODEL_P (current_cpu
))
3334 FLD (out_tra
) = f_tra
;
3343 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3344 CGEN_INSN_INT insn
= entire_insn
;
3345 #define FLD(f) abuf->fields.sfmt_beq.f
3349 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3350 f_tra
= EXTRACT_MSB0_UINT (insn
, 32, 25, 3);
3352 /* Record the fields for the semantic handler. */
3353 FLD (f_right
) = f_right
;
3354 FLD (f_tra
) = f_tra
;
3355 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ptabs", "f_right 0x%x", 'x', f_right
, "f_tra 0x%x", 'x', f_tra
, (char *) 0));
3357 #if WITH_PROFILE_MODEL_P
3358 /* Record the fields for profiling. */
3359 if (PROFILE_MODEL_P (current_cpu
))
3361 FLD (in_rn
) = f_right
;
3362 FLD (out_tra
) = f_tra
;
3371 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3372 CGEN_INSN_INT insn
= entire_insn
;
3373 #define FLD(f) abuf->fields.sfmt_beq.f
3377 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3378 f_tra
= EXTRACT_MSB0_UINT (insn
, 32, 25, 3);
3380 /* Record the fields for the semantic handler. */
3381 FLD (f_right
) = f_right
;
3382 FLD (f_tra
) = f_tra
;
3383 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ptrel", "f_right 0x%x", 'x', f_right
, "f_tra 0x%x", 'x', f_tra
, (char *) 0));
3385 #if WITH_PROFILE_MODEL_P
3386 /* Record the fields for profiling. */
3387 if (PROFILE_MODEL_P (current_cpu
))
3389 FLD (in_rn
) = f_right
;
3390 FLD (out_tra
) = f_tra
;
3397 extract_sfmt_putcfg
:
3399 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3400 CGEN_INSN_INT insn
= entire_insn
;
3401 #define FLD(f) abuf->fields.sfmt_getcfg.f
3406 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3407 f_disp6
= EXTRACT_MSB0_INT (insn
, 32, 16, 6);
3408 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3410 /* Record the fields for the semantic handler. */
3411 FLD (f_disp6
) = f_disp6
;
3412 FLD (f_dest
) = f_dest
;
3413 FLD (f_left
) = f_left
;
3414 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_putcfg", "f_disp6 0x%x", 'x', f_disp6
, "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, (char *) 0));
3416 #if WITH_PROFILE_MODEL_P
3417 /* Record the fields for profiling. */
3418 if (PROFILE_MODEL_P (current_cpu
))
3420 FLD (in_rd
) = f_dest
;
3421 FLD (in_rm
) = f_left
;
3428 extract_sfmt_putcon
:
3430 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3431 CGEN_INSN_INT insn
= entire_insn
;
3432 #define FLD(f) abuf->fields.sfmt_xori.f
3436 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3437 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3439 /* Record the fields for the semantic handler. */
3440 FLD (f_left
) = f_left
;
3441 FLD (f_dest
) = f_dest
;
3442 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_putcon", "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
3444 #if WITH_PROFILE_MODEL_P
3445 /* Record the fields for profiling. */
3446 if (PROFILE_MODEL_P (current_cpu
))
3448 FLD (in_rm
) = f_left
;
3457 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3458 CGEN_INSN_INT insn
= entire_insn
;
3459 #define FLD(f) abuf->fields.sfmt_shari.f
3464 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3465 f_uimm6
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3466 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3468 /* Record the fields for the semantic handler. */
3469 FLD (f_left
) = f_left
;
3470 FLD (f_uimm6
) = f_uimm6
;
3471 FLD (f_dest
) = f_dest
;
3472 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_shari", "f_left 0x%x", 'x', f_left
, "f_uimm6 0x%x", 'x', f_uimm6
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
3474 #if WITH_PROFILE_MODEL_P
3475 /* Record the fields for profiling. */
3476 if (PROFILE_MODEL_P (current_cpu
))
3478 FLD (in_rm
) = f_left
;
3479 FLD (out_rd
) = f_dest
;
3486 extract_sfmt_sharil
:
3488 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3489 CGEN_INSN_INT insn
= entire_insn
;
3490 #define FLD(f) abuf->fields.sfmt_shari.f
3495 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3496 f_uimm6
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3497 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3499 /* Record the fields for the semantic handler. */
3500 FLD (f_left
) = f_left
;
3501 FLD (f_uimm6
) = f_uimm6
;
3502 FLD (f_dest
) = f_dest
;
3503 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_sharil", "f_left 0x%x", 'x', f_left
, "f_uimm6 0x%x", 'x', f_uimm6
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
3505 #if WITH_PROFILE_MODEL_P
3506 /* Record the fields for profiling. */
3507 if (PROFILE_MODEL_P (current_cpu
))
3509 FLD (in_rm
) = f_left
;
3510 FLD (out_rd
) = f_dest
;
3519 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3520 CGEN_INSN_INT insn
= entire_insn
;
3521 #define FLD(f) abuf->fields.sfmt_shori.f
3525 f_uimm16
= EXTRACT_MSB0_UINT (insn
, 32, 6, 16);
3526 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3528 /* Record the fields for the semantic handler. */
3529 FLD (f_dest
) = f_dest
;
3530 FLD (f_uimm16
) = f_uimm16
;
3531 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_shori", "f_dest 0x%x", 'x', f_dest
, "f_uimm16 0x%x", 'x', f_uimm16
, (char *) 0));
3533 #if WITH_PROFILE_MODEL_P
3534 /* Record the fields for profiling. */
3535 if (PROFILE_MODEL_P (current_cpu
))
3537 FLD (in_rd
) = f_dest
;
3538 FLD (out_rd
) = f_dest
;
3547 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3548 CGEN_INSN_INT insn
= entire_insn
;
3549 #define FLD(f) abuf->fields.sfmt_addi.f
3554 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3555 f_disp10
= EXTRACT_MSB0_INT (insn
, 32, 12, 10);
3556 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3558 /* Record the fields for the semantic handler. */
3559 FLD (f_disp10
) = f_disp10
;
3560 FLD (f_dest
) = f_dest
;
3561 FLD (f_left
) = f_left
;
3562 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stb", "f_disp10 0x%x", 'x', f_disp10
, "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, (char *) 0));
3564 #if WITH_PROFILE_MODEL_P
3565 /* Record the fields for profiling. */
3566 if (PROFILE_MODEL_P (current_cpu
))
3568 FLD (in_rd
) = f_dest
;
3569 FLD (in_rm
) = f_left
;
3578 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3579 CGEN_INSN_INT insn
= entire_insn
;
3580 #define FLD(f) abuf->fields.sfmt_flds.f
3585 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3586 f_disp10x4
= ((EXTRACT_MSB0_INT (insn
, 32, 12, 10)) << (2));
3587 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3589 /* Record the fields for the semantic handler. */
3590 FLD (f_disp10x4
) = f_disp10x4
;
3591 FLD (f_dest
) = f_dest
;
3592 FLD (f_left
) = f_left
;
3593 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stl", "f_disp10x4 0x%x", 'x', f_disp10x4
, "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, (char *) 0));
3595 #if WITH_PROFILE_MODEL_P
3596 /* Record the fields for profiling. */
3597 if (PROFILE_MODEL_P (current_cpu
))
3599 FLD (in_rd
) = f_dest
;
3600 FLD (in_rm
) = f_left
;
3609 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3610 CGEN_INSN_INT insn
= entire_insn
;
3611 #define FLD(f) abuf->fields.sfmt_fldd.f
3616 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3617 f_disp10x8
= ((EXTRACT_MSB0_INT (insn
, 32, 12, 10)) << (3));
3618 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3620 /* Record the fields for the semantic handler. */
3621 FLD (f_disp10x8
) = f_disp10x8
;
3622 FLD (f_dest
) = f_dest
;
3623 FLD (f_left
) = f_left
;
3624 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stq", "f_disp10x8 0x%x", 'x', f_disp10x8
, "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, (char *) 0));
3626 #if WITH_PROFILE_MODEL_P
3627 /* Record the fields for profiling. */
3628 if (PROFILE_MODEL_P (current_cpu
))
3630 FLD (in_rd
) = f_dest
;
3631 FLD (in_rm
) = f_left
;
3640 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3641 CGEN_INSN_INT insn
= entire_insn
;
3642 #define FLD(f) abuf->fields.sfmt_lduw.f
3647 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3648 f_disp10x2
= ((EXTRACT_MSB0_INT (insn
, 32, 12, 10)) << (1));
3649 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3651 /* Record the fields for the semantic handler. */
3652 FLD (f_disp10x2
) = f_disp10x2
;
3653 FLD (f_dest
) = f_dest
;
3654 FLD (f_left
) = f_left
;
3655 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stw", "f_disp10x2 0x%x", 'x', f_disp10x2
, "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, (char *) 0));
3657 #if WITH_PROFILE_MODEL_P
3658 /* Record the fields for profiling. */
3659 if (PROFILE_MODEL_P (current_cpu
))
3661 FLD (in_rd
) = f_dest
;
3662 FLD (in_rm
) = f_left
;
3671 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3672 CGEN_INSN_INT insn
= entire_insn
;
3673 #define FLD(f) abuf->fields.sfmt_getcfg.f
3678 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3679 f_disp6
= EXTRACT_MSB0_INT (insn
, 32, 16, 6);
3680 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3682 /* Record the fields for the semantic handler. */
3683 FLD (f_disp6
) = f_disp6
;
3684 FLD (f_dest
) = f_dest
;
3685 FLD (f_left
) = f_left
;
3686 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_sthil", "f_disp6 0x%x", 'x', f_disp6
, "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, (char *) 0));
3688 #if WITH_PROFILE_MODEL_P
3689 /* Record the fields for profiling. */
3690 if (PROFILE_MODEL_P (current_cpu
))
3692 FLD (in_rd
) = f_dest
;
3693 FLD (in_rm
) = f_left
;
3702 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3703 CGEN_INSN_INT insn
= entire_insn
;
3704 #define FLD(f) abuf->fields.sfmt_getcfg.f
3709 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3710 f_disp6
= EXTRACT_MSB0_INT (insn
, 32, 16, 6);
3711 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3713 /* Record the fields for the semantic handler. */
3714 FLD (f_disp6
) = f_disp6
;
3715 FLD (f_dest
) = f_dest
;
3716 FLD (f_left
) = f_left
;
3717 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_sthiq", "f_disp6 0x%x", 'x', f_disp6
, "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, (char *) 0));
3719 #if WITH_PROFILE_MODEL_P
3720 /* Record the fields for profiling. */
3721 if (PROFILE_MODEL_P (current_cpu
))
3723 FLD (in_rd
) = f_dest
;
3724 FLD (in_rm
) = f_left
;
3733 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3734 CGEN_INSN_INT insn
= entire_insn
;
3735 #define FLD(f) abuf->fields.sfmt_getcfg.f
3740 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3741 f_disp6
= EXTRACT_MSB0_INT (insn
, 32, 16, 6);
3742 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3744 /* Record the fields for the semantic handler. */
3745 FLD (f_disp6
) = f_disp6
;
3746 FLD (f_dest
) = f_dest
;
3747 FLD (f_left
) = f_left
;
3748 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stlol", "f_disp6 0x%x", 'x', f_disp6
, "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, (char *) 0));
3750 #if WITH_PROFILE_MODEL_P
3751 /* Record the fields for profiling. */
3752 if (PROFILE_MODEL_P (current_cpu
))
3754 FLD (in_rd
) = f_dest
;
3755 FLD (in_rm
) = f_left
;
3764 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3765 CGEN_INSN_INT insn
= entire_insn
;
3766 #define FLD(f) abuf->fields.sfmt_getcfg.f
3771 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3772 f_disp6
= EXTRACT_MSB0_INT (insn
, 32, 16, 6);
3773 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3775 /* Record the fields for the semantic handler. */
3776 FLD (f_disp6
) = f_disp6
;
3777 FLD (f_dest
) = f_dest
;
3778 FLD (f_left
) = f_left
;
3779 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stloq", "f_disp6 0x%x", 'x', f_disp6
, "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, (char *) 0));
3781 #if WITH_PROFILE_MODEL_P
3782 /* Record the fields for profiling. */
3783 if (PROFILE_MODEL_P (current_cpu
))
3785 FLD (in_rd
) = f_dest
;
3786 FLD (in_rm
) = f_left
;
3795 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3796 CGEN_INSN_INT insn
= entire_insn
;
3797 #define FLD(f) abuf->fields.sfmt_add.f
3802 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3803 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3804 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3806 /* Record the fields for the semantic handler. */
3807 FLD (f_dest
) = f_dest
;
3808 FLD (f_left
) = f_left
;
3809 FLD (f_right
) = f_right
;
3810 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stxb", "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, (char *) 0));
3812 #if WITH_PROFILE_MODEL_P
3813 /* Record the fields for profiling. */
3814 if (PROFILE_MODEL_P (current_cpu
))
3816 FLD (in_rd
) = f_dest
;
3817 FLD (in_rm
) = f_left
;
3818 FLD (in_rn
) = f_right
;
3827 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3828 CGEN_INSN_INT insn
= entire_insn
;
3829 #define FLD(f) abuf->fields.sfmt_add.f
3834 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3835 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3836 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3838 /* Record the fields for the semantic handler. */
3839 FLD (f_dest
) = f_dest
;
3840 FLD (f_left
) = f_left
;
3841 FLD (f_right
) = f_right
;
3842 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stxl", "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, (char *) 0));
3844 #if WITH_PROFILE_MODEL_P
3845 /* Record the fields for profiling. */
3846 if (PROFILE_MODEL_P (current_cpu
))
3848 FLD (in_rd
) = f_dest
;
3849 FLD (in_rm
) = f_left
;
3850 FLD (in_rn
) = f_right
;
3859 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3860 CGEN_INSN_INT insn
= entire_insn
;
3861 #define FLD(f) abuf->fields.sfmt_add.f
3866 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3867 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3868 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3870 /* Record the fields for the semantic handler. */
3871 FLD (f_dest
) = f_dest
;
3872 FLD (f_left
) = f_left
;
3873 FLD (f_right
) = f_right
;
3874 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stxq", "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, (char *) 0));
3876 #if WITH_PROFILE_MODEL_P
3877 /* Record the fields for profiling. */
3878 if (PROFILE_MODEL_P (current_cpu
))
3880 FLD (in_rd
) = f_dest
;
3881 FLD (in_rm
) = f_left
;
3882 FLD (in_rn
) = f_right
;
3891 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3892 CGEN_INSN_INT insn
= entire_insn
;
3893 #define FLD(f) abuf->fields.sfmt_add.f
3898 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3899 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3900 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3902 /* Record the fields for the semantic handler. */
3903 FLD (f_dest
) = f_dest
;
3904 FLD (f_left
) = f_left
;
3905 FLD (f_right
) = f_right
;
3906 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stxw", "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, (char *) 0));
3908 #if WITH_PROFILE_MODEL_P
3909 /* Record the fields for profiling. */
3910 if (PROFILE_MODEL_P (current_cpu
))
3912 FLD (in_rd
) = f_dest
;
3913 FLD (in_rm
) = f_left
;
3914 FLD (in_rn
) = f_right
;
3923 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3924 CGEN_INSN_INT insn
= entire_insn
;
3925 #define FLD(f) abuf->fields.sfmt_add.f
3930 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3931 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3932 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3934 /* Record the fields for the semantic handler. */
3935 FLD (f_dest
) = f_dest
;
3936 FLD (f_left
) = f_left
;
3937 FLD (f_right
) = f_right
;
3938 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_swapq", "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, (char *) 0));
3940 #if WITH_PROFILE_MODEL_P
3941 /* Record the fields for profiling. */
3942 if (PROFILE_MODEL_P (current_cpu
))
3944 FLD (in_rd
) = f_dest
;
3945 FLD (in_rm
) = f_left
;
3946 FLD (in_rn
) = f_right
;
3947 FLD (out_rd
) = f_dest
;
3956 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3957 CGEN_INSN_INT insn
= entire_insn
;
3958 #define FLD(f) abuf->fields.sfmt_xori.f
3961 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3963 /* Record the fields for the semantic handler. */
3964 FLD (f_left
) = f_left
;
3965 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_trapa", "f_left 0x%x", 'x', f_left
, (char *) 0));
3967 #if WITH_PROFILE_MODEL_P
3968 /* Record the fields for profiling. */
3969 if (PROFILE_MODEL_P (current_cpu
))
3971 FLD (in_rm
) = f_left
;
3980 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3981 CGEN_INSN_INT insn
= entire_insn
;
3982 #define FLD(f) abuf->fields.sfmt_xori.f
3987 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3988 f_imm6
= EXTRACT_MSB0_INT (insn
, 32, 16, 6);
3989 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3991 /* Record the fields for the semantic handler. */
3992 FLD (f_imm6
) = f_imm6
;
3993 FLD (f_left
) = f_left
;
3994 FLD (f_dest
) = f_dest
;
3995 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_xori", "f_imm6 0x%x", 'x', f_imm6
, "f_left 0x%x", 'x', f_left
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
3997 #if WITH_PROFILE_MODEL_P
3998 /* Record the fields for profiling. */
3999 if (PROFILE_MODEL_P (current_cpu
))
4001 FLD (in_rm
) = f_left
;
4002 FLD (out_rd
) = f_dest
;