1 /* Simulator instruction decoder for sh64_media.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
7 This file is part of the GNU Simulators.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29 #include "sim-assert.h"
31 /* The instruction descriptor array.
32 This is computed at runtime. Space for it is not malloc'd to save a
33 teensy bit of cpu in the decoder. Moving it to malloc space is trivial
34 but won't be done until necessary (we don't currently support the runtime
35 addition of instructions nor an SMP machine with different cpus). */
36 static IDESC sh64_media_insn_data
[SH64_MEDIA_INSN_MAX
];
38 /* Commas between elements are contained in the macros.
39 Some of these are conditionally compiled out. */
41 static const struct insn_sem sh64_media_insn_sem
[] =
43 { VIRTUAL_INSN_X_INVALID
, SH64_MEDIA_INSN_X_INVALID
, SH64_MEDIA_SFMT_EMPTY
},
44 { VIRTUAL_INSN_X_AFTER
, SH64_MEDIA_INSN_X_AFTER
, SH64_MEDIA_SFMT_EMPTY
},
45 { VIRTUAL_INSN_X_BEFORE
, SH64_MEDIA_INSN_X_BEFORE
, SH64_MEDIA_SFMT_EMPTY
},
46 { VIRTUAL_INSN_X_CTI_CHAIN
, SH64_MEDIA_INSN_X_CTI_CHAIN
, SH64_MEDIA_SFMT_EMPTY
},
47 { VIRTUAL_INSN_X_CHAIN
, SH64_MEDIA_INSN_X_CHAIN
, SH64_MEDIA_SFMT_EMPTY
},
48 { VIRTUAL_INSN_X_BEGIN
, SH64_MEDIA_INSN_X_BEGIN
, SH64_MEDIA_SFMT_EMPTY
},
49 { SH_INSN_ADD
, SH64_MEDIA_INSN_ADD
, SH64_MEDIA_SFMT_ADD
},
50 { SH_INSN_ADDL
, SH64_MEDIA_INSN_ADDL
, SH64_MEDIA_SFMT_ADD
},
51 { SH_INSN_ADDI
, SH64_MEDIA_INSN_ADDI
, SH64_MEDIA_SFMT_ADDI
},
52 { SH_INSN_ADDIL
, SH64_MEDIA_INSN_ADDIL
, SH64_MEDIA_SFMT_ADDI
},
53 { SH_INSN_ADDZL
, SH64_MEDIA_INSN_ADDZL
, SH64_MEDIA_SFMT_ADD
},
54 { SH_INSN_ALLOCO
, SH64_MEDIA_INSN_ALLOCO
, SH64_MEDIA_SFMT_ALLOCO
},
55 { SH_INSN_AND
, SH64_MEDIA_INSN_AND
, SH64_MEDIA_SFMT_ADD
},
56 { SH_INSN_ANDC
, SH64_MEDIA_INSN_ANDC
, SH64_MEDIA_SFMT_ADD
},
57 { SH_INSN_ANDI
, SH64_MEDIA_INSN_ANDI
, SH64_MEDIA_SFMT_ADDI
},
58 { SH_INSN_BEQ
, SH64_MEDIA_INSN_BEQ
, SH64_MEDIA_SFMT_BEQ
},
59 { SH_INSN_BEQI
, SH64_MEDIA_INSN_BEQI
, SH64_MEDIA_SFMT_BEQI
},
60 { SH_INSN_BGE
, SH64_MEDIA_INSN_BGE
, SH64_MEDIA_SFMT_BEQ
},
61 { SH_INSN_BGEU
, SH64_MEDIA_INSN_BGEU
, SH64_MEDIA_SFMT_BEQ
},
62 { SH_INSN_BGT
, SH64_MEDIA_INSN_BGT
, SH64_MEDIA_SFMT_BEQ
},
63 { SH_INSN_BGTU
, SH64_MEDIA_INSN_BGTU
, SH64_MEDIA_SFMT_BEQ
},
64 { SH_INSN_BLINK
, SH64_MEDIA_INSN_BLINK
, SH64_MEDIA_SFMT_BLINK
},
65 { SH_INSN_BNE
, SH64_MEDIA_INSN_BNE
, SH64_MEDIA_SFMT_BEQ
},
66 { SH_INSN_BNEI
, SH64_MEDIA_INSN_BNEI
, SH64_MEDIA_SFMT_BEQI
},
67 { SH_INSN_BRK
, SH64_MEDIA_INSN_BRK
, SH64_MEDIA_SFMT_BRK
},
68 { SH_INSN_BYTEREV
, SH64_MEDIA_INSN_BYTEREV
, SH64_MEDIA_SFMT_BYTEREV
},
69 { SH_INSN_CMPEQ
, SH64_MEDIA_INSN_CMPEQ
, SH64_MEDIA_SFMT_ADD
},
70 { SH_INSN_CMPGT
, SH64_MEDIA_INSN_CMPGT
, SH64_MEDIA_SFMT_ADD
},
71 { SH_INSN_CMPGTU
, SH64_MEDIA_INSN_CMPGTU
, SH64_MEDIA_SFMT_ADD
},
72 { SH_INSN_CMVEQ
, SH64_MEDIA_INSN_CMVEQ
, SH64_MEDIA_SFMT_CMVEQ
},
73 { SH_INSN_CMVNE
, SH64_MEDIA_INSN_CMVNE
, SH64_MEDIA_SFMT_CMVEQ
},
74 { SH_INSN_FABSD
, SH64_MEDIA_INSN_FABSD
, SH64_MEDIA_SFMT_FABSD
},
75 { SH_INSN_FABSS
, SH64_MEDIA_INSN_FABSS
, SH64_MEDIA_SFMT_FABSS
},
76 { SH_INSN_FADDD
, SH64_MEDIA_INSN_FADDD
, SH64_MEDIA_SFMT_FADDD
},
77 { SH_INSN_FADDS
, SH64_MEDIA_INSN_FADDS
, SH64_MEDIA_SFMT_FADDS
},
78 { SH_INSN_FCMPEQD
, SH64_MEDIA_INSN_FCMPEQD
, SH64_MEDIA_SFMT_FCMPEQD
},
79 { SH_INSN_FCMPEQS
, SH64_MEDIA_INSN_FCMPEQS
, SH64_MEDIA_SFMT_FCMPEQS
},
80 { SH_INSN_FCMPGED
, SH64_MEDIA_INSN_FCMPGED
, SH64_MEDIA_SFMT_FCMPEQD
},
81 { SH_INSN_FCMPGES
, SH64_MEDIA_INSN_FCMPGES
, SH64_MEDIA_SFMT_FCMPEQS
},
82 { SH_INSN_FCMPGTD
, SH64_MEDIA_INSN_FCMPGTD
, SH64_MEDIA_SFMT_FCMPEQD
},
83 { SH_INSN_FCMPGTS
, SH64_MEDIA_INSN_FCMPGTS
, SH64_MEDIA_SFMT_FCMPEQS
},
84 { SH_INSN_FCMPUND
, SH64_MEDIA_INSN_FCMPUND
, SH64_MEDIA_SFMT_FCMPEQD
},
85 { SH_INSN_FCMPUNS
, SH64_MEDIA_INSN_FCMPUNS
, SH64_MEDIA_SFMT_FCMPEQS
},
86 { SH_INSN_FCNVDS
, SH64_MEDIA_INSN_FCNVDS
, SH64_MEDIA_SFMT_FCNVDS
},
87 { SH_INSN_FCNVSD
, SH64_MEDIA_INSN_FCNVSD
, SH64_MEDIA_SFMT_FCNVSD
},
88 { SH_INSN_FDIVD
, SH64_MEDIA_INSN_FDIVD
, SH64_MEDIA_SFMT_FADDD
},
89 { SH_INSN_FDIVS
, SH64_MEDIA_INSN_FDIVS
, SH64_MEDIA_SFMT_FADDS
},
90 { SH_INSN_FGETSCR
, SH64_MEDIA_INSN_FGETSCR
, SH64_MEDIA_SFMT_ALLOCO
},
91 { SH_INSN_FIPRS
, SH64_MEDIA_INSN_FIPRS
, SH64_MEDIA_SFMT_FIPRS
},
92 { SH_INSN_FLDD
, SH64_MEDIA_INSN_FLDD
, SH64_MEDIA_SFMT_FLDD
},
93 { SH_INSN_FLDP
, SH64_MEDIA_INSN_FLDP
, SH64_MEDIA_SFMT_FLDP
},
94 { SH_INSN_FLDS
, SH64_MEDIA_INSN_FLDS
, SH64_MEDIA_SFMT_FLDS
},
95 { SH_INSN_FLDXD
, SH64_MEDIA_INSN_FLDXD
, SH64_MEDIA_SFMT_FLDXD
},
96 { SH_INSN_FLDXP
, SH64_MEDIA_INSN_FLDXP
, SH64_MEDIA_SFMT_FLDXP
},
97 { SH_INSN_FLDXS
, SH64_MEDIA_INSN_FLDXS
, SH64_MEDIA_SFMT_FLDXS
},
98 { SH_INSN_FLOATLD
, SH64_MEDIA_INSN_FLOATLD
, SH64_MEDIA_SFMT_FCNVSD
},
99 { SH_INSN_FLOATLS
, SH64_MEDIA_INSN_FLOATLS
, SH64_MEDIA_SFMT_FABSS
},
100 { SH_INSN_FLOATQD
, SH64_MEDIA_INSN_FLOATQD
, SH64_MEDIA_SFMT_FABSD
},
101 { SH_INSN_FLOATQS
, SH64_MEDIA_INSN_FLOATQS
, SH64_MEDIA_SFMT_FCNVDS
},
102 { SH_INSN_FMACS
, SH64_MEDIA_INSN_FMACS
, SH64_MEDIA_SFMT_FMACS
},
103 { SH_INSN_FMOVD
, SH64_MEDIA_INSN_FMOVD
, SH64_MEDIA_SFMT_FABSD
},
104 { SH_INSN_FMOVDQ
, SH64_MEDIA_INSN_FMOVDQ
, SH64_MEDIA_SFMT_FMOVDQ
},
105 { SH_INSN_FMOVLS
, SH64_MEDIA_INSN_FMOVLS
, SH64_MEDIA_SFMT_FMOVLS
},
106 { SH_INSN_FMOVQD
, SH64_MEDIA_INSN_FMOVQD
, SH64_MEDIA_SFMT_FMOVQD
},
107 { SH_INSN_FMOVS
, SH64_MEDIA_INSN_FMOVS
, SH64_MEDIA_SFMT_FABSS
},
108 { SH_INSN_FMOVSL
, SH64_MEDIA_INSN_FMOVSL
, SH64_MEDIA_SFMT_FMOVSL
},
109 { SH_INSN_FMULD
, SH64_MEDIA_INSN_FMULD
, SH64_MEDIA_SFMT_FADDD
},
110 { SH_INSN_FMULS
, SH64_MEDIA_INSN_FMULS
, SH64_MEDIA_SFMT_FADDS
},
111 { SH_INSN_FNEGD
, SH64_MEDIA_INSN_FNEGD
, SH64_MEDIA_SFMT_FABSD
},
112 { SH_INSN_FNEGS
, SH64_MEDIA_INSN_FNEGS
, SH64_MEDIA_SFMT_FABSS
},
113 { SH_INSN_FPUTSCR
, SH64_MEDIA_INSN_FPUTSCR
, SH64_MEDIA_SFMT_ALLOCO
},
114 { SH_INSN_FSQRTD
, SH64_MEDIA_INSN_FSQRTD
, SH64_MEDIA_SFMT_FABSD
},
115 { SH_INSN_FSQRTS
, SH64_MEDIA_INSN_FSQRTS
, SH64_MEDIA_SFMT_FABSS
},
116 { SH_INSN_FSTD
, SH64_MEDIA_INSN_FSTD
, SH64_MEDIA_SFMT_FSTD
},
117 { SH_INSN_FSTP
, SH64_MEDIA_INSN_FSTP
, SH64_MEDIA_SFMT_FSTP
},
118 { SH_INSN_FSTS
, SH64_MEDIA_INSN_FSTS
, SH64_MEDIA_SFMT_FSTS
},
119 { SH_INSN_FSTXD
, SH64_MEDIA_INSN_FSTXD
, SH64_MEDIA_SFMT_FSTXD
},
120 { SH_INSN_FSTXP
, SH64_MEDIA_INSN_FSTXP
, SH64_MEDIA_SFMT_FSTXP
},
121 { SH_INSN_FSTXS
, SH64_MEDIA_INSN_FSTXS
, SH64_MEDIA_SFMT_FSTXS
},
122 { SH_INSN_FSUBD
, SH64_MEDIA_INSN_FSUBD
, SH64_MEDIA_SFMT_FADDD
},
123 { SH_INSN_FSUBS
, SH64_MEDIA_INSN_FSUBS
, SH64_MEDIA_SFMT_FADDS
},
124 { SH_INSN_FTRCDL
, SH64_MEDIA_INSN_FTRCDL
, SH64_MEDIA_SFMT_FCNVDS
},
125 { SH_INSN_FTRCSL
, SH64_MEDIA_INSN_FTRCSL
, SH64_MEDIA_SFMT_FABSS
},
126 { SH_INSN_FTRCDQ
, SH64_MEDIA_INSN_FTRCDQ
, SH64_MEDIA_SFMT_FABSD
},
127 { SH_INSN_FTRCSQ
, SH64_MEDIA_INSN_FTRCSQ
, SH64_MEDIA_SFMT_FCNVSD
},
128 { SH_INSN_FTRVS
, SH64_MEDIA_INSN_FTRVS
, SH64_MEDIA_SFMT_FTRVS
},
129 { SH_INSN_GETCFG
, SH64_MEDIA_INSN_GETCFG
, SH64_MEDIA_SFMT_ALLOCO
},
130 { SH_INSN_GETCON
, SH64_MEDIA_INSN_GETCON
, SH64_MEDIA_SFMT_GETCON
},
131 { SH_INSN_GETTR
, SH64_MEDIA_INSN_GETTR
, SH64_MEDIA_SFMT_GETTR
},
132 { SH_INSN_ICBI
, SH64_MEDIA_INSN_ICBI
, SH64_MEDIA_SFMT_ALLOCO
},
133 { SH_INSN_LDB
, SH64_MEDIA_INSN_LDB
, SH64_MEDIA_SFMT_LDB
},
134 { SH_INSN_LDL
, SH64_MEDIA_INSN_LDL
, SH64_MEDIA_SFMT_LDL
},
135 { SH_INSN_LDQ
, SH64_MEDIA_INSN_LDQ
, SH64_MEDIA_SFMT_LDQ
},
136 { SH_INSN_LDUB
, SH64_MEDIA_INSN_LDUB
, SH64_MEDIA_SFMT_LDB
},
137 { SH_INSN_LDUW
, SH64_MEDIA_INSN_LDUW
, SH64_MEDIA_SFMT_LDUW
},
138 { SH_INSN_LDW
, SH64_MEDIA_INSN_LDW
, SH64_MEDIA_SFMT_LDUW
},
139 { SH_INSN_LDHIL
, SH64_MEDIA_INSN_LDHIL
, SH64_MEDIA_SFMT_ALLOCO
},
140 { SH_INSN_LDHIQ
, SH64_MEDIA_INSN_LDHIQ
, SH64_MEDIA_SFMT_ALLOCO
},
141 { SH_INSN_LDLOL
, SH64_MEDIA_INSN_LDLOL
, SH64_MEDIA_SFMT_ALLOCO
},
142 { SH_INSN_LDLOQ
, SH64_MEDIA_INSN_LDLOQ
, SH64_MEDIA_SFMT_ALLOCO
},
143 { SH_INSN_LDXB
, SH64_MEDIA_INSN_LDXB
, SH64_MEDIA_SFMT_LDXB
},
144 { SH_INSN_LDXL
, SH64_MEDIA_INSN_LDXL
, SH64_MEDIA_SFMT_LDXB
},
145 { SH_INSN_LDXQ
, SH64_MEDIA_INSN_LDXQ
, SH64_MEDIA_SFMT_LDXB
},
146 { SH_INSN_LDXUB
, SH64_MEDIA_INSN_LDXUB
, SH64_MEDIA_SFMT_LDXB
},
147 { SH_INSN_LDXUW
, SH64_MEDIA_INSN_LDXUW
, SH64_MEDIA_SFMT_LDXB
},
148 { SH_INSN_LDXW
, SH64_MEDIA_INSN_LDXW
, SH64_MEDIA_SFMT_LDXB
},
149 { SH_INSN_MABSL
, SH64_MEDIA_INSN_MABSL
, SH64_MEDIA_SFMT_BYTEREV
},
150 { SH_INSN_MABSW
, SH64_MEDIA_INSN_MABSW
, SH64_MEDIA_SFMT_BYTEREV
},
151 { SH_INSN_MADDL
, SH64_MEDIA_INSN_MADDL
, SH64_MEDIA_SFMT_ADD
},
152 { SH_INSN_MADDW
, SH64_MEDIA_INSN_MADDW
, SH64_MEDIA_SFMT_ADD
},
153 { SH_INSN_MADDSL
, SH64_MEDIA_INSN_MADDSL
, SH64_MEDIA_SFMT_ADD
},
154 { SH_INSN_MADDSUB
, SH64_MEDIA_INSN_MADDSUB
, SH64_MEDIA_SFMT_ADD
},
155 { SH_INSN_MADDSW
, SH64_MEDIA_INSN_MADDSW
, SH64_MEDIA_SFMT_ADD
},
156 { SH_INSN_MCMPEQB
, SH64_MEDIA_INSN_MCMPEQB
, SH64_MEDIA_SFMT_ADD
},
157 { SH_INSN_MCMPEQL
, SH64_MEDIA_INSN_MCMPEQL
, SH64_MEDIA_SFMT_ADD
},
158 { SH_INSN_MCMPEQW
, SH64_MEDIA_INSN_MCMPEQW
, SH64_MEDIA_SFMT_ADD
},
159 { SH_INSN_MCMPGTL
, SH64_MEDIA_INSN_MCMPGTL
, SH64_MEDIA_SFMT_ADD
},
160 { SH_INSN_MCMPGTUB
, SH64_MEDIA_INSN_MCMPGTUB
, SH64_MEDIA_SFMT_ADD
},
161 { SH_INSN_MCMPGTW
, SH64_MEDIA_INSN_MCMPGTW
, SH64_MEDIA_SFMT_ADD
},
162 { SH_INSN_MCMV
, SH64_MEDIA_INSN_MCMV
, SH64_MEDIA_SFMT_MCMV
},
163 { SH_INSN_MCNVSLW
, SH64_MEDIA_INSN_MCNVSLW
, SH64_MEDIA_SFMT_ADD
},
164 { SH_INSN_MCNVSWB
, SH64_MEDIA_INSN_MCNVSWB
, SH64_MEDIA_SFMT_ADD
},
165 { SH_INSN_MCNVSWUB
, SH64_MEDIA_INSN_MCNVSWUB
, SH64_MEDIA_SFMT_ADD
},
166 { SH_INSN_MEXTR1
, SH64_MEDIA_INSN_MEXTR1
, SH64_MEDIA_SFMT_ADD
},
167 { SH_INSN_MEXTR2
, SH64_MEDIA_INSN_MEXTR2
, SH64_MEDIA_SFMT_ADD
},
168 { SH_INSN_MEXTR3
, SH64_MEDIA_INSN_MEXTR3
, SH64_MEDIA_SFMT_ADD
},
169 { SH_INSN_MEXTR4
, SH64_MEDIA_INSN_MEXTR4
, SH64_MEDIA_SFMT_ADD
},
170 { SH_INSN_MEXTR5
, SH64_MEDIA_INSN_MEXTR5
, SH64_MEDIA_SFMT_ADD
},
171 { SH_INSN_MEXTR6
, SH64_MEDIA_INSN_MEXTR6
, SH64_MEDIA_SFMT_ADD
},
172 { SH_INSN_MEXTR7
, SH64_MEDIA_INSN_MEXTR7
, SH64_MEDIA_SFMT_ADD
},
173 { SH_INSN_MMACFXWL
, SH64_MEDIA_INSN_MMACFXWL
, SH64_MEDIA_SFMT_MCMV
},
174 { SH_INSN_MMACNFX_WL
, SH64_MEDIA_INSN_MMACNFX_WL
, SH64_MEDIA_SFMT_MCMV
},
175 { SH_INSN_MMULL
, SH64_MEDIA_INSN_MMULL
, SH64_MEDIA_SFMT_ADD
},
176 { SH_INSN_MMULW
, SH64_MEDIA_INSN_MMULW
, SH64_MEDIA_SFMT_ADD
},
177 { SH_INSN_MMULFXL
, SH64_MEDIA_INSN_MMULFXL
, SH64_MEDIA_SFMT_ADD
},
178 { SH_INSN_MMULFXW
, SH64_MEDIA_INSN_MMULFXW
, SH64_MEDIA_SFMT_ADD
},
179 { SH_INSN_MMULFXRPW
, SH64_MEDIA_INSN_MMULFXRPW
, SH64_MEDIA_SFMT_ADD
},
180 { SH_INSN_MMULHIWL
, SH64_MEDIA_INSN_MMULHIWL
, SH64_MEDIA_SFMT_ADD
},
181 { SH_INSN_MMULLOWL
, SH64_MEDIA_INSN_MMULLOWL
, SH64_MEDIA_SFMT_ADD
},
182 { SH_INSN_MMULSUMWQ
, SH64_MEDIA_INSN_MMULSUMWQ
, SH64_MEDIA_SFMT_MCMV
},
183 { SH_INSN_MOVI
, SH64_MEDIA_INSN_MOVI
, SH64_MEDIA_SFMT_MOVI
},
184 { SH_INSN_MPERMW
, SH64_MEDIA_INSN_MPERMW
, SH64_MEDIA_SFMT_MPERMW
},
185 { SH_INSN_MSADUBQ
, SH64_MEDIA_INSN_MSADUBQ
, SH64_MEDIA_SFMT_MCMV
},
186 { SH_INSN_MSHALDSL
, SH64_MEDIA_INSN_MSHALDSL
, SH64_MEDIA_SFMT_ADD
},
187 { SH_INSN_MSHALDSW
, SH64_MEDIA_INSN_MSHALDSW
, SH64_MEDIA_SFMT_ADD
},
188 { SH_INSN_MSHARDL
, SH64_MEDIA_INSN_MSHARDL
, SH64_MEDIA_SFMT_ADD
},
189 { SH_INSN_MSHARDW
, SH64_MEDIA_INSN_MSHARDW
, SH64_MEDIA_SFMT_ADD
},
190 { SH_INSN_MSHARDSQ
, SH64_MEDIA_INSN_MSHARDSQ
, SH64_MEDIA_SFMT_ADD
},
191 { SH_INSN_MSHFHIB
, SH64_MEDIA_INSN_MSHFHIB
, SH64_MEDIA_SFMT_ADD
},
192 { SH_INSN_MSHFHIL
, SH64_MEDIA_INSN_MSHFHIL
, SH64_MEDIA_SFMT_ADD
},
193 { SH_INSN_MSHFHIW
, SH64_MEDIA_INSN_MSHFHIW
, SH64_MEDIA_SFMT_ADD
},
194 { SH_INSN_MSHFLOB
, SH64_MEDIA_INSN_MSHFLOB
, SH64_MEDIA_SFMT_ADD
},
195 { SH_INSN_MSHFLOL
, SH64_MEDIA_INSN_MSHFLOL
, SH64_MEDIA_SFMT_ADD
},
196 { SH_INSN_MSHFLOW
, SH64_MEDIA_INSN_MSHFLOW
, SH64_MEDIA_SFMT_ADD
},
197 { SH_INSN_MSHLLDL
, SH64_MEDIA_INSN_MSHLLDL
, SH64_MEDIA_SFMT_ADD
},
198 { SH_INSN_MSHLLDW
, SH64_MEDIA_INSN_MSHLLDW
, SH64_MEDIA_SFMT_ADD
},
199 { SH_INSN_MSHLRDL
, SH64_MEDIA_INSN_MSHLRDL
, SH64_MEDIA_SFMT_ADD
},
200 { SH_INSN_MSHLRDW
, SH64_MEDIA_INSN_MSHLRDW
, SH64_MEDIA_SFMT_ADD
},
201 { SH_INSN_MSUBL
, SH64_MEDIA_INSN_MSUBL
, SH64_MEDIA_SFMT_ADD
},
202 { SH_INSN_MSUBW
, SH64_MEDIA_INSN_MSUBW
, SH64_MEDIA_SFMT_ADD
},
203 { SH_INSN_MSUBSL
, SH64_MEDIA_INSN_MSUBSL
, SH64_MEDIA_SFMT_ADD
},
204 { SH_INSN_MSUBSUB
, SH64_MEDIA_INSN_MSUBSUB
, SH64_MEDIA_SFMT_ADD
},
205 { SH_INSN_MSUBSW
, SH64_MEDIA_INSN_MSUBSW
, SH64_MEDIA_SFMT_ADD
},
206 { SH_INSN_MULSL
, SH64_MEDIA_INSN_MULSL
, SH64_MEDIA_SFMT_ADD
},
207 { SH_INSN_MULUL
, SH64_MEDIA_INSN_MULUL
, SH64_MEDIA_SFMT_ADD
},
208 { SH_INSN_NOP
, SH64_MEDIA_INSN_NOP
, SH64_MEDIA_SFMT_ALLOCO
},
209 { SH_INSN_NSB
, SH64_MEDIA_INSN_NSB
, SH64_MEDIA_SFMT_BYTEREV
},
210 { SH_INSN_OCBI
, SH64_MEDIA_INSN_OCBI
, SH64_MEDIA_SFMT_ALLOCO
},
211 { SH_INSN_OCBP
, SH64_MEDIA_INSN_OCBP
, SH64_MEDIA_SFMT_ALLOCO
},
212 { SH_INSN_OCBWB
, SH64_MEDIA_INSN_OCBWB
, SH64_MEDIA_SFMT_ALLOCO
},
213 { SH_INSN_OR
, SH64_MEDIA_INSN_OR
, SH64_MEDIA_SFMT_ADD
},
214 { SH_INSN_ORI
, SH64_MEDIA_INSN_ORI
, SH64_MEDIA_SFMT_ORI
},
215 { SH_INSN_PREFI
, SH64_MEDIA_INSN_PREFI
, SH64_MEDIA_SFMT_ALLOCO
},
216 { SH_INSN_PTA
, SH64_MEDIA_INSN_PTA
, SH64_MEDIA_SFMT_PTA
},
217 { SH_INSN_PTABS
, SH64_MEDIA_INSN_PTABS
, SH64_MEDIA_SFMT_PTABS
},
218 { SH_INSN_PTB
, SH64_MEDIA_INSN_PTB
, SH64_MEDIA_SFMT_PTA
},
219 { SH_INSN_PTREL
, SH64_MEDIA_INSN_PTREL
, SH64_MEDIA_SFMT_PTREL
},
220 { SH_INSN_PUTCFG
, SH64_MEDIA_INSN_PUTCFG
, SH64_MEDIA_SFMT_ALLOCO
},
221 { SH_INSN_PUTCON
, SH64_MEDIA_INSN_PUTCON
, SH64_MEDIA_SFMT_PUTCON
},
222 { SH_INSN_RTE
, SH64_MEDIA_INSN_RTE
, SH64_MEDIA_SFMT_ALLOCO
},
223 { SH_INSN_SHARD
, SH64_MEDIA_INSN_SHARD
, SH64_MEDIA_SFMT_ADD
},
224 { SH_INSN_SHARDL
, SH64_MEDIA_INSN_SHARDL
, SH64_MEDIA_SFMT_ADD
},
225 { SH_INSN_SHARI
, SH64_MEDIA_INSN_SHARI
, SH64_MEDIA_SFMT_SHARI
},
226 { SH_INSN_SHARIL
, SH64_MEDIA_INSN_SHARIL
, SH64_MEDIA_SFMT_SHARIL
},
227 { SH_INSN_SHLLD
, SH64_MEDIA_INSN_SHLLD
, SH64_MEDIA_SFMT_ADD
},
228 { SH_INSN_SHLLDL
, SH64_MEDIA_INSN_SHLLDL
, SH64_MEDIA_SFMT_ADD
},
229 { SH_INSN_SHLLI
, SH64_MEDIA_INSN_SHLLI
, SH64_MEDIA_SFMT_SHARI
},
230 { SH_INSN_SHLLIL
, SH64_MEDIA_INSN_SHLLIL
, SH64_MEDIA_SFMT_SHARIL
},
231 { SH_INSN_SHLRD
, SH64_MEDIA_INSN_SHLRD
, SH64_MEDIA_SFMT_ADD
},
232 { SH_INSN_SHLRDL
, SH64_MEDIA_INSN_SHLRDL
, SH64_MEDIA_SFMT_ADD
},
233 { SH_INSN_SHLRI
, SH64_MEDIA_INSN_SHLRI
, SH64_MEDIA_SFMT_SHARI
},
234 { SH_INSN_SHLRIL
, SH64_MEDIA_INSN_SHLRIL
, SH64_MEDIA_SFMT_SHARIL
},
235 { SH_INSN_SHORI
, SH64_MEDIA_INSN_SHORI
, SH64_MEDIA_SFMT_SHORI
},
236 { SH_INSN_SLEEP
, SH64_MEDIA_INSN_SLEEP
, SH64_MEDIA_SFMT_ALLOCO
},
237 { SH_INSN_STB
, SH64_MEDIA_INSN_STB
, SH64_MEDIA_SFMT_STB
},
238 { SH_INSN_STL
, SH64_MEDIA_INSN_STL
, SH64_MEDIA_SFMT_STL
},
239 { SH_INSN_STQ
, SH64_MEDIA_INSN_STQ
, SH64_MEDIA_SFMT_STQ
},
240 { SH_INSN_STW
, SH64_MEDIA_INSN_STW
, SH64_MEDIA_SFMT_STW
},
241 { SH_INSN_STHIL
, SH64_MEDIA_INSN_STHIL
, SH64_MEDIA_SFMT_STHIL
},
242 { SH_INSN_STHIQ
, SH64_MEDIA_INSN_STHIQ
, SH64_MEDIA_SFMT_STHIL
},
243 { SH_INSN_STLOL
, SH64_MEDIA_INSN_STLOL
, SH64_MEDIA_SFMT_ALLOCO
},
244 { SH_INSN_STLOQ
, SH64_MEDIA_INSN_STLOQ
, SH64_MEDIA_SFMT_ALLOCO
},
245 { SH_INSN_STXB
, SH64_MEDIA_INSN_STXB
, SH64_MEDIA_SFMT_STXB
},
246 { SH_INSN_STXL
, SH64_MEDIA_INSN_STXL
, SH64_MEDIA_SFMT_STXB
},
247 { SH_INSN_STXQ
, SH64_MEDIA_INSN_STXQ
, SH64_MEDIA_SFMT_STXB
},
248 { SH_INSN_STXW
, SH64_MEDIA_INSN_STXW
, SH64_MEDIA_SFMT_STXB
},
249 { SH_INSN_SUB
, SH64_MEDIA_INSN_SUB
, SH64_MEDIA_SFMT_ADD
},
250 { SH_INSN_SUBL
, SH64_MEDIA_INSN_SUBL
, SH64_MEDIA_SFMT_ADD
},
251 { SH_INSN_SWAPQ
, SH64_MEDIA_INSN_SWAPQ
, SH64_MEDIA_SFMT_SWAPQ
},
252 { SH_INSN_SYNCI
, SH64_MEDIA_INSN_SYNCI
, SH64_MEDIA_SFMT_ALLOCO
},
253 { SH_INSN_SYNCO
, SH64_MEDIA_INSN_SYNCO
, SH64_MEDIA_SFMT_ALLOCO
},
254 { SH_INSN_TRAPA
, SH64_MEDIA_INSN_TRAPA
, SH64_MEDIA_SFMT_TRAPA
},
255 { SH_INSN_XOR
, SH64_MEDIA_INSN_XOR
, SH64_MEDIA_SFMT_ADD
},
256 { SH_INSN_XORI
, SH64_MEDIA_INSN_XORI
, SH64_MEDIA_SFMT_XORI
},
259 static const struct insn_sem sh64_media_insn_sem_invalid
= {
260 VIRTUAL_INSN_X_INVALID
, SH64_MEDIA_INSN_X_INVALID
, SH64_MEDIA_SFMT_EMPTY
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
+ sizeof (sh64_media_insn_sem
) / sizeof (*t
);
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_INT base_insn
, CGEN_INSN_INT entire_insn
,
326 /* Result of decoder. */
327 SH64_MEDIA_INSN_TYPE itype
;
330 CGEN_INSN_INT insn
= base_insn
;
333 unsigned int val
= (((insn
>> 22) & (63 << 4)) | ((insn
>> 16) & (15 << 0)));
336 case 1 : itype
= SH64_MEDIA_INSN_CMPEQ
; goto extract_sfmt_add
; case 3 : itype
= SH64_MEDIA_INSN_CMPGT
; goto extract_sfmt_add
; case 7 : itype
= SH64_MEDIA_INSN_CMPGTU
; goto extract_sfmt_add
; case 8 : itype
= SH64_MEDIA_INSN_ADDL
; goto extract_sfmt_add
; case 9 : itype
= SH64_MEDIA_INSN_ADD
; goto extract_sfmt_add
; case 10 : itype
= SH64_MEDIA_INSN_SUBL
; goto extract_sfmt_add
; case 11 : itype
= SH64_MEDIA_INSN_SUB
; goto extract_sfmt_add
; case 12 : itype
= SH64_MEDIA_INSN_ADDZL
; goto extract_sfmt_add
; case 13 : itype
= SH64_MEDIA_INSN_NSB
; goto extract_sfmt_byterev
; case 14 : itype
= SH64_MEDIA_INSN_MULUL
; goto extract_sfmt_add
; case 15 : itype
= SH64_MEDIA_INSN_BYTEREV
; goto extract_sfmt_byterev
; case 16 : itype
= SH64_MEDIA_INSN_SHLLDL
; goto extract_sfmt_add
; case 17 : itype
= SH64_MEDIA_INSN_SHLLD
; goto extract_sfmt_add
; case 18 : itype
= SH64_MEDIA_INSN_SHLRDL
; goto extract_sfmt_add
; case 19 : itype
= SH64_MEDIA_INSN_SHLRD
; goto extract_sfmt_add
; case 22 : itype
= SH64_MEDIA_INSN_SHARDL
; goto extract_sfmt_add
; case 23 : itype
= SH64_MEDIA_INSN_SHARD
; goto extract_sfmt_add
; case 25 : itype
= SH64_MEDIA_INSN_OR
; goto extract_sfmt_add
; case 27 : itype
= SH64_MEDIA_INSN_AND
; goto extract_sfmt_add
; case 29 : itype
= SH64_MEDIA_INSN_XOR
; goto extract_sfmt_add
; case 30 : itype
= SH64_MEDIA_INSN_MULSL
; goto extract_sfmt_add
; case 31 : itype
= SH64_MEDIA_INSN_ANDC
; goto extract_sfmt_add
; case 33 : itype
= SH64_MEDIA_INSN_MADDW
; goto extract_sfmt_add
; case 34 : itype
= SH64_MEDIA_INSN_MADDL
; goto extract_sfmt_add
; case 36 : itype
= SH64_MEDIA_INSN_MADDSUB
; goto extract_sfmt_add
; case 37 : itype
= SH64_MEDIA_INSN_MADDSW
; goto extract_sfmt_add
; case 38 : itype
= SH64_MEDIA_INSN_MADDSL
; goto extract_sfmt_add
; case 41 : itype
= SH64_MEDIA_INSN_MSUBW
; goto extract_sfmt_add
; case 42 : itype
= SH64_MEDIA_INSN_MSUBL
; goto extract_sfmt_add
; case 44 : itype
= SH64_MEDIA_INSN_MSUBSUB
; goto extract_sfmt_add
; case 45 : itype
= SH64_MEDIA_INSN_MSUBSW
; goto extract_sfmt_add
; case 46 : itype
= SH64_MEDIA_INSN_MSUBSL
; goto extract_sfmt_add
; case 49 : itype
= SH64_MEDIA_INSN_MSHLLDW
; goto extract_sfmt_add
; case 50 : itype
= SH64_MEDIA_INSN_MSHLLDL
; goto extract_sfmt_add
; case 53 : itype
= SH64_MEDIA_INSN_MSHALDSW
; goto extract_sfmt_add
; case 54 : itype
= SH64_MEDIA_INSN_MSHALDSL
; goto extract_sfmt_add
; case 57 : itype
= SH64_MEDIA_INSN_MSHARDW
; goto extract_sfmt_add
; case 58 : itype
= SH64_MEDIA_INSN_MSHARDL
; goto extract_sfmt_add
; case 59 : itype
= SH64_MEDIA_INSN_MSHARDSQ
; goto extract_sfmt_add
; case 61 : itype
= SH64_MEDIA_INSN_MSHLRDW
; goto extract_sfmt_add
; case 62 : itype
= SH64_MEDIA_INSN_MSHLRDL
; goto extract_sfmt_add
; case 86 : itype
= SH64_MEDIA_INSN_FIPRS
; goto extract_sfmt_fiprs
; case 94 : itype
= SH64_MEDIA_INSN_FTRVS
; goto extract_sfmt_ftrvs
; case 96 : itype
= SH64_MEDIA_INSN_FABSS
; goto extract_sfmt_fabss
; case 97 : itype
= SH64_MEDIA_INSN_FABSD
; goto extract_sfmt_fabsd
; case 98 : itype
= SH64_MEDIA_INSN_FNEGS
; goto extract_sfmt_fabss
; case 99 : itype
= SH64_MEDIA_INSN_FNEGD
; goto extract_sfmt_fabsd
; case 112 : itype
= SH64_MEDIA_INSN_FMOVLS
; goto extract_sfmt_fmovls
; case 113 : itype
= SH64_MEDIA_INSN_FMOVQD
; goto extract_sfmt_fmovqd
; case 114 : itype
= SH64_MEDIA_INSN_FGETSCR
; goto extract_sfmt_alloco
; case 120 : itype
= SH64_MEDIA_INSN_FLDXS
; goto extract_sfmt_fldxs
; case 121 : itype
= SH64_MEDIA_INSN_FLDXD
; goto extract_sfmt_fldxd
; case 125 : itype
= SH64_MEDIA_INSN_FLDXP
; goto extract_sfmt_fldxp
; case 129 : itype
= SH64_MEDIA_INSN_CMVEQ
; goto extract_sfmt_cmveq
; case 131 : itype
= SH64_MEDIA_INSN_SWAPQ
; goto extract_sfmt_swapq
; case 133 : itype
= SH64_MEDIA_INSN_CMVNE
; goto extract_sfmt_cmveq
; case 159 : itype
= SH64_MEDIA_INSN_GETCON
; goto extract_sfmt_getcon
; case 160 : itype
= SH64_MEDIA_INSN_MCMPEQB
; goto extract_sfmt_add
; case 161 : itype
= SH64_MEDIA_INSN_MCMPEQW
; goto extract_sfmt_add
; case 162 : itype
= SH64_MEDIA_INSN_MCMPEQL
; goto extract_sfmt_add
; case 164 : itype
= SH64_MEDIA_INSN_MCMPGTUB
; goto extract_sfmt_add
; case 165 : itype
= SH64_MEDIA_INSN_MCMPGTW
; goto extract_sfmt_add
; case 166 : itype
= SH64_MEDIA_INSN_MCMPGTL
; goto extract_sfmt_add
; case 167 : itype
= SH64_MEDIA_INSN_MEXTR1
; goto extract_sfmt_add
; case 169 : itype
= SH64_MEDIA_INSN_MABSW
; goto extract_sfmt_byterev
; case 170 : itype
= SH64_MEDIA_INSN_MABSL
; goto extract_sfmt_byterev
; case 171 : itype
= SH64_MEDIA_INSN_MEXTR2
; goto extract_sfmt_add
; case 173 : itype
= SH64_MEDIA_INSN_MPERMW
; goto extract_sfmt_mpermw
; case 175 : itype
= SH64_MEDIA_INSN_MEXTR3
; goto extract_sfmt_add
; case 176 : itype
= SH64_MEDIA_INSN_MSHFLOB
; goto extract_sfmt_add
; case 177 : itype
= SH64_MEDIA_INSN_MSHFLOW
; goto extract_sfmt_add
; case 178 : itype
= SH64_MEDIA_INSN_MSHFLOL
; goto extract_sfmt_add
; case 179 : itype
= SH64_MEDIA_INSN_MEXTR4
; goto extract_sfmt_add
; case 180 : itype
= SH64_MEDIA_INSN_MSHFHIB
; goto extract_sfmt_add
; case 181 : itype
= SH64_MEDIA_INSN_MSHFHIW
; goto extract_sfmt_add
; case 182 : itype
= SH64_MEDIA_INSN_MSHFHIL
; goto extract_sfmt_add
; case 183 : itype
= SH64_MEDIA_INSN_MEXTR5
; goto extract_sfmt_add
; case 187 : itype
= SH64_MEDIA_INSN_MEXTR6
; goto extract_sfmt_add
; case 191 : itype
= SH64_MEDIA_INSN_MEXTR7
; goto extract_sfmt_add
; case 192 : itype
= SH64_MEDIA_INSN_FMOVSL
; goto extract_sfmt_fmovsl
; case 193 : itype
= SH64_MEDIA_INSN_FMOVDQ
; goto extract_sfmt_fmovdq
; case 194 : itype
= SH64_MEDIA_INSN_FPUTSCR
; goto extract_sfmt_alloco
; case 200 : itype
= SH64_MEDIA_INSN_FCMPEQS
; goto extract_sfmt_fcmpeqs
; case 201 : itype
= SH64_MEDIA_INSN_FCMPEQD
; goto extract_sfmt_fcmpeqd
; case 202 : itype
= SH64_MEDIA_INSN_FCMPUNS
; goto extract_sfmt_fcmpeqs
; case 203 : itype
= SH64_MEDIA_INSN_FCMPUND
; goto extract_sfmt_fcmpeqd
; case 204 : itype
= SH64_MEDIA_INSN_FCMPGTS
; goto extract_sfmt_fcmpeqs
; case 205 : itype
= SH64_MEDIA_INSN_FCMPGTD
; goto extract_sfmt_fcmpeqd
; case 206 : itype
= SH64_MEDIA_INSN_FCMPGES
; goto extract_sfmt_fcmpeqs
; case 207 : itype
= SH64_MEDIA_INSN_FCMPGED
; goto extract_sfmt_fcmpeqd
; case 208 : itype
= SH64_MEDIA_INSN_FADDS
; goto extract_sfmt_fadds
; case 209 : itype
= SH64_MEDIA_INSN_FADDD
; goto extract_sfmt_faddd
; case 210 : itype
= SH64_MEDIA_INSN_FSUBS
; goto extract_sfmt_fadds
; case 211 : itype
= SH64_MEDIA_INSN_FSUBD
; goto extract_sfmt_faddd
; case 212 : itype
= SH64_MEDIA_INSN_FDIVS
; goto extract_sfmt_fadds
; case 213 : itype
= SH64_MEDIA_INSN_FDIVD
; goto extract_sfmt_faddd
; case 214 : itype
= SH64_MEDIA_INSN_FMULS
; goto extract_sfmt_fadds
; case 215 : itype
= SH64_MEDIA_INSN_FMULD
; goto extract_sfmt_faddd
; case 222 : itype
= SH64_MEDIA_INSN_FMACS
; goto extract_sfmt_fmacs
; case 224 : itype
= SH64_MEDIA_INSN_FMOVS
; goto extract_sfmt_fabss
; case 225 : itype
= SH64_MEDIA_INSN_FMOVD
; goto extract_sfmt_fabsd
; case 228 : itype
= SH64_MEDIA_INSN_FSQRTS
; goto extract_sfmt_fabss
; case 229 : itype
= SH64_MEDIA_INSN_FSQRTD
; goto extract_sfmt_fabsd
; case 230 : itype
= SH64_MEDIA_INSN_FCNVSD
; goto extract_sfmt_fcnvsd
; case 231 : itype
= SH64_MEDIA_INSN_FCNVDS
; goto extract_sfmt_fcnvds
; case 232 : itype
= SH64_MEDIA_INSN_FTRCSL
; goto extract_sfmt_fabss
; case 233 : itype
= SH64_MEDIA_INSN_FTRCDQ
; goto extract_sfmt_fabsd
; case 234 : itype
= SH64_MEDIA_INSN_FTRCSQ
; goto extract_sfmt_fcnvsd
; case 235 : itype
= SH64_MEDIA_INSN_FTRCDL
; goto extract_sfmt_fcnvds
; case 236 : itype
= SH64_MEDIA_INSN_FLOATLS
; goto extract_sfmt_fabss
; case 237 : itype
= SH64_MEDIA_INSN_FLOATQD
; goto extract_sfmt_fabsd
; case 238 : itype
= SH64_MEDIA_INSN_FLOATLD
; goto extract_sfmt_fcnvsd
; case 239 : itype
= SH64_MEDIA_INSN_FLOATQS
; goto extract_sfmt_fcnvds
; case 248 : itype
= SH64_MEDIA_INSN_FSTXS
; goto extract_sfmt_fstxs
; case 249 : itype
= SH64_MEDIA_INSN_FSTXD
; goto extract_sfmt_fstxd
; case 253 : itype
= SH64_MEDIA_INSN_FSTXP
; goto extract_sfmt_fstxp
; case 256 : itype
= SH64_MEDIA_INSN_LDXB
; goto extract_sfmt_ldxb
; case 257 : itype
= SH64_MEDIA_INSN_LDXW
; goto extract_sfmt_ldxb
; case 258 : itype
= SH64_MEDIA_INSN_LDXL
; goto extract_sfmt_ldxb
; case 259 : itype
= SH64_MEDIA_INSN_LDXQ
; goto extract_sfmt_ldxb
; case 260 : itype
= SH64_MEDIA_INSN_LDXUB
; goto extract_sfmt_ldxb
; case 261 : itype
= SH64_MEDIA_INSN_LDXUW
; goto extract_sfmt_ldxb
; case 273 : itype
= SH64_MEDIA_INSN_BLINK
; goto extract_sfmt_blink
; case 277 : itype
= SH64_MEDIA_INSN_GETTR
; goto extract_sfmt_gettr
; case 288 : itype
= SH64_MEDIA_INSN_MSADUBQ
; goto extract_sfmt_mcmv
; case 289 : itype
= SH64_MEDIA_INSN_MMACFXWL
; goto extract_sfmt_mcmv
; case 291 : itype
= SH64_MEDIA_INSN_MCMV
; goto extract_sfmt_mcmv
; case 293 : itype
= SH64_MEDIA_INSN_MMACNFX_WL
; goto extract_sfmt_mcmv
; case 297 : itype
= SH64_MEDIA_INSN_MMULSUMWQ
; goto extract_sfmt_mcmv
; case 305 : itype
= SH64_MEDIA_INSN_MMULW
; goto extract_sfmt_add
; case 306 : itype
= SH64_MEDIA_INSN_MMULL
; goto extract_sfmt_add
; case 309 : itype
= SH64_MEDIA_INSN_MMULFXW
; goto extract_sfmt_add
; case 310 : itype
= SH64_MEDIA_INSN_MMULFXL
; goto extract_sfmt_add
; case 312 : itype
= SH64_MEDIA_INSN_MCNVSWB
; goto extract_sfmt_add
; case 313 : itype
= SH64_MEDIA_INSN_MMULFXRPW
; goto extract_sfmt_add
; case 314 : itype
= SH64_MEDIA_INSN_MMULLOWL
; goto extract_sfmt_add
; case 316 : itype
= SH64_MEDIA_INSN_MCNVSWUB
; goto extract_sfmt_add
; case 317 : itype
= SH64_MEDIA_INSN_MCNVSLW
; goto extract_sfmt_add
; case 318 : itype
= SH64_MEDIA_INSN_MMULHIWL
; goto extract_sfmt_add
; case 384 : itype
= SH64_MEDIA_INSN_STXB
; goto extract_sfmt_stxb
; case 385 : itype
= SH64_MEDIA_INSN_STXW
; goto extract_sfmt_stxb
; case 386 : itype
= SH64_MEDIA_INSN_STXL
; goto extract_sfmt_stxb
; case 387 : itype
= SH64_MEDIA_INSN_STXQ
; goto extract_sfmt_stxb
; case 401 : itype
= SH64_MEDIA_INSN_BEQ
; goto extract_sfmt_beq
; case 403 : itype
= SH64_MEDIA_INSN_BGE
; goto extract_sfmt_beq
; case 405 : itype
= SH64_MEDIA_INSN_BNE
; goto extract_sfmt_beq
; case 407 : itype
= SH64_MEDIA_INSN_BGT
; goto extract_sfmt_beq
; case 411 : itype
= SH64_MEDIA_INSN_BGEU
; goto extract_sfmt_beq
; case 415 : itype
= SH64_MEDIA_INSN_BGTU
; goto extract_sfmt_beq
; case 417 : itype
= SH64_MEDIA_INSN_PTABS
; goto extract_sfmt_ptabs
; case 421 : itype
= SH64_MEDIA_INSN_PTREL
; goto extract_sfmt_ptrel
; case 432 : itype
= SH64_MEDIA_INSN_NOP
; goto extract_sfmt_alloco
; case 433 : itype
= SH64_MEDIA_INSN_TRAPA
; goto extract_sfmt_trapa
; case 434 : itype
= SH64_MEDIA_INSN_SYNCI
; goto extract_sfmt_alloco
; case 435 : itype
= SH64_MEDIA_INSN_RTE
; goto extract_sfmt_alloco
; case 437 : itype
= SH64_MEDIA_INSN_BRK
; goto extract_sfmt_brk
; case 438 : itype
= SH64_MEDIA_INSN_SYNCO
; goto extract_sfmt_alloco
; case 439 : itype
= SH64_MEDIA_INSN_SLEEP
; goto extract_sfmt_alloco
; case 447 : itype
= SH64_MEDIA_INSN_PUTCON
; goto extract_sfmt_putcon
; case 512 : /* fall through */
337 case 513 : /* fall through */
338 case 514 : /* fall through */
339 case 515 : /* fall through */
340 case 516 : /* fall through */
341 case 517 : /* fall through */
342 case 518 : /* fall through */
343 case 519 : /* fall through */
344 case 520 : /* fall through */
345 case 521 : /* fall through */
346 case 522 : /* fall through */
347 case 523 : /* fall through */
348 case 524 : /* fall through */
349 case 525 : /* fall through */
350 case 526 : /* fall through */
351 case 527 : itype
= SH64_MEDIA_INSN_LDB
; goto extract_sfmt_ldb
; case 528 : /* fall through */
352 case 529 : /* fall through */
353 case 530 : /* fall through */
354 case 531 : /* fall through */
355 case 532 : /* fall through */
356 case 533 : /* fall through */
357 case 534 : /* fall through */
358 case 535 : /* fall through */
359 case 536 : /* fall through */
360 case 537 : /* fall through */
361 case 538 : /* fall through */
362 case 539 : /* fall through */
363 case 540 : /* fall through */
364 case 541 : /* fall through */
365 case 542 : /* fall through */
366 case 543 : itype
= SH64_MEDIA_INSN_LDW
; goto extract_sfmt_lduw
; case 544 : /* fall through */
367 case 545 : /* fall through */
368 case 546 : /* fall through */
369 case 547 : /* fall through */
370 case 548 : /* fall through */
371 case 549 : /* fall through */
372 case 550 : /* fall through */
373 case 551 : /* fall through */
374 case 552 : /* fall through */
375 case 553 : /* fall through */
376 case 554 : /* fall through */
377 case 555 : /* fall through */
378 case 556 : /* fall through */
379 case 557 : /* fall through */
380 case 558 : /* fall through */
381 case 559 : itype
= SH64_MEDIA_INSN_LDL
; goto extract_sfmt_ldl
; case 560 : /* fall through */
382 case 561 : /* fall through */
383 case 562 : /* fall through */
384 case 563 : /* fall through */
385 case 564 : /* fall through */
386 case 565 : /* fall through */
387 case 566 : /* fall through */
388 case 567 : /* fall through */
389 case 568 : /* fall through */
390 case 569 : /* fall through */
391 case 570 : /* fall through */
392 case 571 : /* fall through */
393 case 572 : /* fall through */
394 case 573 : /* fall through */
395 case 574 : /* fall through */
396 case 575 : itype
= SH64_MEDIA_INSN_LDQ
; goto extract_sfmt_ldq
; case 576 : /* fall through */
397 case 577 : /* fall through */
398 case 578 : /* fall through */
399 case 579 : /* fall through */
400 case 580 : /* fall through */
401 case 581 : /* fall through */
402 case 582 : /* fall through */
403 case 583 : /* fall through */
404 case 584 : /* fall through */
405 case 585 : /* fall through */
406 case 586 : /* fall through */
407 case 587 : /* fall through */
408 case 588 : /* fall through */
409 case 589 : /* fall through */
410 case 590 : /* fall through */
411 case 591 : itype
= SH64_MEDIA_INSN_LDUB
; goto extract_sfmt_ldb
; case 592 : /* fall through */
412 case 593 : /* fall through */
413 case 594 : /* fall through */
414 case 595 : /* fall through */
415 case 596 : /* fall through */
416 case 597 : /* fall through */
417 case 598 : /* fall through */
418 case 599 : /* fall through */
419 case 600 : /* fall through */
420 case 601 : /* fall through */
421 case 602 : /* fall through */
422 case 603 : /* fall through */
423 case 604 : /* fall through */
424 case 605 : /* fall through */
425 case 606 : /* fall through */
426 case 607 : itype
= SH64_MEDIA_INSN_FLDS
; goto extract_sfmt_flds
; case 608 : /* fall through */
427 case 609 : /* fall through */
428 case 610 : /* fall through */
429 case 611 : /* fall through */
430 case 612 : /* fall through */
431 case 613 : /* fall through */
432 case 614 : /* fall through */
433 case 615 : /* fall through */
434 case 616 : /* fall through */
435 case 617 : /* fall through */
436 case 618 : /* fall through */
437 case 619 : /* fall through */
438 case 620 : /* fall through */
439 case 621 : /* fall through */
440 case 622 : /* fall through */
441 case 623 : itype
= SH64_MEDIA_INSN_FLDP
; goto extract_sfmt_fldp
; case 624 : /* fall through */
442 case 625 : /* fall through */
443 case 626 : /* fall through */
444 case 627 : /* fall through */
445 case 628 : /* fall through */
446 case 629 : /* fall through */
447 case 630 : /* fall through */
448 case 631 : /* fall through */
449 case 632 : /* fall through */
450 case 633 : /* fall through */
451 case 634 : /* fall through */
452 case 635 : /* fall through */
453 case 636 : /* fall through */
454 case 637 : /* fall through */
455 case 638 : /* fall through */
456 case 639 : itype
= SH64_MEDIA_INSN_FLDD
; goto extract_sfmt_fldd
; case 640 : /* fall through */
457 case 641 : /* fall through */
458 case 642 : /* fall through */
459 case 643 : /* fall through */
460 case 644 : /* fall through */
461 case 645 : /* fall through */
462 case 646 : /* fall through */
463 case 647 : /* fall through */
464 case 648 : /* fall through */
465 case 649 : /* fall through */
466 case 650 : /* fall through */
467 case 651 : /* fall through */
468 case 652 : /* fall through */
469 case 653 : /* fall through */
470 case 654 : /* fall through */
471 case 655 : itype
= SH64_MEDIA_INSN_STB
; goto extract_sfmt_stb
; case 656 : /* fall through */
472 case 657 : /* fall through */
473 case 658 : /* fall through */
474 case 659 : /* fall through */
475 case 660 : /* fall through */
476 case 661 : /* fall through */
477 case 662 : /* fall through */
478 case 663 : /* fall through */
479 case 664 : /* fall through */
480 case 665 : /* fall through */
481 case 666 : /* fall through */
482 case 667 : /* fall through */
483 case 668 : /* fall through */
484 case 669 : /* fall through */
485 case 670 : /* fall through */
486 case 671 : itype
= SH64_MEDIA_INSN_STW
; goto extract_sfmt_stw
; case 672 : /* fall through */
487 case 673 : /* fall through */
488 case 674 : /* fall through */
489 case 675 : /* fall through */
490 case 676 : /* fall through */
491 case 677 : /* fall through */
492 case 678 : /* fall through */
493 case 679 : /* fall through */
494 case 680 : /* fall through */
495 case 681 : /* fall through */
496 case 682 : /* fall through */
497 case 683 : /* fall through */
498 case 684 : /* fall through */
499 case 685 : /* fall through */
500 case 686 : /* fall through */
501 case 687 : itype
= SH64_MEDIA_INSN_STL
; goto extract_sfmt_stl
; case 688 : /* fall through */
502 case 689 : /* fall through */
503 case 690 : /* fall through */
504 case 691 : /* fall through */
505 case 692 : /* fall through */
506 case 693 : /* fall through */
507 case 694 : /* fall through */
508 case 695 : /* fall through */
509 case 696 : /* fall through */
510 case 697 : /* fall through */
511 case 698 : /* fall through */
512 case 699 : /* fall through */
513 case 700 : /* fall through */
514 case 701 : /* fall through */
515 case 702 : /* fall through */
516 case 703 : itype
= SH64_MEDIA_INSN_STQ
; goto extract_sfmt_stq
; case 704 : /* fall through */
517 case 705 : /* fall through */
518 case 706 : /* fall through */
519 case 707 : /* fall through */
520 case 708 : /* fall through */
521 case 709 : /* fall through */
522 case 710 : /* fall through */
523 case 711 : /* fall through */
524 case 712 : /* fall through */
525 case 713 : /* fall through */
526 case 714 : /* fall through */
527 case 715 : /* fall through */
528 case 716 : /* fall through */
529 case 717 : /* fall through */
530 case 718 : /* fall through */
531 case 719 : itype
= SH64_MEDIA_INSN_LDUW
; goto extract_sfmt_lduw
; case 720 : /* fall through */
532 case 721 : /* fall through */
533 case 722 : /* fall through */
534 case 723 : /* fall through */
535 case 724 : /* fall through */
536 case 725 : /* fall through */
537 case 726 : /* fall through */
538 case 727 : /* fall through */
539 case 728 : /* fall through */
540 case 729 : /* fall through */
541 case 730 : /* fall through */
542 case 731 : /* fall through */
543 case 732 : /* fall through */
544 case 733 : /* fall through */
545 case 734 : /* fall through */
546 case 735 : itype
= SH64_MEDIA_INSN_FSTS
; goto extract_sfmt_fsts
; case 736 : /* fall through */
547 case 737 : /* fall through */
548 case 738 : /* fall through */
549 case 739 : /* fall through */
550 case 740 : /* fall through */
551 case 741 : /* fall through */
552 case 742 : /* fall through */
553 case 743 : /* fall through */
554 case 744 : /* fall through */
555 case 745 : /* fall through */
556 case 746 : /* fall through */
557 case 747 : /* fall through */
558 case 748 : /* fall through */
559 case 749 : /* fall through */
560 case 750 : /* fall through */
561 case 751 : itype
= SH64_MEDIA_INSN_FSTP
; goto extract_sfmt_fstp
; case 752 : /* fall through */
562 case 753 : /* fall through */
563 case 754 : /* fall through */
564 case 755 : /* fall through */
565 case 756 : /* fall through */
566 case 757 : /* fall through */
567 case 758 : /* fall through */
568 case 759 : /* fall through */
569 case 760 : /* fall through */
570 case 761 : /* fall through */
571 case 762 : /* fall through */
572 case 763 : /* fall through */
573 case 764 : /* fall through */
574 case 765 : /* fall through */
575 case 766 : /* fall through */
576 case 767 : itype
= SH64_MEDIA_INSN_FSTD
; goto extract_sfmt_fstd
; case 770 : itype
= SH64_MEDIA_INSN_LDLOL
; goto extract_sfmt_alloco
; case 771 : itype
= SH64_MEDIA_INSN_LDLOQ
; goto extract_sfmt_alloco
; case 774 : itype
= SH64_MEDIA_INSN_LDHIL
; goto extract_sfmt_alloco
; case 775 : itype
= SH64_MEDIA_INSN_LDHIQ
; goto extract_sfmt_alloco
; case 783 : itype
= SH64_MEDIA_INSN_GETCFG
; goto extract_sfmt_alloco
; case 784 : itype
= SH64_MEDIA_INSN_SHLLIL
; goto extract_sfmt_sharil
; case 785 : itype
= SH64_MEDIA_INSN_SHLLI
; goto extract_sfmt_shari
; case 786 : itype
= SH64_MEDIA_INSN_SHLRIL
; goto extract_sfmt_sharil
; case 787 : itype
= SH64_MEDIA_INSN_SHLRI
; goto extract_sfmt_shari
; case 790 : itype
= SH64_MEDIA_INSN_SHARIL
; goto extract_sfmt_sharil
; case 791 : itype
= SH64_MEDIA_INSN_SHARI
; goto extract_sfmt_shari
; case 797 : itype
= SH64_MEDIA_INSN_XORI
; goto extract_sfmt_xori
; case 800 : /* fall through */
577 case 801 : /* fall through */
578 case 802 : /* fall through */
579 case 803 : /* fall through */
580 case 804 : /* fall through */
581 case 805 : /* fall through */
582 case 806 : /* fall through */
583 case 807 : /* fall through */
584 case 808 : /* fall through */
585 case 809 : /* fall through */
586 case 810 : /* fall through */
587 case 811 : /* fall through */
588 case 812 : /* fall through */
589 case 813 : /* fall through */
590 case 814 : /* fall through */
591 case 815 : itype
= SH64_MEDIA_INSN_SHORI
; goto extract_sfmt_shori
; case 816 : /* fall through */
592 case 817 : /* fall through */
593 case 818 : /* fall through */
594 case 819 : /* fall through */
595 case 820 : /* fall through */
596 case 821 : /* fall through */
597 case 822 : /* fall through */
598 case 823 : /* fall through */
599 case 824 : /* fall through */
600 case 825 : /* fall through */
601 case 826 : /* fall through */
602 case 827 : /* fall through */
603 case 828 : /* fall through */
604 case 829 : /* fall through */
605 case 830 : /* fall through */
606 case 831 : itype
= SH64_MEDIA_INSN_MOVI
; goto extract_sfmt_movi
; case 832 : /* fall through */
607 case 833 : /* fall through */
608 case 834 : /* fall through */
609 case 835 : /* fall through */
610 case 836 : /* fall through */
611 case 837 : /* fall through */
612 case 838 : /* fall through */
613 case 839 : /* fall through */
614 case 840 : /* fall through */
615 case 841 : /* fall through */
616 case 842 : /* fall through */
617 case 843 : /* fall through */
618 case 844 : /* fall through */
619 case 845 : /* fall through */
620 case 846 : /* fall through */
621 case 847 : itype
= SH64_MEDIA_INSN_ADDI
; goto extract_sfmt_addi
; case 848 : /* fall through */
622 case 849 : /* fall through */
623 case 850 : /* fall through */
624 case 851 : /* fall through */
625 case 852 : /* fall through */
626 case 853 : /* fall through */
627 case 854 : /* fall through */
628 case 855 : /* fall through */
629 case 856 : /* fall through */
630 case 857 : /* fall through */
631 case 858 : /* fall through */
632 case 859 : /* fall through */
633 case 860 : /* fall through */
634 case 861 : /* fall through */
635 case 862 : /* fall through */
636 case 863 : itype
= SH64_MEDIA_INSN_ADDIL
; goto extract_sfmt_addi
; case 864 : /* fall through */
637 case 865 : /* fall through */
638 case 866 : /* fall through */
639 case 867 : /* fall through */
640 case 868 : /* fall through */
641 case 869 : /* fall through */
642 case 870 : /* fall through */
643 case 871 : /* fall through */
644 case 872 : /* fall through */
645 case 873 : /* fall through */
646 case 874 : /* fall through */
647 case 875 : /* fall through */
648 case 876 : /* fall through */
649 case 877 : /* fall through */
650 case 878 : /* fall through */
651 case 879 : itype
= SH64_MEDIA_INSN_ANDI
; goto extract_sfmt_addi
; case 880 : /* fall through */
652 case 881 : /* fall through */
653 case 882 : /* fall through */
654 case 883 : /* fall through */
655 case 884 : /* fall through */
656 case 885 : /* fall through */
657 case 886 : /* fall through */
658 case 887 : /* fall through */
659 case 888 : /* fall through */
660 case 889 : /* fall through */
661 case 890 : /* fall through */
662 case 891 : /* fall through */
663 case 892 : /* fall through */
664 case 893 : /* fall through */
665 case 894 : /* fall through */
666 case 895 : itype
= SH64_MEDIA_INSN_ORI
; goto extract_sfmt_ori
; case 897 : itype
= SH64_MEDIA_INSN_PREFI
; goto extract_sfmt_alloco
; case 898 : itype
= SH64_MEDIA_INSN_STLOL
; goto extract_sfmt_alloco
; case 899 : itype
= SH64_MEDIA_INSN_STLOQ
; goto extract_sfmt_alloco
; case 900 : itype
= SH64_MEDIA_INSN_ALLOCO
; goto extract_sfmt_alloco
; case 901 : itype
= SH64_MEDIA_INSN_ICBI
; goto extract_sfmt_alloco
; case 902 : itype
= SH64_MEDIA_INSN_STHIL
; goto extract_sfmt_sthil
; case 903 : itype
= SH64_MEDIA_INSN_STHIQ
; goto extract_sfmt_sthil
; case 904 : itype
= SH64_MEDIA_INSN_OCBP
; goto extract_sfmt_alloco
; case 905 : itype
= SH64_MEDIA_INSN_OCBI
; goto extract_sfmt_alloco
; case 908 : itype
= SH64_MEDIA_INSN_OCBWB
; goto extract_sfmt_alloco
; case 911 : itype
= SH64_MEDIA_INSN_PUTCFG
; goto extract_sfmt_alloco
; case 913 : itype
= SH64_MEDIA_INSN_BEQI
; goto extract_sfmt_beqi
; case 917 : itype
= SH64_MEDIA_INSN_BNEI
; goto extract_sfmt_beqi
; case 928 : /* fall through */
667 case 929 : /* fall through */
668 case 930 : /* fall through */
669 case 931 : /* fall through */
670 case 932 : /* fall through */
671 case 933 : /* fall through */
672 case 934 : /* fall through */
673 case 935 : /* fall through */
674 case 936 : /* fall through */
675 case 937 : /* fall through */
676 case 938 : /* fall through */
677 case 939 : /* fall through */
678 case 940 : /* fall through */
679 case 941 : /* fall through */
680 case 942 : /* fall through */
681 case 943 : itype
= SH64_MEDIA_INSN_PTA
; goto extract_sfmt_pta
; case 944 : /* fall through */
682 case 945 : /* fall through */
683 case 946 : /* fall through */
684 case 947 : /* fall through */
685 case 948 : /* fall through */
686 case 949 : /* fall through */
687 case 950 : /* fall through */
688 case 951 : /* fall through */
689 case 952 : /* fall through */
690 case 953 : /* fall through */
691 case 954 : /* fall through */
692 case 955 : /* fall through */
693 case 956 : /* fall through */
694 case 957 : /* fall through */
695 case 958 : /* fall through */
696 case 959 : itype
= SH64_MEDIA_INSN_PTB
; goto extract_sfmt_pta
; default : itype
= SH64_MEDIA_INSN_X_INVALID
; goto extract_sfmt_empty
;
701 /* The instruction has been decoded, now extract the fields. */
705 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
706 #define FLD(f) abuf->fields.fmt_empty.f
709 /* Record the fields for the semantic handler. */
710 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_empty", (char *) 0));
718 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
719 CGEN_INSN_INT insn
= entire_insn
;
720 #define FLD(f) abuf->fields.sfmt_add.f
725 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
726 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
727 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
729 /* Record the fields for the semantic handler. */
730 FLD (f_left
) = f_left
;
731 FLD (f_right
) = f_right
;
732 FLD (f_dest
) = f_dest
;
733 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));
741 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
742 CGEN_INSN_INT insn
= entire_insn
;
743 #define FLD(f) abuf->fields.sfmt_addi.f
748 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
749 f_disp10
= EXTRACT_LSB0_INT (insn
, 32, 19, 10);
750 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
752 /* Record the fields for the semantic handler. */
753 FLD (f_disp10
) = f_disp10
;
754 FLD (f_left
) = f_left
;
755 FLD (f_dest
) = f_dest
;
756 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));
764 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
765 #define FLD(f) abuf->fields.fmt_empty.f
768 /* Record the fields for the semantic handler. */
769 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_alloco", (char *) 0));
777 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
778 CGEN_INSN_INT insn
= entire_insn
;
779 #define FLD(f) abuf->fields.sfmt_beq.f
784 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
785 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
786 f_tra
= EXTRACT_LSB0_UINT (insn
, 32, 6, 3);
788 /* Record the fields for the semantic handler. */
789 FLD (f_left
) = f_left
;
790 FLD (f_right
) = f_right
;
792 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));
800 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
801 CGEN_INSN_INT insn
= entire_insn
;
802 #define FLD(f) abuf->fields.sfmt_beqi.f
807 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
808 f_imm6
= EXTRACT_LSB0_INT (insn
, 32, 15, 6);
809 f_tra
= EXTRACT_LSB0_UINT (insn
, 32, 6, 3);
811 /* Record the fields for the semantic handler. */
812 FLD (f_imm6
) = f_imm6
;
813 FLD (f_left
) = f_left
;
815 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));
823 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
824 CGEN_INSN_INT insn
= entire_insn
;
825 #define FLD(f) abuf->fields.sfmt_blink.f
829 f_trb
= EXTRACT_LSB0_UINT (insn
, 32, 22, 3);
830 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
832 /* Record the fields for the semantic handler. */
834 FLD (f_dest
) = f_dest
;
835 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_blink", "f_trb 0x%x", 'x', f_trb
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
843 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
844 #define FLD(f) abuf->fields.fmt_empty.f
847 /* Record the fields for the semantic handler. */
848 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_brk", (char *) 0));
854 extract_sfmt_byterev
:
856 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
857 CGEN_INSN_INT insn
= entire_insn
;
858 #define FLD(f) abuf->fields.sfmt_xori.f
862 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
863 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
865 /* Record the fields for the semantic handler. */
866 FLD (f_left
) = f_left
;
867 FLD (f_dest
) = f_dest
;
868 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));
876 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
877 CGEN_INSN_INT insn
= entire_insn
;
878 #define FLD(f) abuf->fields.sfmt_add.f
883 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
884 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
885 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
887 /* Record the fields for the semantic handler. */
888 FLD (f_left
) = f_left
;
889 FLD (f_right
) = f_right
;
890 FLD (f_dest
) = f_dest
;
891 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));
899 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
900 CGEN_INSN_INT insn
= entire_insn
;
901 #define FLD(f) abuf->fields.sfmt_fabsd.f
907 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
908 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
909 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
910 f_left_right
= f_left
;
912 /* Record the fields for the semantic handler. */
913 FLD (f_left_right
) = f_left_right
;
914 FLD (f_dest
) = f_dest
;
915 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));
923 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
924 CGEN_INSN_INT insn
= entire_insn
;
925 #define FLD(f) abuf->fields.sfmt_fabsd.f
931 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
932 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
933 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
934 f_left_right
= f_left
;
936 /* Record the fields for the semantic handler. */
937 FLD (f_left_right
) = f_left_right
;
938 FLD (f_dest
) = f_dest
;
939 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));
947 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
948 CGEN_INSN_INT insn
= entire_insn
;
949 #define FLD(f) abuf->fields.sfmt_add.f
954 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
955 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
956 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
958 /* Record the fields for the semantic handler. */
959 FLD (f_left
) = f_left
;
960 FLD (f_right
) = f_right
;
961 FLD (f_dest
) = f_dest
;
962 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));
970 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
971 CGEN_INSN_INT insn
= entire_insn
;
972 #define FLD(f) abuf->fields.sfmt_add.f
977 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
978 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
979 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
981 /* Record the fields for the semantic handler. */
982 FLD (f_left
) = f_left
;
983 FLD (f_right
) = f_right
;
984 FLD (f_dest
) = f_dest
;
985 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));
991 extract_sfmt_fcmpeqd
:
993 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
994 CGEN_INSN_INT insn
= entire_insn
;
995 #define FLD(f) abuf->fields.sfmt_add.f
1000 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1001 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1002 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1004 /* Record the fields for the semantic handler. */
1005 FLD (f_left
) = f_left
;
1006 FLD (f_right
) = f_right
;
1007 FLD (f_dest
) = f_dest
;
1008 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));
1014 extract_sfmt_fcmpeqs
:
1016 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1017 CGEN_INSN_INT insn
= entire_insn
;
1018 #define FLD(f) abuf->fields.sfmt_add.f
1023 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1024 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1025 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1027 /* Record the fields for the semantic handler. */
1028 FLD (f_left
) = f_left
;
1029 FLD (f_right
) = f_right
;
1030 FLD (f_dest
) = f_dest
;
1031 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));
1037 extract_sfmt_fcnvds
:
1039 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1040 CGEN_INSN_INT insn
= entire_insn
;
1041 #define FLD(f) abuf->fields.sfmt_fabsd.f
1047 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1048 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1049 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1050 f_left_right
= f_left
;
1052 /* Record the fields for the semantic handler. */
1053 FLD (f_left_right
) = f_left_right
;
1054 FLD (f_dest
) = f_dest
;
1055 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));
1061 extract_sfmt_fcnvsd
:
1063 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1064 CGEN_INSN_INT insn
= entire_insn
;
1065 #define FLD(f) abuf->fields.sfmt_fabsd.f
1071 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1072 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1073 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1074 f_left_right
= f_left
;
1076 /* Record the fields for the semantic handler. */
1077 FLD (f_left_right
) = f_left_right
;
1078 FLD (f_dest
) = f_dest
;
1079 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));
1087 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1088 CGEN_INSN_INT insn
= entire_insn
;
1089 #define FLD(f) abuf->fields.sfmt_add.f
1094 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1095 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1096 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1098 /* Record the fields for the semantic handler. */
1099 FLD (f_left
) = f_left
;
1100 FLD (f_right
) = f_right
;
1101 FLD (f_dest
) = f_dest
;
1102 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));
1110 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1111 CGEN_INSN_INT insn
= entire_insn
;
1112 #define FLD(f) abuf->fields.sfmt_fldd.f
1117 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1118 f_disp10x8
= ((EXTRACT_LSB0_INT (insn
, 32, 19, 10)) << (3));
1119 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1121 /* Record the fields for the semantic handler. */
1122 FLD (f_disp10x8
) = f_disp10x8
;
1123 FLD (f_left
) = f_left
;
1124 FLD (f_dest
) = f_dest
;
1125 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));
1133 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1134 CGEN_INSN_INT insn
= entire_insn
;
1135 #define FLD(f) abuf->fields.sfmt_fldd.f
1140 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1141 f_disp10x8
= ((EXTRACT_LSB0_INT (insn
, 32, 19, 10)) << (3));
1142 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1144 /* Record the fields for the semantic handler. */
1145 FLD (f_disp10x8
) = f_disp10x8
;
1146 FLD (f_dest
) = f_dest
;
1147 FLD (f_left
) = f_left
;
1148 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));
1156 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1157 CGEN_INSN_INT insn
= entire_insn
;
1158 #define FLD(f) abuf->fields.sfmt_flds.f
1163 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1164 f_disp10x4
= ((EXTRACT_LSB0_INT (insn
, 32, 19, 10)) << (2));
1165 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1167 /* Record the fields for the semantic handler. */
1168 FLD (f_disp10x4
) = f_disp10x4
;
1169 FLD (f_left
) = f_left
;
1170 FLD (f_dest
) = f_dest
;
1171 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));
1179 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1180 CGEN_INSN_INT insn
= entire_insn
;
1181 #define FLD(f) abuf->fields.sfmt_add.f
1186 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1187 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1188 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1190 /* Record the fields for the semantic handler. */
1191 FLD (f_left
) = f_left
;
1192 FLD (f_right
) = f_right
;
1193 FLD (f_dest
) = f_dest
;
1194 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));
1202 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1203 CGEN_INSN_INT insn
= entire_insn
;
1204 #define FLD(f) abuf->fields.sfmt_add.f
1209 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1210 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1211 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1213 /* Record the fields for the semantic handler. */
1214 FLD (f_dest
) = f_dest
;
1215 FLD (f_left
) = f_left
;
1216 FLD (f_right
) = f_right
;
1217 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));
1225 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1226 CGEN_INSN_INT insn
= entire_insn
;
1227 #define FLD(f) abuf->fields.sfmt_add.f
1232 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1233 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1234 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1236 /* Record the fields for the semantic handler. */
1237 FLD (f_left
) = f_left
;
1238 FLD (f_right
) = f_right
;
1239 FLD (f_dest
) = f_dest
;
1240 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));
1248 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1249 CGEN_INSN_INT insn
= entire_insn
;
1250 #define FLD(f) abuf->fields.sfmt_add.f
1255 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1256 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1257 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1259 /* Record the fields for the semantic handler. */
1260 FLD (f_dest
) = f_dest
;
1261 FLD (f_left
) = f_left
;
1262 FLD (f_right
) = f_right
;
1263 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));
1269 extract_sfmt_fmovdq
:
1271 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1272 CGEN_INSN_INT insn
= entire_insn
;
1273 #define FLD(f) abuf->fields.sfmt_fabsd.f
1279 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1280 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1281 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1282 f_left_right
= f_left
;
1284 /* Record the fields for the semantic handler. */
1285 FLD (f_left_right
) = f_left_right
;
1286 FLD (f_dest
) = f_dest
;
1287 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));
1293 extract_sfmt_fmovls
:
1295 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1296 CGEN_INSN_INT insn
= entire_insn
;
1297 #define FLD(f) abuf->fields.sfmt_xori.f
1301 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1302 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1304 /* Record the fields for the semantic handler. */
1305 FLD (f_left
) = f_left
;
1306 FLD (f_dest
) = f_dest
;
1307 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));
1313 extract_sfmt_fmovqd
:
1315 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1316 CGEN_INSN_INT insn
= entire_insn
;
1317 #define FLD(f) abuf->fields.sfmt_xori.f
1321 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1322 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1324 /* Record the fields for the semantic handler. */
1325 FLD (f_left
) = f_left
;
1326 FLD (f_dest
) = f_dest
;
1327 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));
1333 extract_sfmt_fmovsl
:
1335 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1336 CGEN_INSN_INT insn
= entire_insn
;
1337 #define FLD(f) abuf->fields.sfmt_fabsd.f
1343 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1344 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1345 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1346 f_left_right
= f_left
;
1348 /* Record the fields for the semantic handler. */
1349 FLD (f_left_right
) = f_left_right
;
1350 FLD (f_dest
) = f_dest
;
1351 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));
1359 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1360 CGEN_INSN_INT insn
= entire_insn
;
1361 #define FLD(f) abuf->fields.sfmt_fldd.f
1366 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1367 f_disp10x8
= ((EXTRACT_LSB0_INT (insn
, 32, 19, 10)) << (3));
1368 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1370 /* Record the fields for the semantic handler. */
1371 FLD (f_disp10x8
) = f_disp10x8
;
1372 FLD (f_dest
) = f_dest
;
1373 FLD (f_left
) = f_left
;
1374 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));
1382 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1383 CGEN_INSN_INT insn
= entire_insn
;
1384 #define FLD(f) abuf->fields.sfmt_fldd.f
1389 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1390 f_disp10x8
= ((EXTRACT_LSB0_INT (insn
, 32, 19, 10)) << (3));
1391 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1393 /* Record the fields for the semantic handler. */
1394 FLD (f_disp10x8
) = f_disp10x8
;
1395 FLD (f_dest
) = f_dest
;
1396 FLD (f_left
) = f_left
;
1397 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fstp", "f_disp10x8 0x%x", 'x', f_disp10x8
, "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, (char *) 0));
1405 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1406 CGEN_INSN_INT insn
= entire_insn
;
1407 #define FLD(f) abuf->fields.sfmt_flds.f
1412 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1413 f_disp10x4
= ((EXTRACT_LSB0_INT (insn
, 32, 19, 10)) << (2));
1414 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1416 /* Record the fields for the semantic handler. */
1417 FLD (f_disp10x4
) = f_disp10x4
;
1418 FLD (f_dest
) = f_dest
;
1419 FLD (f_left
) = f_left
;
1420 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));
1428 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1429 CGEN_INSN_INT insn
= entire_insn
;
1430 #define FLD(f) abuf->fields.sfmt_add.f
1435 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1436 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1437 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1439 /* Record the fields for the semantic handler. */
1440 FLD (f_dest
) = f_dest
;
1441 FLD (f_left
) = f_left
;
1442 FLD (f_right
) = f_right
;
1443 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));
1451 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1452 CGEN_INSN_INT insn
= entire_insn
;
1453 #define FLD(f) abuf->fields.sfmt_add.f
1458 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1459 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1460 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1462 /* Record the fields for the semantic handler. */
1463 FLD (f_dest
) = f_dest
;
1464 FLD (f_left
) = f_left
;
1465 FLD (f_right
) = f_right
;
1466 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fstxp", "f_dest 0x%x", 'x', f_dest
, "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, (char *) 0));
1474 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1475 CGEN_INSN_INT insn
= entire_insn
;
1476 #define FLD(f) abuf->fields.sfmt_add.f
1481 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1482 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1483 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1485 /* Record the fields for the semantic handler. */
1486 FLD (f_dest
) = f_dest
;
1487 FLD (f_left
) = f_left
;
1488 FLD (f_right
) = f_right
;
1489 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));
1497 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1498 CGEN_INSN_INT insn
= entire_insn
;
1499 #define FLD(f) abuf->fields.sfmt_add.f
1504 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1505 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1506 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1508 /* Record the fields for the semantic handler. */
1509 FLD (f_dest
) = f_dest
;
1510 FLD (f_left
) = f_left
;
1511 FLD (f_right
) = f_right
;
1512 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));
1518 extract_sfmt_getcon
:
1520 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1521 CGEN_INSN_INT insn
= entire_insn
;
1522 #define FLD(f) abuf->fields.sfmt_xori.f
1526 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1527 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1529 /* Record the fields for the semantic handler. */
1530 FLD (f_left
) = f_left
;
1531 FLD (f_dest
) = f_dest
;
1532 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));
1540 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1541 CGEN_INSN_INT insn
= entire_insn
;
1542 #define FLD(f) abuf->fields.sfmt_blink.f
1546 f_trb
= EXTRACT_LSB0_UINT (insn
, 32, 22, 3);
1547 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1549 /* Record the fields for the semantic handler. */
1550 FLD (f_trb
) = f_trb
;
1551 FLD (f_dest
) = f_dest
;
1552 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));
1560 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1561 CGEN_INSN_INT insn
= entire_insn
;
1562 #define FLD(f) abuf->fields.sfmt_addi.f
1567 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1568 f_disp10
= EXTRACT_LSB0_INT (insn
, 32, 19, 10);
1569 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1571 /* Record the fields for the semantic handler. */
1572 FLD (f_disp10
) = f_disp10
;
1573 FLD (f_left
) = f_left
;
1574 FLD (f_dest
) = f_dest
;
1575 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));
1583 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1584 CGEN_INSN_INT insn
= entire_insn
;
1585 #define FLD(f) abuf->fields.sfmt_flds.f
1590 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1591 f_disp10x4
= ((EXTRACT_LSB0_INT (insn
, 32, 19, 10)) << (2));
1592 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1594 /* Record the fields for the semantic handler. */
1595 FLD (f_disp10x4
) = f_disp10x4
;
1596 FLD (f_left
) = f_left
;
1597 FLD (f_dest
) = f_dest
;
1598 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));
1606 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1607 CGEN_INSN_INT insn
= entire_insn
;
1608 #define FLD(f) abuf->fields.sfmt_fldd.f
1613 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1614 f_disp10x8
= ((EXTRACT_LSB0_INT (insn
, 32, 19, 10)) << (3));
1615 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1617 /* Record the fields for the semantic handler. */
1618 FLD (f_disp10x8
) = f_disp10x8
;
1619 FLD (f_left
) = f_left
;
1620 FLD (f_dest
) = f_dest
;
1621 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));
1629 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1630 CGEN_INSN_INT insn
= entire_insn
;
1631 #define FLD(f) abuf->fields.sfmt_lduw.f
1636 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1637 f_disp10x2
= ((EXTRACT_LSB0_INT (insn
, 32, 19, 10)) << (1));
1638 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1640 /* Record the fields for the semantic handler. */
1641 FLD (f_disp10x2
) = f_disp10x2
;
1642 FLD (f_left
) = f_left
;
1643 FLD (f_dest
) = f_dest
;
1644 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));
1652 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1653 CGEN_INSN_INT insn
= entire_insn
;
1654 #define FLD(f) abuf->fields.sfmt_add.f
1659 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1660 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1661 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1663 /* Record the fields for the semantic handler. */
1664 FLD (f_left
) = f_left
;
1665 FLD (f_right
) = f_right
;
1666 FLD (f_dest
) = f_dest
;
1667 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));
1675 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1676 CGEN_INSN_INT insn
= entire_insn
;
1677 #define FLD(f) abuf->fields.sfmt_add.f
1682 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1683 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1684 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1686 /* Record the fields for the semantic handler. */
1687 FLD (f_dest
) = f_dest
;
1688 FLD (f_left
) = f_left
;
1689 FLD (f_right
) = f_right
;
1690 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));
1698 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1699 CGEN_INSN_INT insn
= entire_insn
;
1700 #define FLD(f) abuf->fields.sfmt_movi.f
1704 f_imm16
= EXTRACT_LSB0_INT (insn
, 32, 25, 16);
1705 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1707 /* Record the fields for the semantic handler. */
1708 FLD (f_imm16
) = f_imm16
;
1709 FLD (f_dest
) = f_dest
;
1710 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));
1716 extract_sfmt_mpermw
:
1718 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1719 CGEN_INSN_INT insn
= entire_insn
;
1720 #define FLD(f) abuf->fields.sfmt_add.f
1725 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1726 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1727 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1729 /* Record the fields for the semantic handler. */
1730 FLD (f_left
) = f_left
;
1731 FLD (f_right
) = f_right
;
1732 FLD (f_dest
) = f_dest
;
1733 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mpermw", "f_left 0x%x", 'x', f_left
, "f_right 0x%x", 'x', f_right
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
1741 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1742 CGEN_INSN_INT insn
= entire_insn
;
1743 #define FLD(f) abuf->fields.sfmt_ori.f
1748 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1749 f_imm10
= EXTRACT_LSB0_INT (insn
, 32, 19, 10);
1750 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1752 /* Record the fields for the semantic handler. */
1753 FLD (f_imm10
) = f_imm10
;
1754 FLD (f_left
) = f_left
;
1755 FLD (f_dest
) = f_dest
;
1756 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));
1764 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1765 CGEN_INSN_INT insn
= entire_insn
;
1766 #define FLD(f) abuf->fields.sfmt_pta.f
1770 f_disp16
= ((((EXTRACT_LSB0_INT (insn
, 32, 25, 16)) << (2))) + (pc
));
1771 f_tra
= EXTRACT_LSB0_UINT (insn
, 32, 6, 3);
1773 /* Record the fields for the semantic handler. */
1774 FLD (f_disp16
) = f_disp16
;
1775 FLD (f_tra
) = f_tra
;
1776 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));
1784 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1785 CGEN_INSN_INT insn
= entire_insn
;
1786 #define FLD(f) abuf->fields.sfmt_beq.f
1790 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1791 f_tra
= EXTRACT_LSB0_UINT (insn
, 32, 6, 3);
1793 /* Record the fields for the semantic handler. */
1794 FLD (f_right
) = f_right
;
1795 FLD (f_tra
) = f_tra
;
1796 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));
1804 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1805 CGEN_INSN_INT insn
= entire_insn
;
1806 #define FLD(f) abuf->fields.sfmt_beq.f
1810 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1811 f_tra
= EXTRACT_LSB0_UINT (insn
, 32, 6, 3);
1813 /* Record the fields for the semantic handler. */
1814 FLD (f_right
) = f_right
;
1815 FLD (f_tra
) = f_tra
;
1816 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));
1822 extract_sfmt_putcon
:
1824 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1825 CGEN_INSN_INT insn
= entire_insn
;
1826 #define FLD(f) abuf->fields.sfmt_xori.f
1830 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1831 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1833 /* Record the fields for the semantic handler. */
1834 FLD (f_left
) = f_left
;
1835 FLD (f_dest
) = f_dest
;
1836 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));
1844 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1845 CGEN_INSN_INT insn
= entire_insn
;
1846 #define FLD(f) abuf->fields.sfmt_shari.f
1851 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1852 f_uimm6
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1853 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1855 /* Record the fields for the semantic handler. */
1856 FLD (f_left
) = f_left
;
1857 FLD (f_uimm6
) = f_uimm6
;
1858 FLD (f_dest
) = f_dest
;
1859 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));
1865 extract_sfmt_sharil
:
1867 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1868 CGEN_INSN_INT insn
= entire_insn
;
1869 #define FLD(f) abuf->fields.sfmt_shari.f
1874 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1875 f_uimm6
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
1876 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1878 /* Record the fields for the semantic handler. */
1879 FLD (f_left
) = f_left
;
1880 FLD (f_uimm6
) = f_uimm6
;
1881 FLD (f_dest
) = f_dest
;
1882 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_sharil", "f_left 0x%x", 'x', f_left
, "f_uimm6 0x%x", 'x', f_uimm6
, "f_dest 0x%x", 'x', f_dest
, (char *) 0));
1890 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1891 CGEN_INSN_INT insn
= entire_insn
;
1892 #define FLD(f) abuf->fields.sfmt_shori.f
1896 f_uimm16
= EXTRACT_LSB0_UINT (insn
, 32, 25, 16);
1897 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1899 /* Record the fields for the semantic handler. */
1900 FLD (f_dest
) = f_dest
;
1901 FLD (f_uimm16
) = f_uimm16
;
1902 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));
1910 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1911 CGEN_INSN_INT insn
= entire_insn
;
1912 #define FLD(f) abuf->fields.sfmt_addi.f
1917 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1918 f_disp10
= EXTRACT_LSB0_INT (insn
, 32, 19, 10);
1919 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1921 /* Record the fields for the semantic handler. */
1922 FLD (f_disp10
) = f_disp10
;
1923 FLD (f_dest
) = f_dest
;
1924 FLD (f_left
) = f_left
;
1925 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));
1933 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1934 CGEN_INSN_INT insn
= entire_insn
;
1935 #define FLD(f) abuf->fields.sfmt_flds.f
1940 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1941 f_disp10x4
= ((EXTRACT_LSB0_INT (insn
, 32, 19, 10)) << (2));
1942 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1944 /* Record the fields for the semantic handler. */
1945 FLD (f_disp10x4
) = f_disp10x4
;
1946 FLD (f_dest
) = f_dest
;
1947 FLD (f_left
) = f_left
;
1948 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));
1956 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1957 CGEN_INSN_INT insn
= entire_insn
;
1958 #define FLD(f) abuf->fields.sfmt_fldd.f
1963 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1964 f_disp10x8
= ((EXTRACT_LSB0_INT (insn
, 32, 19, 10)) << (3));
1965 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1967 /* Record the fields for the semantic handler. */
1968 FLD (f_disp10x8
) = f_disp10x8
;
1969 FLD (f_dest
) = f_dest
;
1970 FLD (f_left
) = f_left
;
1971 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));
1979 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
1980 CGEN_INSN_INT insn
= entire_insn
;
1981 #define FLD(f) abuf->fields.sfmt_lduw.f
1986 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
1987 f_disp10x2
= ((EXTRACT_LSB0_INT (insn
, 32, 19, 10)) << (1));
1988 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
1990 /* Record the fields for the semantic handler. */
1991 FLD (f_disp10x2
) = f_disp10x2
;
1992 FLD (f_dest
) = f_dest
;
1993 FLD (f_left
) = f_left
;
1994 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));
2002 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2003 CGEN_INSN_INT insn
= entire_insn
;
2004 #define FLD(f) abuf->fields.sfmt_sthil.f
2009 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
2010 f_disp6
= EXTRACT_LSB0_INT (insn
, 32, 15, 6);
2011 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
2013 /* Record the fields for the semantic handler. */
2014 FLD (f_disp6
) = f_disp6
;
2015 FLD (f_dest
) = f_dest
;
2016 FLD (f_left
) = f_left
;
2017 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));
2025 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2026 CGEN_INSN_INT insn
= entire_insn
;
2027 #define FLD(f) abuf->fields.sfmt_add.f
2032 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
2033 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
2034 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
2036 /* Record the fields for the semantic handler. */
2037 FLD (f_dest
) = f_dest
;
2038 FLD (f_left
) = f_left
;
2039 FLD (f_right
) = f_right
;
2040 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));
2048 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2049 CGEN_INSN_INT insn
= entire_insn
;
2050 #define FLD(f) abuf->fields.sfmt_add.f
2055 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
2056 f_right
= EXTRACT_LSB0_UINT (insn
, 32, 15, 6);
2057 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
2059 /* Record the fields for the semantic handler. */
2060 FLD (f_dest
) = f_dest
;
2061 FLD (f_left
) = f_left
;
2062 FLD (f_right
) = f_right
;
2063 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));
2071 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2072 CGEN_INSN_INT insn
= entire_insn
;
2073 #define FLD(f) abuf->fields.sfmt_xori.f
2076 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
2078 /* Record the fields for the semantic handler. */
2079 FLD (f_left
) = f_left
;
2080 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_trapa", "f_left 0x%x", 'x', f_left
, (char *) 0));
2088 const IDESC
*idesc
= &sh64_media_insn_data
[itype
];
2089 CGEN_INSN_INT insn
= entire_insn
;
2090 #define FLD(f) abuf->fields.sfmt_xori.f
2095 f_left
= EXTRACT_LSB0_UINT (insn
, 32, 25, 6);
2096 f_imm6
= EXTRACT_LSB0_INT (insn
, 32, 15, 6);
2097 f_dest
= EXTRACT_LSB0_UINT (insn
, 32, 9, 6);
2099 /* Record the fields for the semantic handler. */
2100 FLD (f_imm6
) = f_imm6
;
2101 FLD (f_left
) = f_left
;
2102 FLD (f_dest
) = f_dest
;
2103 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));