1 /* Simulator instruction decoder for sh64_media.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2019 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This file is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3, or (at your option)
14 It is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, see <http://www.gnu.org/licenses/>.
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_BNEI
},
66 { SH_INSN_BRK
, SH64_MEDIA_INSN_BRK
, SH64_MEDIA_SFMT_BRK
},
67 { SH_INSN_BYTEREV
, SH64_MEDIA_INSN_BYTEREV
, SH64_MEDIA_SFMT_BYTEREV
},
68 { SH_INSN_CMPEQ
, SH64_MEDIA_INSN_CMPEQ
, SH64_MEDIA_SFMT_ADD
},
69 { SH_INSN_CMPGT
, SH64_MEDIA_INSN_CMPGT
, SH64_MEDIA_SFMT_ADD
},
70 { SH_INSN_CMPGTU
, SH64_MEDIA_INSN_CMPGTU
, SH64_MEDIA_SFMT_ADD
},
71 { SH_INSN_CMVEQ
, SH64_MEDIA_INSN_CMVEQ
, SH64_MEDIA_SFMT_CMVEQ
},
72 { SH_INSN_CMVNE
, SH64_MEDIA_INSN_CMVNE
, SH64_MEDIA_SFMT_CMVEQ
},
73 { SH_INSN_FABSD
, SH64_MEDIA_INSN_FABSD
, SH64_MEDIA_SFMT_FABSD
},
74 { SH_INSN_FABSS
, SH64_MEDIA_INSN_FABSS
, SH64_MEDIA_SFMT_FABSS
},
75 { SH_INSN_FADDD
, SH64_MEDIA_INSN_FADDD
, SH64_MEDIA_SFMT_FADDD
},
76 { SH_INSN_FADDS
, SH64_MEDIA_INSN_FADDS
, SH64_MEDIA_SFMT_FADDS
},
77 { SH_INSN_FCMPEQD
, SH64_MEDIA_INSN_FCMPEQD
, SH64_MEDIA_SFMT_FCMPEQD
},
78 { SH_INSN_FCMPEQS
, SH64_MEDIA_INSN_FCMPEQS
, SH64_MEDIA_SFMT_FCMPEQS
},
79 { SH_INSN_FCMPGED
, SH64_MEDIA_INSN_FCMPGED
, SH64_MEDIA_SFMT_FCMPEQD
},
80 { SH_INSN_FCMPGES
, SH64_MEDIA_INSN_FCMPGES
, SH64_MEDIA_SFMT_FCMPEQS
},
81 { SH_INSN_FCMPGTD
, SH64_MEDIA_INSN_FCMPGTD
, SH64_MEDIA_SFMT_FCMPEQD
},
82 { SH_INSN_FCMPGTS
, SH64_MEDIA_INSN_FCMPGTS
, SH64_MEDIA_SFMT_FCMPEQS
},
83 { SH_INSN_FCMPUND
, SH64_MEDIA_INSN_FCMPUND
, SH64_MEDIA_SFMT_FCMPEQD
},
84 { SH_INSN_FCMPUNS
, SH64_MEDIA_INSN_FCMPUNS
, SH64_MEDIA_SFMT_FCMPEQS
},
85 { SH_INSN_FCNVDS
, SH64_MEDIA_INSN_FCNVDS
, SH64_MEDIA_SFMT_FCNVDS
},
86 { SH_INSN_FCNVSD
, SH64_MEDIA_INSN_FCNVSD
, SH64_MEDIA_SFMT_FCNVSD
},
87 { SH_INSN_FDIVD
, SH64_MEDIA_INSN_FDIVD
, SH64_MEDIA_SFMT_FADDD
},
88 { SH_INSN_FDIVS
, SH64_MEDIA_INSN_FDIVS
, SH64_MEDIA_SFMT_FADDS
},
89 { SH_INSN_FGETSCR
, SH64_MEDIA_INSN_FGETSCR
, SH64_MEDIA_SFMT_FGETSCR
},
90 { SH_INSN_FIPRS
, SH64_MEDIA_INSN_FIPRS
, SH64_MEDIA_SFMT_FIPRS
},
91 { SH_INSN_FLDD
, SH64_MEDIA_INSN_FLDD
, SH64_MEDIA_SFMT_FLDD
},
92 { SH_INSN_FLDP
, SH64_MEDIA_INSN_FLDP
, SH64_MEDIA_SFMT_FLDP
},
93 { SH_INSN_FLDS
, SH64_MEDIA_INSN_FLDS
, SH64_MEDIA_SFMT_FLDS
},
94 { SH_INSN_FLDXD
, SH64_MEDIA_INSN_FLDXD
, SH64_MEDIA_SFMT_FLDXD
},
95 { SH_INSN_FLDXP
, SH64_MEDIA_INSN_FLDXP
, SH64_MEDIA_SFMT_FLDXP
},
96 { SH_INSN_FLDXS
, SH64_MEDIA_INSN_FLDXS
, SH64_MEDIA_SFMT_FLDXS
},
97 { SH_INSN_FLOATLD
, SH64_MEDIA_INSN_FLOATLD
, SH64_MEDIA_SFMT_FCNVSD
},
98 { SH_INSN_FLOATLS
, SH64_MEDIA_INSN_FLOATLS
, SH64_MEDIA_SFMT_FABSS
},
99 { SH_INSN_FLOATQD
, SH64_MEDIA_INSN_FLOATQD
, SH64_MEDIA_SFMT_FABSD
},
100 { SH_INSN_FLOATQS
, SH64_MEDIA_INSN_FLOATQS
, SH64_MEDIA_SFMT_FCNVDS
},
101 { SH_INSN_FMACS
, SH64_MEDIA_INSN_FMACS
, SH64_MEDIA_SFMT_FMACS
},
102 { SH_INSN_FMOVD
, SH64_MEDIA_INSN_FMOVD
, SH64_MEDIA_SFMT_FABSD
},
103 { SH_INSN_FMOVDQ
, SH64_MEDIA_INSN_FMOVDQ
, SH64_MEDIA_SFMT_FMOVDQ
},
104 { SH_INSN_FMOVLS
, SH64_MEDIA_INSN_FMOVLS
, SH64_MEDIA_SFMT_FMOVLS
},
105 { SH_INSN_FMOVQD
, SH64_MEDIA_INSN_FMOVQD
, SH64_MEDIA_SFMT_FMOVQD
},
106 { SH_INSN_FMOVS
, SH64_MEDIA_INSN_FMOVS
, SH64_MEDIA_SFMT_FABSS
},
107 { SH_INSN_FMOVSL
, SH64_MEDIA_INSN_FMOVSL
, SH64_MEDIA_SFMT_FMOVSL
},
108 { SH_INSN_FMULD
, SH64_MEDIA_INSN_FMULD
, SH64_MEDIA_SFMT_FADDD
},
109 { SH_INSN_FMULS
, SH64_MEDIA_INSN_FMULS
, SH64_MEDIA_SFMT_FADDS
},
110 { SH_INSN_FNEGD
, SH64_MEDIA_INSN_FNEGD
, SH64_MEDIA_SFMT_FABSD
},
111 { SH_INSN_FNEGS
, SH64_MEDIA_INSN_FNEGS
, SH64_MEDIA_SFMT_FABSS
},
112 { SH_INSN_FPUTSCR
, SH64_MEDIA_INSN_FPUTSCR
, SH64_MEDIA_SFMT_FPUTSCR
},
113 { SH_INSN_FSQRTD
, SH64_MEDIA_INSN_FSQRTD
, SH64_MEDIA_SFMT_FABSD
},
114 { SH_INSN_FSQRTS
, SH64_MEDIA_INSN_FSQRTS
, SH64_MEDIA_SFMT_FABSS
},
115 { SH_INSN_FSTD
, SH64_MEDIA_INSN_FSTD
, SH64_MEDIA_SFMT_FSTD
},
116 { SH_INSN_FSTP
, SH64_MEDIA_INSN_FSTP
, SH64_MEDIA_SFMT_FLDP
},
117 { SH_INSN_FSTS
, SH64_MEDIA_INSN_FSTS
, SH64_MEDIA_SFMT_FSTS
},
118 { SH_INSN_FSTXD
, SH64_MEDIA_INSN_FSTXD
, SH64_MEDIA_SFMT_FSTXD
},
119 { SH_INSN_FSTXP
, SH64_MEDIA_INSN_FSTXP
, SH64_MEDIA_SFMT_FLDXP
},
120 { SH_INSN_FSTXS
, SH64_MEDIA_INSN_FSTXS
, SH64_MEDIA_SFMT_FSTXS
},
121 { SH_INSN_FSUBD
, SH64_MEDIA_INSN_FSUBD
, SH64_MEDIA_SFMT_FSUBD
},
122 { SH_INSN_FSUBS
, SH64_MEDIA_INSN_FSUBS
, SH64_MEDIA_SFMT_FADDS
},
123 { SH_INSN_FTRCDL
, SH64_MEDIA_INSN_FTRCDL
, SH64_MEDIA_SFMT_FCNVDS
},
124 { SH_INSN_FTRCSL
, SH64_MEDIA_INSN_FTRCSL
, SH64_MEDIA_SFMT_FABSS
},
125 { SH_INSN_FTRCDQ
, SH64_MEDIA_INSN_FTRCDQ
, SH64_MEDIA_SFMT_FTRCDQ
},
126 { SH_INSN_FTRCSQ
, SH64_MEDIA_INSN_FTRCSQ
, SH64_MEDIA_SFMT_FCNVSD
},
127 { SH_INSN_FTRVS
, SH64_MEDIA_INSN_FTRVS
, SH64_MEDIA_SFMT_FTRVS
},
128 { SH_INSN_GETCFG
, SH64_MEDIA_INSN_GETCFG
, SH64_MEDIA_SFMT_GETCFG
},
129 { SH_INSN_GETCON
, SH64_MEDIA_INSN_GETCON
, SH64_MEDIA_SFMT_GETCON
},
130 { SH_INSN_GETTR
, SH64_MEDIA_INSN_GETTR
, SH64_MEDIA_SFMT_GETTR
},
131 { SH_INSN_ICBI
, SH64_MEDIA_INSN_ICBI
, SH64_MEDIA_SFMT_ALLOCO
},
132 { SH_INSN_LDB
, SH64_MEDIA_INSN_LDB
, SH64_MEDIA_SFMT_LDB
},
133 { SH_INSN_LDL
, SH64_MEDIA_INSN_LDL
, SH64_MEDIA_SFMT_LDL
},
134 { SH_INSN_LDQ
, SH64_MEDIA_INSN_LDQ
, SH64_MEDIA_SFMT_LDQ
},
135 { SH_INSN_LDUB
, SH64_MEDIA_INSN_LDUB
, SH64_MEDIA_SFMT_LDB
},
136 { SH_INSN_LDUW
, SH64_MEDIA_INSN_LDUW
, SH64_MEDIA_SFMT_LDUW
},
137 { SH_INSN_LDW
, SH64_MEDIA_INSN_LDW
, SH64_MEDIA_SFMT_LDUW
},
138 { SH_INSN_LDHIL
, SH64_MEDIA_INSN_LDHIL
, SH64_MEDIA_SFMT_LDHIL
},
139 { SH_INSN_LDHIQ
, SH64_MEDIA_INSN_LDHIQ
, SH64_MEDIA_SFMT_LDHIQ
},
140 { SH_INSN_LDLOL
, SH64_MEDIA_INSN_LDLOL
, SH64_MEDIA_SFMT_LDLOL
},
141 { SH_INSN_LDLOQ
, SH64_MEDIA_INSN_LDLOQ
, SH64_MEDIA_SFMT_LDLOQ
},
142 { SH_INSN_LDXB
, SH64_MEDIA_INSN_LDXB
, SH64_MEDIA_SFMT_LDXB
},
143 { SH_INSN_LDXL
, SH64_MEDIA_INSN_LDXL
, SH64_MEDIA_SFMT_LDXL
},
144 { SH_INSN_LDXQ
, SH64_MEDIA_INSN_LDXQ
, SH64_MEDIA_SFMT_LDXQ
},
145 { SH_INSN_LDXUB
, SH64_MEDIA_INSN_LDXUB
, SH64_MEDIA_SFMT_LDXUB
},
146 { SH_INSN_LDXUW
, SH64_MEDIA_INSN_LDXUW
, SH64_MEDIA_SFMT_LDXUW
},
147 { SH_INSN_LDXW
, SH64_MEDIA_INSN_LDXW
, SH64_MEDIA_SFMT_LDXW
},
148 { SH_INSN_MABSL
, SH64_MEDIA_INSN_MABSL
, SH64_MEDIA_SFMT_BYTEREV
},
149 { SH_INSN_MABSW
, SH64_MEDIA_INSN_MABSW
, SH64_MEDIA_SFMT_BYTEREV
},
150 { SH_INSN_MADDL
, SH64_MEDIA_INSN_MADDL
, SH64_MEDIA_SFMT_ADD
},
151 { SH_INSN_MADDW
, SH64_MEDIA_INSN_MADDW
, SH64_MEDIA_SFMT_ADD
},
152 { SH_INSN_MADDSL
, SH64_MEDIA_INSN_MADDSL
, SH64_MEDIA_SFMT_ADD
},
153 { SH_INSN_MADDSUB
, SH64_MEDIA_INSN_MADDSUB
, SH64_MEDIA_SFMT_ADD
},
154 { SH_INSN_MADDSW
, SH64_MEDIA_INSN_MADDSW
, SH64_MEDIA_SFMT_ADD
},
155 { SH_INSN_MCMPEQB
, SH64_MEDIA_INSN_MCMPEQB
, SH64_MEDIA_SFMT_ADD
},
156 { SH_INSN_MCMPEQL
, SH64_MEDIA_INSN_MCMPEQL
, SH64_MEDIA_SFMT_ADD
},
157 { SH_INSN_MCMPEQW
, SH64_MEDIA_INSN_MCMPEQW
, SH64_MEDIA_SFMT_ADD
},
158 { SH_INSN_MCMPGTL
, SH64_MEDIA_INSN_MCMPGTL
, SH64_MEDIA_SFMT_ADD
},
159 { SH_INSN_MCMPGTUB
, SH64_MEDIA_INSN_MCMPGTUB
, SH64_MEDIA_SFMT_ADD
},
160 { SH_INSN_MCMPGTW
, SH64_MEDIA_INSN_MCMPGTW
, SH64_MEDIA_SFMT_ADD
},
161 { SH_INSN_MCMV
, SH64_MEDIA_INSN_MCMV
, SH64_MEDIA_SFMT_MCMV
},
162 { SH_INSN_MCNVSLW
, SH64_MEDIA_INSN_MCNVSLW
, SH64_MEDIA_SFMT_ADD
},
163 { SH_INSN_MCNVSWB
, SH64_MEDIA_INSN_MCNVSWB
, SH64_MEDIA_SFMT_ADD
},
164 { SH_INSN_MCNVSWUB
, SH64_MEDIA_INSN_MCNVSWUB
, SH64_MEDIA_SFMT_ADD
},
165 { SH_INSN_MEXTR1
, SH64_MEDIA_INSN_MEXTR1
, SH64_MEDIA_SFMT_ADD
},
166 { SH_INSN_MEXTR2
, SH64_MEDIA_INSN_MEXTR2
, SH64_MEDIA_SFMT_ADD
},
167 { SH_INSN_MEXTR3
, SH64_MEDIA_INSN_MEXTR3
, SH64_MEDIA_SFMT_ADD
},
168 { SH_INSN_MEXTR4
, SH64_MEDIA_INSN_MEXTR4
, SH64_MEDIA_SFMT_ADD
},
169 { SH_INSN_MEXTR5
, SH64_MEDIA_INSN_MEXTR5
, SH64_MEDIA_SFMT_ADD
},
170 { SH_INSN_MEXTR6
, SH64_MEDIA_INSN_MEXTR6
, SH64_MEDIA_SFMT_ADD
},
171 { SH_INSN_MEXTR7
, SH64_MEDIA_INSN_MEXTR7
, SH64_MEDIA_SFMT_ADD
},
172 { SH_INSN_MMACFXWL
, SH64_MEDIA_INSN_MMACFXWL
, SH64_MEDIA_SFMT_MCMV
},
173 { SH_INSN_MMACNFX_WL
, SH64_MEDIA_INSN_MMACNFX_WL
, SH64_MEDIA_SFMT_MMACNFX_WL
},
174 { SH_INSN_MMULL
, SH64_MEDIA_INSN_MMULL
, SH64_MEDIA_SFMT_ADD
},
175 { SH_INSN_MMULW
, SH64_MEDIA_INSN_MMULW
, SH64_MEDIA_SFMT_ADD
},
176 { SH_INSN_MMULFXL
, SH64_MEDIA_INSN_MMULFXL
, SH64_MEDIA_SFMT_ADD
},
177 { SH_INSN_MMULFXW
, SH64_MEDIA_INSN_MMULFXW
, SH64_MEDIA_SFMT_ADD
},
178 { SH_INSN_MMULFXRPW
, SH64_MEDIA_INSN_MMULFXRPW
, SH64_MEDIA_SFMT_ADD
},
179 { SH_INSN_MMULHIWL
, SH64_MEDIA_INSN_MMULHIWL
, SH64_MEDIA_SFMT_ADD
},
180 { SH_INSN_MMULLOWL
, SH64_MEDIA_INSN_MMULLOWL
, SH64_MEDIA_SFMT_ADD
},
181 { SH_INSN_MMULSUMWQ
, SH64_MEDIA_INSN_MMULSUMWQ
, SH64_MEDIA_SFMT_MCMV
},
182 { SH_INSN_MOVI
, SH64_MEDIA_INSN_MOVI
, SH64_MEDIA_SFMT_MOVI
},
183 { SH_INSN_MPERMW
, SH64_MEDIA_INSN_MPERMW
, SH64_MEDIA_SFMT_ADD
},
184 { SH_INSN_MSADUBQ
, SH64_MEDIA_INSN_MSADUBQ
, SH64_MEDIA_SFMT_MCMV
},
185 { SH_INSN_MSHALDSL
, SH64_MEDIA_INSN_MSHALDSL
, SH64_MEDIA_SFMT_ADD
},
186 { SH_INSN_MSHALDSW
, SH64_MEDIA_INSN_MSHALDSW
, SH64_MEDIA_SFMT_ADD
},
187 { SH_INSN_MSHARDL
, SH64_MEDIA_INSN_MSHARDL
, SH64_MEDIA_SFMT_ADD
},
188 { SH_INSN_MSHARDW
, SH64_MEDIA_INSN_MSHARDW
, SH64_MEDIA_SFMT_ADD
},
189 { SH_INSN_MSHARDSQ
, SH64_MEDIA_INSN_MSHARDSQ
, SH64_MEDIA_SFMT_ADD
},
190 { SH_INSN_MSHFHIB
, SH64_MEDIA_INSN_MSHFHIB
, SH64_MEDIA_SFMT_ADD
},
191 { SH_INSN_MSHFHIL
, SH64_MEDIA_INSN_MSHFHIL
, SH64_MEDIA_SFMT_ADD
},
192 { SH_INSN_MSHFHIW
, SH64_MEDIA_INSN_MSHFHIW
, SH64_MEDIA_SFMT_ADD
},
193 { SH_INSN_MSHFLOB
, SH64_MEDIA_INSN_MSHFLOB
, SH64_MEDIA_SFMT_ADD
},
194 { SH_INSN_MSHFLOL
, SH64_MEDIA_INSN_MSHFLOL
, SH64_MEDIA_SFMT_ADD
},
195 { SH_INSN_MSHFLOW
, SH64_MEDIA_INSN_MSHFLOW
, SH64_MEDIA_SFMT_ADD
},
196 { SH_INSN_MSHLLDL
, SH64_MEDIA_INSN_MSHLLDL
, SH64_MEDIA_SFMT_ADD
},
197 { SH_INSN_MSHLLDW
, SH64_MEDIA_INSN_MSHLLDW
, SH64_MEDIA_SFMT_ADD
},
198 { SH_INSN_MSHLRDL
, SH64_MEDIA_INSN_MSHLRDL
, SH64_MEDIA_SFMT_ADD
},
199 { SH_INSN_MSHLRDW
, SH64_MEDIA_INSN_MSHLRDW
, SH64_MEDIA_SFMT_ADD
},
200 { SH_INSN_MSUBL
, SH64_MEDIA_INSN_MSUBL
, SH64_MEDIA_SFMT_ADD
},
201 { SH_INSN_MSUBW
, SH64_MEDIA_INSN_MSUBW
, SH64_MEDIA_SFMT_ADD
},
202 { SH_INSN_MSUBSL
, SH64_MEDIA_INSN_MSUBSL
, SH64_MEDIA_SFMT_ADD
},
203 { SH_INSN_MSUBSUB
, SH64_MEDIA_INSN_MSUBSUB
, SH64_MEDIA_SFMT_ADD
},
204 { SH_INSN_MSUBSW
, SH64_MEDIA_INSN_MSUBSW
, SH64_MEDIA_SFMT_ADD
},
205 { SH_INSN_MULSL
, SH64_MEDIA_INSN_MULSL
, SH64_MEDIA_SFMT_ADD
},
206 { SH_INSN_MULUL
, SH64_MEDIA_INSN_MULUL
, SH64_MEDIA_SFMT_ADD
},
207 { SH_INSN_NOP
, SH64_MEDIA_INSN_NOP
, SH64_MEDIA_SFMT_NOP
},
208 { SH_INSN_NSB
, SH64_MEDIA_INSN_NSB
, SH64_MEDIA_SFMT_BYTEREV
},
209 { SH_INSN_OCBI
, SH64_MEDIA_INSN_OCBI
, SH64_MEDIA_SFMT_ALLOCO
},
210 { SH_INSN_OCBP
, SH64_MEDIA_INSN_OCBP
, SH64_MEDIA_SFMT_ALLOCO
},
211 { SH_INSN_OCBWB
, SH64_MEDIA_INSN_OCBWB
, SH64_MEDIA_SFMT_ALLOCO
},
212 { SH_INSN_OR
, SH64_MEDIA_INSN_OR
, SH64_MEDIA_SFMT_ADD
},
213 { SH_INSN_ORI
, SH64_MEDIA_INSN_ORI
, SH64_MEDIA_SFMT_ORI
},
214 { SH_INSN_PREFI
, SH64_MEDIA_INSN_PREFI
, SH64_MEDIA_SFMT_PREFI
},
215 { SH_INSN_PTA
, SH64_MEDIA_INSN_PTA
, SH64_MEDIA_SFMT_PTA
},
216 { SH_INSN_PTABS
, SH64_MEDIA_INSN_PTABS
, SH64_MEDIA_SFMT_PTABS
},
217 { SH_INSN_PTB
, SH64_MEDIA_INSN_PTB
, SH64_MEDIA_SFMT_PTA
},
218 { SH_INSN_PTREL
, SH64_MEDIA_INSN_PTREL
, SH64_MEDIA_SFMT_PTREL
},
219 { SH_INSN_PUTCFG
, SH64_MEDIA_INSN_PUTCFG
, SH64_MEDIA_SFMT_PUTCFG
},
220 { SH_INSN_PUTCON
, SH64_MEDIA_INSN_PUTCON
, SH64_MEDIA_SFMT_PUTCON
},
221 { SH_INSN_RTE
, SH64_MEDIA_INSN_RTE
, SH64_MEDIA_SFMT_NOP
},
222 { SH_INSN_SHARD
, SH64_MEDIA_INSN_SHARD
, SH64_MEDIA_SFMT_ADD
},
223 { SH_INSN_SHARDL
, SH64_MEDIA_INSN_SHARDL
, SH64_MEDIA_SFMT_ADD
},
224 { SH_INSN_SHARI
, SH64_MEDIA_INSN_SHARI
, SH64_MEDIA_SFMT_SHARI
},
225 { SH_INSN_SHARIL
, SH64_MEDIA_INSN_SHARIL
, SH64_MEDIA_SFMT_SHARI
},
226 { SH_INSN_SHLLD
, SH64_MEDIA_INSN_SHLLD
, SH64_MEDIA_SFMT_ADD
},
227 { SH_INSN_SHLLDL
, SH64_MEDIA_INSN_SHLLDL
, SH64_MEDIA_SFMT_ADD
},
228 { SH_INSN_SHLLI
, SH64_MEDIA_INSN_SHLLI
, SH64_MEDIA_SFMT_SHARI
},
229 { SH_INSN_SHLLIL
, SH64_MEDIA_INSN_SHLLIL
, SH64_MEDIA_SFMT_SHARI
},
230 { SH_INSN_SHLRD
, SH64_MEDIA_INSN_SHLRD
, SH64_MEDIA_SFMT_ADD
},
231 { SH_INSN_SHLRDL
, SH64_MEDIA_INSN_SHLRDL
, SH64_MEDIA_SFMT_ADD
},
232 { SH_INSN_SHLRI
, SH64_MEDIA_INSN_SHLRI
, SH64_MEDIA_SFMT_SHARI
},
233 { SH_INSN_SHLRIL
, SH64_MEDIA_INSN_SHLRIL
, SH64_MEDIA_SFMT_SHARI
},
234 { SH_INSN_SHORI
, SH64_MEDIA_INSN_SHORI
, SH64_MEDIA_SFMT_SHORI
},
235 { SH_INSN_SLEEP
, SH64_MEDIA_INSN_SLEEP
, SH64_MEDIA_SFMT_NOP
},
236 { SH_INSN_STB
, SH64_MEDIA_INSN_STB
, SH64_MEDIA_SFMT_STB
},
237 { SH_INSN_STL
, SH64_MEDIA_INSN_STL
, SH64_MEDIA_SFMT_STL
},
238 { SH_INSN_STQ
, SH64_MEDIA_INSN_STQ
, SH64_MEDIA_SFMT_STQ
},
239 { SH_INSN_STW
, SH64_MEDIA_INSN_STW
, SH64_MEDIA_SFMT_STW
},
240 { SH_INSN_STHIL
, SH64_MEDIA_INSN_STHIL
, SH64_MEDIA_SFMT_STHIL
},
241 { SH_INSN_STHIQ
, SH64_MEDIA_INSN_STHIQ
, SH64_MEDIA_SFMT_STHIQ
},
242 { SH_INSN_STLOL
, SH64_MEDIA_INSN_STLOL
, SH64_MEDIA_SFMT_STLOL
},
243 { SH_INSN_STLOQ
, SH64_MEDIA_INSN_STLOQ
, SH64_MEDIA_SFMT_STLOQ
},
244 { SH_INSN_STXB
, SH64_MEDIA_INSN_STXB
, SH64_MEDIA_SFMT_STXB
},
245 { SH_INSN_STXL
, SH64_MEDIA_INSN_STXL
, SH64_MEDIA_SFMT_STXL
},
246 { SH_INSN_STXQ
, SH64_MEDIA_INSN_STXQ
, SH64_MEDIA_SFMT_STXQ
},
247 { SH_INSN_STXW
, SH64_MEDIA_INSN_STXW
, SH64_MEDIA_SFMT_STXW
},
248 { SH_INSN_SUB
, SH64_MEDIA_INSN_SUB
, SH64_MEDIA_SFMT_ADD
},
249 { SH_INSN_SUBL
, SH64_MEDIA_INSN_SUBL
, SH64_MEDIA_SFMT_ADD
},
250 { SH_INSN_SWAPQ
, SH64_MEDIA_INSN_SWAPQ
, SH64_MEDIA_SFMT_SWAPQ
},
251 { SH_INSN_SYNCI
, SH64_MEDIA_INSN_SYNCI
, SH64_MEDIA_SFMT_NOP
},
252 { SH_INSN_SYNCO
, SH64_MEDIA_INSN_SYNCO
, SH64_MEDIA_SFMT_NOP
},
253 { SH_INSN_TRAPA
, SH64_MEDIA_INSN_TRAPA
, SH64_MEDIA_SFMT_TRAPA
},
254 { SH_INSN_XOR
, SH64_MEDIA_INSN_XOR
, SH64_MEDIA_SFMT_ADD
},
255 { SH_INSN_XORI
, SH64_MEDIA_INSN_XORI
, SH64_MEDIA_SFMT_XORI
},
258 static const struct insn_sem sh64_media_insn_sem_invalid
=
260 VIRTUAL_INSN_X_INVALID
, SH64_MEDIA_INSN_X_INVALID
, SH64_MEDIA_SFMT_EMPTY
263 /* Initialize an IDESC from the compile-time computable parts. */
266 init_idesc (SIM_CPU
*cpu
, IDESC
*id
, const struct insn_sem
*t
)
268 const CGEN_INSN
*insn_table
= CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu
))->init_entries
;
272 if ((int) t
->type
<= 0)
273 id
->idata
= & cgen_virtual_insn_table
[- (int) t
->type
];
275 id
->idata
= & insn_table
[t
->type
];
276 id
->attrs
= CGEN_INSN_ATTRS (id
->idata
);
277 /* Oh my god, a magic number. */
278 id
->length
= CGEN_INSN_BITSIZE (id
->idata
) / 8;
280 #if WITH_PROFILE_MODEL_P
281 id
->timing
= & MODEL_TIMING (CPU_MODEL (cpu
)) [t
->index
];
283 SIM_DESC sd
= CPU_STATE (cpu
);
284 SIM_ASSERT (t
->index
== id
->timing
->num
);
288 /* Semantic pointers are initialized elsewhere. */
291 /* Initialize the instruction descriptor table. */
294 sh64_media_init_idesc_table (SIM_CPU
*cpu
)
297 const struct insn_sem
*t
,*tend
;
298 int tabsize
= SH64_MEDIA_INSN__MAX
;
299 IDESC
*table
= sh64_media_insn_data
;
301 memset (table
, 0, tabsize
* sizeof (IDESC
));
303 /* First set all entries to the `invalid insn'. */
304 t
= & sh64_media_insn_sem_invalid
;
305 for (id
= table
, tabend
= table
+ tabsize
; id
< tabend
; ++id
)
306 init_idesc (cpu
, id
, t
);
308 /* Now fill in the values for the chosen cpu. */
309 for (t
= sh64_media_insn_sem
, tend
= t
+ ARRAY_SIZE (sh64_media_insn_sem
);
312 init_idesc (cpu
, & table
[t
->index
], t
);
315 /* Link the IDESC table into the cpu. */
316 CPU_IDESC (cpu
) = table
;
319 /* Given an instruction, return a pointer to its IDESC entry. */
322 sh64_media_decode (SIM_CPU
*current_cpu
, IADDR pc
,
323 CGEN_INSN_WORD base_insn
, CGEN_INSN_WORD entire_insn
,
326 /* Result of decoder. */
327 SH64_MEDIA_INSN_TYPE itype
;
330 CGEN_INSN_WORD insn
= base_insn
;
333 unsigned int val
= (((insn
>> 22) & (63 << 4)) | ((insn
>> 16) & (15 << 0)));
337 if ((entire_insn
& 0xfc0f000f) == 0x10000)
338 { itype
= SH64_MEDIA_INSN_CMPEQ
; goto extract_sfmt_add
; }
339 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
341 if ((entire_insn
& 0xfc0f000f) == 0x30000)
342 { itype
= SH64_MEDIA_INSN_CMPGT
; goto extract_sfmt_add
; }
343 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
345 if ((entire_insn
& 0xfc0f000f) == 0x70000)
346 { itype
= SH64_MEDIA_INSN_CMPGTU
; goto extract_sfmt_add
; }
347 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
349 if ((entire_insn
& 0xfc0f000f) == 0x80000)
350 { itype
= SH64_MEDIA_INSN_ADDL
; goto extract_sfmt_add
; }
351 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
353 if ((entire_insn
& 0xfc0f000f) == 0x90000)
354 { itype
= SH64_MEDIA_INSN_ADD
; goto extract_sfmt_add
; }
355 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
357 if ((entire_insn
& 0xfc0f000f) == 0xa0000)
358 { itype
= SH64_MEDIA_INSN_SUBL
; goto extract_sfmt_add
; }
359 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
361 if ((entire_insn
& 0xfc0f000f) == 0xb0000)
362 { itype
= SH64_MEDIA_INSN_SUB
; goto extract_sfmt_add
; }
363 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
365 if ((entire_insn
& 0xfc0f000f) == 0xc0000)
366 { itype
= SH64_MEDIA_INSN_ADDZL
; goto extract_sfmt_add
; }
367 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
369 if ((entire_insn
& 0xfc0ffc0f) == 0xdfc00)
370 { itype
= SH64_MEDIA_INSN_NSB
; goto extract_sfmt_byterev
; }
371 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
373 if ((entire_insn
& 0xfc0f000f) == 0xe0000)
374 { itype
= SH64_MEDIA_INSN_MULUL
; goto extract_sfmt_add
; }
375 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
377 if ((entire_insn
& 0xfc0ffc0f) == 0xffc00)
378 { itype
= SH64_MEDIA_INSN_BYTEREV
; goto extract_sfmt_byterev
; }
379 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
381 if ((entire_insn
& 0xfc0f000f) == 0x4000000)
382 { itype
= SH64_MEDIA_INSN_SHLLDL
; goto extract_sfmt_add
; }
383 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
385 if ((entire_insn
& 0xfc0f000f) == 0x4010000)
386 { itype
= SH64_MEDIA_INSN_SHLLD
; goto extract_sfmt_add
; }
387 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
389 if ((entire_insn
& 0xfc0f000f) == 0x4020000)
390 { itype
= SH64_MEDIA_INSN_SHLRDL
; goto extract_sfmt_add
; }
391 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
393 if ((entire_insn
& 0xfc0f000f) == 0x4030000)
394 { itype
= SH64_MEDIA_INSN_SHLRD
; goto extract_sfmt_add
; }
395 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
397 if ((entire_insn
& 0xfc0f000f) == 0x4060000)
398 { itype
= SH64_MEDIA_INSN_SHARDL
; goto extract_sfmt_add
; }
399 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
401 if ((entire_insn
& 0xfc0f000f) == 0x4070000)
402 { itype
= SH64_MEDIA_INSN_SHARD
; goto extract_sfmt_add
; }
403 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
405 if ((entire_insn
& 0xfc0f000f) == 0x4090000)
406 { itype
= SH64_MEDIA_INSN_OR
; goto extract_sfmt_add
; }
407 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
409 if ((entire_insn
& 0xfc0f000f) == 0x40b0000)
410 { itype
= SH64_MEDIA_INSN_AND
; goto extract_sfmt_add
; }
411 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
413 if ((entire_insn
& 0xfc0f000f) == 0x40d0000)
414 { itype
= SH64_MEDIA_INSN_XOR
; goto extract_sfmt_add
; }
415 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
417 if ((entire_insn
& 0xfc0f000f) == 0x40e0000)
418 { itype
= SH64_MEDIA_INSN_MULSL
; goto extract_sfmt_add
; }
419 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
421 if ((entire_insn
& 0xfc0f000f) == 0x40f0000)
422 { itype
= SH64_MEDIA_INSN_ANDC
; goto extract_sfmt_add
; }
423 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
425 if ((entire_insn
& 0xfc0f000f) == 0x8010000)
426 { itype
= SH64_MEDIA_INSN_MADDW
; goto extract_sfmt_add
; }
427 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
429 if ((entire_insn
& 0xfc0f000f) == 0x8020000)
430 { itype
= SH64_MEDIA_INSN_MADDL
; goto extract_sfmt_add
; }
431 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
433 if ((entire_insn
& 0xfc0f000f) == 0x8040000)
434 { itype
= SH64_MEDIA_INSN_MADDSUB
; goto extract_sfmt_add
; }
435 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
437 if ((entire_insn
& 0xfc0f000f) == 0x8050000)
438 { itype
= SH64_MEDIA_INSN_MADDSW
; goto extract_sfmt_add
; }
439 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
441 if ((entire_insn
& 0xfc0f000f) == 0x8060000)
442 { itype
= SH64_MEDIA_INSN_MADDSL
; goto extract_sfmt_add
; }
443 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
445 if ((entire_insn
& 0xfc0f000f) == 0x8090000)
446 { itype
= SH64_MEDIA_INSN_MSUBW
; goto extract_sfmt_add
; }
447 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
449 if ((entire_insn
& 0xfc0f000f) == 0x80a0000)
450 { itype
= SH64_MEDIA_INSN_MSUBL
; goto extract_sfmt_add
; }
451 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
453 if ((entire_insn
& 0xfc0f000f) == 0x80c0000)
454 { itype
= SH64_MEDIA_INSN_MSUBSUB
; goto extract_sfmt_add
; }
455 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
457 if ((entire_insn
& 0xfc0f000f) == 0x80d0000)
458 { itype
= SH64_MEDIA_INSN_MSUBSW
; goto extract_sfmt_add
; }
459 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
461 if ((entire_insn
& 0xfc0f000f) == 0x80e0000)
462 { itype
= SH64_MEDIA_INSN_MSUBSL
; goto extract_sfmt_add
; }
463 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
465 if ((entire_insn
& 0xfc0f000f) == 0xc010000)
466 { itype
= SH64_MEDIA_INSN_MSHLLDW
; goto extract_sfmt_add
; }
467 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
469 if ((entire_insn
& 0xfc0f000f) == 0xc020000)
470 { itype
= SH64_MEDIA_INSN_MSHLLDL
; goto extract_sfmt_add
; }
471 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
473 if ((entire_insn
& 0xfc0f000f) == 0xc050000)
474 { itype
= SH64_MEDIA_INSN_MSHALDSW
; goto extract_sfmt_add
; }
475 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
477 if ((entire_insn
& 0xfc0f000f) == 0xc060000)
478 { itype
= SH64_MEDIA_INSN_MSHALDSL
; goto extract_sfmt_add
; }
479 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
481 if ((entire_insn
& 0xfc0f000f) == 0xc090000)
482 { itype
= SH64_MEDIA_INSN_MSHARDW
; goto extract_sfmt_add
; }
483 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
485 if ((entire_insn
& 0xfc0f000f) == 0xc0a0000)
486 { itype
= SH64_MEDIA_INSN_MSHARDL
; goto extract_sfmt_add
; }
487 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
489 if ((entire_insn
& 0xfc0f000f) == 0xc0b0000)
490 { itype
= SH64_MEDIA_INSN_MSHARDSQ
; goto extract_sfmt_add
; }
491 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
493 if ((entire_insn
& 0xfc0f000f) == 0xc0d0000)
494 { itype
= SH64_MEDIA_INSN_MSHLRDW
; goto extract_sfmt_add
; }
495 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
497 if ((entire_insn
& 0xfc0f000f) == 0xc0e0000)
498 { itype
= SH64_MEDIA_INSN_MSHLRDL
; goto extract_sfmt_add
; }
499 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
501 if ((entire_insn
& 0xfc0f000f) == 0x14060000)
502 { itype
= SH64_MEDIA_INSN_FIPRS
; goto extract_sfmt_fiprs
; }
503 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
505 if ((entire_insn
& 0xfc0f000f) == 0x140e0000)
506 { itype
= SH64_MEDIA_INSN_FTRVS
; goto extract_sfmt_ftrvs
; }
507 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
509 if ((entire_insn
& 0xfc0f000f) == 0x18000000)
510 { itype
= SH64_MEDIA_INSN_FABSS
; goto extract_sfmt_fabss
; }
511 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
513 if ((entire_insn
& 0xfc0f000f) == 0x18010000)
514 { itype
= SH64_MEDIA_INSN_FABSD
; goto extract_sfmt_fabsd
; }
515 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
517 if ((entire_insn
& 0xfc0f000f) == 0x18020000)
518 { itype
= SH64_MEDIA_INSN_FNEGS
; goto extract_sfmt_fabss
; }
519 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
521 if ((entire_insn
& 0xfc0f000f) == 0x18030000)
522 { itype
= SH64_MEDIA_INSN_FNEGD
; goto extract_sfmt_fabsd
; }
523 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
525 if ((entire_insn
& 0xfc0ffc0f) == 0x1c00fc00)
526 { itype
= SH64_MEDIA_INSN_FMOVLS
; goto extract_sfmt_fmovls
; }
527 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
529 if ((entire_insn
& 0xfc0ffc0f) == 0x1c01fc00)
530 { itype
= SH64_MEDIA_INSN_FMOVQD
; goto extract_sfmt_fmovqd
; }
531 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
533 if ((entire_insn
& 0xfffffc0f) == 0x1ff2fc00)
534 { itype
= SH64_MEDIA_INSN_FGETSCR
; goto extract_sfmt_fgetscr
; }
535 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
537 if ((entire_insn
& 0xfc0f000f) == 0x1c080000)
538 { itype
= SH64_MEDIA_INSN_FLDXS
; goto extract_sfmt_fldxs
; }
539 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
541 if ((entire_insn
& 0xfc0f000f) == 0x1c090000)
542 { itype
= SH64_MEDIA_INSN_FLDXD
; goto extract_sfmt_fldxd
; }
543 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
545 if ((entire_insn
& 0xfc0f000f) == 0x1c0d0000)
546 { itype
= SH64_MEDIA_INSN_FLDXP
; goto extract_sfmt_fldxp
; }
547 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
549 if ((entire_insn
& 0xfc0f000f) == 0x20010000)
550 { itype
= SH64_MEDIA_INSN_CMVEQ
; goto extract_sfmt_cmveq
; }
551 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
553 if ((entire_insn
& 0xfc0f000f) == 0x20030000)
554 { itype
= SH64_MEDIA_INSN_SWAPQ
; goto extract_sfmt_swapq
; }
555 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
557 if ((entire_insn
& 0xfc0f000f) == 0x20050000)
558 { itype
= SH64_MEDIA_INSN_CMVNE
; goto extract_sfmt_cmveq
; }
559 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
561 if ((entire_insn
& 0xfc0ffc0f) == 0x240ffc00)
562 { itype
= SH64_MEDIA_INSN_GETCON
; goto extract_sfmt_getcon
; }
563 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
565 if ((entire_insn
& 0xfc0f000f) == 0x28000000)
566 { itype
= SH64_MEDIA_INSN_MCMPEQB
; goto extract_sfmt_add
; }
567 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
569 if ((entire_insn
& 0xfc0f000f) == 0x28010000)
570 { itype
= SH64_MEDIA_INSN_MCMPEQW
; goto extract_sfmt_add
; }
571 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
573 if ((entire_insn
& 0xfc0f000f) == 0x28020000)
574 { itype
= SH64_MEDIA_INSN_MCMPEQL
; goto extract_sfmt_add
; }
575 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
577 if ((entire_insn
& 0xfc0f000f) == 0x28040000)
578 { itype
= SH64_MEDIA_INSN_MCMPGTUB
; goto extract_sfmt_add
; }
579 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
581 if ((entire_insn
& 0xfc0f000f) == 0x28050000)
582 { itype
= SH64_MEDIA_INSN_MCMPGTW
; goto extract_sfmt_add
; }
583 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
585 if ((entire_insn
& 0xfc0f000f) == 0x28060000)
586 { itype
= SH64_MEDIA_INSN_MCMPGTL
; goto extract_sfmt_add
; }
587 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
589 if ((entire_insn
& 0xfc0f000f) == 0x28070000)
590 { itype
= SH64_MEDIA_INSN_MEXTR1
; goto extract_sfmt_add
; }
591 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
593 if ((entire_insn
& 0xfc0ffc0f) == 0x2809fc00)
594 { itype
= SH64_MEDIA_INSN_MABSW
; goto extract_sfmt_byterev
; }
595 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
597 if ((entire_insn
& 0xfc0ffc0f) == 0x280afc00)
598 { itype
= SH64_MEDIA_INSN_MABSL
; goto extract_sfmt_byterev
; }
599 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
601 if ((entire_insn
& 0xfc0f000f) == 0x280b0000)
602 { itype
= SH64_MEDIA_INSN_MEXTR2
; goto extract_sfmt_add
; }
603 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
605 if ((entire_insn
& 0xfc0f000f) == 0x280d0000)
606 { itype
= SH64_MEDIA_INSN_MPERMW
; goto extract_sfmt_add
; }
607 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
609 if ((entire_insn
& 0xfc0f000f) == 0x280f0000)
610 { itype
= SH64_MEDIA_INSN_MEXTR3
; goto extract_sfmt_add
; }
611 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
613 if ((entire_insn
& 0xfc0f000f) == 0x2c000000)
614 { itype
= SH64_MEDIA_INSN_MSHFLOB
; goto extract_sfmt_add
; }
615 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
617 if ((entire_insn
& 0xfc0f000f) == 0x2c010000)
618 { itype
= SH64_MEDIA_INSN_MSHFLOW
; goto extract_sfmt_add
; }
619 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
621 if ((entire_insn
& 0xfc0f000f) == 0x2c020000)
622 { itype
= SH64_MEDIA_INSN_MSHFLOL
; goto extract_sfmt_add
; }
623 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
625 if ((entire_insn
& 0xfc0f000f) == 0x2c030000)
626 { itype
= SH64_MEDIA_INSN_MEXTR4
; goto extract_sfmt_add
; }
627 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
629 if ((entire_insn
& 0xfc0f000f) == 0x2c040000)
630 { itype
= SH64_MEDIA_INSN_MSHFHIB
; goto extract_sfmt_add
; }
631 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
633 if ((entire_insn
& 0xfc0f000f) == 0x2c050000)
634 { itype
= SH64_MEDIA_INSN_MSHFHIW
; goto extract_sfmt_add
; }
635 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
637 if ((entire_insn
& 0xfc0f000f) == 0x2c060000)
638 { itype
= SH64_MEDIA_INSN_MSHFHIL
; goto extract_sfmt_add
; }
639 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
641 if ((entire_insn
& 0xfc0f000f) == 0x2c070000)
642 { itype
= SH64_MEDIA_INSN_MEXTR5
; goto extract_sfmt_add
; }
643 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
645 if ((entire_insn
& 0xfc0f000f) == 0x2c0b0000)
646 { itype
= SH64_MEDIA_INSN_MEXTR6
; goto extract_sfmt_add
; }
647 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
649 if ((entire_insn
& 0xfc0f000f) == 0x2c0f0000)
650 { itype
= SH64_MEDIA_INSN_MEXTR7
; goto extract_sfmt_add
; }
651 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
653 if ((entire_insn
& 0xfc0f000f) == 0x30000000)
654 { itype
= SH64_MEDIA_INSN_FMOVSL
; goto extract_sfmt_fmovsl
; }
655 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
657 if ((entire_insn
& 0xfc0f000f) == 0x30010000)
658 { itype
= SH64_MEDIA_INSN_FMOVDQ
; goto extract_sfmt_fmovdq
; }
659 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
661 if ((entire_insn
& 0xfc0f03ff) == 0x300203f0)
662 { itype
= SH64_MEDIA_INSN_FPUTSCR
; goto extract_sfmt_fputscr
; }
663 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
665 if ((entire_insn
& 0xfc0f000f) == 0x30080000)
666 { itype
= SH64_MEDIA_INSN_FCMPEQS
; goto extract_sfmt_fcmpeqs
; }
667 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
669 if ((entire_insn
& 0xfc0f000f) == 0x30090000)
670 { itype
= SH64_MEDIA_INSN_FCMPEQD
; goto extract_sfmt_fcmpeqd
; }
671 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
673 if ((entire_insn
& 0xfc0f000f) == 0x300a0000)
674 { itype
= SH64_MEDIA_INSN_FCMPUNS
; goto extract_sfmt_fcmpeqs
; }
675 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
677 if ((entire_insn
& 0xfc0f000f) == 0x300b0000)
678 { itype
= SH64_MEDIA_INSN_FCMPUND
; goto extract_sfmt_fcmpeqd
; }
679 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
681 if ((entire_insn
& 0xfc0f000f) == 0x300c0000)
682 { itype
= SH64_MEDIA_INSN_FCMPGTS
; goto extract_sfmt_fcmpeqs
; }
683 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
685 if ((entire_insn
& 0xfc0f000f) == 0x300d0000)
686 { itype
= SH64_MEDIA_INSN_FCMPGTD
; goto extract_sfmt_fcmpeqd
; }
687 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
689 if ((entire_insn
& 0xfc0f000f) == 0x300e0000)
690 { itype
= SH64_MEDIA_INSN_FCMPGES
; goto extract_sfmt_fcmpeqs
; }
691 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
693 if ((entire_insn
& 0xfc0f000f) == 0x300f0000)
694 { itype
= SH64_MEDIA_INSN_FCMPGED
; goto extract_sfmt_fcmpeqd
; }
695 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
697 if ((entire_insn
& 0xfc0f000f) == 0x34000000)
698 { itype
= SH64_MEDIA_INSN_FADDS
; goto extract_sfmt_fadds
; }
699 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
701 if ((entire_insn
& 0xfc0f000f) == 0x34010000)
702 { itype
= SH64_MEDIA_INSN_FADDD
; goto extract_sfmt_faddd
; }
703 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
705 if ((entire_insn
& 0xfc0f000f) == 0x34020000)
706 { itype
= SH64_MEDIA_INSN_FSUBS
; goto extract_sfmt_fadds
; }
707 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
709 if ((entire_insn
& 0xfc0f000f) == 0x34030000)
710 { itype
= SH64_MEDIA_INSN_FSUBD
; goto extract_sfmt_fsubd
; }
711 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
713 if ((entire_insn
& 0xfc0f000f) == 0x34040000)
714 { itype
= SH64_MEDIA_INSN_FDIVS
; goto extract_sfmt_fadds
; }
715 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
717 if ((entire_insn
& 0xfc0f000f) == 0x34050000)
718 { itype
= SH64_MEDIA_INSN_FDIVD
; goto extract_sfmt_faddd
; }
719 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
721 if ((entire_insn
& 0xfc0f000f) == 0x34060000)
722 { itype
= SH64_MEDIA_INSN_FMULS
; goto extract_sfmt_fadds
; }
723 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
725 if ((entire_insn
& 0xfc0f000f) == 0x34070000)
726 { itype
= SH64_MEDIA_INSN_FMULD
; goto extract_sfmt_faddd
; }
727 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
729 if ((entire_insn
& 0xfc0f000f) == 0x340e0000)
730 { itype
= SH64_MEDIA_INSN_FMACS
; goto extract_sfmt_fmacs
; }
731 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
733 if ((entire_insn
& 0xfc0f000f) == 0x38000000)
734 { itype
= SH64_MEDIA_INSN_FMOVS
; goto extract_sfmt_fabss
; }
735 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
737 if ((entire_insn
& 0xfc0f000f) == 0x38010000)
738 { itype
= SH64_MEDIA_INSN_FMOVD
; goto extract_sfmt_fabsd
; }
739 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
741 if ((entire_insn
& 0xfc0f000f) == 0x38040000)
742 { itype
= SH64_MEDIA_INSN_FSQRTS
; goto extract_sfmt_fabss
; }
743 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
745 if ((entire_insn
& 0xfc0f000f) == 0x38050000)
746 { itype
= SH64_MEDIA_INSN_FSQRTD
; goto extract_sfmt_fabsd
; }
747 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
749 if ((entire_insn
& 0xfc0f000f) == 0x38060000)
750 { itype
= SH64_MEDIA_INSN_FCNVSD
; goto extract_sfmt_fcnvsd
; }
751 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
753 if ((entire_insn
& 0xfc0f000f) == 0x38070000)
754 { itype
= SH64_MEDIA_INSN_FCNVDS
; goto extract_sfmt_fcnvds
; }
755 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
757 if ((entire_insn
& 0xfc0f000f) == 0x38080000)
758 { itype
= SH64_MEDIA_INSN_FTRCSL
; goto extract_sfmt_fabss
; }
759 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
761 if ((entire_insn
& 0xfc0f000f) == 0x38090000)
762 { itype
= SH64_MEDIA_INSN_FTRCDQ
; goto extract_sfmt_ftrcdq
; }
763 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
765 if ((entire_insn
& 0xfc0f000f) == 0x380a0000)
766 { itype
= SH64_MEDIA_INSN_FTRCSQ
; goto extract_sfmt_fcnvsd
; }
767 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
769 if ((entire_insn
& 0xfc0f000f) == 0x380b0000)
770 { itype
= SH64_MEDIA_INSN_FTRCDL
; goto extract_sfmt_fcnvds
; }
771 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
773 if ((entire_insn
& 0xfc0f000f) == 0x380c0000)
774 { itype
= SH64_MEDIA_INSN_FLOATLS
; goto extract_sfmt_fabss
; }
775 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
777 if ((entire_insn
& 0xfc0f000f) == 0x380d0000)
778 { itype
= SH64_MEDIA_INSN_FLOATQD
; goto extract_sfmt_fabsd
; }
779 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
781 if ((entire_insn
& 0xfc0f000f) == 0x380e0000)
782 { itype
= SH64_MEDIA_INSN_FLOATLD
; goto extract_sfmt_fcnvsd
; }
783 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
785 if ((entire_insn
& 0xfc0f000f) == 0x380f0000)
786 { itype
= SH64_MEDIA_INSN_FLOATQS
; goto extract_sfmt_fcnvds
; }
787 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
789 if ((entire_insn
& 0xfc0f000f) == 0x3c080000)
790 { itype
= SH64_MEDIA_INSN_FSTXS
; goto extract_sfmt_fstxs
; }
791 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
793 if ((entire_insn
& 0xfc0f000f) == 0x3c090000)
794 { itype
= SH64_MEDIA_INSN_FSTXD
; goto extract_sfmt_fstxd
; }
795 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
797 if ((entire_insn
& 0xfc0f000f) == 0x3c0d0000)
798 { itype
= SH64_MEDIA_INSN_FSTXP
; goto extract_sfmt_fldxp
; }
799 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
801 if ((entire_insn
& 0xfc0f000f) == 0x40000000)
802 { itype
= SH64_MEDIA_INSN_LDXB
; goto extract_sfmt_ldxb
; }
803 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
805 if ((entire_insn
& 0xfc0f000f) == 0x40010000)
806 { itype
= SH64_MEDIA_INSN_LDXW
; goto extract_sfmt_ldxw
; }
807 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
809 if ((entire_insn
& 0xfc0f000f) == 0x40020000)
810 { itype
= SH64_MEDIA_INSN_LDXL
; goto extract_sfmt_ldxl
; }
811 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
813 if ((entire_insn
& 0xfc0f000f) == 0x40030000)
814 { itype
= SH64_MEDIA_INSN_LDXQ
; goto extract_sfmt_ldxq
; }
815 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
817 if ((entire_insn
& 0xfc0f000f) == 0x40040000)
818 { itype
= SH64_MEDIA_INSN_LDXUB
; goto extract_sfmt_ldxub
; }
819 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
821 if ((entire_insn
& 0xfc0f000f) == 0x40050000)
822 { itype
= SH64_MEDIA_INSN_LDXUW
; goto extract_sfmt_ldxuw
; }
823 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
825 if ((entire_insn
& 0xff8ffc0f) == 0x4401fc00)
826 { itype
= SH64_MEDIA_INSN_BLINK
; goto extract_sfmt_blink
; }
827 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
829 if ((entire_insn
& 0xff8ffc0f) == 0x4405fc00)
830 { itype
= SH64_MEDIA_INSN_GETTR
; goto extract_sfmt_gettr
; }
831 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
833 if ((entire_insn
& 0xfc0f000f) == 0x48000000)
834 { itype
= SH64_MEDIA_INSN_MSADUBQ
; goto extract_sfmt_mcmv
; }
835 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
837 if ((entire_insn
& 0xfc0f000f) == 0x48010000)
838 { itype
= SH64_MEDIA_INSN_MMACFXWL
; goto extract_sfmt_mcmv
; }
839 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
841 if ((entire_insn
& 0xfc0f000f) == 0x48030000)
842 { itype
= SH64_MEDIA_INSN_MCMV
; goto extract_sfmt_mcmv
; }
843 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
845 if ((entire_insn
& 0xfc0f000f) == 0x48050000)
846 { itype
= SH64_MEDIA_INSN_MMACNFX_WL
; goto extract_sfmt_mmacnfx_wl
; }
847 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
849 if ((entire_insn
& 0xfc0f000f) == 0x48090000)
850 { itype
= SH64_MEDIA_INSN_MMULSUMWQ
; goto extract_sfmt_mcmv
; }
851 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
853 if ((entire_insn
& 0xfc0f000f) == 0x4c010000)
854 { itype
= SH64_MEDIA_INSN_MMULW
; goto extract_sfmt_add
; }
855 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
857 if ((entire_insn
& 0xfc0f000f) == 0x4c020000)
858 { itype
= SH64_MEDIA_INSN_MMULL
; goto extract_sfmt_add
; }
859 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
861 if ((entire_insn
& 0xfc0f000f) == 0x4c050000)
862 { itype
= SH64_MEDIA_INSN_MMULFXW
; goto extract_sfmt_add
; }
863 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
865 if ((entire_insn
& 0xfc0f000f) == 0x4c060000)
866 { itype
= SH64_MEDIA_INSN_MMULFXL
; goto extract_sfmt_add
; }
867 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
869 if ((entire_insn
& 0xfc0f000f) == 0x4c080000)
870 { itype
= SH64_MEDIA_INSN_MCNVSWB
; goto extract_sfmt_add
; }
871 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
873 if ((entire_insn
& 0xfc0f000f) == 0x4c090000)
874 { itype
= SH64_MEDIA_INSN_MMULFXRPW
; goto extract_sfmt_add
; }
875 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
877 if ((entire_insn
& 0xfc0f000f) == 0x4c0a0000)
878 { itype
= SH64_MEDIA_INSN_MMULLOWL
; goto extract_sfmt_add
; }
879 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
881 if ((entire_insn
& 0xfc0f000f) == 0x4c0c0000)
882 { itype
= SH64_MEDIA_INSN_MCNVSWUB
; goto extract_sfmt_add
; }
883 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
885 if ((entire_insn
& 0xfc0f000f) == 0x4c0d0000)
886 { itype
= SH64_MEDIA_INSN_MCNVSLW
; goto extract_sfmt_add
; }
887 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
889 if ((entire_insn
& 0xfc0f000f) == 0x4c0e0000)
890 { itype
= SH64_MEDIA_INSN_MMULHIWL
; goto extract_sfmt_add
; }
891 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
893 if ((entire_insn
& 0xfc0f000f) == 0x60000000)
894 { itype
= SH64_MEDIA_INSN_STXB
; goto extract_sfmt_stxb
; }
895 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
897 if ((entire_insn
& 0xfc0f000f) == 0x60010000)
898 { itype
= SH64_MEDIA_INSN_STXW
; goto extract_sfmt_stxw
; }
899 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
901 if ((entire_insn
& 0xfc0f000f) == 0x60020000)
902 { itype
= SH64_MEDIA_INSN_STXL
; goto extract_sfmt_stxl
; }
903 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
905 if ((entire_insn
& 0xfc0f000f) == 0x60030000)
906 { itype
= SH64_MEDIA_INSN_STXQ
; goto extract_sfmt_stxq
; }
907 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
909 if ((entire_insn
& 0xfc0f018f) == 0x64010000)
910 { itype
= SH64_MEDIA_INSN_BEQ
; goto extract_sfmt_beq
; }
911 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
913 if ((entire_insn
& 0xfc0f018f) == 0x64030000)
914 { itype
= SH64_MEDIA_INSN_BGE
; goto extract_sfmt_beq
; }
915 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
917 if ((entire_insn
& 0xfc0f018f) == 0x64050000)
918 { itype
= SH64_MEDIA_INSN_BNE
; goto extract_sfmt_beq
; }
919 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
921 if ((entire_insn
& 0xfc0f018f) == 0x64070000)
922 { itype
= SH64_MEDIA_INSN_BGT
; goto extract_sfmt_beq
; }
923 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
925 if ((entire_insn
& 0xfc0f018f) == 0x640b0000)
926 { itype
= SH64_MEDIA_INSN_BGEU
; goto extract_sfmt_beq
; }
927 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
929 if ((entire_insn
& 0xfc0f018f) == 0x640f0000)
930 { itype
= SH64_MEDIA_INSN_BGTU
; goto extract_sfmt_beq
; }
931 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
933 if ((entire_insn
& 0xffff018f) == 0x6bf10000)
934 { itype
= SH64_MEDIA_INSN_PTABS
; goto extract_sfmt_ptabs
; }
935 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
937 if ((entire_insn
& 0xffff018f) == 0x6bf50000)
938 { itype
= SH64_MEDIA_INSN_PTREL
; goto extract_sfmt_ptrel
; }
939 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
941 if ((entire_insn
& 0xffffffff) == 0x6ff0fff0)
942 { itype
= SH64_MEDIA_INSN_NOP
; goto extract_sfmt_nop
; }
943 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
945 if ((entire_insn
& 0xfc0fffff) == 0x6c01fff0)
946 { itype
= SH64_MEDIA_INSN_TRAPA
; goto extract_sfmt_trapa
; }
947 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
949 if ((entire_insn
& 0xffffffff) == 0x6ff2fff0)
950 { itype
= SH64_MEDIA_INSN_SYNCI
; goto extract_sfmt_nop
; }
951 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
953 if ((entire_insn
& 0xffffffff) == 0x6ff3fff0)
954 { itype
= SH64_MEDIA_INSN_RTE
; goto extract_sfmt_nop
; }
955 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
957 if ((entire_insn
& 0xffffffff) == 0x6ff5fff0)
958 { itype
= SH64_MEDIA_INSN_BRK
; goto extract_sfmt_brk
; }
959 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
961 if ((entire_insn
& 0xffffffff) == 0x6ff6fff0)
962 { itype
= SH64_MEDIA_INSN_SYNCO
; goto extract_sfmt_nop
; }
963 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
965 if ((entire_insn
& 0xffffffff) == 0x6ff7fff0)
966 { itype
= SH64_MEDIA_INSN_SLEEP
; goto extract_sfmt_nop
; }
967 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
969 if ((entire_insn
& 0xfc0ffc0f) == 0x6c0ffc00)
970 { itype
= SH64_MEDIA_INSN_PUTCON
; goto extract_sfmt_putcon
; }
971 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
972 case 512 : /* fall through */
973 case 513 : /* fall through */
974 case 514 : /* fall through */
975 case 515 : /* fall through */
976 case 516 : /* fall through */
977 case 517 : /* fall through */
978 case 518 : /* fall through */
979 case 519 : /* fall through */
980 case 520 : /* fall through */
981 case 521 : /* fall through */
982 case 522 : /* fall through */
983 case 523 : /* fall through */
984 case 524 : /* fall through */
985 case 525 : /* fall through */
986 case 526 : /* fall through */
988 if ((entire_insn
& 0xfc00000f) == 0x80000000)
989 { itype
= SH64_MEDIA_INSN_LDB
; goto extract_sfmt_ldb
; }
990 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
991 case 528 : /* fall through */
992 case 529 : /* fall through */
993 case 530 : /* fall through */
994 case 531 : /* fall through */
995 case 532 : /* fall through */
996 case 533 : /* fall through */
997 case 534 : /* fall through */
998 case 535 : /* fall through */
999 case 536 : /* fall through */
1000 case 537 : /* fall through */
1001 case 538 : /* fall through */
1002 case 539 : /* fall through */
1003 case 540 : /* fall through */
1004 case 541 : /* fall through */
1005 case 542 : /* fall through */
1007 if ((entire_insn
& 0xfc00000f) == 0x84000000)
1008 { itype
= SH64_MEDIA_INSN_LDW
; goto extract_sfmt_lduw
; }
1009 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1010 case 544 : /* fall through */
1011 case 545 : /* fall through */
1012 case 546 : /* fall through */
1013 case 547 : /* fall through */
1014 case 548 : /* fall through */
1015 case 549 : /* fall through */
1016 case 550 : /* fall through */
1017 case 551 : /* fall through */
1018 case 552 : /* fall through */
1019 case 553 : /* fall through */
1020 case 554 : /* fall through */
1021 case 555 : /* fall through */
1022 case 556 : /* fall through */
1023 case 557 : /* fall through */
1024 case 558 : /* fall through */
1026 if ((entire_insn
& 0xfc00000f) == 0x88000000)
1027 { itype
= SH64_MEDIA_INSN_LDL
; goto extract_sfmt_ldl
; }
1028 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1029 case 560 : /* fall through */
1030 case 561 : /* fall through */
1031 case 562 : /* fall through */
1032 case 563 : /* fall through */
1033 case 564 : /* fall through */
1034 case 565 : /* fall through */
1035 case 566 : /* fall through */
1036 case 567 : /* fall through */
1037 case 568 : /* fall through */
1038 case 569 : /* fall through */
1039 case 570 : /* fall through */
1040 case 571 : /* fall through */
1041 case 572 : /* fall through */
1042 case 573 : /* fall through */
1043 case 574 : /* fall through */
1045 if ((entire_insn
& 0xfc00000f) == 0x8c000000)
1046 { itype
= SH64_MEDIA_INSN_LDQ
; goto extract_sfmt_ldq
; }
1047 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1048 case 576 : /* fall through */
1049 case 577 : /* fall through */
1050 case 578 : /* fall through */
1051 case 579 : /* fall through */
1052 case 580 : /* fall through */
1053 case 581 : /* fall through */
1054 case 582 : /* fall through */
1055 case 583 : /* fall through */
1056 case 584 : /* fall through */
1057 case 585 : /* fall through */
1058 case 586 : /* fall through */
1059 case 587 : /* fall through */
1060 case 588 : /* fall through */
1061 case 589 : /* fall through */
1062 case 590 : /* fall through */
1064 if ((entire_insn
& 0xfc00000f) == 0x90000000)
1065 { itype
= SH64_MEDIA_INSN_LDUB
; goto extract_sfmt_ldb
; }
1066 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1067 case 592 : /* fall through */
1068 case 593 : /* fall through */
1069 case 594 : /* fall through */
1070 case 595 : /* fall through */
1071 case 596 : /* fall through */
1072 case 597 : /* fall through */
1073 case 598 : /* fall through */
1074 case 599 : /* fall through */
1075 case 600 : /* fall through */
1076 case 601 : /* fall through */
1077 case 602 : /* fall through */
1078 case 603 : /* fall through */
1079 case 604 : /* fall through */
1080 case 605 : /* fall through */
1081 case 606 : /* fall through */
1083 if ((entire_insn
& 0xfc00000f) == 0x94000000)
1084 { itype
= SH64_MEDIA_INSN_FLDS
; goto extract_sfmt_flds
; }
1085 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1086 case 608 : /* fall through */
1087 case 609 : /* fall through */
1088 case 610 : /* fall through */
1089 case 611 : /* fall through */
1090 case 612 : /* fall through */
1091 case 613 : /* fall through */
1092 case 614 : /* fall through */
1093 case 615 : /* fall through */
1094 case 616 : /* fall through */
1095 case 617 : /* fall through */
1096 case 618 : /* fall through */
1097 case 619 : /* fall through */
1098 case 620 : /* fall through */
1099 case 621 : /* fall through */
1100 case 622 : /* fall through */
1102 if ((entire_insn
& 0xfc00000f) == 0x98000000)
1103 { itype
= SH64_MEDIA_INSN_FLDP
; goto extract_sfmt_fldp
; }
1104 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1105 case 624 : /* fall through */
1106 case 625 : /* fall through */
1107 case 626 : /* fall through */
1108 case 627 : /* fall through */
1109 case 628 : /* fall through */
1110 case 629 : /* fall through */
1111 case 630 : /* fall through */
1112 case 631 : /* fall through */
1113 case 632 : /* fall through */
1114 case 633 : /* fall through */
1115 case 634 : /* fall through */
1116 case 635 : /* fall through */
1117 case 636 : /* fall through */
1118 case 637 : /* fall through */
1119 case 638 : /* fall through */
1121 if ((entire_insn
& 0xfc00000f) == 0x9c000000)
1122 { itype
= SH64_MEDIA_INSN_FLDD
; goto extract_sfmt_fldd
; }
1123 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1124 case 640 : /* fall through */
1125 case 641 : /* fall through */
1126 case 642 : /* fall through */
1127 case 643 : /* fall through */
1128 case 644 : /* fall through */
1129 case 645 : /* fall through */
1130 case 646 : /* fall through */
1131 case 647 : /* fall through */
1132 case 648 : /* fall through */
1133 case 649 : /* fall through */
1134 case 650 : /* fall through */
1135 case 651 : /* fall through */
1136 case 652 : /* fall through */
1137 case 653 : /* fall through */
1138 case 654 : /* fall through */
1140 if ((entire_insn
& 0xfc00000f) == 0xa0000000)
1141 { itype
= SH64_MEDIA_INSN_STB
; goto extract_sfmt_stb
; }
1142 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1143 case 656 : /* fall through */
1144 case 657 : /* fall through */
1145 case 658 : /* fall through */
1146 case 659 : /* fall through */
1147 case 660 : /* fall through */
1148 case 661 : /* fall through */
1149 case 662 : /* fall through */
1150 case 663 : /* fall through */
1151 case 664 : /* fall through */
1152 case 665 : /* fall through */
1153 case 666 : /* fall through */
1154 case 667 : /* fall through */
1155 case 668 : /* fall through */
1156 case 669 : /* fall through */
1157 case 670 : /* fall through */
1159 if ((entire_insn
& 0xfc00000f) == 0xa4000000)
1160 { itype
= SH64_MEDIA_INSN_STW
; goto extract_sfmt_stw
; }
1161 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1162 case 672 : /* fall through */
1163 case 673 : /* fall through */
1164 case 674 : /* fall through */
1165 case 675 : /* fall through */
1166 case 676 : /* fall through */
1167 case 677 : /* fall through */
1168 case 678 : /* fall through */
1169 case 679 : /* fall through */
1170 case 680 : /* fall through */
1171 case 681 : /* fall through */
1172 case 682 : /* fall through */
1173 case 683 : /* fall through */
1174 case 684 : /* fall through */
1175 case 685 : /* fall through */
1176 case 686 : /* fall through */
1178 if ((entire_insn
& 0xfc00000f) == 0xa8000000)
1179 { itype
= SH64_MEDIA_INSN_STL
; goto extract_sfmt_stl
; }
1180 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1181 case 688 : /* fall through */
1182 case 689 : /* fall through */
1183 case 690 : /* fall through */
1184 case 691 : /* fall through */
1185 case 692 : /* fall through */
1186 case 693 : /* fall through */
1187 case 694 : /* fall through */
1188 case 695 : /* fall through */
1189 case 696 : /* fall through */
1190 case 697 : /* fall through */
1191 case 698 : /* fall through */
1192 case 699 : /* fall through */
1193 case 700 : /* fall through */
1194 case 701 : /* fall through */
1195 case 702 : /* fall through */
1197 if ((entire_insn
& 0xfc00000f) == 0xac000000)
1198 { itype
= SH64_MEDIA_INSN_STQ
; goto extract_sfmt_stq
; }
1199 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1200 case 704 : /* fall through */
1201 case 705 : /* fall through */
1202 case 706 : /* fall through */
1203 case 707 : /* fall through */
1204 case 708 : /* fall through */
1205 case 709 : /* fall through */
1206 case 710 : /* fall through */
1207 case 711 : /* fall through */
1208 case 712 : /* fall through */
1209 case 713 : /* fall through */
1210 case 714 : /* fall through */
1211 case 715 : /* fall through */
1212 case 716 : /* fall through */
1213 case 717 : /* fall through */
1214 case 718 : /* fall through */
1216 if ((entire_insn
& 0xfc00000f) == 0xb0000000)
1217 { itype
= SH64_MEDIA_INSN_LDUW
; goto extract_sfmt_lduw
; }
1218 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1219 case 720 : /* fall through */
1220 case 721 : /* fall through */
1221 case 722 : /* fall through */
1222 case 723 : /* fall through */
1223 case 724 : /* fall through */
1224 case 725 : /* fall through */
1225 case 726 : /* fall through */
1226 case 727 : /* fall through */
1227 case 728 : /* fall through */
1228 case 729 : /* fall through */
1229 case 730 : /* fall through */
1230 case 731 : /* fall through */
1231 case 732 : /* fall through */
1232 case 733 : /* fall through */
1233 case 734 : /* fall through */
1235 if ((entire_insn
& 0xfc00000f) == 0xb4000000)
1236 { itype
= SH64_MEDIA_INSN_FSTS
; goto extract_sfmt_fsts
; }
1237 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1238 case 736 : /* fall through */
1239 case 737 : /* fall through */
1240 case 738 : /* fall through */
1241 case 739 : /* fall through */
1242 case 740 : /* fall through */
1243 case 741 : /* fall through */
1244 case 742 : /* fall through */
1245 case 743 : /* fall through */
1246 case 744 : /* fall through */
1247 case 745 : /* fall through */
1248 case 746 : /* fall through */
1249 case 747 : /* fall through */
1250 case 748 : /* fall through */
1251 case 749 : /* fall through */
1252 case 750 : /* fall through */
1254 if ((entire_insn
& 0xfc00000f) == 0xb8000000)
1255 { itype
= SH64_MEDIA_INSN_FSTP
; goto extract_sfmt_fldp
; }
1256 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1257 case 752 : /* fall through */
1258 case 753 : /* fall through */
1259 case 754 : /* fall through */
1260 case 755 : /* fall through */
1261 case 756 : /* fall through */
1262 case 757 : /* fall through */
1263 case 758 : /* fall through */
1264 case 759 : /* fall through */
1265 case 760 : /* fall through */
1266 case 761 : /* fall through */
1267 case 762 : /* fall through */
1268 case 763 : /* fall through */
1269 case 764 : /* fall through */
1270 case 765 : /* fall through */
1271 case 766 : /* fall through */
1273 if ((entire_insn
& 0xfc00000f) == 0xbc000000)
1274 { itype
= SH64_MEDIA_INSN_FSTD
; goto extract_sfmt_fstd
; }
1275 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1277 if ((entire_insn
& 0xfc0f000f) == 0xc0020000)
1278 { itype
= SH64_MEDIA_INSN_LDLOL
; goto extract_sfmt_ldlol
; }
1279 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1281 if ((entire_insn
& 0xfc0f000f) == 0xc0030000)
1282 { itype
= SH64_MEDIA_INSN_LDLOQ
; goto extract_sfmt_ldloq
; }
1283 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1285 if ((entire_insn
& 0xfc0f000f) == 0xc0060000)
1286 { itype
= SH64_MEDIA_INSN_LDHIL
; goto extract_sfmt_ldhil
; }
1287 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1289 if ((entire_insn
& 0xfc0f000f) == 0xc0070000)
1290 { itype
= SH64_MEDIA_INSN_LDHIQ
; goto extract_sfmt_ldhiq
; }
1291 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1293 if ((entire_insn
& 0xfc0f000f) == 0xc00f0000)
1294 { itype
= SH64_MEDIA_INSN_GETCFG
; goto extract_sfmt_getcfg
; }
1295 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1297 if ((entire_insn
& 0xfc0f000f) == 0xc4000000)
1298 { itype
= SH64_MEDIA_INSN_SHLLIL
; goto extract_sfmt_shari
; }
1299 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1301 if ((entire_insn
& 0xfc0f000f) == 0xc4010000)
1302 { itype
= SH64_MEDIA_INSN_SHLLI
; goto extract_sfmt_shari
; }
1303 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1305 if ((entire_insn
& 0xfc0f000f) == 0xc4020000)
1306 { itype
= SH64_MEDIA_INSN_SHLRIL
; goto extract_sfmt_shari
; }
1307 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1309 if ((entire_insn
& 0xfc0f000f) == 0xc4030000)
1310 { itype
= SH64_MEDIA_INSN_SHLRI
; goto extract_sfmt_shari
; }
1311 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1313 if ((entire_insn
& 0xfc0f000f) == 0xc4060000)
1314 { itype
= SH64_MEDIA_INSN_SHARIL
; goto extract_sfmt_shari
; }
1315 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1317 if ((entire_insn
& 0xfc0f000f) == 0xc4070000)
1318 { itype
= SH64_MEDIA_INSN_SHARI
; goto extract_sfmt_shari
; }
1319 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1321 if ((entire_insn
& 0xfc0f000f) == 0xc40d0000)
1322 { itype
= SH64_MEDIA_INSN_XORI
; goto extract_sfmt_xori
; }
1323 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1324 case 800 : /* fall through */
1325 case 801 : /* fall through */
1326 case 802 : /* fall through */
1327 case 803 : /* fall through */
1328 case 804 : /* fall through */
1329 case 805 : /* fall through */
1330 case 806 : /* fall through */
1331 case 807 : /* fall through */
1332 case 808 : /* fall through */
1333 case 809 : /* fall through */
1334 case 810 : /* fall through */
1335 case 811 : /* fall through */
1336 case 812 : /* fall through */
1337 case 813 : /* fall through */
1338 case 814 : /* fall through */
1340 if ((entire_insn
& 0xfc00000f) == 0xc8000000)
1341 { itype
= SH64_MEDIA_INSN_SHORI
; goto extract_sfmt_shori
; }
1342 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1343 case 816 : /* fall through */
1344 case 817 : /* fall through */
1345 case 818 : /* fall through */
1346 case 819 : /* fall through */
1347 case 820 : /* fall through */
1348 case 821 : /* fall through */
1349 case 822 : /* fall through */
1350 case 823 : /* fall through */
1351 case 824 : /* fall through */
1352 case 825 : /* fall through */
1353 case 826 : /* fall through */
1354 case 827 : /* fall through */
1355 case 828 : /* fall through */
1356 case 829 : /* fall through */
1357 case 830 : /* fall through */
1359 if ((entire_insn
& 0xfc00000f) == 0xcc000000)
1360 { itype
= SH64_MEDIA_INSN_MOVI
; goto extract_sfmt_movi
; }
1361 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1362 case 832 : /* fall through */
1363 case 833 : /* fall through */
1364 case 834 : /* fall through */
1365 case 835 : /* fall through */
1366 case 836 : /* fall through */
1367 case 837 : /* fall through */
1368 case 838 : /* fall through */
1369 case 839 : /* fall through */
1370 case 840 : /* fall through */
1371 case 841 : /* fall through */
1372 case 842 : /* fall through */
1373 case 843 : /* fall through */
1374 case 844 : /* fall through */
1375 case 845 : /* fall through */
1376 case 846 : /* fall through */
1378 if ((entire_insn
& 0xfc00000f) == 0xd0000000)
1379 { itype
= SH64_MEDIA_INSN_ADDI
; goto extract_sfmt_addi
; }
1380 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1381 case 848 : /* fall through */
1382 case 849 : /* fall through */
1383 case 850 : /* fall through */
1384 case 851 : /* fall through */
1385 case 852 : /* fall through */
1386 case 853 : /* fall through */
1387 case 854 : /* fall through */
1388 case 855 : /* fall through */
1389 case 856 : /* fall through */
1390 case 857 : /* fall through */
1391 case 858 : /* fall through */
1392 case 859 : /* fall through */
1393 case 860 : /* fall through */
1394 case 861 : /* fall through */
1395 case 862 : /* fall through */
1397 if ((entire_insn
& 0xfc00000f) == 0xd4000000)
1398 { itype
= SH64_MEDIA_INSN_ADDIL
; goto extract_sfmt_addi
; }
1399 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1400 case 864 : /* fall through */
1401 case 865 : /* fall through */
1402 case 866 : /* fall through */
1403 case 867 : /* fall through */
1404 case 868 : /* fall through */
1405 case 869 : /* fall through */
1406 case 870 : /* fall through */
1407 case 871 : /* fall through */
1408 case 872 : /* fall through */
1409 case 873 : /* fall through */
1410 case 874 : /* fall through */
1411 case 875 : /* fall through */
1412 case 876 : /* fall through */
1413 case 877 : /* fall through */
1414 case 878 : /* fall through */
1416 if ((entire_insn
& 0xfc00000f) == 0xd8000000)
1417 { itype
= SH64_MEDIA_INSN_ANDI
; goto extract_sfmt_addi
; }
1418 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1419 case 880 : /* fall through */
1420 case 881 : /* fall through */
1421 case 882 : /* fall through */
1422 case 883 : /* fall through */
1423 case 884 : /* fall through */
1424 case 885 : /* fall through */
1425 case 886 : /* fall through */
1426 case 887 : /* fall through */
1427 case 888 : /* fall through */
1428 case 889 : /* fall through */
1429 case 890 : /* fall through */
1430 case 891 : /* fall through */
1431 case 892 : /* fall through */
1432 case 893 : /* fall through */
1433 case 894 : /* fall through */
1435 if ((entire_insn
& 0xfc00000f) == 0xdc000000)
1436 { itype
= SH64_MEDIA_INSN_ORI
; goto extract_sfmt_ori
; }
1437 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1439 if ((entire_insn
& 0xfc0ffc0f) == 0xe001fc00)
1440 { itype
= SH64_MEDIA_INSN_PREFI
; goto extract_sfmt_prefi
; }
1441 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1443 if ((entire_insn
& 0xfc0f000f) == 0xe0020000)
1444 { itype
= SH64_MEDIA_INSN_STLOL
; goto extract_sfmt_stlol
; }
1445 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1447 if ((entire_insn
& 0xfc0f000f) == 0xe0030000)
1448 { itype
= SH64_MEDIA_INSN_STLOQ
; goto extract_sfmt_stloq
; }
1449 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1451 if ((entire_insn
& 0xfc0f03ff) == 0xe00403f0)
1452 { itype
= SH64_MEDIA_INSN_ALLOCO
; goto extract_sfmt_alloco
; }
1453 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1455 if ((entire_insn
& 0xfc0f03ff) == 0xe00503f0)
1456 { itype
= SH64_MEDIA_INSN_ICBI
; goto extract_sfmt_alloco
; }
1457 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1459 if ((entire_insn
& 0xfc0f000f) == 0xe0060000)
1460 { itype
= SH64_MEDIA_INSN_STHIL
; goto extract_sfmt_sthil
; }
1461 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1463 if ((entire_insn
& 0xfc0f000f) == 0xe0070000)
1464 { itype
= SH64_MEDIA_INSN_STHIQ
; goto extract_sfmt_sthiq
; }
1465 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1467 if ((entire_insn
& 0xfc0f03ff) == 0xe00803f0)
1468 { itype
= SH64_MEDIA_INSN_OCBP
; goto extract_sfmt_alloco
; }
1469 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1471 if ((entire_insn
& 0xfc0f03ff) == 0xe00903f0)
1472 { itype
= SH64_MEDIA_INSN_OCBI
; goto extract_sfmt_alloco
; }
1473 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1475 if ((entire_insn
& 0xfc0f03ff) == 0xe00c03f0)
1476 { itype
= SH64_MEDIA_INSN_OCBWB
; goto extract_sfmt_alloco
; }
1477 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1479 if ((entire_insn
& 0xfc0f000f) == 0xe00f0000)
1480 { itype
= SH64_MEDIA_INSN_PUTCFG
; goto extract_sfmt_putcfg
; }
1481 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1483 if ((entire_insn
& 0xfc0f018f) == 0xe4010000)
1484 { itype
= SH64_MEDIA_INSN_BEQI
; goto extract_sfmt_beqi
; }
1485 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1487 if ((entire_insn
& 0xfc0f018f) == 0xe4050000)
1488 { itype
= SH64_MEDIA_INSN_BNEI
; goto extract_sfmt_bnei
; }
1489 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1490 case 928 : /* fall through */
1491 case 929 : /* fall through */
1492 case 930 : /* fall through */
1493 case 931 : /* fall through */
1494 case 932 : /* fall through */
1495 case 933 : /* fall through */
1496 case 934 : /* fall through */
1497 case 935 : /* fall through */
1498 case 936 : /* fall through */
1499 case 937 : /* fall through */
1500 case 938 : /* fall through */
1501 case 939 : /* fall through */
1502 case 940 : /* fall through */
1503 case 941 : /* fall through */
1504 case 942 : /* fall through */
1506 if ((entire_insn
& 0xfc00018f) == 0xe8000000)
1507 { itype
= SH64_MEDIA_INSN_PTA
; goto extract_sfmt_pta
; }
1508 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1509 case 944 : /* fall through */
1510 case 945 : /* fall through */
1511 case 946 : /* fall through */
1512 case 947 : /* fall through */
1513 case 948 : /* fall through */
1514 case 949 : /* fall through */
1515 case 950 : /* fall through */
1516 case 951 : /* fall through */
1517 case 952 : /* fall through */
1518 case 953 : /* fall through */
1519 case 954 : /* fall through */
1520 case 955 : /* fall through */
1521 case 956 : /* fall through */
1522 case 957 : /* fall through */
1523 case 958 : /* fall through */
1525 if ((entire_insn
& 0xfc00018f) == 0xec000000)
1526 { itype
= SH64_MEDIA_INSN_PTB
; goto extract_sfmt_pta
; }
1527 itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1528 default : itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
1533 /* The instruction has been decoded, now extract the fields. */
1537 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1538 #define FLD(f) abuf->fields.sfmt_empty.f
1541 /* Record the fields for the semantic handler. */
1542 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_empty", (char *) 0));
1550 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1551 CGEN_INSN_WORD insn
= entire_insn
;
1552 #define FLD(f) abuf->fields.sfmt_add.f
1557 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1558 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
1559 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1561 /* Record the fields for the semantic handler. */
1562 FLD (f_left
) = f_left
;
1563 FLD (f_right
) = f_right
;
1564 FLD (f_dest
) = f_dest
;
1565 CGEN_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));
1567 #if WITH_PROFILE_MODEL_P
1568 /* Record the fields for profiling. */
1569 if (PROFILE_MODEL_P (current_cpu
))
1571 FLD (in_rm
) = f_left
;
1572 FLD (in_rn
) = f_right
;
1573 FLD (out_rd
) = f_dest
;
1582 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1583 CGEN_INSN_WORD insn
= entire_insn
;
1584 #define FLD(f) abuf->fields.sfmt_addi.f
1589 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1590 f_disp10
= EXTRACT_MSB0_SINT (insn
, 32, 12, 10);
1591 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1593 /* Record the fields for the semantic handler. */
1594 FLD (f_disp10
) = f_disp10
;
1595 FLD (f_left
) = f_left
;
1596 FLD (f_dest
) = f_dest
;
1597 CGEN_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));
1599 #if WITH_PROFILE_MODEL_P
1600 /* Record the fields for profiling. */
1601 if (PROFILE_MODEL_P (current_cpu
))
1603 FLD (in_rm
) = f_left
;
1604 FLD (out_rd
) = f_dest
;
1611 extract_sfmt_alloco
:
1613 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1614 CGEN_INSN_WORD insn
= entire_insn
;
1615 #define FLD(f) abuf->fields.sfmt_xori.f
1618 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1620 /* Record the fields for the semantic handler. */
1621 FLD (f_left
) = f_left
;
1622 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_alloco", "f_left 0x%x", 'x', f_left
, (char *) 0));
1624 #if WITH_PROFILE_MODEL_P
1625 /* Record the fields for profiling. */
1626 if (PROFILE_MODEL_P (current_cpu
))
1628 FLD (in_rm
) = f_left
;
1629 FLD (out_rm
) = f_left
;
1638 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1639 CGEN_INSN_WORD insn
= entire_insn
;
1640 #define FLD(f) abuf->fields.sfmt_beq.f
1645 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1646 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
1647 f_tra
= EXTRACT_MSB0_UINT (insn
, 32, 25, 3);
1649 /* Record the fields for the semantic handler. */
1650 FLD (f_left
) = f_left
;
1651 FLD (f_right
) = f_right
;
1652 FLD (f_tra
) = f_tra
;
1653 CGEN_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));
1655 #if WITH_PROFILE_MODEL_P
1656 /* Record the fields for profiling. */
1657 if (PROFILE_MODEL_P (current_cpu
))
1659 FLD (in_rm
) = f_left
;
1660 FLD (in_rn
) = f_right
;
1661 FLD (in_tra
) = f_tra
;
1670 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1671 CGEN_INSN_WORD insn
= entire_insn
;
1672 #define FLD(f) abuf->fields.sfmt_beqi.f
1677 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1678 f_imm6
= EXTRACT_MSB0_SINT (insn
, 32, 16, 6);
1679 f_tra
= EXTRACT_MSB0_UINT (insn
, 32, 25, 3);
1681 /* Record the fields for the semantic handler. */
1682 FLD (f_imm6
) = f_imm6
;
1683 FLD (f_left
) = f_left
;
1684 FLD (f_tra
) = f_tra
;
1685 CGEN_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));
1687 #if WITH_PROFILE_MODEL_P
1688 /* Record the fields for profiling. */
1689 if (PROFILE_MODEL_P (current_cpu
))
1691 FLD (in_rm
) = f_left
;
1692 FLD (in_tra
) = f_tra
;
1701 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1702 CGEN_INSN_WORD insn
= entire_insn
;
1703 #define FLD(f) abuf->fields.sfmt_blink.f
1707 f_trb
= EXTRACT_MSB0_UINT (insn
, 32, 9, 3);
1708 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1710 /* Record the fields for the semantic handler. */
1711 FLD (f_dest
) = f_dest
;
1712 FLD (f_trb
) = f_trb
;
1713 CGEN_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));
1715 #if WITH_PROFILE_MODEL_P
1716 /* Record the fields for profiling. */
1717 if (PROFILE_MODEL_P (current_cpu
))
1719 FLD (in_trb
) = f_trb
;
1720 FLD (out_rd
) = f_dest
;
1729 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1730 CGEN_INSN_WORD insn
= entire_insn
;
1731 #define FLD(f) abuf->fields.sfmt_beqi.f
1736 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1737 f_imm6
= EXTRACT_MSB0_SINT (insn
, 32, 16, 6);
1738 f_tra
= EXTRACT_MSB0_UINT (insn
, 32, 25, 3);
1740 /* Record the fields for the semantic handler. */
1741 FLD (f_imm6
) = f_imm6
;
1742 FLD (f_left
) = f_left
;
1743 FLD (f_tra
) = f_tra
;
1744 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bnei", "f_imm6 0x%x", 'x', f_imm6
, "f_left 0x%x", 'x', f_left
, "f_tra 0x%x", 'x', f_tra
, (char *) 0));
1746 #if WITH_PROFILE_MODEL_P
1747 /* Record the fields for profiling. */
1748 if (PROFILE_MODEL_P (current_cpu
))
1750 FLD (in_rm
) = f_left
;
1751 FLD (in_tra
) = f_tra
;
1760 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1761 #define FLD(f) abuf->fields.sfmt_empty.f
1764 /* Record the fields for the semantic handler. */
1765 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_brk", (char *) 0));
1767 #if WITH_PROFILE_MODEL_P
1768 /* Record the fields for profiling. */
1769 if (PROFILE_MODEL_P (current_cpu
))
1777 extract_sfmt_byterev
:
1779 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1780 CGEN_INSN_WORD insn
= entire_insn
;
1781 #define FLD(f) abuf->fields.sfmt_xori.f
1785 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1786 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1788 /* Record the fields for the semantic handler. */
1789 FLD (f_left
) = f_left
;
1790 FLD (f_dest
) = f_dest
;
1791 CGEN_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));
1793 #if WITH_PROFILE_MODEL_P
1794 /* Record the fields for profiling. */
1795 if (PROFILE_MODEL_P (current_cpu
))
1797 FLD (in_rm
) = f_left
;
1798 FLD (out_rd
) = f_dest
;
1807 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1808 CGEN_INSN_WORD insn
= entire_insn
;
1809 #define FLD(f) abuf->fields.sfmt_add.f
1814 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1815 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
1816 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1818 /* Record the fields for the semantic handler. */
1819 FLD (f_left
) = f_left
;
1820 FLD (f_right
) = f_right
;
1821 FLD (f_dest
) = f_dest
;
1822 CGEN_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));
1824 #if WITH_PROFILE_MODEL_P
1825 /* Record the fields for profiling. */
1826 if (PROFILE_MODEL_P (current_cpu
))
1828 FLD (in_rm
) = f_left
;
1829 FLD (in_rn
) = f_right
;
1830 FLD (out_rd
) = f_dest
;
1839 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1840 CGEN_INSN_WORD insn
= entire_insn
;
1841 #define FLD(f) abuf->fields.sfmt_fabsd.f
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 CGEN_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));
1857 #if WITH_PROFILE_MODEL_P
1858 /* Record the fields for profiling. */
1859 if (PROFILE_MODEL_P (current_cpu
))
1861 FLD (in_drgh
) = f_left_right
;
1862 FLD (out_drf
) = f_dest
;
1871 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1872 CGEN_INSN_WORD insn
= entire_insn
;
1873 #define FLD(f) abuf->fields.sfmt_fabsd.f
1879 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
1880 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
1881 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
1882 f_left_right
= f_left
;
1884 /* Record the fields for the semantic handler. */
1885 FLD (f_left_right
) = f_left_right
;
1886 FLD (f_dest
) = f_dest
;
1887 CGEN_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));
1889 #if WITH_PROFILE_MODEL_P
1890 /* Record the fields for profiling. */
1891 if (PROFILE_MODEL_P (current_cpu
))
1893 FLD (in_frgh
) = f_left_right
;
1894 FLD (out_frf
) = f_dest
;
1903 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1904 CGEN_INSN_WORD insn
= entire_insn
;
1905 #define FLD(f) abuf->fields.sfmt_add.f
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 CGEN_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));
1920 #if WITH_PROFILE_MODEL_P
1921 /* Record the fields for profiling. */
1922 if (PROFILE_MODEL_P (current_cpu
))
1924 FLD (in_drg
) = f_left
;
1925 FLD (in_drh
) = f_right
;
1926 FLD (out_drf
) = f_dest
;
1935 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1936 CGEN_INSN_WORD insn
= entire_insn
;
1937 #define FLD(f) abuf->fields.sfmt_add.f
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 CGEN_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));
1952 #if WITH_PROFILE_MODEL_P
1953 /* Record the fields for profiling. */
1954 if (PROFILE_MODEL_P (current_cpu
))
1956 FLD (in_frg
) = f_left
;
1957 FLD (in_frh
) = f_right
;
1958 FLD (out_frf
) = f_dest
;
1965 extract_sfmt_fcmpeqd
:
1967 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1968 CGEN_INSN_WORD insn
= entire_insn
;
1969 #define FLD(f) abuf->fields.sfmt_add.f
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 CGEN_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));
1984 #if WITH_PROFILE_MODEL_P
1985 /* Record the fields for profiling. */
1986 if (PROFILE_MODEL_P (current_cpu
))
1988 FLD (in_drg
) = f_left
;
1989 FLD (in_drh
) = f_right
;
1990 FLD (out_rd
) = f_dest
;
1997 extract_sfmt_fcmpeqs
:
1999 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2000 CGEN_INSN_WORD insn
= entire_insn
;
2001 #define FLD(f) abuf->fields.sfmt_add.f
2006 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2007 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2008 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2010 /* Record the fields for the semantic handler. */
2011 FLD (f_left
) = f_left
;
2012 FLD (f_right
) = f_right
;
2013 FLD (f_dest
) = f_dest
;
2014 CGEN_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));
2016 #if WITH_PROFILE_MODEL_P
2017 /* Record the fields for profiling. */
2018 if (PROFILE_MODEL_P (current_cpu
))
2020 FLD (in_frg
) = f_left
;
2021 FLD (in_frh
) = f_right
;
2022 FLD (out_rd
) = f_dest
;
2029 extract_sfmt_fcnvds
:
2031 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2032 CGEN_INSN_WORD insn
= entire_insn
;
2033 #define FLD(f) abuf->fields.sfmt_fabsd.f
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 CGEN_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));
2049 #if WITH_PROFILE_MODEL_P
2050 /* Record the fields for profiling. */
2051 if (PROFILE_MODEL_P (current_cpu
))
2053 FLD (in_drgh
) = f_left_right
;
2054 FLD (out_frf
) = f_dest
;
2061 extract_sfmt_fcnvsd
:
2063 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2064 CGEN_INSN_WORD insn
= entire_insn
;
2065 #define FLD(f) abuf->fields.sfmt_fabsd.f
2071 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2072 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2073 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2074 f_left_right
= f_left
;
2076 /* Record the fields for the semantic handler. */
2077 FLD (f_left_right
) = f_left_right
;
2078 FLD (f_dest
) = f_dest
;
2079 CGEN_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));
2081 #if WITH_PROFILE_MODEL_P
2082 /* Record the fields for profiling. */
2083 if (PROFILE_MODEL_P (current_cpu
))
2085 FLD (in_frgh
) = f_left_right
;
2086 FLD (out_drf
) = f_dest
;
2093 extract_sfmt_fgetscr
:
2095 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2096 CGEN_INSN_WORD insn
= entire_insn
;
2097 #define FLD(f) abuf->fields.sfmt_shori.f
2100 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2102 /* Record the fields for the semantic handler. */
2103 FLD (f_dest
) = f_dest
;
2104 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fgetscr", "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2106 #if WITH_PROFILE_MODEL_P
2107 /* Record the fields for profiling. */
2108 if (PROFILE_MODEL_P (current_cpu
))
2110 FLD (out_frf
) = f_dest
;
2119 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2120 CGEN_INSN_WORD insn
= entire_insn
;
2121 #define FLD(f) abuf->fields.sfmt_add.f
2126 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2127 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2128 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2130 /* Record the fields for the semantic handler. */
2131 FLD (f_left
) = f_left
;
2132 FLD (f_right
) = f_right
;
2133 FLD (f_dest
) = f_dest
;
2134 CGEN_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));
2136 #if WITH_PROFILE_MODEL_P
2137 /* Record the fields for profiling. */
2138 if (PROFILE_MODEL_P (current_cpu
))
2140 FLD (in_fvg
) = f_left
;
2141 FLD (in_fvh
) = f_right
;
2142 FLD (out_frf
) = f_dest
;
2143 FLD (out_fvg
) = f_left
;
2144 FLD (out_fvh
) = f_right
;
2153 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2154 CGEN_INSN_WORD insn
= entire_insn
;
2155 #define FLD(f) abuf->fields.sfmt_fldd.f
2160 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2161 f_disp10x8
= ((EXTRACT_MSB0_SINT (insn
, 32, 12, 10)) << (3));
2162 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2164 /* Record the fields for the semantic handler. */
2165 FLD (f_disp10x8
) = f_disp10x8
;
2166 FLD (f_left
) = f_left
;
2167 FLD (f_dest
) = f_dest
;
2168 CGEN_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));
2170 #if WITH_PROFILE_MODEL_P
2171 /* Record the fields for profiling. */
2172 if (PROFILE_MODEL_P (current_cpu
))
2174 FLD (in_rm
) = f_left
;
2175 FLD (out_drf
) = f_dest
;
2184 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2185 CGEN_INSN_WORD insn
= entire_insn
;
2186 #define FLD(f) abuf->fields.sfmt_fldd.f
2191 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2192 f_disp10x8
= ((EXTRACT_MSB0_SINT (insn
, 32, 12, 10)) << (3));
2193 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2195 /* Record the fields for the semantic handler. */
2196 FLD (f_disp10x8
) = f_disp10x8
;
2197 FLD (f_dest
) = f_dest
;
2198 FLD (f_left
) = f_left
;
2199 CGEN_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));
2201 #if WITH_PROFILE_MODEL_P
2202 /* Record the fields for profiling. */
2203 if (PROFILE_MODEL_P (current_cpu
))
2205 FLD (in_fpf
) = f_dest
;
2206 FLD (in_rm
) = f_left
;
2207 FLD (out_fpf
) = f_dest
;
2216 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2217 CGEN_INSN_WORD insn
= entire_insn
;
2218 #define FLD(f) abuf->fields.sfmt_flds.f
2223 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2224 f_disp10x4
= ((EXTRACT_MSB0_SINT (insn
, 32, 12, 10)) << (2));
2225 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2227 /* Record the fields for the semantic handler. */
2228 FLD (f_disp10x4
) = f_disp10x4
;
2229 FLD (f_left
) = f_left
;
2230 FLD (f_dest
) = f_dest
;
2231 CGEN_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));
2233 #if WITH_PROFILE_MODEL_P
2234 /* Record the fields for profiling. */
2235 if (PROFILE_MODEL_P (current_cpu
))
2237 FLD (in_rm
) = f_left
;
2238 FLD (out_frf
) = f_dest
;
2247 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2248 CGEN_INSN_WORD insn
= entire_insn
;
2249 #define FLD(f) abuf->fields.sfmt_add.f
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_left
) = f_left
;
2260 FLD (f_right
) = f_right
;
2261 FLD (f_dest
) = f_dest
;
2262 CGEN_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));
2264 #if WITH_PROFILE_MODEL_P
2265 /* Record the fields for profiling. */
2266 if (PROFILE_MODEL_P (current_cpu
))
2268 FLD (in_rm
) = f_left
;
2269 FLD (in_rn
) = f_right
;
2270 FLD (out_drf
) = f_dest
;
2279 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2280 CGEN_INSN_WORD insn
= entire_insn
;
2281 #define FLD(f) abuf->fields.sfmt_add.f
2286 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2287 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2288 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2290 /* Record the fields for the semantic handler. */
2291 FLD (f_dest
) = f_dest
;
2292 FLD (f_left
) = f_left
;
2293 FLD (f_right
) = f_right
;
2294 CGEN_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));
2296 #if WITH_PROFILE_MODEL_P
2297 /* Record the fields for profiling. */
2298 if (PROFILE_MODEL_P (current_cpu
))
2300 FLD (in_fpf
) = f_dest
;
2301 FLD (in_rm
) = f_left
;
2302 FLD (in_rn
) = f_right
;
2303 FLD (out_fpf
) = f_dest
;
2312 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2313 CGEN_INSN_WORD insn
= entire_insn
;
2314 #define FLD(f) abuf->fields.sfmt_add.f
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_left
) = f_left
;
2325 FLD (f_right
) = f_right
;
2326 FLD (f_dest
) = f_dest
;
2327 CGEN_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));
2329 #if WITH_PROFILE_MODEL_P
2330 /* Record the fields for profiling. */
2331 if (PROFILE_MODEL_P (current_cpu
))
2333 FLD (in_rm
) = f_left
;
2334 FLD (in_rn
) = f_right
;
2335 FLD (out_frf
) = f_dest
;
2344 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2345 CGEN_INSN_WORD insn
= entire_insn
;
2346 #define FLD(f) abuf->fields.sfmt_add.f
2351 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2352 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2353 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2355 /* Record the fields for the semantic handler. */
2356 FLD (f_dest
) = f_dest
;
2357 FLD (f_left
) = f_left
;
2358 FLD (f_right
) = f_right
;
2359 CGEN_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));
2361 #if WITH_PROFILE_MODEL_P
2362 /* Record the fields for profiling. */
2363 if (PROFILE_MODEL_P (current_cpu
))
2365 FLD (in_frf
) = f_dest
;
2366 FLD (in_frg
) = f_left
;
2367 FLD (in_frh
) = f_right
;
2368 FLD (out_frf
) = f_dest
;
2375 extract_sfmt_fmovdq
:
2377 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2378 CGEN_INSN_WORD insn
= entire_insn
;
2379 #define FLD(f) abuf->fields.sfmt_fabsd.f
2385 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2386 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2387 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2388 f_left_right
= f_left
;
2390 /* Record the fields for the semantic handler. */
2391 FLD (f_left_right
) = f_left_right
;
2392 FLD (f_dest
) = f_dest
;
2393 CGEN_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));
2395 #if WITH_PROFILE_MODEL_P
2396 /* Record the fields for profiling. */
2397 if (PROFILE_MODEL_P (current_cpu
))
2399 FLD (in_drgh
) = f_left_right
;
2400 FLD (out_rd
) = f_dest
;
2407 extract_sfmt_fmovls
:
2409 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2410 CGEN_INSN_WORD insn
= entire_insn
;
2411 #define FLD(f) abuf->fields.sfmt_xori.f
2415 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2416 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2418 /* Record the fields for the semantic handler. */
2419 FLD (f_left
) = f_left
;
2420 FLD (f_dest
) = f_dest
;
2421 CGEN_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));
2423 #if WITH_PROFILE_MODEL_P
2424 /* Record the fields for profiling. */
2425 if (PROFILE_MODEL_P (current_cpu
))
2427 FLD (in_rm
) = f_left
;
2428 FLD (out_frf
) = f_dest
;
2435 extract_sfmt_fmovqd
:
2437 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2438 CGEN_INSN_WORD insn
= entire_insn
;
2439 #define FLD(f) abuf->fields.sfmt_xori.f
2443 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2444 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2446 /* Record the fields for the semantic handler. */
2447 FLD (f_left
) = f_left
;
2448 FLD (f_dest
) = f_dest
;
2449 CGEN_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));
2451 #if WITH_PROFILE_MODEL_P
2452 /* Record the fields for profiling. */
2453 if (PROFILE_MODEL_P (current_cpu
))
2455 FLD (in_rm
) = f_left
;
2456 FLD (out_drf
) = f_dest
;
2463 extract_sfmt_fmovsl
:
2465 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2466 CGEN_INSN_WORD insn
= entire_insn
;
2467 #define FLD(f) abuf->fields.sfmt_fabsd.f
2473 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2474 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2475 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2476 f_left_right
= f_left
;
2478 /* Record the fields for the semantic handler. */
2479 FLD (f_left_right
) = f_left_right
;
2480 FLD (f_dest
) = f_dest
;
2481 CGEN_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));
2483 #if WITH_PROFILE_MODEL_P
2484 /* Record the fields for profiling. */
2485 if (PROFILE_MODEL_P (current_cpu
))
2487 FLD (in_frgh
) = f_left_right
;
2488 FLD (out_rd
) = f_dest
;
2495 extract_sfmt_fputscr
:
2497 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2498 CGEN_INSN_WORD insn
= entire_insn
;
2499 #define FLD(f) abuf->fields.sfmt_fabsd.f
2504 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2505 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2506 f_left_right
= f_left
;
2508 /* Record the fields for the semantic handler. */
2509 FLD (f_left_right
) = f_left_right
;
2510 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fputscr", "f_left_right 0x%x", 'x', f_left_right
, (char *) 0));
2512 #if WITH_PROFILE_MODEL_P
2513 /* Record the fields for profiling. */
2514 if (PROFILE_MODEL_P (current_cpu
))
2516 FLD (in_frgh
) = f_left_right
;
2525 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2526 CGEN_INSN_WORD insn
= entire_insn
;
2527 #define FLD(f) abuf->fields.sfmt_fldd.f
2532 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2533 f_disp10x8
= ((EXTRACT_MSB0_SINT (insn
, 32, 12, 10)) << (3));
2534 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2536 /* Record the fields for the semantic handler. */
2537 FLD (f_disp10x8
) = f_disp10x8
;
2538 FLD (f_dest
) = f_dest
;
2539 FLD (f_left
) = f_left
;
2540 CGEN_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));
2542 #if WITH_PROFILE_MODEL_P
2543 /* Record the fields for profiling. */
2544 if (PROFILE_MODEL_P (current_cpu
))
2546 FLD (in_drf
) = f_dest
;
2547 FLD (in_rm
) = f_left
;
2556 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2557 CGEN_INSN_WORD insn
= entire_insn
;
2558 #define FLD(f) abuf->fields.sfmt_flds.f
2563 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2564 f_disp10x4
= ((EXTRACT_MSB0_SINT (insn
, 32, 12, 10)) << (2));
2565 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2567 /* Record the fields for the semantic handler. */
2568 FLD (f_disp10x4
) = f_disp10x4
;
2569 FLD (f_dest
) = f_dest
;
2570 FLD (f_left
) = f_left
;
2571 CGEN_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));
2573 #if WITH_PROFILE_MODEL_P
2574 /* Record the fields for profiling. */
2575 if (PROFILE_MODEL_P (current_cpu
))
2577 FLD (in_frf
) = f_dest
;
2578 FLD (in_rm
) = f_left
;
2587 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2588 CGEN_INSN_WORD insn
= entire_insn
;
2589 #define FLD(f) abuf->fields.sfmt_add.f
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 CGEN_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));
2604 #if WITH_PROFILE_MODEL_P
2605 /* Record the fields for profiling. */
2606 if (PROFILE_MODEL_P (current_cpu
))
2608 FLD (in_drf
) = 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_WORD 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 CGEN_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));
2636 #if WITH_PROFILE_MODEL_P
2637 /* Record the fields for profiling. */
2638 if (PROFILE_MODEL_P (current_cpu
))
2640 FLD (in_frf
) = f_dest
;
2641 FLD (in_rm
) = f_left
;
2642 FLD (in_rn
) = f_right
;
2651 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2652 CGEN_INSN_WORD insn
= entire_insn
;
2653 #define FLD(f) abuf->fields.sfmt_add.f
2658 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2659 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2660 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2662 /* Record the fields for the semantic handler. */
2663 FLD (f_left
) = f_left
;
2664 FLD (f_right
) = f_right
;
2665 FLD (f_dest
) = f_dest
;
2666 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fsubd", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2668 #if WITH_PROFILE_MODEL_P
2669 /* Record the fields for profiling. */
2670 if (PROFILE_MODEL_P (current_cpu
))
2672 FLD (in_drg
) = f_left
;
2673 FLD (in_drh
) = f_right
;
2674 FLD (out_drf
) = f_dest
;
2681 extract_sfmt_ftrcdq
:
2683 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2684 CGEN_INSN_WORD insn
= entire_insn
;
2685 #define FLD(f) abuf->fields.sfmt_fabsd.f
2691 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2692 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2693 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2694 f_left_right
= f_left
;
2696 /* Record the fields for the semantic handler. */
2697 FLD (f_left_right
) = f_left_right
;
2698 FLD (f_dest
) = f_dest
;
2699 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ftrcdq", "f_left_right 0x%x", 'x', f_left_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
2701 #if WITH_PROFILE_MODEL_P
2702 /* Record the fields for profiling. */
2703 if (PROFILE_MODEL_P (current_cpu
))
2705 FLD (in_drgh
) = f_left_right
;
2706 FLD (out_drf
) = f_dest
;
2715 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2716 CGEN_INSN_WORD insn
= entire_insn
;
2717 #define FLD(f) abuf->fields.sfmt_add.f
2722 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2723 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
2724 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2726 /* Record the fields for the semantic handler. */
2727 FLD (f_dest
) = f_dest
;
2728 FLD (f_left
) = f_left
;
2729 FLD (f_right
) = f_right
;
2730 CGEN_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));
2732 #if WITH_PROFILE_MODEL_P
2733 /* Record the fields for profiling. */
2734 if (PROFILE_MODEL_P (current_cpu
))
2736 FLD (in_fvf
) = f_dest
;
2737 FLD (in_fvh
) = f_right
;
2738 FLD (in_mtrxg
) = f_left
;
2739 FLD (out_fvf
) = f_dest
;
2740 FLD (out_fvh
) = f_right
;
2741 FLD (out_mtrxg
) = f_left
;
2748 extract_sfmt_getcfg
:
2750 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2751 CGEN_INSN_WORD insn
= entire_insn
;
2752 #define FLD(f) abuf->fields.sfmt_getcfg.f
2757 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2758 f_disp6
= EXTRACT_MSB0_SINT (insn
, 32, 16, 6);
2759 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2761 /* Record the fields for the semantic handler. */
2762 FLD (f_disp6
) = f_disp6
;
2763 FLD (f_left
) = f_left
;
2764 FLD (f_dest
) = f_dest
;
2765 CGEN_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));
2767 #if WITH_PROFILE_MODEL_P
2768 /* Record the fields for profiling. */
2769 if (PROFILE_MODEL_P (current_cpu
))
2771 FLD (in_rm
) = f_left
;
2772 FLD (out_rd
) = f_dest
;
2779 extract_sfmt_getcon
:
2781 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2782 CGEN_INSN_WORD insn
= entire_insn
;
2783 #define FLD(f) abuf->fields.sfmt_xori.f
2787 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2788 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2790 /* Record the fields for the semantic handler. */
2791 FLD (f_left
) = f_left
;
2792 FLD (f_dest
) = f_dest
;
2793 CGEN_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));
2795 #if WITH_PROFILE_MODEL_P
2796 /* Record the fields for profiling. */
2797 if (PROFILE_MODEL_P (current_cpu
))
2799 FLD (out_rd
) = f_dest
;
2808 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2809 CGEN_INSN_WORD insn
= entire_insn
;
2810 #define FLD(f) abuf->fields.sfmt_blink.f
2814 f_trb
= EXTRACT_MSB0_UINT (insn
, 32, 9, 3);
2815 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2817 /* Record the fields for the semantic handler. */
2818 FLD (f_trb
) = f_trb
;
2819 FLD (f_dest
) = f_dest
;
2820 CGEN_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));
2822 #if WITH_PROFILE_MODEL_P
2823 /* Record the fields for profiling. */
2824 if (PROFILE_MODEL_P (current_cpu
))
2826 FLD (in_trb
) = f_trb
;
2827 FLD (out_rd
) = f_dest
;
2836 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2837 CGEN_INSN_WORD insn
= entire_insn
;
2838 #define FLD(f) abuf->fields.sfmt_addi.f
2843 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2844 f_disp10
= EXTRACT_MSB0_SINT (insn
, 32, 12, 10);
2845 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2847 /* Record the fields for the semantic handler. */
2848 FLD (f_disp10
) = f_disp10
;
2849 FLD (f_left
) = f_left
;
2850 FLD (f_dest
) = f_dest
;
2851 CGEN_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));
2853 #if WITH_PROFILE_MODEL_P
2854 /* Record the fields for profiling. */
2855 if (PROFILE_MODEL_P (current_cpu
))
2857 FLD (in_rm
) = f_left
;
2858 FLD (out_rd
) = f_dest
;
2867 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2868 CGEN_INSN_WORD insn
= entire_insn
;
2869 #define FLD(f) abuf->fields.sfmt_flds.f
2874 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2875 f_disp10x4
= ((EXTRACT_MSB0_SINT (insn
, 32, 12, 10)) << (2));
2876 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2878 /* Record the fields for the semantic handler. */
2879 FLD (f_disp10x4
) = f_disp10x4
;
2880 FLD (f_left
) = f_left
;
2881 FLD (f_dest
) = f_dest
;
2882 CGEN_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));
2884 #if WITH_PROFILE_MODEL_P
2885 /* Record the fields for profiling. */
2886 if (PROFILE_MODEL_P (current_cpu
))
2888 FLD (in_rm
) = f_left
;
2889 FLD (out_rd
) = f_dest
;
2898 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2899 CGEN_INSN_WORD insn
= entire_insn
;
2900 #define FLD(f) abuf->fields.sfmt_fldd.f
2905 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2906 f_disp10x8
= ((EXTRACT_MSB0_SINT (insn
, 32, 12, 10)) << (3));
2907 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2909 /* Record the fields for the semantic handler. */
2910 FLD (f_disp10x8
) = f_disp10x8
;
2911 FLD (f_left
) = f_left
;
2912 FLD (f_dest
) = f_dest
;
2913 CGEN_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));
2915 #if WITH_PROFILE_MODEL_P
2916 /* Record the fields for profiling. */
2917 if (PROFILE_MODEL_P (current_cpu
))
2919 FLD (in_rm
) = f_left
;
2920 FLD (out_rd
) = f_dest
;
2929 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2930 CGEN_INSN_WORD insn
= entire_insn
;
2931 #define FLD(f) abuf->fields.sfmt_lduw.f
2936 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2937 f_disp10x2
= ((EXTRACT_MSB0_SINT (insn
, 32, 12, 10)) << (1));
2938 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2940 /* Record the fields for the semantic handler. */
2941 FLD (f_disp10x2
) = f_disp10x2
;
2942 FLD (f_left
) = f_left
;
2943 FLD (f_dest
) = f_dest
;
2944 CGEN_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));
2946 #if WITH_PROFILE_MODEL_P
2947 /* Record the fields for profiling. */
2948 if (PROFILE_MODEL_P (current_cpu
))
2950 FLD (in_rm
) = f_left
;
2951 FLD (out_rd
) = f_dest
;
2960 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2961 CGEN_INSN_WORD insn
= entire_insn
;
2962 #define FLD(f) abuf->fields.sfmt_getcfg.f
2967 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2968 f_disp6
= EXTRACT_MSB0_SINT (insn
, 32, 16, 6);
2969 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
2971 /* Record the fields for the semantic handler. */
2972 FLD (f_disp6
) = f_disp6
;
2973 FLD (f_left
) = f_left
;
2974 FLD (f_dest
) = f_dest
;
2975 CGEN_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));
2977 #if WITH_PROFILE_MODEL_P
2978 /* Record the fields for profiling. */
2979 if (PROFILE_MODEL_P (current_cpu
))
2981 FLD (in_rm
) = f_left
;
2982 FLD (out_rd
) = f_dest
;
2991 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2992 CGEN_INSN_WORD insn
= entire_insn
;
2993 #define FLD(f) abuf->fields.sfmt_getcfg.f
2998 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
2999 f_disp6
= EXTRACT_MSB0_SINT (insn
, 32, 16, 6);
3000 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3002 /* Record the fields for the semantic handler. */
3003 FLD (f_disp6
) = f_disp6
;
3004 FLD (f_left
) = f_left
;
3005 FLD (f_dest
) = f_dest
;
3006 CGEN_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));
3008 #if WITH_PROFILE_MODEL_P
3009 /* Record the fields for profiling. */
3010 if (PROFILE_MODEL_P (current_cpu
))
3012 FLD (in_rm
) = f_left
;
3013 FLD (out_rd
) = f_dest
;
3022 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3023 CGEN_INSN_WORD insn
= entire_insn
;
3024 #define FLD(f) abuf->fields.sfmt_getcfg.f
3029 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3030 f_disp6
= EXTRACT_MSB0_SINT (insn
, 32, 16, 6);
3031 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3033 /* Record the fields for the semantic handler. */
3034 FLD (f_disp6
) = f_disp6
;
3035 FLD (f_left
) = f_left
;
3036 FLD (f_dest
) = f_dest
;
3037 CGEN_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));
3039 #if WITH_PROFILE_MODEL_P
3040 /* Record the fields for profiling. */
3041 if (PROFILE_MODEL_P (current_cpu
))
3043 FLD (in_rm
) = f_left
;
3044 FLD (out_rd
) = f_dest
;
3053 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3054 CGEN_INSN_WORD insn
= entire_insn
;
3055 #define FLD(f) abuf->fields.sfmt_getcfg.f
3060 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3061 f_disp6
= EXTRACT_MSB0_SINT (insn
, 32, 16, 6);
3062 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3064 /* Record the fields for the semantic handler. */
3065 FLD (f_disp6
) = f_disp6
;
3066 FLD (f_left
) = f_left
;
3067 FLD (f_dest
) = f_dest
;
3068 CGEN_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));
3070 #if WITH_PROFILE_MODEL_P
3071 /* Record the fields for profiling. */
3072 if (PROFILE_MODEL_P (current_cpu
))
3074 FLD (in_rm
) = f_left
;
3075 FLD (out_rd
) = f_dest
;
3084 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3085 CGEN_INSN_WORD insn
= entire_insn
;
3086 #define FLD(f) abuf->fields.sfmt_add.f
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 CGEN_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));
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_WORD 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 CGEN_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));
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_WORD 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 CGEN_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));
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_WORD 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_left
) = f_left
;
3193 FLD (f_right
) = f_right
;
3194 FLD (f_dest
) = f_dest
;
3195 CGEN_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));
3197 #if WITH_PROFILE_MODEL_P
3198 /* Record the fields for profiling. */
3199 if (PROFILE_MODEL_P (current_cpu
))
3201 FLD (in_rm
) = f_left
;
3202 FLD (in_rn
) = f_right
;
3203 FLD (out_rd
) = f_dest
;
3212 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3213 CGEN_INSN_WORD insn
= entire_insn
;
3214 #define FLD(f) abuf->fields.sfmt_add.f
3219 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3220 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3221 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3223 /* Record the fields for the semantic handler. */
3224 FLD (f_left
) = f_left
;
3225 FLD (f_right
) = f_right
;
3226 FLD (f_dest
) = f_dest
;
3227 CGEN_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));
3229 #if WITH_PROFILE_MODEL_P
3230 /* Record the fields for profiling. */
3231 if (PROFILE_MODEL_P (current_cpu
))
3233 FLD (in_rm
) = f_left
;
3234 FLD (in_rn
) = f_right
;
3235 FLD (out_rd
) = f_dest
;
3244 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3245 CGEN_INSN_WORD insn
= entire_insn
;
3246 #define FLD(f) abuf->fields.sfmt_add.f
3251 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3252 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3253 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3255 /* Record the fields for the semantic handler. */
3256 FLD (f_left
) = f_left
;
3257 FLD (f_right
) = f_right
;
3258 FLD (f_dest
) = f_dest
;
3259 CGEN_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));
3261 #if WITH_PROFILE_MODEL_P
3262 /* Record the fields for profiling. */
3263 if (PROFILE_MODEL_P (current_cpu
))
3265 FLD (in_rm
) = f_left
;
3266 FLD (in_rn
) = f_right
;
3267 FLD (out_rd
) = f_dest
;
3276 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3277 CGEN_INSN_WORD insn
= entire_insn
;
3278 #define FLD(f) abuf->fields.sfmt_add.f
3283 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3284 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3285 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3287 /* Record the fields for the semantic handler. */
3288 FLD (f_dest
) = f_dest
;
3289 FLD (f_left
) = f_left
;
3290 FLD (f_right
) = f_right
;
3291 CGEN_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));
3293 #if WITH_PROFILE_MODEL_P
3294 /* Record the fields for profiling. */
3295 if (PROFILE_MODEL_P (current_cpu
))
3297 FLD (in_rd
) = f_dest
;
3298 FLD (in_rm
) = f_left
;
3299 FLD (in_rn
) = f_right
;
3300 FLD (out_rd
) = f_dest
;
3307 extract_sfmt_mmacnfx_wl
:
3309 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3310 CGEN_INSN_WORD insn
= entire_insn
;
3311 #define FLD(f) abuf->fields.sfmt_add.f
3316 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3317 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3318 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3320 /* Record the fields for the semantic handler. */
3321 FLD (f_dest
) = f_dest
;
3322 FLD (f_left
) = f_left
;
3323 FLD (f_right
) = f_right
;
3324 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mmacnfx_wl", "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, (char *) 0));
3326 #if WITH_PROFILE_MODEL_P
3327 /* Record the fields for profiling. */
3328 if (PROFILE_MODEL_P (current_cpu
))
3330 FLD (in_rd
) = f_dest
;
3331 FLD (in_rm
) = f_left
;
3332 FLD (in_rn
) = f_right
;
3333 FLD (out_rd
) = f_dest
;
3342 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3343 CGEN_INSN_WORD insn
= entire_insn
;
3344 #define FLD(f) abuf->fields.sfmt_movi.f
3348 f_imm16
= EXTRACT_MSB0_SINT (insn
, 32, 6, 16);
3349 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3351 /* Record the fields for the semantic handler. */
3352 FLD (f_imm16
) = f_imm16
;
3353 FLD (f_dest
) = f_dest
;
3354 CGEN_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));
3356 #if WITH_PROFILE_MODEL_P
3357 /* Record the fields for profiling. */
3358 if (PROFILE_MODEL_P (current_cpu
))
3360 FLD (out_rd
) = f_dest
;
3369 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3370 #define FLD(f) abuf->fields.sfmt_empty.f
3373 /* Record the fields for the semantic handler. */
3374 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_nop", (char *) 0));
3382 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3383 CGEN_INSN_WORD insn
= entire_insn
;
3384 #define FLD(f) abuf->fields.sfmt_ori.f
3389 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3390 f_imm10
= EXTRACT_MSB0_SINT (insn
, 32, 12, 10);
3391 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3393 /* Record the fields for the semantic handler. */
3394 FLD (f_imm10
) = f_imm10
;
3395 FLD (f_left
) = f_left
;
3396 FLD (f_dest
) = f_dest
;
3397 CGEN_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));
3399 #if WITH_PROFILE_MODEL_P
3400 /* Record the fields for profiling. */
3401 if (PROFILE_MODEL_P (current_cpu
))
3403 FLD (in_rm
) = f_left
;
3404 FLD (out_rd
) = f_dest
;
3413 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3414 CGEN_INSN_WORD insn
= entire_insn
;
3415 #define FLD(f) abuf->fields.sfmt_xori.f
3418 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3420 /* Record the fields for the semantic handler. */
3421 FLD (f_left
) = f_left
;
3422 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_prefi", "f_left 0x%x", 'x', f_left
, (char *) 0));
3424 #if WITH_PROFILE_MODEL_P
3425 /* Record the fields for profiling. */
3426 if (PROFILE_MODEL_P (current_cpu
))
3428 FLD (in_rm
) = f_left
;
3429 FLD (out_rm
) = f_left
;
3438 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3439 CGEN_INSN_WORD insn
= entire_insn
;
3440 #define FLD(f) abuf->fields.sfmt_pta.f
3444 f_disp16
= ((((EXTRACT_MSB0_SINT (insn
, 32, 6, 16)) << (2))) + (pc
));
3445 f_tra
= EXTRACT_MSB0_UINT (insn
, 32, 25, 3);
3447 /* Record the fields for the semantic handler. */
3448 FLD (f_disp16
) = f_disp16
;
3449 FLD (f_tra
) = f_tra
;
3450 CGEN_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));
3452 #if WITH_PROFILE_MODEL_P
3453 /* Record the fields for profiling. */
3454 if (PROFILE_MODEL_P (current_cpu
))
3456 FLD (out_tra
) = f_tra
;
3465 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3466 CGEN_INSN_WORD insn
= entire_insn
;
3467 #define FLD(f) abuf->fields.sfmt_beq.f
3471 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3472 f_tra
= EXTRACT_MSB0_UINT (insn
, 32, 25, 3);
3474 /* Record the fields for the semantic handler. */
3475 FLD (f_right
) = f_right
;
3476 FLD (f_tra
) = f_tra
;
3477 CGEN_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));
3479 #if WITH_PROFILE_MODEL_P
3480 /* Record the fields for profiling. */
3481 if (PROFILE_MODEL_P (current_cpu
))
3483 FLD (in_rn
) = f_right
;
3484 FLD (out_tra
) = f_tra
;
3493 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3494 CGEN_INSN_WORD insn
= entire_insn
;
3495 #define FLD(f) abuf->fields.sfmt_beq.f
3499 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3500 f_tra
= EXTRACT_MSB0_UINT (insn
, 32, 25, 3);
3502 /* Record the fields for the semantic handler. */
3503 FLD (f_right
) = f_right
;
3504 FLD (f_tra
) = f_tra
;
3505 CGEN_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));
3507 #if WITH_PROFILE_MODEL_P
3508 /* Record the fields for profiling. */
3509 if (PROFILE_MODEL_P (current_cpu
))
3511 FLD (in_rn
) = f_right
;
3512 FLD (out_tra
) = f_tra
;
3519 extract_sfmt_putcfg
:
3521 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3522 CGEN_INSN_WORD insn
= entire_insn
;
3523 #define FLD(f) abuf->fields.sfmt_getcfg.f
3528 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3529 f_disp6
= EXTRACT_MSB0_SINT (insn
, 32, 16, 6);
3530 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3532 /* Record the fields for the semantic handler. */
3533 FLD (f_disp6
) = f_disp6
;
3534 FLD (f_dest
) = f_dest
;
3535 FLD (f_left
) = f_left
;
3536 CGEN_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));
3538 #if WITH_PROFILE_MODEL_P
3539 /* Record the fields for profiling. */
3540 if (PROFILE_MODEL_P (current_cpu
))
3542 FLD (in_rd
) = f_dest
;
3543 FLD (in_rm
) = f_left
;
3550 extract_sfmt_putcon
:
3552 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3553 CGEN_INSN_WORD insn
= entire_insn
;
3554 #define FLD(f) abuf->fields.sfmt_xori.f
3558 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3559 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3561 /* Record the fields for the semantic handler. */
3562 FLD (f_left
) = f_left
;
3563 FLD (f_dest
) = f_dest
;
3564 CGEN_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));
3566 #if WITH_PROFILE_MODEL_P
3567 /* Record the fields for profiling. */
3568 if (PROFILE_MODEL_P (current_cpu
))
3570 FLD (in_rm
) = f_left
;
3579 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3580 CGEN_INSN_WORD insn
= entire_insn
;
3581 #define FLD(f) abuf->fields.sfmt_shari.f
3586 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3587 f_uimm6
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3588 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3590 /* Record the fields for the semantic handler. */
3591 FLD (f_left
) = f_left
;
3592 FLD (f_uimm6
) = f_uimm6
;
3593 FLD (f_dest
) = f_dest
;
3594 CGEN_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));
3596 #if WITH_PROFILE_MODEL_P
3597 /* Record the fields for profiling. */
3598 if (PROFILE_MODEL_P (current_cpu
))
3600 FLD (in_rm
) = f_left
;
3601 FLD (out_rd
) = f_dest
;
3610 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3611 CGEN_INSN_WORD insn
= entire_insn
;
3612 #define FLD(f) abuf->fields.sfmt_shori.f
3616 f_uimm16
= EXTRACT_MSB0_UINT (insn
, 32, 6, 16);
3617 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3619 /* Record the fields for the semantic handler. */
3620 FLD (f_dest
) = f_dest
;
3621 FLD (f_uimm16
) = f_uimm16
;
3622 CGEN_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));
3624 #if WITH_PROFILE_MODEL_P
3625 /* Record the fields for profiling. */
3626 if (PROFILE_MODEL_P (current_cpu
))
3628 FLD (in_rd
) = f_dest
;
3629 FLD (out_rd
) = f_dest
;
3638 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3639 CGEN_INSN_WORD insn
= entire_insn
;
3640 #define FLD(f) abuf->fields.sfmt_addi.f
3645 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3646 f_disp10
= EXTRACT_MSB0_SINT (insn
, 32, 12, 10);
3647 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3649 /* Record the fields for the semantic handler. */
3650 FLD (f_disp10
) = f_disp10
;
3651 FLD (f_dest
) = f_dest
;
3652 FLD (f_left
) = f_left
;
3653 CGEN_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));
3655 #if WITH_PROFILE_MODEL_P
3656 /* Record the fields for profiling. */
3657 if (PROFILE_MODEL_P (current_cpu
))
3659 FLD (in_rd
) = f_dest
;
3660 FLD (in_rm
) = f_left
;
3669 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3670 CGEN_INSN_WORD insn
= entire_insn
;
3671 #define FLD(f) abuf->fields.sfmt_flds.f
3676 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3677 f_disp10x4
= ((EXTRACT_MSB0_SINT (insn
, 32, 12, 10)) << (2));
3678 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3680 /* Record the fields for the semantic handler. */
3681 FLD (f_disp10x4
) = f_disp10x4
;
3682 FLD (f_dest
) = f_dest
;
3683 FLD (f_left
) = f_left
;
3684 CGEN_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));
3686 #if WITH_PROFILE_MODEL_P
3687 /* Record the fields for profiling. */
3688 if (PROFILE_MODEL_P (current_cpu
))
3690 FLD (in_rd
) = f_dest
;
3691 FLD (in_rm
) = f_left
;
3700 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3701 CGEN_INSN_WORD insn
= entire_insn
;
3702 #define FLD(f) abuf->fields.sfmt_fldd.f
3707 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3708 f_disp10x8
= ((EXTRACT_MSB0_SINT (insn
, 32, 12, 10)) << (3));
3709 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3711 /* Record the fields for the semantic handler. */
3712 FLD (f_disp10x8
) = f_disp10x8
;
3713 FLD (f_dest
) = f_dest
;
3714 FLD (f_left
) = f_left
;
3715 CGEN_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));
3717 #if WITH_PROFILE_MODEL_P
3718 /* Record the fields for profiling. */
3719 if (PROFILE_MODEL_P (current_cpu
))
3721 FLD (in_rd
) = f_dest
;
3722 FLD (in_rm
) = f_left
;
3731 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3732 CGEN_INSN_WORD insn
= entire_insn
;
3733 #define FLD(f) abuf->fields.sfmt_lduw.f
3738 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3739 f_disp10x2
= ((EXTRACT_MSB0_SINT (insn
, 32, 12, 10)) << (1));
3740 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3742 /* Record the fields for the semantic handler. */
3743 FLD (f_disp10x2
) = f_disp10x2
;
3744 FLD (f_dest
) = f_dest
;
3745 FLD (f_left
) = f_left
;
3746 CGEN_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));
3748 #if WITH_PROFILE_MODEL_P
3749 /* Record the fields for profiling. */
3750 if (PROFILE_MODEL_P (current_cpu
))
3752 FLD (in_rd
) = f_dest
;
3753 FLD (in_rm
) = f_left
;
3762 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3763 CGEN_INSN_WORD insn
= entire_insn
;
3764 #define FLD(f) abuf->fields.sfmt_getcfg.f
3769 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3770 f_disp6
= EXTRACT_MSB0_SINT (insn
, 32, 16, 6);
3771 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3773 /* Record the fields for the semantic handler. */
3774 FLD (f_disp6
) = f_disp6
;
3775 FLD (f_dest
) = f_dest
;
3776 FLD (f_left
) = f_left
;
3777 CGEN_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));
3779 #if WITH_PROFILE_MODEL_P
3780 /* Record the fields for profiling. */
3781 if (PROFILE_MODEL_P (current_cpu
))
3783 FLD (in_rd
) = f_dest
;
3784 FLD (in_rm
) = f_left
;
3793 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3794 CGEN_INSN_WORD insn
= entire_insn
;
3795 #define FLD(f) abuf->fields.sfmt_getcfg.f
3800 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3801 f_disp6
= EXTRACT_MSB0_SINT (insn
, 32, 16, 6);
3802 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3804 /* Record the fields for the semantic handler. */
3805 FLD (f_disp6
) = f_disp6
;
3806 FLD (f_dest
) = f_dest
;
3807 FLD (f_left
) = f_left
;
3808 CGEN_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));
3810 #if WITH_PROFILE_MODEL_P
3811 /* Record the fields for profiling. */
3812 if (PROFILE_MODEL_P (current_cpu
))
3814 FLD (in_rd
) = f_dest
;
3815 FLD (in_rm
) = f_left
;
3824 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3825 CGEN_INSN_WORD insn
= entire_insn
;
3826 #define FLD(f) abuf->fields.sfmt_getcfg.f
3831 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3832 f_disp6
= EXTRACT_MSB0_SINT (insn
, 32, 16, 6);
3833 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3835 /* Record the fields for the semantic handler. */
3836 FLD (f_disp6
) = f_disp6
;
3837 FLD (f_dest
) = f_dest
;
3838 FLD (f_left
) = f_left
;
3839 CGEN_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));
3841 #if WITH_PROFILE_MODEL_P
3842 /* Record the fields for profiling. */
3843 if (PROFILE_MODEL_P (current_cpu
))
3845 FLD (in_rd
) = f_dest
;
3846 FLD (in_rm
) = f_left
;
3855 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3856 CGEN_INSN_WORD insn
= entire_insn
;
3857 #define FLD(f) abuf->fields.sfmt_getcfg.f
3862 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3863 f_disp6
= EXTRACT_MSB0_SINT (insn
, 32, 16, 6);
3864 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3866 /* Record the fields for the semantic handler. */
3867 FLD (f_disp6
) = f_disp6
;
3868 FLD (f_dest
) = f_dest
;
3869 FLD (f_left
) = f_left
;
3870 CGEN_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));
3872 #if WITH_PROFILE_MODEL_P
3873 /* Record the fields for profiling. */
3874 if (PROFILE_MODEL_P (current_cpu
))
3876 FLD (in_rd
) = f_dest
;
3877 FLD (in_rm
) = f_left
;
3886 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3887 CGEN_INSN_WORD insn
= entire_insn
;
3888 #define FLD(f) abuf->fields.sfmt_add.f
3893 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3894 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3895 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3897 /* Record the fields for the semantic handler. */
3898 FLD (f_dest
) = f_dest
;
3899 FLD (f_left
) = f_left
;
3900 FLD (f_right
) = f_right
;
3901 CGEN_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));
3903 #if WITH_PROFILE_MODEL_P
3904 /* Record the fields for profiling. */
3905 if (PROFILE_MODEL_P (current_cpu
))
3907 FLD (in_rd
) = f_dest
;
3908 FLD (in_rm
) = f_left
;
3909 FLD (in_rn
) = f_right
;
3918 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3919 CGEN_INSN_WORD insn
= entire_insn
;
3920 #define FLD(f) abuf->fields.sfmt_add.f
3925 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3926 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3927 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3929 /* Record the fields for the semantic handler. */
3930 FLD (f_dest
) = f_dest
;
3931 FLD (f_left
) = f_left
;
3932 FLD (f_right
) = f_right
;
3933 CGEN_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));
3935 #if WITH_PROFILE_MODEL_P
3936 /* Record the fields for profiling. */
3937 if (PROFILE_MODEL_P (current_cpu
))
3939 FLD (in_rd
) = f_dest
;
3940 FLD (in_rm
) = f_left
;
3941 FLD (in_rn
) = f_right
;
3950 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3951 CGEN_INSN_WORD insn
= entire_insn
;
3952 #define FLD(f) abuf->fields.sfmt_add.f
3957 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3958 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3959 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3961 /* Record the fields for the semantic handler. */
3962 FLD (f_dest
) = f_dest
;
3963 FLD (f_left
) = f_left
;
3964 FLD (f_right
) = f_right
;
3965 CGEN_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));
3967 #if WITH_PROFILE_MODEL_P
3968 /* Record the fields for profiling. */
3969 if (PROFILE_MODEL_P (current_cpu
))
3971 FLD (in_rd
) = f_dest
;
3972 FLD (in_rm
) = f_left
;
3973 FLD (in_rn
) = f_right
;
3982 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
3983 CGEN_INSN_WORD insn
= entire_insn
;
3984 #define FLD(f) abuf->fields.sfmt_add.f
3989 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
3990 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
3991 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
3993 /* Record the fields for the semantic handler. */
3994 FLD (f_dest
) = f_dest
;
3995 FLD (f_left
) = f_left
;
3996 FLD (f_right
) = f_right
;
3997 CGEN_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));
3999 #if WITH_PROFILE_MODEL_P
4000 /* Record the fields for profiling. */
4001 if (PROFILE_MODEL_P (current_cpu
))
4003 FLD (in_rd
) = f_dest
;
4004 FLD (in_rm
) = f_left
;
4005 FLD (in_rn
) = f_right
;
4014 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
4015 CGEN_INSN_WORD insn
= entire_insn
;
4016 #define FLD(f) abuf->fields.sfmt_add.f
4021 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
4022 f_right
= EXTRACT_MSB0_UINT (insn
, 32, 16, 6);
4023 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
4025 /* Record the fields for the semantic handler. */
4026 FLD (f_dest
) = f_dest
;
4027 FLD (f_left
) = f_left
;
4028 FLD (f_right
) = f_right
;
4029 CGEN_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));
4031 #if WITH_PROFILE_MODEL_P
4032 /* Record the fields for profiling. */
4033 if (PROFILE_MODEL_P (current_cpu
))
4035 FLD (in_rd
) = f_dest
;
4036 FLD (in_rm
) = f_left
;
4037 FLD (in_rn
) = f_right
;
4038 FLD (out_rd
) = f_dest
;
4047 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
4048 CGEN_INSN_WORD insn
= entire_insn
;
4049 #define FLD(f) abuf->fields.sfmt_xori.f
4052 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
4054 /* Record the fields for the semantic handler. */
4055 FLD (f_left
) = f_left
;
4056 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_trapa", "f_left 0x%x", 'x', f_left
, (char *) 0));
4058 #if WITH_PROFILE_MODEL_P
4059 /* Record the fields for profiling. */
4060 if (PROFILE_MODEL_P (current_cpu
))
4062 FLD (in_rm
) = f_left
;
4071 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
4072 CGEN_INSN_WORD insn
= entire_insn
;
4073 #define FLD(f) abuf->fields.sfmt_xori.f
4078 f_left
= EXTRACT_MSB0_UINT (insn
, 32, 6, 6);
4079 f_imm6
= EXTRACT_MSB0_SINT (insn
, 32, 16, 6);
4080 f_dest
= EXTRACT_MSB0_UINT (insn
, 32, 22, 6);
4082 /* Record the fields for the semantic handler. */
4083 FLD (f_imm6
) = f_imm6
;
4084 FLD (f_left
) = f_left
;
4085 FLD (f_dest
) = f_dest
;
4086 CGEN_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));
4088 #if WITH_PROFILE_MODEL_P
4089 /* Record the fields for profiling. */
4090 if (PROFILE_MODEL_P (current_cpu
))
4092 FLD (in_rm
) = f_left
;
4093 FLD (out_rd
) = f_dest
;