1 /////////////////////////////////////////////////////////////////////////
2 // $Id: fetchdecode.h,v 1.77 2008/09/16 18:28:53 sshwarts Exp $
3 /////////////////////////////////////////////////////////////////////////
5 // Copyright (c) 2005 Stanislav Shwartsman
6 // Written by Stanislav Shwartsman [sshwarts at sourceforge net]
8 // This library is free software; you can redistribute it and/or
9 // modify it under the terms of the GNU Lesser General Public
10 // License as published by the Free Software Foundation; either
11 // version 2 of the License, or (at your option) any later version.
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // Lesser General Public License for more details.
18 // You should have received a copy of the GNU Lesser General Public
19 // License along with this library; if not, write to the Free Software
20 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 /////////////////////////////////////////////////////////////////////////
24 #ifndef BX_COMMON_FETCHDECODE_TABLES_H
25 #define BX_COMMON_FETCHDECODE_TABLES_H
27 typedef struct BxOpcodeInfo_t
{
30 const BxOpcodeInfo_t
*AnotherArray
;
34 // This file contains common IA-32/X86-64 opcode tables, like FPU opcode
35 // table, 3DNow! opcode table or SSE opcode groups (choose the opcode
36 // according to instruction prefixes)
39 BX_CPP_INLINE Bit16u
FetchWORD(const Bit8u
*iptr
)
42 ReadHostWordFromLittleEndian(iptr
, data
);
46 BX_CPP_INLINE Bit32u
FetchDWORD(const Bit8u
*iptr
)
49 ReadHostDWordFromLittleEndian(iptr
, data
);
54 BX_CPP_INLINE Bit64u
FetchQWORD(const Bit8u
*iptr
)
57 ReadHostQWordFromLittleEndian(iptr
, data
);
62 struct bxIAOpcodeTable
{
63 BxExecutePtr_tR execute1
;
64 BxExecutePtr_tR execute2
;
68 #define bx_define_opcode(a, b, c) a,
69 #include "ia_opcodes.h"
72 #undef bx_define_opcode
75 // Common FetchDecode Opcode Tables
80 /* ************************************************************************ */
83 // floating point instructions when mod!=11b.
84 // the following tables will be accessed like groups using the nnn (reg) field of
85 // the modrm byte. (the first byte is D8-DF)
87 // D8 (modrm is outside 00h - BFh) (mod != 11)
88 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupD8
[8] = {
89 /* 0 */ { 0, BX_IA_FADD_SINGLE_REAL
},
90 /* 1 */ { 0, BX_IA_FMUL_SINGLE_REAL
},
91 /* 2 */ { 0, BX_IA_FCOM_SINGLE_REAL
},
92 /* 3 */ { 0, BX_IA_FCOM_SINGLE_REAL
}, // FCOMP_SINGLE_REAL
93 /* 4 */ { 0, BX_IA_FSUB_SINGLE_REAL
},
94 /* 5 */ { 0, BX_IA_FSUBR_SINGLE_REAL
},
95 /* 6 */ { 0, BX_IA_FDIV_SINGLE_REAL
},
96 /* 7 */ { 0, BX_IA_FDIVR_SINGLE_REAL
}
99 // D9 (modrm is outside 00h - BFh) (mod != 11)
100 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupD9
[8] = {
101 /* 0 */ { 0, BX_IA_FLD_SINGLE_REAL
},
102 /* 1 */ { 0, BX_IA_ERROR
},
103 /* 2 */ { 0, BX_IA_FST_SINGLE_REAL
},
104 /* 3 */ { 0, BX_IA_FST_SINGLE_REAL
}, // FSTP_SINGLE_REAL
105 /* 4 */ { 0, BX_IA_FLDENV
},
106 /* 5 */ { 0, BX_IA_FLDCW
},
107 /* 6 */ { 0, BX_IA_FNSTENV
},
108 /* 7 */ { 0, BX_IA_FNSTCW
}
111 // DA (modrm is outside 00h - BFh) (mod != 11)
112 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupDA
[8] = {
113 /* 0 */ { 0, BX_IA_FIADD_DWORD_INTEGER
},
114 /* 1 */ { 0, BX_IA_FIMUL_DWORD_INTEGER
},
115 /* 2 */ { 0, BX_IA_FICOM_DWORD_INTEGER
},
116 /* 3 */ { 0, BX_IA_FICOM_DWORD_INTEGER
}, // FICOMP_DWORD_INTEGER
117 /* 4 */ { 0, BX_IA_FISUB_DWORD_INTEGER
},
118 /* 5 */ { 0, BX_IA_FISUBR_DWORD_INTEGER
},
119 /* 6 */ { 0, BX_IA_FIDIV_DWORD_INTEGER
},
120 /* 7 */ { 0, BX_IA_FIDIVR_DWORD_INTEGER
}
123 // DB (modrm is outside 00h - BFh) (mod != 11)
124 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupDB
[8] = {
125 /* 0 */ { 0, BX_IA_FILD_DWORD_INTEGER
},
126 /* 1 */ { 0, BX_IA_FISTTP32
},
127 /* 2 */ { 0, BX_IA_FIST_DWORD_INTEGER
},
128 /* 3 */ { 0, BX_IA_FIST_DWORD_INTEGER
}, // FISTP_DWORD_INTEGER
129 /* 4 */ { 0, BX_IA_ERROR
},
130 /* 5 */ { 0, BX_IA_FLD_EXTENDED_REAL
},
131 /* 6 */ { 0, BX_IA_ERROR
},
132 /* 7 */ { 0, BX_IA_FSTP_EXTENDED_REAL
}
135 // DC (modrm is outside 00h - BFh) (mod != 11)
136 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupDC
[8] = {
137 /* 0 */ { 0, BX_IA_FADD_DOUBLE_REAL
},
138 /* 1 */ { 0, BX_IA_FMUL_DOUBLE_REAL
},
139 /* 2 */ { 0, BX_IA_FCOM_DOUBLE_REAL
},
140 /* 3 */ { 0, BX_IA_FCOM_DOUBLE_REAL
}, // FCOMP_DOUBLE_REAL
141 /* 4 */ { 0, BX_IA_FSUB_DOUBLE_REAL
},
142 /* 5 */ { 0, BX_IA_FSUBR_DOUBLE_REAL
},
143 /* 6 */ { 0, BX_IA_FDIV_DOUBLE_REAL
},
144 /* 7 */ { 0, BX_IA_FDIVR_DOUBLE_REAL
}
147 // DD (modrm is outside 00h - BFh) (mod != 11)
148 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupDD
[8] = {
149 /* 0 */ { 0, BX_IA_FLD_DOUBLE_REAL
},
150 /* 1 */ { 0, BX_IA_FISTTP64
},
151 /* 2 */ { 0, BX_IA_FST_DOUBLE_REAL
},
152 /* 3 */ { 0, BX_IA_FST_DOUBLE_REAL
}, // FSTP_DOUBLE_REAL
153 /* 4 */ { 0, BX_IA_FRSTOR
},
154 /* 5 */ { 0, BX_IA_ERROR
},
155 /* 6 */ { 0, BX_IA_FNSAVE
},
156 /* 7 */ { 0, BX_IA_FNSTSW
}
159 // DE (modrm is outside 00h - BFh) (mod != 11)
160 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupDE
[8] = {
161 /* 0 */ { 0, BX_IA_FIADD_WORD_INTEGER
},
162 /* 1 */ { 0, BX_IA_FIMUL_WORD_INTEGER
},
163 /* 2 */ { 0, BX_IA_FICOM_WORD_INTEGER
},
164 /* 3 */ { 0, BX_IA_FICOM_WORD_INTEGER
}, // FICOMP_WORD_INTEGER
165 /* 4 */ { 0, BX_IA_FISUB_WORD_INTEGER
},
166 /* 5 */ { 0, BX_IA_FISUBR_WORD_INTEGER
},
167 /* 6 */ { 0, BX_IA_FIDIV_WORD_INTEGER
},
168 /* 7 */ { 0, BX_IA_FIDIVR_WORD_INTEGER
}
171 // DF (modrm is outside 00h - BFh) (mod != 11)
172 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupDF
[8] = {
173 /* 0 */ { 0, BX_IA_FILD_WORD_INTEGER
},
174 /* 1 */ { 0, BX_IA_FISTTP16
},
175 /* 2 */ { 0, BX_IA_FIST_WORD_INTEGER
},
176 /* 3 */ { 0, BX_IA_FIST_WORD_INTEGER
}, // FISTP_WORD_INTEGER
177 /* 4 */ { 0, BX_IA_FBLD_PACKED_BCD
},
178 /* 5 */ { 0, BX_IA_FILD_QWORD_INTEGER
},
179 /* 6 */ { 0, BX_IA_FBSTP_PACKED_BCD
},
180 /* 7 */ { 0, BX_IA_FISTP_QWORD_INTEGER
}
183 // 512 entries for second byte of floating point instructions. (when mod==11b)
184 static const BxOpcodeInfo_t BxOpcodeInfo_FloatingPointD8
[64] = {
185 // D8 (modrm is outside 00h - BFh) (mod == 11)
186 /* D8 C0 */ { 0, BX_IA_FADD_ST0_STj
},
187 /* D8 C1 */ { 0, BX_IA_FADD_ST0_STj
},
188 /* D8 C2 */ { 0, BX_IA_FADD_ST0_STj
},
189 /* D8 C3 */ { 0, BX_IA_FADD_ST0_STj
},
190 /* D8 C4 */ { 0, BX_IA_FADD_ST0_STj
},
191 /* D8 C5 */ { 0, BX_IA_FADD_ST0_STj
},
192 /* D8 C6 */ { 0, BX_IA_FADD_ST0_STj
},
193 /* D8 C7 */ { 0, BX_IA_FADD_ST0_STj
},
194 /* D8 C8 */ { 0, BX_IA_FMUL_ST0_STj
},
195 /* D8 C9 */ { 0, BX_IA_FMUL_ST0_STj
},
196 /* D8 CA */ { 0, BX_IA_FMUL_ST0_STj
},
197 /* D8 CB */ { 0, BX_IA_FMUL_ST0_STj
},
198 /* D8 CC */ { 0, BX_IA_FMUL_ST0_STj
},
199 /* D8 CD */ { 0, BX_IA_FMUL_ST0_STj
},
200 /* D8 CE */ { 0, BX_IA_FMUL_ST0_STj
},
201 /* D8 CF */ { 0, BX_IA_FMUL_ST0_STj
},
202 /* D8 D0 */ { 0, BX_IA_FCOM_STi
},
203 /* D8 D1 */ { 0, BX_IA_FCOM_STi
},
204 /* D8 D2 */ { 0, BX_IA_FCOM_STi
},
205 /* D8 D3 */ { 0, BX_IA_FCOM_STi
},
206 /* D8 D4 */ { 0, BX_IA_FCOM_STi
},
207 /* D8 D5 */ { 0, BX_IA_FCOM_STi
},
208 /* D8 D6 */ { 0, BX_IA_FCOM_STi
},
209 /* D8 D7 */ { 0, BX_IA_FCOM_STi
},
210 /* D8 D8 */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi
211 /* D8 D9 */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi
212 /* D8 DA */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi
213 /* D8 DB */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi
214 /* D8 DC */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi
215 /* D8 DD */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi
216 /* D8 DE */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi
217 /* D8 DF */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi
218 /* D8 E0 */ { 0, BX_IA_FSUB_ST0_STj
},
219 /* D8 E1 */ { 0, BX_IA_FSUB_ST0_STj
},
220 /* D8 E2 */ { 0, BX_IA_FSUB_ST0_STj
},
221 /* D8 E3 */ { 0, BX_IA_FSUB_ST0_STj
},
222 /* D8 E4 */ { 0, BX_IA_FSUB_ST0_STj
},
223 /* D8 E5 */ { 0, BX_IA_FSUB_ST0_STj
},
224 /* D8 E6 */ { 0, BX_IA_FSUB_ST0_STj
},
225 /* D8 E7 */ { 0, BX_IA_FSUB_ST0_STj
},
226 /* D8 E8 */ { 0, BX_IA_FSUBR_ST0_STj
},
227 /* D8 E9 */ { 0, BX_IA_FSUBR_ST0_STj
},
228 /* D8 EA */ { 0, BX_IA_FSUBR_ST0_STj
},
229 /* D8 EB */ { 0, BX_IA_FSUBR_ST0_STj
},
230 /* D8 EC */ { 0, BX_IA_FSUBR_ST0_STj
},
231 /* D8 ED */ { 0, BX_IA_FSUBR_ST0_STj
},
232 /* D8 EE */ { 0, BX_IA_FSUBR_ST0_STj
},
233 /* D8 EF */ { 0, BX_IA_FSUBR_ST0_STj
},
234 /* D8 F0 */ { 0, BX_IA_FDIV_ST0_STj
},
235 /* D8 F1 */ { 0, BX_IA_FDIV_ST0_STj
},
236 /* D8 F2 */ { 0, BX_IA_FDIV_ST0_STj
},
237 /* D8 F3 */ { 0, BX_IA_FDIV_ST0_STj
},
238 /* D8 F4 */ { 0, BX_IA_FDIV_ST0_STj
},
239 /* D8 F5 */ { 0, BX_IA_FDIV_ST0_STj
},
240 /* D8 F6 */ { 0, BX_IA_FDIV_ST0_STj
},
241 /* D8 F7 */ { 0, BX_IA_FDIV_ST0_STj
},
242 /* D8 F8 */ { 0, BX_IA_FDIVR_ST0_STj
},
243 /* D8 F9 */ { 0, BX_IA_FDIVR_ST0_STj
},
244 /* D8 FA */ { 0, BX_IA_FDIVR_ST0_STj
},
245 /* D8 FB */ { 0, BX_IA_FDIVR_ST0_STj
},
246 /* D8 FC */ { 0, BX_IA_FDIVR_ST0_STj
},
247 /* D8 FD */ { 0, BX_IA_FDIVR_ST0_STj
},
248 /* D8 FE */ { 0, BX_IA_FDIVR_ST0_STj
},
249 /* D8 FF */ { 0, BX_IA_FDIVR_ST0_STj
}
252 static const BxOpcodeInfo_t BxOpcodeInfo_FloatingPointD9
[64] = {
253 // D9 (modrm is outside 00h - BFh) (mod == 11)
254 /* D9 C0 */ { 0, BX_IA_FLD_STi
},
255 /* D9 C1 */ { 0, BX_IA_FLD_STi
},
256 /* D9 C2 */ { 0, BX_IA_FLD_STi
},
257 /* D9 C3 */ { 0, BX_IA_FLD_STi
},
258 /* D9 C4 */ { 0, BX_IA_FLD_STi
},
259 /* D9 C5 */ { 0, BX_IA_FLD_STi
},
260 /* D9 C6 */ { 0, BX_IA_FLD_STi
},
261 /* D9 C7 */ { 0, BX_IA_FLD_STi
},
262 /* D9 C8 */ { 0, BX_IA_FXCH_STi
},
263 /* D9 C9 */ { 0, BX_IA_FXCH_STi
},
264 /* D9 CA */ { 0, BX_IA_FXCH_STi
},
265 /* D9 CB */ { 0, BX_IA_FXCH_STi
},
266 /* D9 CC */ { 0, BX_IA_FXCH_STi
},
267 /* D9 CD */ { 0, BX_IA_FXCH_STi
},
268 /* D9 CE */ { 0, BX_IA_FXCH_STi
},
269 /* D9 CF */ { 0, BX_IA_FXCH_STi
},
270 /* D9 D0 */ { 0, BX_IA_FNOP
},
271 /* D9 D1 */ { 0, BX_IA_ERROR
},
272 /* D9 D2 */ { 0, BX_IA_ERROR
},
273 /* D9 D3 */ { 0, BX_IA_ERROR
},
274 /* D9 D4 */ { 0, BX_IA_ERROR
},
275 /* D9 D5 */ { 0, BX_IA_ERROR
},
276 /* D9 D6 */ { 0, BX_IA_ERROR
},
277 /* D9 D7 */ { 0, BX_IA_ERROR
},
278 /* D9 D8 */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
279 /* D9 D9 */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
280 /* D9 DA */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
281 /* D9 DB */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
282 /* D9 DC */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
283 /* D9 DD */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
284 /* D9 DE */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
285 /* D9 DF */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
286 /* D9 E0 */ { 0, BX_IA_FCHS
},
287 /* D9 E1 */ { 0, BX_IA_FABS
},
288 /* D9 E2 */ { 0, BX_IA_ERROR
},
289 /* D9 E3 */ { 0, BX_IA_ERROR
},
290 /* D9 E4 */ { 0, BX_IA_FTST
},
291 /* D9 E5 */ { 0, BX_IA_FXAM
},
292 /* D9 E6 */ { 0, BX_IA_ERROR
},
293 /* D9 E7 */ { 0, BX_IA_ERROR
},
294 /* D9 E8 */ { 0, BX_IA_FLD1
},
295 /* D9 E9 */ { 0, BX_IA_FLDL2T
},
296 /* D9 EA */ { 0, BX_IA_FLDL2E
},
297 /* D9 EB */ { 0, BX_IA_FLDPI
},
298 /* D9 EC */ { 0, BX_IA_FLDLG2
},
299 /* D9 ED */ { 0, BX_IA_FLDLN2
},
300 /* D9 EE */ { 0, BX_IA_FLDZ
},
301 /* D9 EF */ { 0, BX_IA_ERROR
},
302 /* D9 F0 */ { 0, BX_IA_F2XM1
},
303 /* D9 F1 */ { 0, BX_IA_FYL2X
},
304 /* D9 F2 */ { 0, BX_IA_FPTAN
},
305 /* D9 F3 */ { 0, BX_IA_FPATAN
},
306 /* D9 F4 */ { 0, BX_IA_FXTRACT
},
307 /* D9 F5 */ { 0, BX_IA_FPREM1
},
308 /* D9 F6 */ { 0, BX_IA_FDECSTP
},
309 /* D9 F7 */ { 0, BX_IA_FINCSTP
},
310 /* D9 F8 */ { 0, BX_IA_FPREM
},
311 /* D9 F9 */ { 0, BX_IA_FYL2XP1
},
312 /* D9 FA */ { 0, BX_IA_FSQRT
},
313 /* D9 FB */ { 0, BX_IA_FSINCOS
},
314 /* D9 FC */ { 0, BX_IA_FRNDINT
},
315 /* D9 FD */ { 0, BX_IA_FSCALE
},
316 /* D9 FE */ { 0, BX_IA_FSIN
},
317 /* D9 FF */ { 0, BX_IA_FCOS
}
320 static const BxOpcodeInfo_t BxOpcodeInfo_FloatingPointDA
[64] = {
321 // DA (modrm is outside 00h - BFh) (mod == 11)
322 /* DA C0 */ { 0, BX_IA_FCMOV_ST0_STj
},
323 /* DA C1 */ { 0, BX_IA_FCMOV_ST0_STj
},
324 /* DA C2 */ { 0, BX_IA_FCMOV_ST0_STj
},
325 /* DA C3 */ { 0, BX_IA_FCMOV_ST0_STj
},
326 /* DA C4 */ { 0, BX_IA_FCMOV_ST0_STj
},
327 /* DA C5 */ { 0, BX_IA_FCMOV_ST0_STj
},
328 /* DA C6 */ { 0, BX_IA_FCMOV_ST0_STj
},
329 /* DA C7 */ { 0, BX_IA_FCMOV_ST0_STj
},
330 /* DA C8 */ { 0, BX_IA_FCMOV_ST0_STj
},
331 /* DA C9 */ { 0, BX_IA_FCMOV_ST0_STj
},
332 /* DA CA */ { 0, BX_IA_FCMOV_ST0_STj
},
333 /* DA CB */ { 0, BX_IA_FCMOV_ST0_STj
},
334 /* DA CC */ { 0, BX_IA_FCMOV_ST0_STj
},
335 /* DA CD */ { 0, BX_IA_FCMOV_ST0_STj
},
336 /* DA CE */ { 0, BX_IA_FCMOV_ST0_STj
},
337 /* DA CF */ { 0, BX_IA_FCMOV_ST0_STj
},
338 /* DA D0 */ { 0, BX_IA_FCMOV_ST0_STj
},
339 /* DA D1 */ { 0, BX_IA_FCMOV_ST0_STj
},
340 /* DA D2 */ { 0, BX_IA_FCMOV_ST0_STj
},
341 /* DA D3 */ { 0, BX_IA_FCMOV_ST0_STj
},
342 /* DA D4 */ { 0, BX_IA_FCMOV_ST0_STj
},
343 /* DA D5 */ { 0, BX_IA_FCMOV_ST0_STj
},
344 /* DA D6 */ { 0, BX_IA_FCMOV_ST0_STj
},
345 /* DA D7 */ { 0, BX_IA_FCMOV_ST0_STj
},
346 /* DA D8 */ { 0, BX_IA_FCMOV_ST0_STj
},
347 /* DA D9 */ { 0, BX_IA_FCMOV_ST0_STj
},
348 /* DA DA */ { 0, BX_IA_FCMOV_ST0_STj
},
349 /* DA DB */ { 0, BX_IA_FCMOV_ST0_STj
},
350 /* DA DC */ { 0, BX_IA_FCMOV_ST0_STj
},
351 /* DA DD */ { 0, BX_IA_FCMOV_ST0_STj
},
352 /* DA DE */ { 0, BX_IA_FCMOV_ST0_STj
},
353 /* DA DF */ { 0, BX_IA_FCMOV_ST0_STj
},
354 /* DA E0 */ { 0, BX_IA_ERROR
},
355 /* DA E1 */ { 0, BX_IA_ERROR
},
356 /* DA E2 */ { 0, BX_IA_ERROR
},
357 /* DA E3 */ { 0, BX_IA_ERROR
},
358 /* DA E4 */ { 0, BX_IA_ERROR
},
359 /* DA E5 */ { 0, BX_IA_ERROR
},
360 /* DA E6 */ { 0, BX_IA_ERROR
},
361 /* DA E7 */ { 0, BX_IA_ERROR
},
362 /* DA E8 */ { 0, BX_IA_ERROR
},
363 /* DA E9 */ { 0, BX_IA_FUCOMPP
},
364 /* DA EA */ { 0, BX_IA_ERROR
},
365 /* DA EB */ { 0, BX_IA_ERROR
},
366 /* DA EC */ { 0, BX_IA_ERROR
},
367 /* DA ED */ { 0, BX_IA_ERROR
},
368 /* DA EE */ { 0, BX_IA_ERROR
},
369 /* DA EF */ { 0, BX_IA_ERROR
},
370 /* DA F0 */ { 0, BX_IA_ERROR
},
371 /* DA F1 */ { 0, BX_IA_ERROR
},
372 /* DA F2 */ { 0, BX_IA_ERROR
},
373 /* DA F3 */ { 0, BX_IA_ERROR
},
374 /* DA F4 */ { 0, BX_IA_ERROR
},
375 /* DA F5 */ { 0, BX_IA_ERROR
},
376 /* DA F6 */ { 0, BX_IA_ERROR
},
377 /* DA F7 */ { 0, BX_IA_ERROR
},
378 /* DA F8 */ { 0, BX_IA_ERROR
},
379 /* DA F9 */ { 0, BX_IA_ERROR
},
380 /* DA FA */ { 0, BX_IA_ERROR
},
381 /* DA FB */ { 0, BX_IA_ERROR
},
382 /* DA FC */ { 0, BX_IA_ERROR
},
383 /* DA FD */ { 0, BX_IA_ERROR
},
384 /* DA FE */ { 0, BX_IA_ERROR
},
385 /* DA FF */ { 0, BX_IA_ERROR
}
388 static const BxOpcodeInfo_t BxOpcodeInfo_FloatingPointDB
[64] = {
389 // DB (modrm is outside 00h - BFh) (mod == 11)
390 /* DB C0 */ { 0, BX_IA_FCMOV_ST0_STj
},
391 /* DB C1 */ { 0, BX_IA_FCMOV_ST0_STj
},
392 /* DB C2 */ { 0, BX_IA_FCMOV_ST0_STj
},
393 /* DB C3 */ { 0, BX_IA_FCMOV_ST0_STj
},
394 /* DB C4 */ { 0, BX_IA_FCMOV_ST0_STj
},
395 /* DB C5 */ { 0, BX_IA_FCMOV_ST0_STj
},
396 /* DB C6 */ { 0, BX_IA_FCMOV_ST0_STj
},
397 /* DB C7 */ { 0, BX_IA_FCMOV_ST0_STj
},
398 /* DB C8 */ { 0, BX_IA_FCMOV_ST0_STj
},
399 /* DB C9 */ { 0, BX_IA_FCMOV_ST0_STj
},
400 /* DB CA */ { 0, BX_IA_FCMOV_ST0_STj
},
401 /* DB CB */ { 0, BX_IA_FCMOV_ST0_STj
},
402 /* DB CC */ { 0, BX_IA_FCMOV_ST0_STj
},
403 /* DB CD */ { 0, BX_IA_FCMOV_ST0_STj
},
404 /* DB CE */ { 0, BX_IA_FCMOV_ST0_STj
},
405 /* DB CF */ { 0, BX_IA_FCMOV_ST0_STj
},
406 /* DB D0 */ { 0, BX_IA_FCMOV_ST0_STj
},
407 /* DB D1 */ { 0, BX_IA_FCMOV_ST0_STj
},
408 /* DB D2 */ { 0, BX_IA_FCMOV_ST0_STj
},
409 /* DB D3 */ { 0, BX_IA_FCMOV_ST0_STj
},
410 /* DB D4 */ { 0, BX_IA_FCMOV_ST0_STj
},
411 /* DB D5 */ { 0, BX_IA_FCMOV_ST0_STj
},
412 /* DB D6 */ { 0, BX_IA_FCMOV_ST0_STj
},
413 /* DB D7 */ { 0, BX_IA_FCMOV_ST0_STj
},
414 /* DB D8 */ { 0, BX_IA_FCMOV_ST0_STj
},
415 /* DB D9 */ { 0, BX_IA_FCMOV_ST0_STj
},
416 /* DB DA */ { 0, BX_IA_FCMOV_ST0_STj
},
417 /* DB DB */ { 0, BX_IA_FCMOV_ST0_STj
},
418 /* DB DC */ { 0, BX_IA_FCMOV_ST0_STj
},
419 /* DB DD */ { 0, BX_IA_FCMOV_ST0_STj
},
420 /* DB DE */ { 0, BX_IA_FCMOV_ST0_STj
},
421 /* DB DF */ { 0, BX_IA_FCMOV_ST0_STj
},
422 /* DB E0 */ { 0, BX_IA_FPLEGACY
}, // feni (287 only)
423 /* DB E1 */ { 0, BX_IA_FPLEGACY
}, // fdisi (287 only)
424 /* DB E2 */ { 0, BX_IA_FNCLEX
},
425 /* DB E3 */ { 0, BX_IA_FNINIT
},
426 /* DB E4 */ { 0, BX_IA_FPLEGACY
}, // fsetpm (287 only)
427 /* DB E5 */ { 0, BX_IA_ERROR
},
428 /* DB E6 */ { 0, BX_IA_ERROR
},
429 /* DB E7 */ { 0, BX_IA_ERROR
},
430 /* DB E8 */ { 0, BX_IA_FUCOMI_ST0_STj
},
431 /* DB E9 */ { 0, BX_IA_FUCOMI_ST0_STj
},
432 /* DB EA */ { 0, BX_IA_FUCOMI_ST0_STj
},
433 /* DB EB */ { 0, BX_IA_FUCOMI_ST0_STj
},
434 /* DB EC */ { 0, BX_IA_FUCOMI_ST0_STj
},
435 /* DB ED */ { 0, BX_IA_FUCOMI_ST0_STj
},
436 /* DB EE */ { 0, BX_IA_FUCOMI_ST0_STj
},
437 /* DB EF */ { 0, BX_IA_FUCOMI_ST0_STj
},
438 /* DB F0 */ { 0, BX_IA_FCOMI_ST0_STj
},
439 /* DB F1 */ { 0, BX_IA_FCOMI_ST0_STj
},
440 /* DB F2 */ { 0, BX_IA_FCOMI_ST0_STj
},
441 /* DB F3 */ { 0, BX_IA_FCOMI_ST0_STj
},
442 /* DB F4 */ { 0, BX_IA_FCOMI_ST0_STj
},
443 /* DB F5 */ { 0, BX_IA_FCOMI_ST0_STj
},
444 /* DB F6 */ { 0, BX_IA_FCOMI_ST0_STj
},
445 /* DB F7 */ { 0, BX_IA_FCOMI_ST0_STj
},
446 /* DB F8 */ { 0, BX_IA_ERROR
},
447 /* DB F9 */ { 0, BX_IA_ERROR
},
448 /* DB FA */ { 0, BX_IA_ERROR
},
449 /* DB FB */ { 0, BX_IA_ERROR
},
450 /* DB FC */ { 0, BX_IA_ERROR
},
451 /* DB FD */ { 0, BX_IA_ERROR
},
452 /* DB FE */ { 0, BX_IA_ERROR
},
453 /* DB FF */ { 0, BX_IA_ERROR
}
456 static const BxOpcodeInfo_t BxOpcodeInfo_FloatingPointDC
[64] = {
457 // DC (modrm is outside 00h - BFh) (mod == 11)
458 /* DC C0 */ { 0, BX_IA_FADD_STi_ST0
},
459 /* DC C1 */ { 0, BX_IA_FADD_STi_ST0
},
460 /* DC C2 */ { 0, BX_IA_FADD_STi_ST0
},
461 /* DC C3 */ { 0, BX_IA_FADD_STi_ST0
},
462 /* DC C4 */ { 0, BX_IA_FADD_STi_ST0
},
463 /* DC C5 */ { 0, BX_IA_FADD_STi_ST0
},
464 /* DC C6 */ { 0, BX_IA_FADD_STi_ST0
},
465 /* DC C7 */ { 0, BX_IA_FADD_STi_ST0
},
466 /* DC C8 */ { 0, BX_IA_FMUL_STi_ST0
},
467 /* DC C9 */ { 0, BX_IA_FMUL_STi_ST0
},
468 /* DC CA */ { 0, BX_IA_FMUL_STi_ST0
},
469 /* DC CB */ { 0, BX_IA_FMUL_STi_ST0
},
470 /* DC CC */ { 0, BX_IA_FMUL_STi_ST0
},
471 /* DC CD */ { 0, BX_IA_FMUL_STi_ST0
},
472 /* DC CE */ { 0, BX_IA_FMUL_STi_ST0
},
473 /* DC CF */ { 0, BX_IA_FMUL_STi_ST0
},
474 /* D8 D0 */ { 0, BX_IA_FCOM_STi
}, // undocumented
475 /* D8 D1 */ { 0, BX_IA_FCOM_STi
}, // undocumented
476 /* D8 D2 */ { 0, BX_IA_FCOM_STi
}, // undocumented
477 /* D8 D3 */ { 0, BX_IA_FCOM_STi
}, // undocumented
478 /* D8 D4 */ { 0, BX_IA_FCOM_STi
}, // undocumented
479 /* D8 D5 */ { 0, BX_IA_FCOM_STi
}, // undocumented
480 /* D8 D6 */ { 0, BX_IA_FCOM_STi
}, // undocumented
481 /* D8 D7 */ { 0, BX_IA_FCOM_STi
}, // undocumented
482 /* D8 D8 */ { 0, BX_IA_FCOM_STi
}, // undocumented, FCOMP_STi
483 /* D8 D9 */ { 0, BX_IA_FCOM_STi
}, // undocumented, FCOMP_STi
484 /* D8 DA */ { 0, BX_IA_FCOM_STi
}, // undocumented, FCOMP_STi
485 /* D8 DB */ { 0, BX_IA_FCOM_STi
}, // undocumented, FCOMP_STi
486 /* D8 DC */ { 0, BX_IA_FCOM_STi
}, // undocumented, FCOMP_STi
487 /* D8 DD */ { 0, BX_IA_FCOM_STi
}, // undocumented, FCOMP_STi
488 /* D8 DE */ { 0, BX_IA_FCOM_STi
}, // undocumented, FCOMP_STi
489 /* D8 DF */ { 0, BX_IA_FCOM_STi
}, // undocumented, FCOMP_STi
490 /* DC E0 */ { 0, BX_IA_FSUBR_STi_ST0
},
491 /* DC E1 */ { 0, BX_IA_FSUBR_STi_ST0
},
492 /* DC E2 */ { 0, BX_IA_FSUBR_STi_ST0
},
493 /* DC E3 */ { 0, BX_IA_FSUBR_STi_ST0
},
494 /* DC E4 */ { 0, BX_IA_FSUBR_STi_ST0
},
495 /* DC E5 */ { 0, BX_IA_FSUBR_STi_ST0
},
496 /* DC E6 */ { 0, BX_IA_FSUBR_STi_ST0
},
497 /* DC E7 */ { 0, BX_IA_FSUBR_STi_ST0
},
498 /* DC E8 */ { 0, BX_IA_FSUB_STi_ST0
},
499 /* DC E9 */ { 0, BX_IA_FSUB_STi_ST0
},
500 /* DC EA */ { 0, BX_IA_FSUB_STi_ST0
},
501 /* DC EB */ { 0, BX_IA_FSUB_STi_ST0
},
502 /* DC EC */ { 0, BX_IA_FSUB_STi_ST0
},
503 /* DC ED */ { 0, BX_IA_FSUB_STi_ST0
},
504 /* DC EE */ { 0, BX_IA_FSUB_STi_ST0
},
505 /* DC EF */ { 0, BX_IA_FSUB_STi_ST0
},
506 /* DC F0 */ { 0, BX_IA_FDIVR_STi_ST0
},
507 /* DC F1 */ { 0, BX_IA_FDIVR_STi_ST0
},
508 /* DC F2 */ { 0, BX_IA_FDIVR_STi_ST0
},
509 /* DC F3 */ { 0, BX_IA_FDIVR_STi_ST0
},
510 /* DC F4 */ { 0, BX_IA_FDIVR_STi_ST0
},
511 /* DC F5 */ { 0, BX_IA_FDIVR_STi_ST0
},
512 /* DC F6 */ { 0, BX_IA_FDIVR_STi_ST0
},
513 /* DC F7 */ { 0, BX_IA_FDIVR_STi_ST0
},
514 /* DC F8 */ { 0, BX_IA_FDIV_STi_ST0
},
515 /* DC F9 */ { 0, BX_IA_FDIV_STi_ST0
},
516 /* DC FA */ { 0, BX_IA_FDIV_STi_ST0
},
517 /* DC FB */ { 0, BX_IA_FDIV_STi_ST0
},
518 /* DC FC */ { 0, BX_IA_FDIV_STi_ST0
},
519 /* DC FD */ { 0, BX_IA_FDIV_STi_ST0
},
520 /* DC FE */ { 0, BX_IA_FDIV_STi_ST0
},
521 /* DC FF */ { 0, BX_IA_FDIV_STi_ST0
}
524 static const BxOpcodeInfo_t BxOpcodeInfo_FloatingPointDD
[64] = {
525 // DD (modrm is outside 00h - BFh) (mod == 11)
526 /* DD C0 */ { 0, BX_IA_FFREE_STi
},
527 /* DD C1 */ { 0, BX_IA_FFREE_STi
},
528 /* DD C2 */ { 0, BX_IA_FFREE_STi
},
529 /* DD C3 */ { 0, BX_IA_FFREE_STi
},
530 /* DD C4 */ { 0, BX_IA_FFREE_STi
},
531 /* DD C5 */ { 0, BX_IA_FFREE_STi
},
532 /* DD C6 */ { 0, BX_IA_FFREE_STi
},
533 /* DD C7 */ { 0, BX_IA_FFREE_STi
},
534 /* DD C8 */ { 0, BX_IA_FXCH_STi
}, // undocumented
535 /* DD C9 */ { 0, BX_IA_FXCH_STi
}, // undocumented
536 /* DD CA */ { 0, BX_IA_FXCH_STi
}, // undocumented
537 /* DD CB */ { 0, BX_IA_FXCH_STi
}, // undocumented
538 /* DD CC */ { 0, BX_IA_FXCH_STi
}, // undocumented
539 /* DD CD */ { 0, BX_IA_FXCH_STi
}, // undocumented
540 /* DD CE */ { 0, BX_IA_FXCH_STi
}, // undocumented
541 /* DD CF */ { 0, BX_IA_FXCH_STi
}, // undocumented
542 /* DD D0 */ { 0, BX_IA_FST_STi
},
543 /* DD D1 */ { 0, BX_IA_FST_STi
},
544 /* DD D2 */ { 0, BX_IA_FST_STi
},
545 /* DD D3 */ { 0, BX_IA_FST_STi
},
546 /* DD D4 */ { 0, BX_IA_FST_STi
},
547 /* DD D5 */ { 0, BX_IA_FST_STi
},
548 /* DD D6 */ { 0, BX_IA_FST_STi
},
549 /* DD D7 */ { 0, BX_IA_FST_STi
},
550 /* DD D8 */ { 0, BX_IA_FST_STi
}, // FSTP_STi
551 /* DD D9 */ { 0, BX_IA_FST_STi
}, // FSTP_STi
552 /* DD DA */ { 0, BX_IA_FST_STi
}, // FSTP_STi
553 /* DD DB */ { 0, BX_IA_FST_STi
}, // FSTP_STi
554 /* DD DC */ { 0, BX_IA_FST_STi
}, // FSTP_STi
555 /* DD DD */ { 0, BX_IA_FST_STi
}, // FSTP_STi
556 /* DD DE */ { 0, BX_IA_FST_STi
}, // FSTP_STi
557 /* DD DF */ { 0, BX_IA_FST_STi
}, // FSTP_STi
558 /* DD E0 */ { 0, BX_IA_FUCOM_STi
},
559 /* DD E1 */ { 0, BX_IA_FUCOM_STi
},
560 /* DD E2 */ { 0, BX_IA_FUCOM_STi
},
561 /* DD E3 */ { 0, BX_IA_FUCOM_STi
},
562 /* DD E4 */ { 0, BX_IA_FUCOM_STi
},
563 /* DD E5 */ { 0, BX_IA_FUCOM_STi
},
564 /* DD E6 */ { 0, BX_IA_FUCOM_STi
},
565 /* DD E7 */ { 0, BX_IA_FUCOM_STi
},
566 /* DD E8 */ { 0, BX_IA_FUCOM_STi
}, // FUCOMP_STi
567 /* DD E9 */ { 0, BX_IA_FUCOM_STi
}, // FUCOMP_STi
568 /* DD EA */ { 0, BX_IA_FUCOM_STi
}, // FUCOMP_STi
569 /* DD EB */ { 0, BX_IA_FUCOM_STi
}, // FUCOMP_STi
570 /* DD EC */ { 0, BX_IA_FUCOM_STi
}, // FUCOMP_STi
571 /* DD ED */ { 0, BX_IA_FUCOM_STi
}, // FUCOMP_STi
572 /* DD EE */ { 0, BX_IA_FUCOM_STi
}, // FUCOMP_STi
573 /* DD EF */ { 0, BX_IA_FUCOM_STi
}, // FUCOMP_STi
574 /* DD F0 */ { 0, BX_IA_ERROR
},
575 /* DD F1 */ { 0, BX_IA_ERROR
},
576 /* DD F2 */ { 0, BX_IA_ERROR
},
577 /* DD F3 */ { 0, BX_IA_ERROR
},
578 /* DD F4 */ { 0, BX_IA_ERROR
},
579 /* DD F5 */ { 0, BX_IA_ERROR
},
580 /* DD F6 */ { 0, BX_IA_ERROR
},
581 /* DD F7 */ { 0, BX_IA_ERROR
},
582 /* DD F8 */ { 0, BX_IA_ERROR
},
583 /* DD F9 */ { 0, BX_IA_ERROR
},
584 /* DD FA */ { 0, BX_IA_ERROR
},
585 /* DD FB */ { 0, BX_IA_ERROR
},
586 /* DD FC */ { 0, BX_IA_ERROR
},
587 /* DD FD */ { 0, BX_IA_ERROR
},
588 /* DD FE */ { 0, BX_IA_ERROR
},
589 /* DD FF */ { 0, BX_IA_ERROR
}
592 static const BxOpcodeInfo_t BxOpcodeInfo_FloatingPointDE
[64] = {
593 // DE (modrm is outside 00h - BFh) (mod == 11)
594 // all instructions pop FPU stack
595 /* DE C0 */ { 0, BX_IA_FADD_STi_ST0
},
596 /* DE C1 */ { 0, BX_IA_FADD_STi_ST0
},
597 /* DE C2 */ { 0, BX_IA_FADD_STi_ST0
},
598 /* DE C3 */ { 0, BX_IA_FADD_STi_ST0
},
599 /* DE C4 */ { 0, BX_IA_FADD_STi_ST0
},
600 /* DE C5 */ { 0, BX_IA_FADD_STi_ST0
},
601 /* DE C6 */ { 0, BX_IA_FADD_STi_ST0
},
602 /* DE C7 */ { 0, BX_IA_FADD_STi_ST0
},
603 /* DE C8 */ { 0, BX_IA_FMUL_STi_ST0
},
604 /* DE C9 */ { 0, BX_IA_FMUL_STi_ST0
},
605 /* DE CA */ { 0, BX_IA_FMUL_STi_ST0
},
606 /* DE CB */ { 0, BX_IA_FMUL_STi_ST0
},
607 /* DE CC */ { 0, BX_IA_FMUL_STi_ST0
},
608 /* DE CD */ { 0, BX_IA_FMUL_STi_ST0
},
609 /* DE CE */ { 0, BX_IA_FMUL_STi_ST0
},
610 /* DE CF */ { 0, BX_IA_FMUL_STi_ST0
},
611 /* DE D0 */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi, undocumented, special FPSTACK pop case
612 /* DE D1 */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi, undocumented, special FPSTACK pop case
613 /* DE D2 */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi, undocumented, special FPSTACK pop case
614 /* DE D3 */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi, undocumented, special FPSTACK pop case
615 /* DE D4 */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi, undocumented, special FPSTACK pop case
616 /* DE D5 */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi, undocumented, special FPSTACK pop case
617 /* DE D6 */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi, undocumented, special FPSTACK pop case
618 /* DE D7 */ { 0, BX_IA_FCOM_STi
}, // FCOMP_STi, undocumented, special FPSTACK pop case
619 /* DE D8 */ { 0, BX_IA_ERROR
},
620 /* DE D9 */ { 0, BX_IA_FCOMPP
},
621 /* DE DA */ { 0, BX_IA_ERROR
},
622 /* DE DB */ { 0, BX_IA_ERROR
},
623 /* DE DC */ { 0, BX_IA_ERROR
},
624 /* DE DD */ { 0, BX_IA_ERROR
},
625 /* DE DE */ { 0, BX_IA_ERROR
},
626 /* DE DF */ { 0, BX_IA_ERROR
},
627 /* DE E0 */ { 0, BX_IA_FSUBR_STi_ST0
},
628 /* DE E1 */ { 0, BX_IA_FSUBR_STi_ST0
},
629 /* DE E2 */ { 0, BX_IA_FSUBR_STi_ST0
},
630 /* DE E3 */ { 0, BX_IA_FSUBR_STi_ST0
},
631 /* DE E4 */ { 0, BX_IA_FSUBR_STi_ST0
},
632 /* DE E5 */ { 0, BX_IA_FSUBR_STi_ST0
},
633 /* DE E6 */ { 0, BX_IA_FSUBR_STi_ST0
},
634 /* DE E7 */ { 0, BX_IA_FSUBR_STi_ST0
},
635 /* DE E8 */ { 0, BX_IA_FSUB_STi_ST0
},
636 /* DE E9 */ { 0, BX_IA_FSUB_STi_ST0
},
637 /* DE EA */ { 0, BX_IA_FSUB_STi_ST0
},
638 /* DE EB */ { 0, BX_IA_FSUB_STi_ST0
},
639 /* DE EC */ { 0, BX_IA_FSUB_STi_ST0
},
640 /* DE ED */ { 0, BX_IA_FSUB_STi_ST0
},
641 /* DE EE */ { 0, BX_IA_FSUB_STi_ST0
},
642 /* DE EF */ { 0, BX_IA_FSUB_STi_ST0
},
643 /* DE F0 */ { 0, BX_IA_FDIVR_STi_ST0
},
644 /* DE F1 */ { 0, BX_IA_FDIVR_STi_ST0
},
645 /* DE F2 */ { 0, BX_IA_FDIVR_STi_ST0
},
646 /* DE F3 */ { 0, BX_IA_FDIVR_STi_ST0
},
647 /* DE F4 */ { 0, BX_IA_FDIVR_STi_ST0
},
648 /* DE F5 */ { 0, BX_IA_FDIVR_STi_ST0
},
649 /* DE F6 */ { 0, BX_IA_FDIVR_STi_ST0
},
650 /* DE F7 */ { 0, BX_IA_FDIVR_STi_ST0
},
651 /* DE F8 */ { 0, BX_IA_FDIV_STi_ST0
},
652 /* DE F9 */ { 0, BX_IA_FDIV_STi_ST0
},
653 /* DE FA */ { 0, BX_IA_FDIV_STi_ST0
},
654 /* DE FB */ { 0, BX_IA_FDIV_STi_ST0
},
655 /* DE FC */ { 0, BX_IA_FDIV_STi_ST0
},
656 /* DE FD */ { 0, BX_IA_FDIV_STi_ST0
},
657 /* DE FE */ { 0, BX_IA_FDIV_STi_ST0
},
658 /* DE FF */ { 0, BX_IA_FDIV_STi_ST0
}
661 static const BxOpcodeInfo_t BxOpcodeInfo_FloatingPointDF
[64] = {
662 // DF (modrm is outside 00h - BFh) (mod == 11)
663 /* DF C0 */ { 0, BX_IA_FFREEP_STi
}, // 287+ compatibility opcode
664 /* DF C1 */ { 0, BX_IA_FFREEP_STi
},
665 /* DF C2 */ { 0, BX_IA_FFREEP_STi
},
666 /* DF C3 */ { 0, BX_IA_FFREEP_STi
},
667 /* DF C4 */ { 0, BX_IA_FFREEP_STi
},
668 /* DF C5 */ { 0, BX_IA_FFREEP_STi
},
669 /* DF C6 */ { 0, BX_IA_FFREEP_STi
},
670 /* DF C7 */ { 0, BX_IA_FFREEP_STi
},
671 /* DF C8 */ { 0, BX_IA_FXCH_STi
}, // undocumented
672 /* DF C9 */ { 0, BX_IA_FXCH_STi
}, // undocumented
673 /* DF CA */ { 0, BX_IA_FXCH_STi
}, // undocumented
674 /* DF CB */ { 0, BX_IA_FXCH_STi
}, // undocumented
675 /* DF CC */ { 0, BX_IA_FXCH_STi
}, // undocumented
676 /* DF CD */ { 0, BX_IA_FXCH_STi
}, // undocumented
677 /* DF CE */ { 0, BX_IA_FXCH_STi
}, // undocumented
678 /* DF CF */ { 0, BX_IA_FXCH_STi
}, // undocumented
679 /* DF D0 */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented, special FPSTACK pop case
680 /* DF D1 */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented, special FPSTACK pop case
681 /* DF D2 */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented, special FPSTACK pop case
682 /* DF D3 */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented, special FPSTACK pop case
683 /* DF D4 */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented, special FPSTACK pop case
684 /* DF D5 */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented, special FPSTACK pop case
685 /* DF D6 */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented, special FPSTACK pop case
686 /* DF D7 */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented, special FPSTACK pop case
687 /* DF D8 */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
688 /* DF D9 */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
689 /* DF DA */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
690 /* DF DB */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
691 /* DF DC */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
692 /* DF DD */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
693 /* DF DE */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
694 /* DF DF */ { 0, BX_IA_FST_STi
}, // FSTP_STi, undocumented
695 /* DF E0 */ { 0, BX_IA_FNSTSW_AX
},
696 /* DF E1 */ { 0, BX_IA_ERROR
},
697 /* DF E2 */ { 0, BX_IA_ERROR
},
698 /* DF E3 */ { 0, BX_IA_ERROR
},
699 /* DF E4 */ { 0, BX_IA_ERROR
},
700 /* DF E5 */ { 0, BX_IA_ERROR
},
701 /* DF E6 */ { 0, BX_IA_ERROR
},
702 /* DF E7 */ { 0, BX_IA_ERROR
},
703 /* DF E8 */ { 0, BX_IA_FUCOMI_ST0_STj
}, // FUCOMIP
704 /* DF E9 */ { 0, BX_IA_FUCOMI_ST0_STj
}, // FUCOMIP
705 /* DF EA */ { 0, BX_IA_FUCOMI_ST0_STj
}, // FUCOMIP
706 /* DF EB */ { 0, BX_IA_FUCOMI_ST0_STj
}, // FUCOMIP
707 /* DF EC */ { 0, BX_IA_FUCOMI_ST0_STj
}, // FUCOMIP
708 /* DF ED */ { 0, BX_IA_FUCOMI_ST0_STj
}, // FUCOMIP
709 /* DF EE */ { 0, BX_IA_FUCOMI_ST0_STj
}, // FUCOMIP
710 /* DF EF */ { 0, BX_IA_FUCOMI_ST0_STj
}, // FUCOMIP
711 /* DF F0 */ { 0, BX_IA_FCOMI_ST0_STj
}, // FCOMIP
712 /* DF F1 */ { 0, BX_IA_FCOMI_ST0_STj
}, // FCOMIP
713 /* DF F2 */ { 0, BX_IA_FCOMI_ST0_STj
}, // FCOMIP
714 /* DF F3 */ { 0, BX_IA_FCOMI_ST0_STj
}, // FCOMIP
715 /* DF F4 */ { 0, BX_IA_FCOMI_ST0_STj
}, // FCOMIP
716 /* DF F5 */ { 0, BX_IA_FCOMI_ST0_STj
}, // FCOMIP
717 /* DF F6 */ { 0, BX_IA_FCOMI_ST0_STj
}, // FCOMIP
718 /* DF F7 */ { 0, BX_IA_FCOMI_ST0_STj
}, // FCOMIP
719 /* DF F8 */ { 0, BX_IA_ERROR
},
720 /* DF F9 */ { 0, BX_IA_ERROR
},
721 /* DF FA */ { 0, BX_IA_ERROR
},
722 /* DF FB */ { 0, BX_IA_ERROR
},
723 /* DF FC */ { 0, BX_IA_ERROR
},
724 /* DF FD */ { 0, BX_IA_ERROR
},
725 /* DF FE */ { 0, BX_IA_ERROR
},
726 /* DF FF */ { 0, BX_IA_ERROR
},
731 /* ************************************************************************ */
736 static const BxOpcodeInfo_t Bx3DNowOpcodeInfo
[256] = {
737 // 256 entries for 3DNow opcodes, by suffix
738 /* 00 */ { 0, BX_IA_ERROR
},
739 /* 01 */ { 0, BX_IA_ERROR
},
740 /* 02 */ { 0, BX_IA_ERROR
},
741 /* 03 */ { 0, BX_IA_ERROR
},
742 /* 04 */ { 0, BX_IA_ERROR
},
743 /* 05 */ { 0, BX_IA_ERROR
},
744 /* 06 */ { 0, BX_IA_ERROR
},
745 /* 07 */ { 0, BX_IA_ERROR
},
746 /* 08 */ { 0, BX_IA_ERROR
},
747 /* 09 */ { 0, BX_IA_ERROR
},
748 /* 0A */ { 0, BX_IA_ERROR
},
749 /* 0B */ { 0, BX_IA_ERROR
},
750 /* 0C */ { 0, BX_IA_PI2FW_PqQq
},
751 /* 0D */ { 0, BX_IA_PI2FD_PqQq
},
752 /* 0E */ { 0, BX_IA_ERROR
},
753 /* 0F */ { 0, BX_IA_ERROR
},
754 /* 10 */ { 0, BX_IA_ERROR
},
755 /* 11 */ { 0, BX_IA_ERROR
},
756 /* 12 */ { 0, BX_IA_ERROR
},
757 /* 13 */ { 0, BX_IA_ERROR
},
758 /* 14 */ { 0, BX_IA_ERROR
},
759 /* 15 */ { 0, BX_IA_ERROR
},
760 /* 16 */ { 0, BX_IA_ERROR
},
761 /* 17 */ { 0, BX_IA_ERROR
},
762 /* 18 */ { 0, BX_IA_ERROR
},
763 /* 19 */ { 0, BX_IA_ERROR
},
764 /* 1A */ { 0, BX_IA_ERROR
},
765 /* 1B */ { 0, BX_IA_ERROR
},
766 /* 1C */ { 0, BX_IA_PF2IW_PqQq
},
767 /* 1D */ { 0, BX_IA_PF2ID_PqQq
},
768 /* 1E */ { 0, BX_IA_ERROR
},
769 /* 1F */ { 0, BX_IA_ERROR
},
770 /* 20 */ { 0, BX_IA_ERROR
},
771 /* 21 */ { 0, BX_IA_ERROR
},
772 /* 22 */ { 0, BX_IA_ERROR
},
773 /* 23 */ { 0, BX_IA_ERROR
},
774 /* 24 */ { 0, BX_IA_ERROR
},
775 /* 25 */ { 0, BX_IA_ERROR
},
776 /* 26 */ { 0, BX_IA_ERROR
},
777 /* 27 */ { 0, BX_IA_ERROR
},
778 /* 28 */ { 0, BX_IA_ERROR
},
779 /* 29 */ { 0, BX_IA_ERROR
},
780 /* 2A */ { 0, BX_IA_ERROR
},
781 /* 2B */ { 0, BX_IA_ERROR
},
782 /* 2C */ { 0, BX_IA_ERROR
},
783 /* 2D */ { 0, BX_IA_ERROR
},
784 /* 2E */ { 0, BX_IA_ERROR
},
785 /* 2F */ { 0, BX_IA_ERROR
},
786 /* 30 */ { 0, BX_IA_ERROR
},
787 /* 31 */ { 0, BX_IA_ERROR
},
788 /* 32 */ { 0, BX_IA_ERROR
},
789 /* 33 */ { 0, BX_IA_ERROR
},
790 /* 34 */ { 0, BX_IA_ERROR
},
791 /* 35 */ { 0, BX_IA_ERROR
},
792 /* 36 */ { 0, BX_IA_ERROR
},
793 /* 37 */ { 0, BX_IA_ERROR
},
794 /* 38 */ { 0, BX_IA_ERROR
},
795 /* 39 */ { 0, BX_IA_ERROR
},
796 /* 3A */ { 0, BX_IA_ERROR
},
797 /* 3B */ { 0, BX_IA_ERROR
},
798 /* 3C */ { 0, BX_IA_ERROR
},
799 /* 3D */ { 0, BX_IA_ERROR
},
800 /* 3E */ { 0, BX_IA_ERROR
},
801 /* 3F */ { 0, BX_IA_ERROR
},
802 /* 40 */ { 0, BX_IA_ERROR
},
803 /* 41 */ { 0, BX_IA_ERROR
},
804 /* 42 */ { 0, BX_IA_ERROR
},
805 /* 43 */ { 0, BX_IA_ERROR
},
806 /* 44 */ { 0, BX_IA_ERROR
},
807 /* 45 */ { 0, BX_IA_ERROR
},
808 /* 46 */ { 0, BX_IA_ERROR
},
809 /* 47 */ { 0, BX_IA_ERROR
},
810 /* 48 */ { 0, BX_IA_ERROR
},
811 /* 49 */ { 0, BX_IA_ERROR
},
812 /* 4A */ { 0, BX_IA_ERROR
},
813 /* 4B */ { 0, BX_IA_ERROR
},
814 /* 4C */ { 0, BX_IA_ERROR
},
815 /* 4D */ { 0, BX_IA_ERROR
},
816 /* 4E */ { 0, BX_IA_ERROR
},
817 /* 4F */ { 0, BX_IA_ERROR
},
818 /* 50 */ { 0, BX_IA_ERROR
},
819 /* 51 */ { 0, BX_IA_ERROR
},
820 /* 52 */ { 0, BX_IA_ERROR
},
821 /* 53 */ { 0, BX_IA_ERROR
},
822 /* 54 */ { 0, BX_IA_ERROR
},
823 /* 55 */ { 0, BX_IA_ERROR
},
824 /* 56 */ { 0, BX_IA_ERROR
},
825 /* 57 */ { 0, BX_IA_ERROR
},
826 /* 58 */ { 0, BX_IA_ERROR
},
827 /* 59 */ { 0, BX_IA_ERROR
},
828 /* 5A */ { 0, BX_IA_ERROR
},
829 /* 5B */ { 0, BX_IA_ERROR
},
830 /* 5C */ { 0, BX_IA_ERROR
},
831 /* 5D */ { 0, BX_IA_ERROR
},
832 /* 5E */ { 0, BX_IA_ERROR
},
833 /* 5F */ { 0, BX_IA_ERROR
},
834 /* 60 */ { 0, BX_IA_ERROR
},
835 /* 61 */ { 0, BX_IA_ERROR
},
836 /* 62 */ { 0, BX_IA_ERROR
},
837 /* 63 */ { 0, BX_IA_ERROR
},
838 /* 64 */ { 0, BX_IA_ERROR
},
839 /* 65 */ { 0, BX_IA_ERROR
},
840 /* 66 */ { 0, BX_IA_ERROR
},
841 /* 67 */ { 0, BX_IA_ERROR
},
842 /* 68 */ { 0, BX_IA_ERROR
},
843 /* 69 */ { 0, BX_IA_ERROR
},
844 /* 6A */ { 0, BX_IA_ERROR
},
845 /* 6B */ { 0, BX_IA_ERROR
},
846 /* 6C */ { 0, BX_IA_ERROR
},
847 /* 6D */ { 0, BX_IA_ERROR
},
848 /* 6E */ { 0, BX_IA_ERROR
},
849 /* 6F */ { 0, BX_IA_ERROR
},
850 /* 70 */ { 0, BX_IA_ERROR
},
851 /* 71 */ { 0, BX_IA_ERROR
},
852 /* 72 */ { 0, BX_IA_ERROR
},
853 /* 73 */ { 0, BX_IA_ERROR
},
854 /* 74 */ { 0, BX_IA_ERROR
},
855 /* 75 */ { 0, BX_IA_ERROR
},
856 /* 76 */ { 0, BX_IA_ERROR
},
857 /* 77 */ { 0, BX_IA_ERROR
},
858 /* 78 */ { 0, BX_IA_ERROR
},
859 /* 79 */ { 0, BX_IA_ERROR
},
860 /* 7A */ { 0, BX_IA_ERROR
},
861 /* 7B */ { 0, BX_IA_ERROR
},
862 /* 7C */ { 0, BX_IA_ERROR
},
863 /* 7D */ { 0, BX_IA_ERROR
},
864 /* 7E */ { 0, BX_IA_ERROR
},
865 /* 7F */ { 0, BX_IA_ERROR
},
866 /* 80 */ { 0, BX_IA_ERROR
},
867 /* 81 */ { 0, BX_IA_ERROR
},
868 /* 82 */ { 0, BX_IA_ERROR
},
869 /* 83 */ { 0, BX_IA_ERROR
},
870 /* 84 */ { 0, BX_IA_ERROR
},
871 /* 85 */ { 0, BX_IA_ERROR
},
872 /* 86 */ { 0, BX_IA_ERROR
},
873 /* 87 */ { 0, BX_IA_ERROR
},
874 /* 88 */ { 0, BX_IA_ERROR
},
875 /* 89 */ { 0, BX_IA_ERROR
},
876 /* 8A */ { 0, BX_IA_PFNACC_PqQq
},
877 /* 8B */ { 0, BX_IA_ERROR
},
878 /* 8C */ { 0, BX_IA_ERROR
},
879 /* 8D */ { 0, BX_IA_ERROR
},
880 /* 8E */ { 0, BX_IA_PFPNACC_PqQq
},
881 /* 8F */ { 0, BX_IA_ERROR
},
882 /* 90 */ { 0, BX_IA_PFCMPGE_PqQq
},
883 /* 91 */ { 0, BX_IA_ERROR
},
884 /* 92 */ { 0, BX_IA_ERROR
},
885 /* 93 */ { 0, BX_IA_ERROR
},
886 /* 94 */ { 0, BX_IA_PFMIN_PqQq
},
887 /* 95 */ { 0, BX_IA_ERROR
},
888 /* 96 */ { 0, BX_IA_PFRCP_PqQq
},
889 /* 97 */ { 0, BX_IA_PFRSQRT_PqQq
},
890 /* 98 */ { 0, BX_IA_ERROR
},
891 /* 99 */ { 0, BX_IA_ERROR
},
892 /* 9A */ { 0, BX_IA_PFSUB_PqQq
},
893 /* 9B */ { 0, BX_IA_ERROR
},
894 /* 9C */ { 0, BX_IA_ERROR
},
895 /* 9D */ { 0, BX_IA_ERROR
},
896 /* 9E */ { 0, BX_IA_PFADD_PqQq
},
897 /* 9F */ { 0, BX_IA_ERROR
},
898 /* A0 */ { 0, BX_IA_PFCMPGT_PqQq
},
899 /* A1 */ { 0, BX_IA_ERROR
},
900 /* A2 */ { 0, BX_IA_ERROR
},
901 /* A3 */ { 0, BX_IA_ERROR
},
902 /* A4 */ { 0, BX_IA_PFMAX_PqQq
},
903 /* A5 */ { 0, BX_IA_ERROR
},
904 /* A6 */ { 0, BX_IA_PFRCPIT1_PqQq
},
905 /* A7 */ { 0, BX_IA_PFRSQIT1_PqQq
},
906 /* A8 */ { 0, BX_IA_ERROR
},
907 /* A9 */ { 0, BX_IA_ERROR
},
908 /* AA */ { 0, BX_IA_PFSUBR_PqQq
},
909 /* AB */ { 0, BX_IA_ERROR
},
910 /* AC */ { 0, BX_IA_ERROR
},
911 /* AD */ { 0, BX_IA_ERROR
},
912 /* AE */ { 0, BX_IA_PFACC_PqQq
},
913 /* AF */ { 0, BX_IA_ERROR
},
914 /* B0 */ { 0, BX_IA_PFCMPEQ_PqQq
},
915 /* B1 */ { 0, BX_IA_ERROR
},
916 /* B2 */ { 0, BX_IA_ERROR
},
917 /* B3 */ { 0, BX_IA_ERROR
},
918 /* B4 */ { 0, BX_IA_PFMUL_PqQq
},
919 /* B5 */ { 0, BX_IA_ERROR
},
920 /* B6 */ { 0, BX_IA_PFRCPIT2_PqQq
},
921 /* B7 */ { 0, BX_IA_PMULHRW_PqQq
},
922 /* B8 */ { 0, BX_IA_ERROR
},
923 /* B9 */ { 0, BX_IA_ERROR
},
924 /* BA */ { 0, BX_IA_ERROR
},
925 /* BB */ { 0, BX_IA_PSWAPD_PqQq
},
926 /* BC */ { 0, BX_IA_ERROR
},
927 /* BD */ { 0, BX_IA_ERROR
},
928 /* BE */ { 0, BX_IA_ERROR
},
929 /* BF */ { 0, BX_IA_PAVGB_PqQq
},
930 /* C0 */ { 0, BX_IA_ERROR
},
931 /* C1 */ { 0, BX_IA_ERROR
},
932 /* C2 */ { 0, BX_IA_ERROR
},
933 /* C3 */ { 0, BX_IA_ERROR
},
934 /* C4 */ { 0, BX_IA_ERROR
},
935 /* C5 */ { 0, BX_IA_ERROR
},
936 /* C6 */ { 0, BX_IA_ERROR
},
937 /* C7 */ { 0, BX_IA_ERROR
},
938 /* C8 */ { 0, BX_IA_ERROR
},
939 /* C9 */ { 0, BX_IA_ERROR
},
940 /* CA */ { 0, BX_IA_ERROR
},
941 /* CB */ { 0, BX_IA_ERROR
},
942 /* CC */ { 0, BX_IA_ERROR
},
943 /* CD */ { 0, BX_IA_ERROR
},
944 /* CE */ { 0, BX_IA_ERROR
},
945 /* CF */ { 0, BX_IA_ERROR
},
946 /* D0 */ { 0, BX_IA_ERROR
},
947 /* D1 */ { 0, BX_IA_ERROR
},
948 /* D2 */ { 0, BX_IA_ERROR
},
949 /* D3 */ { 0, BX_IA_ERROR
},
950 /* D4 */ { 0, BX_IA_ERROR
},
951 /* D5 */ { 0, BX_IA_ERROR
},
952 /* D6 */ { 0, BX_IA_ERROR
},
953 /* D7 */ { 0, BX_IA_ERROR
},
954 /* D8 */ { 0, BX_IA_ERROR
},
955 /* D9 */ { 0, BX_IA_ERROR
},
956 /* DA */ { 0, BX_IA_ERROR
},
957 /* DB */ { 0, BX_IA_ERROR
},
958 /* DC */ { 0, BX_IA_ERROR
},
959 /* DD */ { 0, BX_IA_ERROR
},
960 /* DE */ { 0, BX_IA_ERROR
},
961 /* DF */ { 0, BX_IA_ERROR
},
962 /* E0 */ { 0, BX_IA_ERROR
},
963 /* E1 */ { 0, BX_IA_ERROR
},
964 /* E2 */ { 0, BX_IA_ERROR
},
965 /* E3 */ { 0, BX_IA_ERROR
},
966 /* E4 */ { 0, BX_IA_ERROR
},
967 /* E5 */ { 0, BX_IA_ERROR
},
968 /* E6 */ { 0, BX_IA_ERROR
},
969 /* E7 */ { 0, BX_IA_ERROR
},
970 /* E8 */ { 0, BX_IA_ERROR
},
971 /* E9 */ { 0, BX_IA_ERROR
},
972 /* EA */ { 0, BX_IA_ERROR
},
973 /* EB */ { 0, BX_IA_ERROR
},
974 /* EC */ { 0, BX_IA_ERROR
},
975 /* ED */ { 0, BX_IA_ERROR
},
976 /* EE */ { 0, BX_IA_ERROR
},
977 /* EF */ { 0, BX_IA_ERROR
},
978 /* F0 */ { 0, BX_IA_ERROR
},
979 /* F1 */ { 0, BX_IA_ERROR
},
980 /* F2 */ { 0, BX_IA_ERROR
},
981 /* F3 */ { 0, BX_IA_ERROR
},
982 /* F4 */ { 0, BX_IA_ERROR
},
983 /* F5 */ { 0, BX_IA_ERROR
},
984 /* F6 */ { 0, BX_IA_ERROR
},
985 /* F7 */ { 0, BX_IA_ERROR
},
986 /* F8 */ { 0, BX_IA_ERROR
},
987 /* F9 */ { 0, BX_IA_ERROR
},
988 /* FA */ { 0, BX_IA_ERROR
},
989 /* FB */ { 0, BX_IA_ERROR
},
990 /* FC */ { 0, BX_IA_ERROR
},
991 /* FD */ { 0, BX_IA_ERROR
},
992 /* FE */ { 0, BX_IA_ERROR
},
993 /* FF */ { 0, BX_IA_ERROR
}
1003 static const BxOpcodeInfo_t BxOpcodeGroupSSE_ERR
[3] = {
1004 /* 66 */ { 0, BX_IA_ERROR
},
1005 /* F2 */ { 0, BX_IA_ERROR
},
1006 /* F3 */ { 0, BX_IA_ERROR
}
1009 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f10
[3] = {
1010 /* 66 */ { 0, BX_IA_MOVUPD_VpdWpd
},
1011 /* F2 */ { 0, BX_IA_MOVSD_VsdWsd
},
1012 /* F3 */ { 0, BX_IA_MOVSS_VssWss
}
1015 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f11
[3] = {
1016 /* 66 */ { 0, BX_IA_MOVUPD_WpdVpd
},
1017 /* F2 */ { 0, BX_IA_MOVSD_WsdVsd
},
1018 /* F3 */ { 0, BX_IA_MOVSS_WssVss
}
1021 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f12
[3] = {
1022 /* 66 */ { 0, BX_IA_MOVLPD_VsdMq
},
1023 /* F2 */ { 0, BX_IA_MOVDDUP_VpdWq
}, // SSE3
1024 /* F3 */ { 0, BX_IA_MOVSLDUP_VpsWps
} // SSE3
1027 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f13M
[3] = {
1028 /* 66 */ { 0, BX_IA_MOVLPD_MqVsd
},
1029 /* F2 */ { 0, BX_IA_ERROR
},
1030 /* F3 */ { 0, BX_IA_ERROR
}
1033 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f14
[3] = {
1034 /* 66 */ { 0, BX_IA_UNPCKLPD_VpdWdq
},
1035 /* F2 */ { 0, BX_IA_ERROR
},
1036 /* F3 */ { 0, BX_IA_ERROR
}
1039 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f15
[3] = {
1040 /* 66 */ { 0, BX_IA_UNPCKHPD_VpdWdq
},
1041 /* F2 */ { 0, BX_IA_ERROR
},
1042 /* F3 */ { 0, BX_IA_ERROR
}
1045 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f16
[3] = {
1046 /* 66 */ { 0, BX_IA_MOVHPD_VsdMq
},
1047 /* F2 */ { 0, BX_IA_ERROR
},
1048 /* F3 */ { 0, BX_IA_MOVSHDUP_VpsWps
} // SSE3
1051 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f17M
[3] = {
1052 /* 66 */ { 0, BX_IA_MOVHPD_MqVsd
},
1053 /* F2 */ { 0, BX_IA_ERROR
},
1054 /* F3 */ { 0, BX_IA_ERROR
}
1057 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f28
[3] = {
1058 /* 66 */ { 0, BX_IA_MOVAPD_VpdWpd
},
1059 /* F2 */ { 0, BX_IA_ERROR
},
1060 /* F3 */ { 0, BX_IA_ERROR
}
1063 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f29
[3] = {
1064 /* 66 */ { 0, BX_IA_MOVAPD_WpdVpd
},
1065 /* F2 */ { 0, BX_IA_ERROR
},
1066 /* F3 */ { 0, BX_IA_ERROR
}
1069 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2a
[3] = {
1070 /* 66 */ { 0, BX_IA_CVTPI2PD_VpdQq
},
1071 /* F2 */ { 0, BX_IA_CVTSI2SD_VsdEd
},
1072 /* F3 */ { 0, BX_IA_CVTSI2SS_VssEd
}
1075 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2bM
[3] = {
1076 /* 66 */ { 0, BX_IA_MOVNTPD_MpdVpd
},
1077 /* F2 */ { 0, BX_IA_ERROR
},
1078 /* F3 */ { 0, BX_IA_ERROR
}
1081 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2c
[3] = {
1082 /* 66 */ { 0, BX_IA_CVTTPD2PI_PqWpd
},
1083 /* F2 */ { 0, BX_IA_CVTTSD2SI_GdWsd
},
1084 /* F3 */ { 0, BX_IA_CVTTSS2SI_GdWss
}
1087 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2d
[3] = {
1088 /* 66 */ { 0, BX_IA_CVTPD2PI_PqWpd
},
1089 /* F2 */ { 0, BX_IA_CVTSD2SI_GdWsd
},
1090 /* F3 */ { 0, BX_IA_CVTSS2SI_GdWss
}
1093 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2e
[3] = {
1094 /* 66 */ { 0, BX_IA_UCOMISD_VsdWsd
},
1095 /* F2 */ { 0, BX_IA_ERROR
},
1096 /* F3 */ { 0, BX_IA_ERROR
}
1099 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2f
[3] = {
1100 /* 66 */ { 0, BX_IA_COMISD_VpdWpd
},
1101 /* F2 */ { 0, BX_IA_ERROR
},
1102 /* F3 */ { 0, BX_IA_ERROR
}
1105 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f50
[3] = {
1106 /* 66 */ { 0, BX_IA_MOVMSKPD_GdVRpd
},
1107 /* F2 */ { 0, BX_IA_ERROR
},
1108 /* F3 */ { 0, BX_IA_ERROR
}
1111 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f51
[3] = {
1112 /* 66 */ { 0, BX_IA_SQRTPD_VpdWpd
},
1113 /* F2 */ { 0, BX_IA_SQRTSD_VsdWsd
},
1114 /* F3 */ { 0, BX_IA_SQRTSS_VssWss
}
1117 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f52
[3] = {
1118 /* 66 */ { 0, BX_IA_ERROR
},
1119 /* F2 */ { 0, BX_IA_ERROR
},
1120 /* F3 */ { 0, BX_IA_RSQRTSS_VssWss
}
1123 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f53
[3] = {
1124 /* 66 */ { 0, BX_IA_ERROR
},
1125 /* F2 */ { 0, BX_IA_ERROR
},
1126 /* F3 */ { 0, BX_IA_RCPSS_VssWss
}
1129 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f54
[3] = {
1130 /* 66 */ { 0, BX_IA_ANDPD_VpdWpd
},
1131 /* F2 */ { 0, BX_IA_ERROR
},
1132 /* F3 */ { 0, BX_IA_ERROR
}
1135 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f55
[3] = {
1136 /* 66 */ { 0, BX_IA_ANDNPD_VpdWpd
},
1137 /* F2 */ { 0, BX_IA_ERROR
},
1138 /* F3 */ { 0, BX_IA_ERROR
}
1141 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f56
[3] = {
1142 /* 66 */ { 0, BX_IA_ORPD_VpdWpd
},
1143 /* F2 */ { 0, BX_IA_ERROR
},
1144 /* F3 */ { 0, BX_IA_ERROR
}
1147 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f57
[3] = {
1148 /* 66 */ { 0, BX_IA_XORPD_VpdWpd
},
1149 /* F2 */ { 0, BX_IA_ERROR
},
1150 /* F3 */ { 0, BX_IA_ERROR
}
1153 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f58
[3] = {
1154 /* 66 */ { 0, BX_IA_ADDPD_VpdWpd
},
1155 /* F2 */ { 0, BX_IA_ADDSD_VsdWsd
},
1156 /* F3 */ { 0, BX_IA_ADDSS_VssWss
}
1159 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f59
[3] = {
1160 /* 66 */ { 0, BX_IA_MULPD_VpdWpd
},
1161 /* F2 */ { 0, BX_IA_MULSD_VsdWsd
},
1162 /* F3 */ { 0, BX_IA_MULSS_VssWss
}
1165 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5a
[3] = {
1166 /* 66 */ { 0, BX_IA_CVTPD2PS_VpdWpd
},
1167 /* F2 */ { 0, BX_IA_CVTSD2SS_VsdWsd
},
1168 /* F3 */ { 0, BX_IA_CVTSS2SD_VssWss
}
1171 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5b
[3] = {
1172 /* 66 */ { 0, BX_IA_CVTPS2DQ_VdqWps
},
1173 /* F2 */ { 0, BX_IA_ERROR
},
1174 /* F3 */ { 0, BX_IA_CVTTPS2DQ_VdqWps
}
1177 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5c
[3] = {
1178 /* 66 */ { 0, BX_IA_SUBPD_VpdWpd
},
1179 /* F2 */ { 0, BX_IA_SUBSD_VsdWsd
},
1180 /* F3 */ { 0, BX_IA_SUBSS_VssWss
}
1183 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5d
[3] = {
1184 /* 66 */ { 0, BX_IA_MINPD_VpdWpd
},
1185 /* F2 */ { 0, BX_IA_MINSD_VsdWsd
},
1186 /* F3 */ { 0, BX_IA_MINSS_VssWss
}
1189 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5e
[3] = {
1190 /* 66 */ { 0, BX_IA_DIVPD_VpdWpd
},
1191 /* F2 */ { 0, BX_IA_DIVSD_VsdWsd
},
1192 /* F3 */ { 0, BX_IA_DIVSS_VssWss
}
1195 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5f
[3] = {
1196 /* 66 */ { 0, BX_IA_MAXPD_VpdWpd
},
1197 /* F2 */ { 0, BX_IA_MAXSD_VsdWsd
},
1198 /* F3 */ { 0, BX_IA_MAXSS_VssWss
}
1201 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f60
[3] = {
1202 /* 66 */ { 0, BX_IA_PUNPCKLBW_VdqWdq
},
1203 /* F2 */ { 0, BX_IA_ERROR
},
1204 /* F3 */ { 0, BX_IA_ERROR
}
1207 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f61
[3] = {
1208 /* 66 */ { 0, BX_IA_PUNPCKLWD_VdqWdq
},
1209 /* F2 */ { 0, BX_IA_ERROR
},
1210 /* F3 */ { 0, BX_IA_ERROR
}
1213 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f62
[3] = {
1214 /* 66 */ { 0, BX_IA_PUNPCKLDQ_VdqWdq
},
1215 /* F2 */ { 0, BX_IA_ERROR
},
1216 /* F3 */ { 0, BX_IA_ERROR
}
1219 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f63
[3] = {
1220 /* 66 */ { 0, BX_IA_PACKSSWB_VdqWdq
},
1221 /* F2 */ { 0, BX_IA_ERROR
},
1222 /* F3 */ { 0, BX_IA_ERROR
}
1225 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f64
[3] = {
1226 /* 66 */ { 0, BX_IA_PCMPGTB_VdqWdq
},
1227 /* F2 */ { 0, BX_IA_ERROR
},
1228 /* F3 */ { 0, BX_IA_ERROR
}
1231 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f65
[3] = {
1232 /* 66 */ { 0, BX_IA_PCMPGTW_VdqWdq
},
1233 /* F2 */ { 0, BX_IA_ERROR
},
1234 /* F3 */ { 0, BX_IA_ERROR
}
1237 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f66
[3] = {
1238 /* 66 */ { 0, BX_IA_PCMPGTD_VdqWdq
},
1239 /* F2 */ { 0, BX_IA_ERROR
},
1240 /* F3 */ { 0, BX_IA_ERROR
}
1243 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f67
[3] = {
1244 /* 66 */ { 0, BX_IA_PACKUSWB_VdqWdq
},
1245 /* F2 */ { 0, BX_IA_ERROR
},
1246 /* F3 */ { 0, BX_IA_ERROR
}
1249 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f68
[3] = {
1250 /* 66 */ { 0, BX_IA_PUNPCKHBW_VdqWdq
},
1251 /* F2 */ { 0, BX_IA_ERROR
},
1252 /* F3 */ { 0, BX_IA_ERROR
}
1255 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f69
[3] = {
1256 /* 66 */ { 0, BX_IA_PUNPCKHWD_VdqWdq
},
1257 /* F2 */ { 0, BX_IA_ERROR
},
1258 /* F3 */ { 0, BX_IA_ERROR
}
1261 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6a
[3] = {
1262 /* 66 */ { 0, BX_IA_PUNPCKHDQ_VdqWdq
},
1263 /* F2 */ { 0, BX_IA_ERROR
},
1264 /* F3 */ { 0, BX_IA_ERROR
}
1267 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6b
[3] = {
1268 /* 66 */ { 0, BX_IA_PACKSSDW_VdqWdq
},
1269 /* F2 */ { 0, BX_IA_ERROR
},
1270 /* F3 */ { 0, BX_IA_ERROR
}
1273 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6c
[3] = {
1274 /* 66 */ { 0, BX_IA_PUNPCKLQDQ_VdqWdq
},
1275 /* F2 */ { 0, BX_IA_ERROR
},
1276 /* F3 */ { 0, BX_IA_ERROR
}
1279 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6d
[3] = {
1280 /* 66 */ { 0, BX_IA_PUNPCKHQDQ_VdqWdq
},
1281 /* F2 */ { 0, BX_IA_ERROR
},
1282 /* F3 */ { 0, BX_IA_ERROR
}
1285 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6e
[3] = {
1286 /* 66 */ { 0, BX_IA_MOVD_VdqEd
},
1287 /* F2 */ { 0, BX_IA_ERROR
},
1288 /* F3 */ { 0, BX_IA_ERROR
}
1291 #if BX_SUPPORT_X86_64
1292 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6eQ
[3] = {
1293 /* 66 */ { 0, BX_IA_MOVQ_VdqEq
},
1294 /* F2 */ { 0, BX_IA_ERROR
},
1295 /* F3 */ { 0, BX_IA_ERROR
}
1299 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6f
[3] = {
1300 /* 66 */ { 0, BX_IA_MOVDQA_VdqWdq
},
1301 /* F2 */ { 0, BX_IA_ERROR
},
1302 /* F3 */ { 0, BX_IA_MOVDQU_VdqWdq
}
1305 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f70
[3] = {
1306 /* 66 */ { 0, BX_IA_PSHUFD_VdqWdqIb
},
1307 /* F2 */ { 0, BX_IA_PSHUFHW_VdqWdqIb
},
1308 /* F3 */ { 0, BX_IA_PSHUFLW_VdqWdqIb
}
1311 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f74
[3] = {
1312 /* 66 */ { 0, BX_IA_PCMPEQB_VdqWdq
},
1313 /* F2 */ { 0, BX_IA_ERROR
},
1314 /* F3 */ { 0, BX_IA_ERROR
}
1317 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f75
[3] = {
1318 /* 66 */ { 0, BX_IA_PCMPEQW_VdqWdq
},
1319 /* F2 */ { 0, BX_IA_ERROR
},
1320 /* F3 */ { 0, BX_IA_ERROR
}
1323 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f76
[3] = {
1324 /* 66 */ { 0, BX_IA_PCMPEQD_VdqWdq
},
1325 /* F2 */ { 0, BX_IA_ERROR
},
1326 /* F3 */ { 0, BX_IA_ERROR
}
1329 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7c
[3] = {
1330 /* 66 */ { 0, BX_IA_HADDPD_VpdWpd
}, // SSE3
1331 /* F2 */ { 0, BX_IA_HADDPS_VpsWps
}, // SSE3
1332 /* F3 */ { 0, BX_IA_ERROR
}
1335 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7d
[3] = {
1336 /* 66 */ { 0, BX_IA_HSUBPD_VpdWpd
}, // SSE3
1337 /* F2 */ { 0, BX_IA_HSUBPS_VpsWps
}, // SSE3
1338 /* F3 */ { 0, BX_IA_ERROR
}
1341 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7e
[3] = {
1342 /* 66 */ { 0, BX_IA_MOVD_EdVd
},
1343 /* F2 */ { 0, BX_IA_ERROR
},
1344 /* F3 */ { 0, BX_IA_MOVQ_VqWq
}
1347 #if BX_SUPPORT_X86_64
1348 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7eQ
[3] = {
1349 /* 66 */ { 0, BX_IA_MOVQ_EqVq
},
1350 /* F2 */ { 0, BX_IA_ERROR
},
1351 /* F3 */ { 0, BX_IA_MOVQ_VqWq
}
1355 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7f
[3] = {
1356 /* 66 */ { 0, BX_IA_MOVDQA_WdqVdq
},
1357 /* F2 */ { 0, BX_IA_ERROR
},
1358 /* F3 */ { 0, BX_IA_MOVDQU_WdqVdq
}
1361 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8wR
[3] = {
1362 /* 66 */ { 0, BX_IA_ERROR
},
1363 /* F2 */ { 0, BX_IA_ERROR
},
1364 /* F3 */ { 0, BX_IA_POPCNT_GwEwR
}
1367 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8wM
[3] = {
1368 /* 66 */ { 0, BX_IA_ERROR
},
1369 /* F2 */ { 0, BX_IA_ERROR
},
1370 /* F3 */ { 0, BX_IA_POPCNT_GwEwM
}
1373 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8dR
[3] = {
1374 /* 66 */ { 0, BX_IA_ERROR
},
1375 /* F2 */ { 0, BX_IA_ERROR
},
1376 /* F3 */ { 0, BX_IA_POPCNT_GdEdR
}
1379 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8dM
[3] = {
1380 /* 66 */ { 0, BX_IA_ERROR
},
1381 /* F2 */ { 0, BX_IA_ERROR
},
1382 /* F3 */ { 0, BX_IA_POPCNT_GdEdM
}
1385 #if BX_SUPPORT_X86_64
1386 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8qR
[3] = {
1387 /* 66 */ { 0, BX_IA_ERROR
},
1388 /* F2 */ { 0, BX_IA_ERROR
},
1389 /* F3 */ { 0, BX_IA_POPCNT_GqEqR
}
1392 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8qM
[3] = {
1393 /* 66 */ { 0, BX_IA_ERROR
},
1394 /* F2 */ { 0, BX_IA_ERROR
},
1395 /* F3 */ { 0, BX_IA_POPCNT_GqEqM
}
1399 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc2
[3] = {
1400 /* 66 */ { 0, BX_IA_CMPPD_VpdWpdIb
},
1401 /* F2 */ { 0, BX_IA_CMPSD_VsdWsdIb
},
1402 /* F3 */ { 0, BX_IA_CMPSS_VssWssIb
}
1405 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc4
[3] = {
1406 /* 66 */ { 0, BX_IA_PINSRW_VdqEwIb
},
1407 /* F2 */ { 0, BX_IA_ERROR
},
1408 /* F3 */ { 0, BX_IA_ERROR
}
1411 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc5R
[3] = {
1412 /* 66 */ { 0, BX_IA_PEXTRW_GdUdqIb
},
1413 /* F2 */ { 0, BX_IA_ERROR
},
1414 /* F3 */ { 0, BX_IA_ERROR
}
1417 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc6
[3] = {
1418 /* 66 */ { 0, BX_IA_SHUFPD_VpdWpdIb
},
1419 /* F2 */ { 0, BX_IA_ERROR
},
1420 /* F3 */ { 0, BX_IA_ERROR
}
1423 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd0
[3] = {
1424 /* 66 */ { 0, BX_IA_ADDSUBPD_VpdWpd
}, // SSE3
1425 /* F2 */ { 0, BX_IA_ADDSUBPS_VpsWps
}, // SSE3
1426 /* F3 */ { 0, BX_IA_ERROR
}
1429 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd1
[3] = {
1430 /* 66 */ { 0, BX_IA_PSRLW_VdqWdq
},
1431 /* F2 */ { 0, BX_IA_ERROR
},
1432 /* F3 */ { 0, BX_IA_ERROR
}
1435 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd2
[3] = {
1436 /* 66 */ { 0, BX_IA_PSRLD_VdqWdq
},
1437 /* F2 */ { 0, BX_IA_ERROR
},
1438 /* F3 */ { 0, BX_IA_ERROR
}
1441 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd3
[3] = {
1442 /* 66 */ { 0, BX_IA_PSRLQ_VdqWdq
},
1443 /* F2 */ { 0, BX_IA_ERROR
},
1444 /* F3 */ { 0, BX_IA_ERROR
}
1447 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd4
[3] = {
1448 /* 66 */ { 0, BX_IA_PADDQ_VdqWdq
},
1449 /* F2 */ { 0, BX_IA_ERROR
},
1450 /* F3 */ { 0, BX_IA_ERROR
}
1453 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd5
[3] = {
1454 /* 66 */ { 0, BX_IA_PMULLW_VdqWdq
},
1455 /* F2 */ { 0, BX_IA_ERROR
},
1456 /* F3 */ { 0, BX_IA_ERROR
}
1459 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd6
[3] = {
1460 /* 66 */ { 0, BX_IA_MOVQ_WqVq
},
1461 /* F2 */ { 0, BX_IA_MOVDQ2Q_PqVRq
},
1462 /* F3 */ { 0, BX_IA_MOVQ2DQ_VdqQq
}
1465 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd7
[3] = {
1466 /* 66 */ { 0, BX_IA_PMOVMSKB_GdUdq
},
1467 /* F2 */ { 0, BX_IA_ERROR
},
1468 /* F3 */ { 0, BX_IA_ERROR
}
1471 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd8
[3] = {
1472 /* 66 */ { 0, BX_IA_PSUBUSB_VdqWdq
},
1473 /* F2 */ { 0, BX_IA_ERROR
},
1474 /* F3 */ { 0, BX_IA_ERROR
}
1477 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd9
[3] = {
1478 /* 66 */ { 0, BX_IA_PSUBUSW_VdqWdq
},
1479 /* F2 */ { 0, BX_IA_ERROR
},
1480 /* F3 */ { 0, BX_IA_ERROR
}
1483 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fda
[3] = {
1484 /* 66 */ { 0, BX_IA_PMINUB_VdqWdq
},
1485 /* F2 */ { 0, BX_IA_ERROR
},
1486 /* F3 */ { 0, BX_IA_ERROR
}
1489 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdb
[3] = {
1490 /* 66 */ { 0, BX_IA_PAND_VdqWdq
},
1491 /* F2 */ { 0, BX_IA_ERROR
},
1492 /* F3 */ { 0, BX_IA_ERROR
}
1495 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdc
[3] = {
1496 /* 66 */ { 0, BX_IA_PADDUSB_VdqWdq
},
1497 /* F2 */ { 0, BX_IA_ERROR
},
1498 /* F3 */ { 0, BX_IA_ERROR
}
1501 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdd
[3] = {
1502 /* 66 */ { 0, BX_IA_PADDUSW_VdqWdq
},
1503 /* F2 */ { 0, BX_IA_ERROR
},
1504 /* F3 */ { 0, BX_IA_ERROR
}
1507 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fde
[3] = {
1508 /* 66 */ { 0, BX_IA_PMAXUB_VdqWdq
},
1509 /* F2 */ { 0, BX_IA_ERROR
},
1510 /* F3 */ { 0, BX_IA_ERROR
}
1513 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdf
[3] = {
1514 /* 66 */ { 0, BX_IA_PANDN_VdqWdq
},
1515 /* F2 */ { 0, BX_IA_ERROR
},
1516 /* F3 */ { 0, BX_IA_ERROR
}
1519 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe0
[3] = {
1520 /* 66 */ { 0, BX_IA_PAVGB_VdqWdq
},
1521 /* F2 */ { 0, BX_IA_ERROR
},
1522 /* F3 */ { 0, BX_IA_ERROR
}
1525 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe1
[3] = {
1526 /* 66 */ { 0, BX_IA_PSRAW_VdqWdq
},
1527 /* F2 */ { 0, BX_IA_ERROR
},
1528 /* F3 */ { 0, BX_IA_ERROR
}
1531 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe2
[3] = {
1532 /* 66 */ { 0, BX_IA_PSRAD_VdqWdq
},
1533 /* F2 */ { 0, BX_IA_ERROR
},
1534 /* F3 */ { 0, BX_IA_ERROR
}
1537 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe3
[3] = {
1538 /* 66 */ { 0, BX_IA_PAVGW_VdqWdq
},
1539 /* F2 */ { 0, BX_IA_ERROR
},
1540 /* F3 */ { 0, BX_IA_ERROR
}
1543 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe4
[3] = {
1544 /* 66 */ { 0, BX_IA_PMULHUW_VdqWdq
},
1545 /* F2 */ { 0, BX_IA_ERROR
},
1546 /* F3 */ { 0, BX_IA_ERROR
}
1549 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe5
[3] = {
1550 /* 66 */ { 0, BX_IA_PMULHW_VdqWdq
},
1551 /* F2 */ { 0, BX_IA_ERROR
},
1552 /* F3 */ { 0, BX_IA_ERROR
}
1555 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe6
[3] = {
1556 /* 66 */ { 0, BX_IA_CVTTPD2DQ_VqWpd
},
1557 /* F2 */ { 0, BX_IA_CVTPD2DQ_VqWpd
},
1558 /* F3 */ { 0, BX_IA_CVTDQ2PD_VpdWq
}
1561 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe7M
[3] = {
1562 /* 66 */ { 0, BX_IA_MOVNTDQ_MdqVdq
},
1563 /* F2 */ { 0, BX_IA_ERROR
},
1564 /* F3 */ { 0, BX_IA_ERROR
}
1567 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe8
[3] = {
1568 /* 66 */ { 0, BX_IA_PSUBSB_VdqWdq
},
1569 /* F2 */ { 0, BX_IA_ERROR
},
1570 /* F3 */ { 0, BX_IA_ERROR
}
1573 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe9
[3] = {
1574 /* 66 */ { 0, BX_IA_PSUBSW_VdqWdq
},
1575 /* F2 */ { 0, BX_IA_ERROR
},
1576 /* F3 */ { 0, BX_IA_ERROR
}
1579 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fea
[3] = {
1580 /* 66 */ { 0, BX_IA_PMINSW_VdqWdq
},
1581 /* F2 */ { 0, BX_IA_ERROR
},
1582 /* F3 */ { 0, BX_IA_ERROR
}
1585 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0feb
[3] = {
1586 /* 66 */ { 0, BX_IA_POR_VdqWdq
},
1587 /* F2 */ { 0, BX_IA_ERROR
},
1588 /* F3 */ { 0, BX_IA_ERROR
}
1591 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fec
[3] = {
1592 /* 66 */ { 0, BX_IA_PADDSB_VdqWdq
},
1593 /* F2 */ { 0, BX_IA_ERROR
},
1594 /* F3 */ { 0, BX_IA_ERROR
}
1597 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fed
[3] = {
1598 /* 66 */ { 0, BX_IA_PADDSW_VdqWdq
},
1599 /* F2 */ { 0, BX_IA_ERROR
},
1600 /* F3 */ { 0, BX_IA_ERROR
}
1603 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fee
[3] = {
1604 /* 66 */ { 0, BX_IA_PMAXSW_VdqWdq
},
1605 /* F2 */ { 0, BX_IA_ERROR
},
1606 /* F3 */ { 0, BX_IA_ERROR
}
1609 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fef
[3] = {
1610 /* 66 */ { 0, BX_IA_PXOR_VdqWdq
},
1611 /* F2 */ { 0, BX_IA_ERROR
},
1612 /* F3 */ { 0, BX_IA_ERROR
}
1615 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff0M
[3] = {
1616 /* 66 */ { 0, BX_IA_ERROR
},
1617 /* F2 */ { 0, BX_IA_LDDQU_VdqMdq
}, // SSE3
1618 /* F3 */ { 0, BX_IA_ERROR
}
1621 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff1
[3] = {
1622 /* 66 */ { 0, BX_IA_PSLLW_VdqWdq
},
1623 /* F2 */ { 0, BX_IA_ERROR
},
1624 /* F3 */ { 0, BX_IA_ERROR
}
1627 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff2
[3] = {
1628 /* 66 */ { 0, BX_IA_PSLLD_VdqWdq
},
1629 /* F2 */ { 0, BX_IA_ERROR
},
1630 /* F3 */ { 0, BX_IA_ERROR
}
1633 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff3
[3] = {
1634 /* 66 */ { 0, BX_IA_PSLLQ_VdqWdq
},
1635 /* F2 */ { 0, BX_IA_ERROR
},
1636 /* F3 */ { 0, BX_IA_ERROR
}
1639 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff4
[3] = {
1640 /* 66 */ { 0, BX_IA_PMULUDQ_VdqWdq
},
1641 /* F2 */ { 0, BX_IA_ERROR
},
1642 /* F3 */ { 0, BX_IA_ERROR
}
1645 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff5
[3] = {
1646 /* 66 */ { 0, BX_IA_PMADDWD_VdqWdq
},
1647 /* F2 */ { 0, BX_IA_ERROR
},
1648 /* F3 */ { 0, BX_IA_ERROR
}
1651 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff6
[3] = {
1652 /* 66 */ { 0, BX_IA_PSADBW_VdqWdq
},
1653 /* F2 */ { 0, BX_IA_ERROR
},
1654 /* F3 */ { 0, BX_IA_ERROR
}
1657 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff7R
[3] = {
1658 /* 66 */ { 0, BX_IA_MASKMOVDQU_VdqUdq
},
1659 /* F2 */ { 0, BX_IA_ERROR
},
1660 /* F3 */ { 0, BX_IA_ERROR
}
1663 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff8
[3] = {
1664 /* 66 */ { 0, BX_IA_PSUBB_VdqWdq
},
1665 /* F2 */ { 0, BX_IA_ERROR
},
1666 /* F3 */ { 0, BX_IA_ERROR
}
1669 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff9
[3] = {
1670 /* 66 */ { 0, BX_IA_PSUBW_VdqWdq
},
1671 /* F2 */ { 0, BX_IA_ERROR
},
1672 /* F3 */ { 0, BX_IA_ERROR
}
1675 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffa
[3] = {
1676 /* 66 */ { 0, BX_IA_PSUBD_VdqWdq
},
1677 /* F2 */ { 0, BX_IA_ERROR
},
1678 /* F3 */ { 0, BX_IA_ERROR
}
1681 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffb
[3] = {
1682 /* 66 */ { 0, BX_IA_PSUBQ_VdqWdq
},
1683 /* F2 */ { 0, BX_IA_ERROR
},
1684 /* F3 */ { 0, BX_IA_ERROR
}
1687 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffc
[3] = {
1688 /* 66 */ { 0, BX_IA_PADDB_VdqWdq
},
1689 /* F2 */ { 0, BX_IA_ERROR
},
1690 /* F3 */ { 0, BX_IA_ERROR
}
1693 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffd
[3] = {
1694 /* 66 */ { 0, BX_IA_PADDW_VdqWdq
},
1695 /* F2 */ { 0, BX_IA_ERROR
},
1696 /* F3 */ { 0, BX_IA_ERROR
}
1699 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffe
[3] = {
1700 /* 66 */ { 0, BX_IA_PADDD_VdqWdq
},
1701 /* F2 */ { 0, BX_IA_ERROR
},
1702 /* F3 */ { 0, BX_IA_ERROR
}
1705 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1202
[3] = {
1706 /* 66 */ { 0, BX_IA_PSRLW_UdqIb
},
1707 /* F2 */ { 0, BX_IA_ERROR
},
1708 /* F3 */ { 0, BX_IA_ERROR
}
1711 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1204
[3] = {
1712 /* 66 */ { 0, BX_IA_PSRAW_UdqIb
},
1713 /* F2 */ { 0, BX_IA_ERROR
},
1714 /* F3 */ { 0, BX_IA_ERROR
}
1717 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1206
[3] = {
1718 /* 66 */ { 0, BX_IA_PSLLW_UdqIb
},
1719 /* F2 */ { 0, BX_IA_ERROR
},
1720 /* F3 */ { 0, BX_IA_ERROR
}
1723 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1302
[3] = {
1724 /* 66 */ { 0, BX_IA_PSRLD_UdqIb
},
1725 /* F2 */ { 0, BX_IA_ERROR
},
1726 /* F3 */ { 0, BX_IA_ERROR
}
1729 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1304
[3] = {
1730 /* 66 */ { 0, BX_IA_PSRAD_UdqIb
},
1731 /* F2 */ { 0, BX_IA_ERROR
},
1732 /* F3 */ { 0, BX_IA_ERROR
}
1735 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1306
[3] = {
1736 /* 66 */ { 0, BX_IA_PSLLD_UdqIb
},
1737 /* F2 */ { 0, BX_IA_ERROR
},
1738 /* F3 */ { 0, BX_IA_ERROR
}
1741 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1402
[3] = {
1742 /* 66 */ { 0, BX_IA_PSRLQ_UdqIb
},
1743 /* F2 */ { 0, BX_IA_ERROR
},
1744 /* F3 */ { 0, BX_IA_ERROR
}
1747 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1403
[3] = {
1748 /* 66 */ { 0, BX_IA_PSRLDQ_UdqIb
},
1749 /* F2 */ { 0, BX_IA_ERROR
},
1750 /* F3 */ { 0, BX_IA_ERROR
}
1753 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1406
[3] = {
1754 /* 66 */ { 0, BX_IA_PSLLQ_UdqIb
},
1755 /* F2 */ { 0, BX_IA_ERROR
},
1756 /* F3 */ { 0, BX_IA_ERROR
}
1759 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1407
[3] = {
1760 /* 66 */ { 0, BX_IA_PSLLDQ_UdqIb
},
1761 /* F2 */ { 0, BX_IA_ERROR
},
1762 /* F3 */ { 0, BX_IA_ERROR
}
1765 #if (BX_SUPPORT_SSE >= 4) || (BX_SUPPORT_SSE >= 3 && BX_SUPPORT_SSE_EXTENSION > 0)
1767 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3800
[3] = {
1768 /* 66 */ { 0, BX_IA_PSHUFB_VdqWdq
},
1769 /* F2 */ { 0, BX_IA_ERROR
},
1770 /* F3 */ { 0, BX_IA_ERROR
}
1773 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3801
[3] = {
1774 /* 66 */ { 0, BX_IA_PHADDW_VdqWdq
},
1775 /* F2 */ { 0, BX_IA_ERROR
},
1776 /* F3 */ { 0, BX_IA_ERROR
}
1779 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3802
[3] = {
1780 /* 66 */ { 0, BX_IA_PHADDD_VdqWdq
},
1781 /* F2 */ { 0, BX_IA_ERROR
},
1782 /* F3 */ { 0, BX_IA_ERROR
}
1785 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3803
[3] = {
1786 /* 66 */ { 0, BX_IA_PHADDSW_VdqWdq
},
1787 /* F2 */ { 0, BX_IA_ERROR
},
1788 /* F3 */ { 0, BX_IA_ERROR
}
1791 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3804
[3] = {
1792 /* 66 */ { 0, BX_IA_PMADDUBSW_VdqWdq
},
1793 /* F2 */ { 0, BX_IA_ERROR
},
1794 /* F3 */ { 0, BX_IA_ERROR
}
1797 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3805
[3] = {
1798 /* 66 */ { 0, BX_IA_PHSUBW_VdqWdq
},
1799 /* F2 */ { 0, BX_IA_ERROR
},
1800 /* F3 */ { 0, BX_IA_ERROR
}
1803 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3806
[3] = {
1804 /* 66 */ { 0, BX_IA_PHSUBD_VdqWdq
},
1805 /* F2 */ { 0, BX_IA_ERROR
},
1806 /* F3 */ { 0, BX_IA_ERROR
}
1809 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3807
[3] = {
1810 /* 66 */ { 0, BX_IA_PHSUBSW_VdqWdq
},
1811 /* F2 */ { 0, BX_IA_ERROR
},
1812 /* F3 */ { 0, BX_IA_ERROR
}
1815 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3808
[3] = {
1816 /* 66 */ { 0, BX_IA_PSIGNB_VdqWdq
},
1817 /* F2 */ { 0, BX_IA_ERROR
},
1818 /* F3 */ { 0, BX_IA_ERROR
}
1821 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3809
[3] = {
1822 /* 66 */ { 0, BX_IA_PSIGNW_VdqWdq
},
1823 /* F2 */ { 0, BX_IA_ERROR
},
1824 /* F3 */ { 0, BX_IA_ERROR
}
1827 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f380a
[3] = {
1828 /* 66 */ { 0, BX_IA_PSIGND_VdqWdq
},
1829 /* F2 */ { 0, BX_IA_ERROR
},
1830 /* F3 */ { 0, BX_IA_ERROR
}
1833 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f380b
[3] = {
1834 /* 66 */ { 0, BX_IA_PMULHRSW_VdqWdq
},
1835 /* F2 */ { 0, BX_IA_ERROR
},
1836 /* F3 */ { 0, BX_IA_ERROR
}
1839 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3810
[3] = {
1840 /* 66 */ { 0, BX_IA_PBLENDVB_VdqWdq
},
1841 /* F2 */ { 0, BX_IA_ERROR
},
1842 /* F3 */ { 0, BX_IA_ERROR
}
1845 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3814
[3] = {
1846 /* 66 */ { 0, BX_IA_BLENDVPS_VpsWps
},
1847 /* F2 */ { 0, BX_IA_ERROR
},
1848 /* F3 */ { 0, BX_IA_ERROR
}
1851 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3815
[3] = {
1852 /* 66 */ { 0, BX_IA_BLENDVPD_VpdWpd
},
1853 /* F2 */ { 0, BX_IA_ERROR
},
1854 /* F3 */ { 0, BX_IA_ERROR
}
1857 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3817
[3] = {
1858 /* 66 */ { 0, BX_IA_PTEST_VdqWdq
},
1859 /* F2 */ { 0, BX_IA_ERROR
},
1860 /* F3 */ { 0, BX_IA_ERROR
}
1863 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f381c
[3] = {
1864 /* 66 */ { 0, BX_IA_PABSB_VdqWdq
},
1865 /* F2 */ { 0, BX_IA_ERROR
},
1866 /* F3 */ { 0, BX_IA_ERROR
}
1869 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f381d
[3] = {
1870 /* 66 */ { 0, BX_IA_PABSW_VdqWdq
},
1871 /* F2 */ { 0, BX_IA_ERROR
},
1872 /* F3 */ { 0, BX_IA_ERROR
}
1875 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f381e
[3] = {
1876 /* 66 */ { 0, BX_IA_PABSD_VdqWdq
},
1877 /* F2 */ { 0, BX_IA_ERROR
},
1878 /* F3 */ { 0, BX_IA_ERROR
}
1881 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3820
[3] = {
1882 /* 66 */ { 0, BX_IA_PMOVSXBW_VdqWq
},
1883 /* F2 */ { 0, BX_IA_ERROR
},
1884 /* F3 */ { 0, BX_IA_ERROR
}
1887 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3821
[3] = {
1888 /* 66 */ { 0, BX_IA_PMOVSXBD_VdqWd
},
1889 /* F2 */ { 0, BX_IA_ERROR
},
1890 /* F3 */ { 0, BX_IA_ERROR
}
1893 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3822
[3] = {
1894 /* 66 */ { 0, BX_IA_PMOVSXBQ_VdqWw
},
1895 /* F2 */ { 0, BX_IA_ERROR
},
1896 /* F3 */ { 0, BX_IA_ERROR
}
1899 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3823
[3] = {
1900 /* 66 */ { 0, BX_IA_PMOVSXWD_VdqWq
},
1901 /* F2 */ { 0, BX_IA_ERROR
},
1902 /* F3 */ { 0, BX_IA_ERROR
}
1905 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3824
[3] = {
1906 /* 66 */ { 0, BX_IA_PMOVSXWQ_VdqWd
},
1907 /* F2 */ { 0, BX_IA_ERROR
},
1908 /* F3 */ { 0, BX_IA_ERROR
}
1911 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3825
[3] = {
1912 /* 66 */ { 0, BX_IA_PMOVSXDQ_VdqWq
},
1913 /* F2 */ { 0, BX_IA_ERROR
},
1914 /* F3 */ { 0, BX_IA_ERROR
}
1917 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3828
[3] = {
1918 /* 66 */ { 0, BX_IA_PMULDQ_VdqWdq
},
1919 /* F2 */ { 0, BX_IA_ERROR
},
1920 /* F3 */ { 0, BX_IA_ERROR
}
1923 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3829
[3] = {
1924 /* 66 */ { 0, BX_IA_PCMPEQQ_VdqWdq
},
1925 /* F2 */ { 0, BX_IA_ERROR
},
1926 /* F3 */ { 0, BX_IA_ERROR
}
1929 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f382a
[3] = {
1930 /* 66 */ { 0, BX_IA_MOVNTDQA_VdqMdq
},
1931 /* F2 */ { 0, BX_IA_ERROR
},
1932 /* F3 */ { 0, BX_IA_ERROR
}
1935 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f382b
[3] = {
1936 /* 66 */ { 0, BX_IA_PACKUSDW_VdqWdq
},
1937 /* F2 */ { 0, BX_IA_ERROR
},
1938 /* F3 */ { 0, BX_IA_ERROR
}
1941 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3830
[3] = {
1942 /* 66 */ { 0, BX_IA_PMOVZXBW_VdqWq
},
1943 /* F2 */ { 0, BX_IA_ERROR
},
1944 /* F3 */ { 0, BX_IA_ERROR
}
1947 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3831
[3] = {
1948 /* 66 */ { 0, BX_IA_PMOVZXBD_VdqWd
},
1949 /* F2 */ { 0, BX_IA_ERROR
},
1950 /* F3 */ { 0, BX_IA_ERROR
}
1953 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3832
[3] = {
1954 /* 66 */ { 0, BX_IA_PMOVZXBQ_VdqWw
},
1955 /* F2 */ { 0, BX_IA_ERROR
},
1956 /* F3 */ { 0, BX_IA_ERROR
}
1959 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3833
[3] = {
1960 /* 66 */ { 0, BX_IA_PMOVZXWD_VdqWq
},
1961 /* F2 */ { 0, BX_IA_ERROR
},
1962 /* F3 */ { 0, BX_IA_ERROR
}
1965 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3834
[3] = {
1966 /* 66 */ { 0, BX_IA_PMOVZXWQ_VdqWd
},
1967 /* F2 */ { 0, BX_IA_ERROR
},
1968 /* F3 */ { 0, BX_IA_ERROR
}
1971 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3835
[3] = {
1972 /* 66 */ { 0, BX_IA_PMOVZXDQ_VdqWq
},
1973 /* F2 */ { 0, BX_IA_ERROR
},
1974 /* F3 */ { 0, BX_IA_ERROR
}
1977 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3837
[3] = {
1978 /* 66 */ { 0, BX_IA_PCMPGTQ_VdqWdq
},
1979 /* F2 */ { 0, BX_IA_ERROR
},
1980 /* F3 */ { 0, BX_IA_ERROR
}
1983 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3838
[3] = {
1984 /* 66 */ { 0, BX_IA_PMINSB_VdqWdq
},
1985 /* F2 */ { 0, BX_IA_ERROR
},
1986 /* F3 */ { 0, BX_IA_ERROR
}
1989 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3839
[3] = {
1990 /* 66 */ { 0, BX_IA_PMINSD_VdqWdq
},
1991 /* F2 */ { 0, BX_IA_ERROR
},
1992 /* F3 */ { 0, BX_IA_ERROR
}
1995 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383a
[3] = {
1996 /* 66 */ { 0, BX_IA_PMINUW_VdqWdq
},
1997 /* F2 */ { 0, BX_IA_ERROR
},
1998 /* F3 */ { 0, BX_IA_ERROR
}
2001 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383b
[3] = {
2002 /* 66 */ { 0, BX_IA_PMINUD_VdqWdq
},
2003 /* F2 */ { 0, BX_IA_ERROR
},
2004 /* F3 */ { 0, BX_IA_ERROR
}
2007 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383c
[3] = {
2008 /* 66 */ { 0, BX_IA_PMAXSB_VdqWdq
},
2009 /* F2 */ { 0, BX_IA_ERROR
},
2010 /* F3 */ { 0, BX_IA_ERROR
}
2013 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383d
[3] = {
2014 /* 66 */ { 0, BX_IA_PMAXSD_VdqWdq
},
2015 /* F2 */ { 0, BX_IA_ERROR
},
2016 /* F3 */ { 0, BX_IA_ERROR
}
2019 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383e
[3] = {
2020 /* 66 */ { 0, BX_IA_PMAXUW_VdqWdq
},
2021 /* F2 */ { 0, BX_IA_ERROR
},
2022 /* F3 */ { 0, BX_IA_ERROR
}
2025 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383f
[3] = {
2026 /* 66 */ { 0, BX_IA_PMAXUD_VdqWdq
},
2027 /* F2 */ { 0, BX_IA_ERROR
},
2028 /* F3 */ { 0, BX_IA_ERROR
}
2031 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3840
[3] = {
2032 /* 66 */ { 0, BX_IA_PMULLD_VdqWdq
},
2033 /* F2 */ { 0, BX_IA_ERROR
},
2034 /* F3 */ { 0, BX_IA_ERROR
}
2037 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3841
[3] = {
2038 /* 66 */ { 0, BX_IA_PHMINPOSUW_VdqWdq
},
2039 /* F2 */ { 0, BX_IA_ERROR
},
2040 /* F3 */ { 0, BX_IA_ERROR
}
2043 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38db
[3] = {
2044 /* 66 */ { 0, BX_IA_AESIMC_VdqWdq
}, // AES
2045 /* F2 */ { 0, BX_IA_ERROR
},
2046 /* F3 */ { 0, BX_IA_ERROR
}
2049 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38dc
[3] = {
2050 /* 66 */ { 0, BX_IA_AESENC_VdqWdq
}, // AES
2051 /* F2 */ { 0, BX_IA_ERROR
},
2052 /* F3 */ { 0, BX_IA_ERROR
}
2055 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38dd
[3] = {
2056 /* 66 */ { 0, BX_IA_AESENCLAST_VdqWdq
}, // AES
2057 /* F2 */ { 0, BX_IA_ERROR
},
2058 /* F3 */ { 0, BX_IA_ERROR
}
2061 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38de
[3] = {
2062 /* 66 */ { 0, BX_IA_AESDEC_VdqWdq
}, // AES
2063 /* F2 */ { 0, BX_IA_ERROR
},
2064 /* F3 */ { 0, BX_IA_ERROR
}
2067 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38df
[3] = {
2068 /* 66 */ { 0, BX_IA_AESDECLAST_VdqWdq
}, // AES
2069 /* F2 */ { 0, BX_IA_ERROR
},
2070 /* F3 */ { 0, BX_IA_ERROR
}
2073 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38f0
[3] = {
2074 /* 66 */ { 0, BX_IA_ERROR
},
2075 /* F2 */ { 0, BX_IA_CRC32_GdEb
},
2076 /* F3 */ { 0, BX_IA_ERROR
}
2079 static const BxOpcodeInfo_t BxOpcodeGroupOsize0f38f0
[BX_SUPPORT_X86_64
+ 2] = {
2080 /* 16 */ { BxPrefixSSE
, BX_IA_MOVBE_GwEw
, BxOpcodeGroupSSE_0f38f0
},
2081 /* 32 */ { BxPrefixSSE
, BX_IA_MOVBE_GdEd
, BxOpcodeGroupSSE_0f38f0
},
2082 #if BX_SUPPORT_X86_64
2083 /* 64 */ { BxPrefixSSE
, BX_IA_MOVBE_GqEq
, BxOpcodeGroupSSE_0f38f0
},
2087 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38f1w
[3] = {
2088 /* 66 */ { 0, BX_IA_ERROR
},
2089 /* F2 */ { 0, BX_IA_CRC32_GdEw
},
2090 /* F3 */ { 0, BX_IA_ERROR
}
2093 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38f1d
[3] = {
2094 /* 66 */ { 0, BX_IA_ERROR
},
2095 /* F2 */ { 0, BX_IA_CRC32_GdEd
},
2096 /* F3 */ { 0, BX_IA_ERROR
}
2099 #if BX_SUPPORT_X86_64
2100 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38f1q
[3] = {
2101 /* 66 */ { 0, BX_IA_ERROR
},
2102 /* F2 */ { 0, BX_IA_CRC32_GdEq
},
2103 /* F3 */ { 0, BX_IA_ERROR
}
2107 static const BxOpcodeInfo_t BxOpcodeGroupOsize0f38f1
[BX_SUPPORT_X86_64
+ 2] = {
2108 /* 16 */ { BxPrefixSSE
, BX_IA_MOVBE_EwGw
, BxOpcodeGroupSSE_0f38f1w
},
2109 /* 32 */ { BxPrefixSSE
, BX_IA_MOVBE_EdGd
, BxOpcodeGroupSSE_0f38f1d
},
2110 #if BX_SUPPORT_X86_64
2111 /* 64 */ { BxPrefixSSE
, BX_IA_MOVBE_EqGq
, BxOpcodeGroupSSE_0f38f1q
},
2115 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a08
[3] = {
2116 /* 66 */ { 0, BX_IA_ROUNDPS_VpsWpsIb
},
2117 /* F2 */ { 0, BX_IA_ERROR
},
2118 /* F3 */ { 0, BX_IA_ERROR
}
2121 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a09
[3] = {
2122 /* 66 */ { 0, BX_IA_ROUNDPD_VpdWpdIb
},
2123 /* F2 */ { 0, BX_IA_ERROR
},
2124 /* F3 */ { 0, BX_IA_ERROR
}
2127 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0a
[3] = {
2128 /* 66 */ { 0, BX_IA_ROUNDSS_VssWssIb
},
2129 /* F2 */ { 0, BX_IA_ERROR
},
2130 /* F3 */ { 0, BX_IA_ERROR
}
2133 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0b
[3] = {
2134 /* 66 */ { 0, BX_IA_ROUNDSD_VsdWsdIb
},
2135 /* F2 */ { 0, BX_IA_ERROR
},
2136 /* F3 */ { 0, BX_IA_ERROR
}
2139 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0c
[3] = {
2140 /* 66 */ { 0, BX_IA_BLENDPS_VpsWpsIb
},
2141 /* F2 */ { 0, BX_IA_ERROR
},
2142 /* F3 */ { 0, BX_IA_ERROR
}
2145 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0d
[3] = {
2146 /* 66 */ { 0, BX_IA_BLENDPD_VpdWpdIb
},
2147 /* F2 */ { 0, BX_IA_ERROR
},
2148 /* F3 */ { 0, BX_IA_ERROR
}
2151 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0e
[3] = {
2152 /* 66 */ { 0, BX_IA_PBLENDW_VdqWdqIb
},
2153 /* F2 */ { 0, BX_IA_ERROR
},
2154 /* F3 */ { 0, BX_IA_ERROR
}
2157 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0f
[3] = {
2158 /* 66 */ { 0, BX_IA_PALIGNR_VdqWdqIb
},
2159 /* F2 */ { 0, BX_IA_ERROR
},
2160 /* F3 */ { 0, BX_IA_ERROR
}
2163 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a14
[3] = {
2164 /* 66 */ { 0, BX_IA_PEXTRB_HbdUdqIb
},
2165 /* F2 */ { 0, BX_IA_ERROR
},
2166 /* F3 */ { 0, BX_IA_ERROR
}
2169 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a15
[3] = {
2170 /* 66 */ { 0, BX_IA_PEXTRW_HwdUdqIb
},
2171 /* F2 */ { 0, BX_IA_ERROR
},
2172 /* F3 */ { 0, BX_IA_ERROR
}
2175 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a16
[3] = {
2176 /* 66 */ { 0, BX_IA_PEXTRD_HdUdqIb
},
2177 /* F2 */ { 0, BX_IA_ERROR
},
2178 /* F3 */ { 0, BX_IA_ERROR
}
2181 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a17
[3] = {
2182 /* 66 */ { 0, BX_IA_EXTRACTPS_HdUpsIb
},
2183 /* F2 */ { 0, BX_IA_ERROR
},
2184 /* F3 */ { 0, BX_IA_ERROR
}
2187 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a20
[3] = {
2188 /* 66 */ { 0, BX_IA_PINSRB_VdqEbIb
},
2189 /* F2 */ { 0, BX_IA_ERROR
},
2190 /* F3 */ { 0, BX_IA_ERROR
}
2193 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a21
[3] = {
2194 /* 66 */ { 0, BX_IA_INSERTPS_VpsWssIb
},
2195 /* F2 */ { 0, BX_IA_ERROR
},
2196 /* F3 */ { 0, BX_IA_ERROR
}
2199 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a22
[3] = {
2200 /* 66 */ { 0, BX_IA_PINSRD_VdqEdIb
},
2201 /* F2 */ { 0, BX_IA_ERROR
},
2202 /* F3 */ { 0, BX_IA_ERROR
}
2205 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a40
[3] = {
2206 /* 66 */ { 0, BX_IA_DPPS_VpsWpsIb
},
2207 /* F2 */ { 0, BX_IA_ERROR
},
2208 /* F3 */ { 0, BX_IA_ERROR
}
2211 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a41
[3] = {
2212 /* 66 */ { 0, BX_IA_DPPD_VpdWpdIb
},
2213 /* F2 */ { 0, BX_IA_ERROR
},
2214 /* F3 */ { 0, BX_IA_ERROR
}
2217 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a42
[3] = {
2218 /* 66 */ { 0, BX_IA_MPSADBW_VdqWdqIb
},
2219 /* F2 */ { 0, BX_IA_ERROR
},
2220 /* F3 */ { 0, BX_IA_ERROR
}
2223 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a60
[3] = {
2224 /* 66 */ { 0, BX_IA_PCMPESTRM_VdqWdqIb
},
2225 /* F2 */ { 0, BX_IA_ERROR
},
2226 /* F3 */ { 0, BX_IA_ERROR
}
2229 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a61
[3] = {
2230 /* 66 */ { 0, BX_IA_PCMPESTRI_VdqWdqIb
},
2231 /* F2 */ { 0, BX_IA_ERROR
},
2232 /* F3 */ { 0, BX_IA_ERROR
}
2235 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a62
[3] = {
2236 /* 66 */ { 0, BX_IA_PCMPISTRM_VdqWdqIb
},
2237 /* F2 */ { 0, BX_IA_ERROR
},
2238 /* F3 */ { 0, BX_IA_ERROR
}
2241 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a63
[3] = {
2242 /* 66 */ { 0, BX_IA_PCMPISTRI_VdqWdqIb
},
2243 /* F2 */ { 0, BX_IA_ERROR
},
2244 /* F3 */ { 0, BX_IA_ERROR
}
2247 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3adf
[3] = {
2248 /* 66 */ { 0, BX_IA_AESKEYGENASSIST_VdqWdqIb
},
2249 /* F2 */ { 0, BX_IA_ERROR
},
2250 /* F3 */ { 0, BX_IA_ERROR
}
2253 /* ************************************************************************ */
2254 /* 3-byte opcode table (Table A-4, 0F 38) */
2256 static const BxOpcodeInfo_t BxOpcode3ByteTable0f38
[256] = {
2257 /* 00 */ { BxPrefixSSE
, BX_IA_PSHUFB_PqQq
, BxOpcodeGroupSSE_0f3800
},
2258 /* 01 */ { BxPrefixSSE
, BX_IA_PHADDW_PqQq
, BxOpcodeGroupSSE_0f3801
},
2259 /* 02 */ { BxPrefixSSE
, BX_IA_PHADDD_PqQq
, BxOpcodeGroupSSE_0f3802
},
2260 /* 03 */ { BxPrefixSSE
, BX_IA_PHADDSW_PqQq
, BxOpcodeGroupSSE_0f3803
},
2261 /* 04 */ { BxPrefixSSE
, BX_IA_PMADDUBSW_PqQq
, BxOpcodeGroupSSE_0f3804
},
2262 /* 05 */ { BxPrefixSSE
, BX_IA_PHSUBW_PqQq
, BxOpcodeGroupSSE_0f3805
},
2263 /* 06 */ { BxPrefixSSE
, BX_IA_PHSUBD_PqQq
, BxOpcodeGroupSSE_0f3806
},
2264 /* 07 */ { BxPrefixSSE
, BX_IA_PHSUBSW_PqQq
, BxOpcodeGroupSSE_0f3807
},
2265 /* 08 */ { BxPrefixSSE
, BX_IA_PSIGNB_PqQq
, BxOpcodeGroupSSE_0f3808
},
2266 /* 09 */ { BxPrefixSSE
, BX_IA_PSIGNW_PqQq
, BxOpcodeGroupSSE_0f3809
},
2267 /* 0A */ { BxPrefixSSE
, BX_IA_PSIGND_PqQq
, BxOpcodeGroupSSE_0f380a
},
2268 /* 0B */ { BxPrefixSSE
, BX_IA_PMULHRSW_PqQq
, BxOpcodeGroupSSE_0f380b
},
2269 /* 0C */ { 0, BX_IA_ERROR
},
2270 /* 0D */ { 0, BX_IA_ERROR
},
2271 /* 0E */ { 0, BX_IA_ERROR
},
2272 /* 0F */ { 0, BX_IA_ERROR
},
2273 /* 10 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3810
},
2274 /* 11 */ { 0, BX_IA_ERROR
},
2275 /* 12 */ { 0, BX_IA_ERROR
},
2276 /* 13 */ { 0, BX_IA_ERROR
},
2277 /* 14 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3814
},
2278 /* 15 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3815
},
2279 /* 16 */ { 0, BX_IA_ERROR
},
2280 /* 17 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3817
},
2281 /* 18 */ { 0, BX_IA_ERROR
},
2282 /* 19 */ { 0, BX_IA_ERROR
},
2283 /* 1A */ { 0, BX_IA_ERROR
},
2284 /* 1B */ { 0, BX_IA_ERROR
},
2285 /* 1C */ { BxPrefixSSE
, BX_IA_PABSB_PqQq
, BxOpcodeGroupSSE_0f381c
},
2286 /* 1D */ { BxPrefixSSE
, BX_IA_PABSW_PqQq
, BxOpcodeGroupSSE_0f381d
},
2287 /* 1E */ { BxPrefixSSE
, BX_IA_PABSD_PqQq
, BxOpcodeGroupSSE_0f381e
},
2288 /* 1F */ { 0, BX_IA_ERROR
},
2289 /* 20 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3820
},
2290 /* 21 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3821
},
2291 /* 22 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3822
},
2292 /* 23 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3823
},
2293 /* 24 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3824
},
2294 /* 25 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3825
},
2295 /* 26 */ { 0, BX_IA_ERROR
},
2296 /* 27 */ { 0, BX_IA_ERROR
},
2297 /* 28 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3828
},
2298 /* 29 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3829
},
2299 /* 2A */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f382a
},
2300 /* 2B */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f382b
},
2301 /* 2C */ { 0, BX_IA_ERROR
},
2302 /* 2D */ { 0, BX_IA_ERROR
},
2303 /* 2E */ { 0, BX_IA_ERROR
},
2304 /* 2F */ { 0, BX_IA_ERROR
},
2305 /* 30 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3830
},
2306 /* 31 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3831
},
2307 /* 32 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3832
},
2308 /* 33 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3833
},
2309 /* 34 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3834
},
2310 /* 35 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3835
},
2311 /* 36 */ { 0, BX_IA_ERROR
},
2312 /* 37 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3837
},
2313 /* 38 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3838
},
2314 /* 39 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3839
},
2315 /* 3A */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f383a
},
2316 /* 3B */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f383b
},
2317 /* 3C */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f383c
},
2318 /* 3D */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f383d
},
2319 /* 3E */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f383e
},
2320 /* 3F */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f383f
},
2321 /* 40 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3840
},
2322 /* 41 */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3841
},
2323 /* 42 */ { 0, BX_IA_ERROR
},
2324 /* 43 */ { 0, BX_IA_ERROR
},
2325 /* 44 */ { 0, BX_IA_ERROR
},
2326 /* 45 */ { 0, BX_IA_ERROR
},
2327 /* 46 */ { 0, BX_IA_ERROR
},
2328 /* 47 */ { 0, BX_IA_ERROR
},
2329 /* 48 */ { 0, BX_IA_ERROR
},
2330 /* 49 */ { 0, BX_IA_ERROR
},
2331 /* 4A */ { 0, BX_IA_ERROR
},
2332 /* 4B */ { 0, BX_IA_ERROR
},
2333 /* 4C */ { 0, BX_IA_ERROR
},
2334 /* 4D */ { 0, BX_IA_ERROR
},
2335 /* 4E */ { 0, BX_IA_ERROR
},
2336 /* 4F */ { 0, BX_IA_ERROR
},
2337 /* 50 */ { 0, BX_IA_ERROR
},
2338 /* 51 */ { 0, BX_IA_ERROR
},
2339 /* 52 */ { 0, BX_IA_ERROR
},
2340 /* 53 */ { 0, BX_IA_ERROR
},
2341 /* 54 */ { 0, BX_IA_ERROR
},
2342 /* 55 */ { 0, BX_IA_ERROR
},
2343 /* 56 */ { 0, BX_IA_ERROR
},
2344 /* 57 */ { 0, BX_IA_ERROR
},
2345 /* 58 */ { 0, BX_IA_ERROR
},
2346 /* 59 */ { 0, BX_IA_ERROR
},
2347 /* 5A */ { 0, BX_IA_ERROR
},
2348 /* 5B */ { 0, BX_IA_ERROR
},
2349 /* 5C */ { 0, BX_IA_ERROR
},
2350 /* 5D */ { 0, BX_IA_ERROR
},
2351 /* 5E */ { 0, BX_IA_ERROR
},
2352 /* 5F */ { 0, BX_IA_ERROR
},
2353 /* 60 */ { 0, BX_IA_ERROR
},
2354 /* 61 */ { 0, BX_IA_ERROR
},
2355 /* 62 */ { 0, BX_IA_ERROR
},
2356 /* 63 */ { 0, BX_IA_ERROR
},
2357 /* 64 */ { 0, BX_IA_ERROR
},
2358 /* 65 */ { 0, BX_IA_ERROR
},
2359 /* 66 */ { 0, BX_IA_ERROR
},
2360 /* 67 */ { 0, BX_IA_ERROR
},
2361 /* 68 */ { 0, BX_IA_ERROR
},
2362 /* 69 */ { 0, BX_IA_ERROR
},
2363 /* 6A */ { 0, BX_IA_ERROR
},
2364 /* 6B */ { 0, BX_IA_ERROR
},
2365 /* 6C */ { 0, BX_IA_ERROR
},
2366 /* 6D */ { 0, BX_IA_ERROR
},
2367 /* 6E */ { 0, BX_IA_ERROR
},
2368 /* 6F */ { 0, BX_IA_ERROR
},
2369 /* 70 */ { 0, BX_IA_ERROR
},
2370 /* 71 */ { 0, BX_IA_ERROR
},
2371 /* 72 */ { 0, BX_IA_ERROR
},
2372 /* 73 */ { 0, BX_IA_ERROR
},
2373 /* 74 */ { 0, BX_IA_ERROR
},
2374 /* 75 */ { 0, BX_IA_ERROR
},
2375 /* 76 */ { 0, BX_IA_ERROR
},
2376 /* 77 */ { 0, BX_IA_ERROR
},
2377 /* 78 */ { 0, BX_IA_ERROR
},
2378 /* 79 */ { 0, BX_IA_ERROR
},
2379 /* 7A */ { 0, BX_IA_ERROR
},
2380 /* 7B */ { 0, BX_IA_ERROR
},
2381 /* 7C */ { 0, BX_IA_ERROR
},
2382 /* 7D */ { 0, BX_IA_ERROR
},
2383 /* 7E */ { 0, BX_IA_ERROR
},
2384 /* 7F */ { 0, BX_IA_ERROR
},
2385 /* 80 */ { 0, BX_IA_ERROR
},
2386 /* 81 */ { 0, BX_IA_ERROR
},
2387 /* 82 */ { 0, BX_IA_ERROR
},
2388 /* 83 */ { 0, BX_IA_ERROR
},
2389 /* 84 */ { 0, BX_IA_ERROR
},
2390 /* 85 */ { 0, BX_IA_ERROR
},
2391 /* 86 */ { 0, BX_IA_ERROR
},
2392 /* 87 */ { 0, BX_IA_ERROR
},
2393 /* 88 */ { 0, BX_IA_ERROR
},
2394 /* 89 */ { 0, BX_IA_ERROR
},
2395 /* 8A */ { 0, BX_IA_ERROR
},
2396 /* 8B */ { 0, BX_IA_ERROR
},
2397 /* 8C */ { 0, BX_IA_ERROR
},
2398 /* 8D */ { 0, BX_IA_ERROR
},
2399 /* 8E */ { 0, BX_IA_ERROR
},
2400 /* 8F */ { 0, BX_IA_ERROR
},
2401 /* 90 */ { 0, BX_IA_ERROR
},
2402 /* 91 */ { 0, BX_IA_ERROR
},
2403 /* 92 */ { 0, BX_IA_ERROR
},
2404 /* 93 */ { 0, BX_IA_ERROR
},
2405 /* 94 */ { 0, BX_IA_ERROR
},
2406 /* 95 */ { 0, BX_IA_ERROR
},
2407 /* 96 */ { 0, BX_IA_ERROR
},
2408 /* 97 */ { 0, BX_IA_ERROR
},
2409 /* 98 */ { 0, BX_IA_ERROR
},
2410 /* 99 */ { 0, BX_IA_ERROR
},
2411 /* 9A */ { 0, BX_IA_ERROR
},
2412 /* 9B */ { 0, BX_IA_ERROR
},
2413 /* 9C */ { 0, BX_IA_ERROR
},
2414 /* 9D */ { 0, BX_IA_ERROR
},
2415 /* 9E */ { 0, BX_IA_ERROR
},
2416 /* 9F */ { 0, BX_IA_ERROR
},
2417 /* A0 */ { 0, BX_IA_ERROR
},
2418 /* A1 */ { 0, BX_IA_ERROR
},
2419 /* A2 */ { 0, BX_IA_ERROR
},
2420 /* A3 */ { 0, BX_IA_ERROR
},
2421 /* A4 */ { 0, BX_IA_ERROR
},
2422 /* A5 */ { 0, BX_IA_ERROR
},
2423 /* A6 */ { 0, BX_IA_ERROR
},
2424 /* A7 */ { 0, BX_IA_ERROR
},
2425 /* A8 */ { 0, BX_IA_ERROR
},
2426 /* A9 */ { 0, BX_IA_ERROR
},
2427 /* AA */ { 0, BX_IA_ERROR
},
2428 /* AB */ { 0, BX_IA_ERROR
},
2429 /* AC */ { 0, BX_IA_ERROR
},
2430 /* AD */ { 0, BX_IA_ERROR
},
2431 /* AE */ { 0, BX_IA_ERROR
},
2432 /* AF */ { 0, BX_IA_ERROR
},
2433 /* B0 */ { 0, BX_IA_ERROR
},
2434 /* B1 */ { 0, BX_IA_ERROR
},
2435 /* B2 */ { 0, BX_IA_ERROR
},
2436 /* B3 */ { 0, BX_IA_ERROR
},
2437 /* B4 */ { 0, BX_IA_ERROR
},
2438 /* B5 */ { 0, BX_IA_ERROR
},
2439 /* B6 */ { 0, BX_IA_ERROR
},
2440 /* B7 */ { 0, BX_IA_ERROR
},
2441 /* B8 */ { 0, BX_IA_ERROR
},
2442 /* B9 */ { 0, BX_IA_ERROR
},
2443 /* BA */ { 0, BX_IA_ERROR
},
2444 /* BB */ { 0, BX_IA_ERROR
},
2445 /* BC */ { 0, BX_IA_ERROR
},
2446 /* BD */ { 0, BX_IA_ERROR
},
2447 /* BE */ { 0, BX_IA_ERROR
},
2448 /* BF */ { 0, BX_IA_ERROR
},
2449 /* C0 */ { 0, BX_IA_ERROR
},
2450 /* C1 */ { 0, BX_IA_ERROR
},
2451 /* C2 */ { 0, BX_IA_ERROR
},
2452 /* C3 */ { 0, BX_IA_ERROR
},
2453 /* C4 */ { 0, BX_IA_ERROR
},
2454 /* C5 */ { 0, BX_IA_ERROR
},
2455 /* C6 */ { 0, BX_IA_ERROR
},
2456 /* C7 */ { 0, BX_IA_ERROR
},
2457 /* C8 */ { 0, BX_IA_ERROR
},
2458 /* C9 */ { 0, BX_IA_ERROR
},
2459 /* CA */ { 0, BX_IA_ERROR
},
2460 /* CB */ { 0, BX_IA_ERROR
},
2461 /* CC */ { 0, BX_IA_ERROR
},
2462 /* CD */ { 0, BX_IA_ERROR
},
2463 /* CE */ { 0, BX_IA_ERROR
},
2464 /* CF */ { 0, BX_IA_ERROR
},
2465 /* D0 */ { 0, BX_IA_ERROR
},
2466 /* D1 */ { 0, BX_IA_ERROR
},
2467 /* D2 */ { 0, BX_IA_ERROR
},
2468 /* D3 */ { 0, BX_IA_ERROR
},
2469 /* D4 */ { 0, BX_IA_ERROR
},
2470 /* D5 */ { 0, BX_IA_ERROR
},
2471 /* D6 */ { 0, BX_IA_ERROR
},
2472 /* D7 */ { 0, BX_IA_ERROR
},
2473 /* D8 */ { 0, BX_IA_ERROR
},
2474 /* D9 */ { 0, BX_IA_ERROR
},
2475 /* DA */ { 0, BX_IA_ERROR
},
2476 /* DB */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f38db
},
2477 /* DC */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f38dc
},
2478 /* DD */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f38dd
},
2479 /* DE */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f38de
},
2480 /* DF */ { BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f38df
},
2481 /* E0 */ { 0, BX_IA_ERROR
},
2482 /* E1 */ { 0, BX_IA_ERROR
},
2483 /* E2 */ { 0, BX_IA_ERROR
},
2484 /* E3 */ { 0, BX_IA_ERROR
},
2485 /* E4 */ { 0, BX_IA_ERROR
},
2486 /* E5 */ { 0, BX_IA_ERROR
},
2487 /* E6 */ { 0, BX_IA_ERROR
},
2488 /* E7 */ { 0, BX_IA_ERROR
},
2489 /* E8 */ { 0, BX_IA_ERROR
},
2490 /* E9 */ { 0, BX_IA_ERROR
},
2491 /* EA */ { 0, BX_IA_ERROR
},
2492 /* EB */ { 0, BX_IA_ERROR
},
2493 /* EC */ { 0, BX_IA_ERROR
},
2494 /* ED */ { 0, BX_IA_ERROR
},
2495 /* EE */ { 0, BX_IA_ERROR
},
2496 /* EF */ { 0, BX_IA_ERROR
},
2497 /* F0 */ { BxOSizeGrp
, BX_IA_ERROR
, BxOpcodeGroupOsize0f38f0
},
2498 /* F1 */ { BxOSizeGrp
, BX_IA_ERROR
, BxOpcodeGroupOsize0f38f1
},
2499 /* F2 */ { 0, BX_IA_ERROR
},
2500 /* F3 */ { 0, BX_IA_ERROR
},
2501 /* F4 */ { 0, BX_IA_ERROR
},
2502 /* F5 */ { 0, BX_IA_ERROR
},
2503 /* F6 */ { 0, BX_IA_ERROR
},
2504 /* F7 */ { 0, BX_IA_ERROR
},
2505 /* F8 */ { 0, BX_IA_ERROR
},
2506 /* F9 */ { 0, BX_IA_ERROR
},
2507 /* FA */ { 0, BX_IA_ERROR
},
2508 /* FB */ { 0, BX_IA_ERROR
},
2509 /* FC */ { 0, BX_IA_ERROR
},
2510 /* FD */ { 0, BX_IA_ERROR
},
2511 /* FE */ { 0, BX_IA_ERROR
},
2512 /* FF */ { 0, BX_IA_ERROR
}
2515 /* ************************************************************************ */
2516 /* 3-byte opcode table (Table A-5, 0F 3A) */
2518 static const BxOpcodeInfo_t BxOpcode3ByteTable0f3a
[256] = {
2519 /* 00 */ { 0, BX_IA_ERROR
},
2520 /* 01 */ { 0, BX_IA_ERROR
},
2521 /* 02 */ { 0, BX_IA_ERROR
},
2522 /* 03 */ { 0, BX_IA_ERROR
},
2523 /* 04 */ { 0, BX_IA_ERROR
},
2524 /* 05 */ { 0, BX_IA_ERROR
},
2525 /* 06 */ { 0, BX_IA_ERROR
},
2526 /* 07 */ { 0, BX_IA_ERROR
},
2527 /* 08 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a08
},
2528 /* 09 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a09
},
2529 /* 0A */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a0a
},
2530 /* 0B */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a0b
},
2531 /* 0C */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a0c
},
2532 /* 0D */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a0d
},
2533 /* 0E */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a0e
},
2534 /* 0F */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_PALIGNR_PqQqIb
, BxOpcodeGroupSSE_0f3a0f
},
2535 /* 10 */ { 0, BX_IA_ERROR
},
2536 /* 11 */ { 0, BX_IA_ERROR
},
2537 /* 12 */ { 0, BX_IA_ERROR
},
2538 /* 13 */ { 0, BX_IA_ERROR
},
2539 /* 14 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a14
},
2540 /* 15 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a15
},
2541 /* 16 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a16
},
2542 /* 17 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a17
},
2543 /* 18 */ { 0, BX_IA_ERROR
},
2544 /* 19 */ { 0, BX_IA_ERROR
},
2545 /* 1A */ { 0, BX_IA_ERROR
},
2546 /* 1B */ { 0, BX_IA_ERROR
},
2547 /* 1C */ { 0, BX_IA_ERROR
},
2548 /* 1D */ { 0, BX_IA_ERROR
},
2549 /* 1E */ { 0, BX_IA_ERROR
},
2550 /* 1F */ { 0, BX_IA_ERROR
},
2551 /* 20 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a20
},
2552 /* 21 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a21
},
2553 /* 22 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a22
},
2554 /* 23 */ { 0, BX_IA_ERROR
},
2555 /* 24 */ { 0, BX_IA_ERROR
},
2556 /* 25 */ { 0, BX_IA_ERROR
},
2557 /* 26 */ { 0, BX_IA_ERROR
},
2558 /* 27 */ { 0, BX_IA_ERROR
},
2559 /* 28 */ { 0, BX_IA_ERROR
},
2560 /* 29 */ { 0, BX_IA_ERROR
},
2561 /* 2A */ { 0, BX_IA_ERROR
},
2562 /* 2B */ { 0, BX_IA_ERROR
},
2563 /* 2C */ { 0, BX_IA_ERROR
},
2564 /* 2D */ { 0, BX_IA_ERROR
},
2565 /* 2E */ { 0, BX_IA_ERROR
},
2566 /* 2F */ { 0, BX_IA_ERROR
},
2567 /* 30 */ { 0, BX_IA_ERROR
},
2568 /* 31 */ { 0, BX_IA_ERROR
},
2569 /* 32 */ { 0, BX_IA_ERROR
},
2570 /* 33 */ { 0, BX_IA_ERROR
},
2571 /* 34 */ { 0, BX_IA_ERROR
},
2572 /* 35 */ { 0, BX_IA_ERROR
},
2573 /* 36 */ { 0, BX_IA_ERROR
},
2574 /* 37 */ { 0, BX_IA_ERROR
},
2575 /* 38 */ { 0, BX_IA_ERROR
},
2576 /* 39 */ { 0, BX_IA_ERROR
},
2577 /* 3A */ { 0, BX_IA_ERROR
},
2578 /* 3B */ { 0, BX_IA_ERROR
},
2579 /* 3C */ { 0, BX_IA_ERROR
},
2580 /* 3D */ { 0, BX_IA_ERROR
},
2581 /* 3E */ { 0, BX_IA_ERROR
},
2582 /* 3F */ { 0, BX_IA_ERROR
},
2583 /* 40 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a40
},
2584 /* 41 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a41
},
2585 /* 42 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a42
},
2586 /* 43 */ { 0, BX_IA_ERROR
},
2587 /* 44 */ { 0, BX_IA_ERROR
},
2588 /* 45 */ { 0, BX_IA_ERROR
},
2589 /* 46 */ { 0, BX_IA_ERROR
},
2590 /* 47 */ { 0, BX_IA_ERROR
},
2591 /* 48 */ { 0, BX_IA_ERROR
},
2592 /* 49 */ { 0, BX_IA_ERROR
},
2593 /* 4A */ { 0, BX_IA_ERROR
},
2594 /* 4B */ { 0, BX_IA_ERROR
},
2595 /* 4C */ { 0, BX_IA_ERROR
},
2596 /* 4D */ { 0, BX_IA_ERROR
},
2597 /* 4E */ { 0, BX_IA_ERROR
},
2598 /* 4F */ { 0, BX_IA_ERROR
},
2599 /* 50 */ { 0, BX_IA_ERROR
},
2600 /* 51 */ { 0, BX_IA_ERROR
},
2601 /* 52 */ { 0, BX_IA_ERROR
},
2602 /* 53 */ { 0, BX_IA_ERROR
},
2603 /* 54 */ { 0, BX_IA_ERROR
},
2604 /* 55 */ { 0, BX_IA_ERROR
},
2605 /* 56 */ { 0, BX_IA_ERROR
},
2606 /* 57 */ { 0, BX_IA_ERROR
},
2607 /* 58 */ { 0, BX_IA_ERROR
},
2608 /* 59 */ { 0, BX_IA_ERROR
},
2609 /* 5A */ { 0, BX_IA_ERROR
},
2610 /* 5B */ { 0, BX_IA_ERROR
},
2611 /* 5C */ { 0, BX_IA_ERROR
},
2612 /* 5D */ { 0, BX_IA_ERROR
},
2613 /* 5E */ { 0, BX_IA_ERROR
},
2614 /* 5F */ { 0, BX_IA_ERROR
},
2615 /* 60 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a60
},
2616 /* 61 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a61
},
2617 /* 62 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a62
},
2618 /* 63 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3a63
},
2619 /* 64 */ { 0, BX_IA_ERROR
},
2620 /* 65 */ { 0, BX_IA_ERROR
},
2621 /* 66 */ { 0, BX_IA_ERROR
},
2622 /* 67 */ { 0, BX_IA_ERROR
},
2623 /* 68 */ { 0, BX_IA_ERROR
},
2624 /* 69 */ { 0, BX_IA_ERROR
},
2625 /* 6A */ { 0, BX_IA_ERROR
},
2626 /* 6B */ { 0, BX_IA_ERROR
},
2627 /* 6C */ { 0, BX_IA_ERROR
},
2628 /* 6D */ { 0, BX_IA_ERROR
},
2629 /* 6E */ { 0, BX_IA_ERROR
},
2630 /* 6F */ { 0, BX_IA_ERROR
},
2631 /* 70 */ { 0, BX_IA_ERROR
},
2632 /* 71 */ { 0, BX_IA_ERROR
},
2633 /* 72 */ { 0, BX_IA_ERROR
},
2634 /* 73 */ { 0, BX_IA_ERROR
},
2635 /* 74 */ { 0, BX_IA_ERROR
},
2636 /* 75 */ { 0, BX_IA_ERROR
},
2637 /* 76 */ { 0, BX_IA_ERROR
},
2638 /* 77 */ { 0, BX_IA_ERROR
},
2639 /* 78 */ { 0, BX_IA_ERROR
},
2640 /* 79 */ { 0, BX_IA_ERROR
},
2641 /* 7A */ { 0, BX_IA_ERROR
},
2642 /* 7B */ { 0, BX_IA_ERROR
},
2643 /* 7C */ { 0, BX_IA_ERROR
},
2644 /* 7D */ { 0, BX_IA_ERROR
},
2645 /* 7E */ { 0, BX_IA_ERROR
},
2646 /* 7F */ { 0, BX_IA_ERROR
},
2647 /* 80 */ { 0, BX_IA_ERROR
},
2648 /* 81 */ { 0, BX_IA_ERROR
},
2649 /* 82 */ { 0, BX_IA_ERROR
},
2650 /* 83 */ { 0, BX_IA_ERROR
},
2651 /* 84 */ { 0, BX_IA_ERROR
},
2652 /* 85 */ { 0, BX_IA_ERROR
},
2653 /* 86 */ { 0, BX_IA_ERROR
},
2654 /* 87 */ { 0, BX_IA_ERROR
},
2655 /* 88 */ { 0, BX_IA_ERROR
},
2656 /* 89 */ { 0, BX_IA_ERROR
},
2657 /* 8A */ { 0, BX_IA_ERROR
},
2658 /* 8B */ { 0, BX_IA_ERROR
},
2659 /* 8C */ { 0, BX_IA_ERROR
},
2660 /* 8D */ { 0, BX_IA_ERROR
},
2661 /* 8E */ { 0, BX_IA_ERROR
},
2662 /* 8F */ { 0, BX_IA_ERROR
},
2663 /* 90 */ { 0, BX_IA_ERROR
},
2664 /* 91 */ { 0, BX_IA_ERROR
},
2665 /* 92 */ { 0, BX_IA_ERROR
},
2666 /* 93 */ { 0, BX_IA_ERROR
},
2667 /* 94 */ { 0, BX_IA_ERROR
},
2668 /* 95 */ { 0, BX_IA_ERROR
},
2669 /* 96 */ { 0, BX_IA_ERROR
},
2670 /* 97 */ { 0, BX_IA_ERROR
},
2671 /* 98 */ { 0, BX_IA_ERROR
},
2672 /* 99 */ { 0, BX_IA_ERROR
},
2673 /* 9A */ { 0, BX_IA_ERROR
},
2674 /* 9B */ { 0, BX_IA_ERROR
},
2675 /* 9C */ { 0, BX_IA_ERROR
},
2676 /* 9D */ { 0, BX_IA_ERROR
},
2677 /* 9E */ { 0, BX_IA_ERROR
},
2678 /* 9F */ { 0, BX_IA_ERROR
},
2679 /* A0 */ { 0, BX_IA_ERROR
},
2680 /* A1 */ { 0, BX_IA_ERROR
},
2681 /* A2 */ { 0, BX_IA_ERROR
},
2682 /* A3 */ { 0, BX_IA_ERROR
},
2683 /* A4 */ { 0, BX_IA_ERROR
},
2684 /* A5 */ { 0, BX_IA_ERROR
},
2685 /* A6 */ { 0, BX_IA_ERROR
},
2686 /* A7 */ { 0, BX_IA_ERROR
},
2687 /* A8 */ { 0, BX_IA_ERROR
},
2688 /* A9 */ { 0, BX_IA_ERROR
},
2689 /* AA */ { 0, BX_IA_ERROR
},
2690 /* AB */ { 0, BX_IA_ERROR
},
2691 /* AC */ { 0, BX_IA_ERROR
},
2692 /* AD */ { 0, BX_IA_ERROR
},
2693 /* AE */ { 0, BX_IA_ERROR
},
2694 /* AF */ { 0, BX_IA_ERROR
},
2695 /* B0 */ { 0, BX_IA_ERROR
},
2696 /* B1 */ { 0, BX_IA_ERROR
},
2697 /* B2 */ { 0, BX_IA_ERROR
},
2698 /* B3 */ { 0, BX_IA_ERROR
},
2699 /* B4 */ { 0, BX_IA_ERROR
},
2700 /* B5 */ { 0, BX_IA_ERROR
},
2701 /* B6 */ { 0, BX_IA_ERROR
},
2702 /* B7 */ { 0, BX_IA_ERROR
},
2703 /* B8 */ { 0, BX_IA_ERROR
},
2704 /* B9 */ { 0, BX_IA_ERROR
},
2705 /* BA */ { 0, BX_IA_ERROR
},
2706 /* BB */ { 0, BX_IA_ERROR
},
2707 /* BC */ { 0, BX_IA_ERROR
},
2708 /* BD */ { 0, BX_IA_ERROR
},
2709 /* BE */ { 0, BX_IA_ERROR
},
2710 /* BF */ { 0, BX_IA_ERROR
},
2711 /* C0 */ { 0, BX_IA_ERROR
},
2712 /* C1 */ { 0, BX_IA_ERROR
},
2713 /* C2 */ { 0, BX_IA_ERROR
},
2714 /* C3 */ { 0, BX_IA_ERROR
},
2715 /* C4 */ { 0, BX_IA_ERROR
},
2716 /* C5 */ { 0, BX_IA_ERROR
},
2717 /* C6 */ { 0, BX_IA_ERROR
},
2718 /* C7 */ { 0, BX_IA_ERROR
},
2719 /* C8 */ { 0, BX_IA_ERROR
},
2720 /* C9 */ { 0, BX_IA_ERROR
},
2721 /* CA */ { 0, BX_IA_ERROR
},
2722 /* CB */ { 0, BX_IA_ERROR
},
2723 /* CC */ { 0, BX_IA_ERROR
},
2724 /* CD */ { 0, BX_IA_ERROR
},
2725 /* CE */ { 0, BX_IA_ERROR
},
2726 /* CF */ { 0, BX_IA_ERROR
},
2727 /* D0 */ { 0, BX_IA_ERROR
},
2728 /* D1 */ { 0, BX_IA_ERROR
},
2729 /* D2 */ { 0, BX_IA_ERROR
},
2730 /* D3 */ { 0, BX_IA_ERROR
},
2731 /* D4 */ { 0, BX_IA_ERROR
},
2732 /* D5 */ { 0, BX_IA_ERROR
},
2733 /* D6 */ { 0, BX_IA_ERROR
},
2734 /* D7 */ { 0, BX_IA_ERROR
},
2735 /* D8 */ { 0, BX_IA_ERROR
},
2736 /* D9 */ { 0, BX_IA_ERROR
},
2737 /* DA */ { 0, BX_IA_ERROR
},
2738 /* DB */ { 0, BX_IA_ERROR
},
2739 /* DC */ { 0, BX_IA_ERROR
},
2740 /* DD */ { 0, BX_IA_ERROR
},
2741 /* DE */ { 0, BX_IA_ERROR
},
2742 /* DF */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_0f3adf
},
2743 /* E0 */ { 0, BX_IA_ERROR
},
2744 /* E1 */ { 0, BX_IA_ERROR
},
2745 /* E2 */ { 0, BX_IA_ERROR
},
2746 /* E3 */ { 0, BX_IA_ERROR
},
2747 /* E4 */ { 0, BX_IA_ERROR
},
2748 /* E5 */ { 0, BX_IA_ERROR
},
2749 /* E6 */ { 0, BX_IA_ERROR
},
2750 /* E7 */ { 0, BX_IA_ERROR
},
2751 /* E8 */ { 0, BX_IA_ERROR
},
2752 /* E9 */ { 0, BX_IA_ERROR
},
2753 /* EA */ { 0, BX_IA_ERROR
},
2754 /* EB */ { 0, BX_IA_ERROR
},
2755 /* EC */ { 0, BX_IA_ERROR
},
2756 /* ED */ { 0, BX_IA_ERROR
},
2757 /* EE */ { 0, BX_IA_ERROR
},
2758 /* EF */ { 0, BX_IA_ERROR
},
2759 /* F0 */ { 0, BX_IA_ERROR
},
2760 /* F1 */ { 0, BX_IA_ERROR
},
2761 /* F2 */ { 0, BX_IA_ERROR
},
2762 /* F3 */ { 0, BX_IA_ERROR
},
2763 /* F4 */ { 0, BX_IA_ERROR
},
2764 /* F5 */ { 0, BX_IA_ERROR
},
2765 /* F6 */ { 0, BX_IA_ERROR
},
2766 /* F7 */ { 0, BX_IA_ERROR
},
2767 /* F8 */ { 0, BX_IA_ERROR
},
2768 /* F9 */ { 0, BX_IA_ERROR
},
2769 /* FA */ { 0, BX_IA_ERROR
},
2770 /* FB */ { 0, BX_IA_ERROR
},
2771 /* FC */ { 0, BX_IA_ERROR
},
2772 /* FD */ { 0, BX_IA_ERROR
},
2773 /* FE */ { 0, BX_IA_ERROR
},
2774 /* FF */ { 0, BX_IA_ERROR
}
2777 #endif // BX_SUPPORT_SSE >= 4 || (BX_SUPPORT_SSE >= 3 && BX_SUPPORT_SSE_EXTENSION > 0)
2779 /* ************************************************************************ */
2786 static const BxOpcodeInfo_t BxOpcodeInfoG1EbIbM
[8] = {
2787 // attributes defined in main area
2788 /* 0 */ { BxLockable
, BX_IA_ADD_EbIbM
},
2789 /* 1 */ { BxLockable
, BX_IA_OR_EbIbM
},
2790 /* 2 */ { BxLockable
, BX_IA_ADC_EbIbM
},
2791 /* 3 */ { BxLockable
, BX_IA_SBB_EbIbM
},
2792 /* 4 */ { BxLockable
, BX_IA_AND_EbIbM
},
2793 /* 5 */ { BxLockable
, BX_IA_SUB_EbIbM
},
2794 /* 6 */ { BxLockable
, BX_IA_XOR_EbIbM
},
2795 /* 7 */ { 0, BX_IA_CMP_EbIbM
}
2798 static const BxOpcodeInfo_t BxOpcodeInfoG1EbIbR
[8] = {
2799 // attributes defined in main area
2800 /* 0 */ { 0, BX_IA_ADD_EbIbR
},
2801 /* 1 */ { 0, BX_IA_OR_EbIbR
},
2802 /* 2 */ { 0, BX_IA_ADC_EbIbR
},
2803 /* 3 */ { 0, BX_IA_SBB_EbIbR
},
2804 /* 4 */ { 0, BX_IA_AND_EbIbR
},
2805 /* 5 */ { 0, BX_IA_SUB_EbIbR
},
2806 /* 6 */ { 0, BX_IA_XOR_EbIbR
},
2807 /* 7 */ { 0, BX_IA_CMP_EbIbR
}
2810 static const BxOpcodeInfo_t BxOpcodeInfoG1EwM
[8] = {
2811 // attributes defined in main area
2812 /* 0 */ { BxLockable
, BX_IA_ADD_EwIwM
},
2813 /* 1 */ { BxLockable
, BX_IA_OR_EwIwM
},
2814 /* 2 */ { BxLockable
, BX_IA_ADC_EwIwM
},
2815 /* 3 */ { BxLockable
, BX_IA_SBB_EwIwM
},
2816 /* 4 */ { BxLockable
, BX_IA_AND_EwIwM
},
2817 /* 5 */ { BxLockable
, BX_IA_SUB_EwIwM
},
2818 /* 6 */ { BxLockable
, BX_IA_XOR_EwIwM
},
2819 /* 7 */ { 0, BX_IA_CMP_EwIwM
}
2822 static const BxOpcodeInfo_t BxOpcodeInfoG1EwR
[8] = {
2823 // attributes defined in main area
2824 /* 0 */ { 0, BX_IA_ADD_EwIwR
},
2825 /* 1 */ { 0, BX_IA_OR_EwIwR
},
2826 /* 2 */ { 0, BX_IA_ADC_EwIwR
},
2827 /* 3 */ { 0, BX_IA_SBB_EwIwR
},
2828 /* 4 */ { 0, BX_IA_AND_EwIwR
},
2829 /* 5 */ { 0, BX_IA_SUB_EwIwR
},
2830 /* 6 */ { 0, BX_IA_XOR_EwIwR
},
2831 /* 7 */ { 0, BX_IA_CMP_EwIwR
}
2834 static const BxOpcodeInfo_t BxOpcodeInfoG1EdM
[8] = {
2835 // attributes defined in main area
2836 /* 0 */ { BxLockable
, BX_IA_ADD_EdIdM
},
2837 /* 1 */ { BxLockable
, BX_IA_OR_EdIdM
},
2838 /* 2 */ { BxLockable
, BX_IA_ADC_EdIdM
},
2839 /* 3 */ { BxLockable
, BX_IA_SBB_EdIdM
},
2840 /* 4 */ { BxLockable
, BX_IA_AND_EdIdM
},
2841 /* 5 */ { BxLockable
, BX_IA_SUB_EdIdM
},
2842 /* 6 */ { BxLockable
, BX_IA_XOR_EdIdM
},
2843 /* 7 */ { 0, BX_IA_CMP_EdIdM
}
2846 static const BxOpcodeInfo_t BxOpcodeInfoG1EdR
[8] = {
2847 // attributes defined in main area
2848 /* 0 */ { 0, BX_IA_ADD_EdIdR
},
2849 /* 1 */ { 0, BX_IA_OR_EdIdR
},
2850 /* 2 */ { 0, BX_IA_ADC_EdIdR
},
2851 /* 3 */ { 0, BX_IA_SBB_EdIdR
},
2852 /* 4 */ { 0, BX_IA_AND_EdIdR
},
2853 /* 5 */ { 0, BX_IA_SUB_EdIdR
},
2854 /* 6 */ { 0, BX_IA_XOR_EdIdR
},
2855 /* 7 */ { 0, BX_IA_CMP_EdIdR
}
2858 #if BX_SUPPORT_X86_64
2859 static const BxOpcodeInfo_t BxOpcodeInfo64G1EqM
[8] = {
2860 // attributes defined in main area
2861 /* 0 */ { BxLockable
, BX_IA_ADD_EqIdM
},
2862 /* 1 */ { BxLockable
, BX_IA_OR_EqIdM
},
2863 /* 2 */ { BxLockable
, BX_IA_ADC_EqIdM
},
2864 /* 3 */ { BxLockable
, BX_IA_SBB_EqIdM
},
2865 /* 4 */ { BxLockable
, BX_IA_AND_EqIdM
},
2866 /* 5 */ { BxLockable
, BX_IA_SUB_EqIdM
},
2867 /* 6 */ { BxLockable
, BX_IA_XOR_EqIdM
},
2868 /* 7 */ { 0, BX_IA_CMP_EqIdM
}
2871 static const BxOpcodeInfo_t BxOpcodeInfo64G1EqR
[8] = {
2872 // attributes defined in main area
2873 /* 0 */ { 0, BX_IA_ADD_EqIdR
},
2874 /* 1 */ { 0, BX_IA_OR_EqIdR
},
2875 /* 2 */ { 0, BX_IA_ADC_EqIdR
},
2876 /* 3 */ { 0, BX_IA_SBB_EqIdR
},
2877 /* 4 */ { 0, BX_IA_AND_EqIdR
},
2878 /* 5 */ { 0, BX_IA_SUB_EqIdR
},
2879 /* 6 */ { 0, BX_IA_XOR_EqIdR
},
2880 /* 7 */ { 0, BX_IA_CMP_EqIdR
}
2888 static const BxOpcodeInfo_t BxOpcodeInfoG1AEwR
[8] = {
2889 /* 0 */ { 0, BX_IA_POP_EwR
},
2890 /* 1 */ { 0, BX_IA_ERROR
},
2891 /* 2 */ { 0, BX_IA_ERROR
},
2892 /* 3 */ { 0, BX_IA_ERROR
},
2893 /* 4 */ { 0, BX_IA_ERROR
},
2894 /* 5 */ { 0, BX_IA_ERROR
},
2895 /* 6 */ { 0, BX_IA_ERROR
},
2896 /* 7 */ { 0, BX_IA_ERROR
}
2899 static const BxOpcodeInfo_t BxOpcodeInfoG1AEwM
[8] = {
2900 /* 0 */ { 0, BX_IA_POP_EwM
},
2901 /* 1 */ { 0, BX_IA_ERROR
},
2902 /* 2 */ { 0, BX_IA_ERROR
},
2903 /* 3 */ { 0, BX_IA_ERROR
},
2904 /* 4 */ { 0, BX_IA_ERROR
},
2905 /* 5 */ { 0, BX_IA_ERROR
},
2906 /* 6 */ { 0, BX_IA_ERROR
},
2907 /* 7 */ { 0, BX_IA_ERROR
}
2910 static const BxOpcodeInfo_t BxOpcodeInfoG1AEdR
[8] = {
2911 /* 0 */ { 0, BX_IA_POP_EdR
},
2912 /* 1 */ { 0, BX_IA_ERROR
},
2913 /* 2 */ { 0, BX_IA_ERROR
},
2914 /* 3 */ { 0, BX_IA_ERROR
},
2915 /* 4 */ { 0, BX_IA_ERROR
},
2916 /* 5 */ { 0, BX_IA_ERROR
},
2917 /* 6 */ { 0, BX_IA_ERROR
},
2918 /* 7 */ { 0, BX_IA_ERROR
}
2921 static const BxOpcodeInfo_t BxOpcodeInfoG1AEdM
[8] = {
2922 /* 0 */ { 0, BX_IA_POP_EdM
},
2923 /* 1 */ { 0, BX_IA_ERROR
},
2924 /* 2 */ { 0, BX_IA_ERROR
},
2925 /* 3 */ { 0, BX_IA_ERROR
},
2926 /* 4 */ { 0, BX_IA_ERROR
},
2927 /* 5 */ { 0, BX_IA_ERROR
},
2928 /* 6 */ { 0, BX_IA_ERROR
},
2929 /* 7 */ { 0, BX_IA_ERROR
}
2932 #if BX_SUPPORT_X86_64
2933 static const BxOpcodeInfo_t BxOpcodeInfo64G1AEqR
[8] = {
2934 /* 0 */ { 0, BX_IA_POP_EqR
},
2935 /* 1 */ { 0, BX_IA_ERROR
},
2936 /* 2 */ { 0, BX_IA_ERROR
},
2937 /* 3 */ { 0, BX_IA_ERROR
},
2938 /* 4 */ { 0, BX_IA_ERROR
},
2939 /* 5 */ { 0, BX_IA_ERROR
},
2940 /* 6 */ { 0, BX_IA_ERROR
},
2941 /* 7 */ { 0, BX_IA_ERROR
}
2944 static const BxOpcodeInfo_t BxOpcodeInfo64G1AEqM
[8] = {
2945 /* 0 */ { 0, BX_IA_POP_EqM
},
2946 /* 1 */ { 0, BX_IA_ERROR
},
2947 /* 2 */ { 0, BX_IA_ERROR
},
2948 /* 3 */ { 0, BX_IA_ERROR
},
2949 /* 4 */ { 0, BX_IA_ERROR
},
2950 /* 5 */ { 0, BX_IA_ERROR
},
2951 /* 6 */ { 0, BX_IA_ERROR
},
2952 /* 7 */ { 0, BX_IA_ERROR
}
2960 static const BxOpcodeInfo_t BxOpcodeInfoG2Eb
[8] = {
2961 // attributes defined in main area
2962 /* 0 */ { 0, BX_IA_ROL_Eb
},
2963 /* 1 */ { 0, BX_IA_ROR_Eb
},
2964 /* 2 */ { 0, BX_IA_RCL_Eb
},
2965 /* 3 */ { 0, BX_IA_RCR_Eb
},
2966 /* 4 */ { 0, BX_IA_SHL_Eb
},
2967 /* 5 */ { 0, BX_IA_SHR_Eb
},
2968 /* 6 */ { 0, BX_IA_SHL_Eb
},
2969 /* 7 */ { 0, BX_IA_SAR_Eb
}
2972 static const BxOpcodeInfo_t BxOpcodeInfoG2Ew
[8] = {
2973 // attributes defined in main area
2974 /* 0 */ { 0, BX_IA_ROL_Ew
},
2975 /* 1 */ { 0, BX_IA_ROR_Ew
},
2976 /* 2 */ { 0, BX_IA_RCL_Ew
},
2977 /* 3 */ { 0, BX_IA_RCR_Ew
},
2978 /* 4 */ { 0, BX_IA_SHL_Ew
},
2979 /* 5 */ { 0, BX_IA_SHR_Ew
},
2980 /* 6 */ { 0, BX_IA_SHL_Ew
},
2981 /* 7 */ { 0, BX_IA_SAR_Ew
}
2984 static const BxOpcodeInfo_t BxOpcodeInfoG2EdM
[8] = {
2985 // attributes defined in main area
2986 /* 0 */ { 0, BX_IA_ROL_EdM
},
2987 /* 1 */ { 0, BX_IA_ROR_EdM
},
2988 /* 2 */ { 0, BX_IA_RCL_EdM
},
2989 /* 3 */ { 0, BX_IA_RCR_EdM
},
2990 /* 4 */ { 0, BX_IA_SHL_EdM
},
2991 /* 5 */ { 0, BX_IA_SHR_EdM
},
2992 /* 6 */ { 0, BX_IA_SHL_EdM
},
2993 /* 7 */ { 0, BX_IA_SAR_EdM
}
2996 static const BxOpcodeInfo_t BxOpcodeInfoG2EdR
[8] = {
2997 // attributes defined in main area
2998 /* 0 */ { 0, BX_IA_ROL_EdR
},
2999 /* 1 */ { 0, BX_IA_ROR_EdR
},
3000 /* 2 */ { 0, BX_IA_RCL_EdR
},
3001 /* 3 */ { 0, BX_IA_RCR_EdR
},
3002 /* 4 */ { 0, BX_IA_SHL_EdR
},
3003 /* 5 */ { 0, BX_IA_SHR_EdR
},
3004 /* 6 */ { 0, BX_IA_SHL_EdR
},
3005 /* 7 */ { 0, BX_IA_SAR_EdR
}
3008 #if BX_SUPPORT_X86_64
3009 static const BxOpcodeInfo_t BxOpcodeInfo64G2EqM
[8] = {
3010 // attributes defined in main area
3011 /* 0 */ { 0, BX_IA_ROL_EqM
},
3012 /* 1 */ { 0, BX_IA_ROR_EqM
},
3013 /* 2 */ { 0, BX_IA_RCL_EqM
},
3014 /* 3 */ { 0, BX_IA_RCR_EqM
},
3015 /* 4 */ { 0, BX_IA_SHL_EqM
},
3016 /* 5 */ { 0, BX_IA_SHR_EqM
},
3017 /* 6 */ { 0, BX_IA_SHL_EqM
},
3018 /* 7 */ { 0, BX_IA_SAR_EqM
}
3021 static const BxOpcodeInfo_t BxOpcodeInfo64G2EqR
[8] = {
3022 // attributes defined in main area
3023 /* 0 */ { 0, BX_IA_ROL_EqR
},
3024 /* 1 */ { 0, BX_IA_ROR_EqR
},
3025 /* 2 */ { 0, BX_IA_RCL_EqR
},
3026 /* 3 */ { 0, BX_IA_RCR_EqR
},
3027 /* 4 */ { 0, BX_IA_SHL_EqR
},
3028 /* 5 */ { 0, BX_IA_SHR_EqR
},
3029 /* 6 */ { 0, BX_IA_SHL_EqR
},
3030 /* 7 */ { 0, BX_IA_SAR_EqR
}
3038 static const BxOpcodeInfo_t BxOpcodeInfoG3EbM
[8] = {
3039 /* 0 */ { BxImmediate_Ib
, BX_IA_TEST_EbIbM
},
3040 /* 1 */ { BxImmediate_Ib
, BX_IA_TEST_EbIbM
},
3041 /* 2 */ { BxLockable
, BX_IA_NOT_EbM
},
3042 /* 3 */ { BxLockable
, BX_IA_NEG_EbM
},
3043 /* 4 */ { 0, BX_IA_MUL_ALEbM
},
3044 /* 5 */ { 0, BX_IA_IMUL_ALEbM
},
3045 /* 6 */ { 0, BX_IA_DIV_ALEbM
},
3046 /* 7 */ { 0, BX_IA_IDIV_ALEbM
}
3049 static const BxOpcodeInfo_t BxOpcodeInfoG3EbR
[8] = {
3050 /* 0 */ { BxImmediate_Ib
, BX_IA_TEST_EbIbR
},
3051 /* 1 */ { BxImmediate_Ib
, BX_IA_TEST_EbIbR
},
3052 /* 2 */ { 0, BX_IA_NOT_EbR
},
3053 /* 3 */ { 0, BX_IA_NEG_EbR
},
3054 /* 4 */ { 0, BX_IA_MUL_ALEbR
},
3055 /* 5 */ { 0, BX_IA_IMUL_ALEbR
},
3056 /* 6 */ { 0, BX_IA_DIV_ALEbR
},
3057 /* 7 */ { 0, BX_IA_IDIV_ALEbR
}
3060 static const BxOpcodeInfo_t BxOpcodeInfoG3EwM
[8] = {
3061 /* 0 */ { BxImmediate_Iw
, BX_IA_TEST_EwIwM
},
3062 /* 1 */ { BxImmediate_Iw
, BX_IA_TEST_EwIwM
},
3063 /* 2 */ { BxLockable
, BX_IA_NOT_EwM
},
3064 /* 3 */ { BxLockable
, BX_IA_NEG_EwM
},
3065 /* 4 */ { 0, BX_IA_MUL_AXEwM
},
3066 /* 5 */ { 0, BX_IA_IMUL_AXEwM
},
3067 /* 6 */ { 0, BX_IA_DIV_AXEwM
},
3068 /* 7 */ { 0, BX_IA_IDIV_AXEwM
}
3071 static const BxOpcodeInfo_t BxOpcodeInfoG3EwR
[8] = {
3072 /* 0 */ { BxImmediate_Iw
, BX_IA_TEST_EwIwR
},
3073 /* 1 */ { BxImmediate_Iw
, BX_IA_TEST_EwIwR
},
3074 /* 2 */ { 0, BX_IA_NOT_EwR
},
3075 /* 3 */ { 0, BX_IA_NEG_EwR
},
3076 /* 4 */ { 0, BX_IA_MUL_AXEwR
},
3077 /* 5 */ { 0, BX_IA_IMUL_AXEwR
},
3078 /* 6 */ { 0, BX_IA_DIV_AXEwR
},
3079 /* 7 */ { 0, BX_IA_IDIV_AXEwR
}
3082 static const BxOpcodeInfo_t BxOpcodeInfoG3EdM
[8] = {
3083 /* 0 */ { BxImmediate_Id
, BX_IA_TEST_EdIdM
},
3084 /* 1 */ { BxImmediate_Id
, BX_IA_TEST_EdIdM
},
3085 /* 2 */ { BxLockable
, BX_IA_NOT_EdM
},
3086 /* 3 */ { BxLockable
, BX_IA_NEG_EdM
},
3087 /* 4 */ { 0, BX_IA_MUL_EAXEdM
},
3088 /* 5 */ { 0, BX_IA_IMUL_EAXEdM
},
3089 /* 6 */ { 0, BX_IA_DIV_EAXEdM
},
3090 /* 7 */ { 0, BX_IA_IDIV_EAXEdM
}
3093 static const BxOpcodeInfo_t BxOpcodeInfoG3EdR
[8] = {
3094 /* 0 */ { BxImmediate_Id
, BX_IA_TEST_EdIdR
},
3095 /* 1 */ { BxImmediate_Id
, BX_IA_TEST_EdIdR
},
3096 /* 2 */ { 0, BX_IA_NOT_EdR
},
3097 /* 3 */ { 0, BX_IA_NEG_EdR
},
3098 /* 4 */ { 0, BX_IA_MUL_EAXEdR
},
3099 /* 5 */ { 0, BX_IA_IMUL_EAXEdR
},
3100 /* 6 */ { 0, BX_IA_DIV_EAXEdR
},
3101 /* 7 */ { 0, BX_IA_IDIV_EAXEdR
}
3104 #if BX_SUPPORT_X86_64
3105 static const BxOpcodeInfo_t BxOpcodeInfo64G3EqM
[8] = {
3106 /* 0 */ { BxImmediate_Id
, BX_IA_TEST_EqIdM
},
3107 /* 1 */ { BxImmediate_Id
, BX_IA_TEST_EqIdM
},
3108 /* 2 */ { BxLockable
, BX_IA_NOT_EqM
},
3109 /* 3 */ { BxLockable
, BX_IA_NEG_EqM
},
3110 /* 4 */ { 0, BX_IA_MUL_RAXEqM
},
3111 /* 5 */ { 0, BX_IA_IMUL_RAXEqM
},
3112 /* 6 */ { 0, BX_IA_DIV_RAXEqM
},
3113 /* 7 */ { 0, BX_IA_IDIV_RAXEqM
}
3116 static const BxOpcodeInfo_t BxOpcodeInfo64G3EqR
[8] = {
3117 /* 0 */ { BxImmediate_Id
, BX_IA_TEST_EqIdR
},
3118 /* 1 */ { BxImmediate_Id
, BX_IA_TEST_EqIdR
},
3119 /* 2 */ { 0, BX_IA_NOT_EqR
},
3120 /* 3 */ { 0, BX_IA_NEG_EqR
},
3121 /* 4 */ { 0, BX_IA_MUL_RAXEqR
},
3122 /* 5 */ { 0, BX_IA_IMUL_RAXEqR
},
3123 /* 6 */ { 0, BX_IA_DIV_RAXEqR
},
3124 /* 7 */ { 0, BX_IA_IDIV_RAXEqR
}
3132 static const BxOpcodeInfo_t BxOpcodeInfoG4M
[8] = {
3133 /* 0 */ { BxLockable
, BX_IA_INC_EbM
},
3134 /* 1 */ { BxLockable
, BX_IA_DEC_EbM
},
3135 /* 2 */ { 0, BX_IA_ERROR
},
3136 /* 3 */ { 0, BX_IA_ERROR
},
3137 /* 4 */ { 0, BX_IA_ERROR
},
3138 /* 5 */ { 0, BX_IA_ERROR
},
3139 /* 6 */ { 0, BX_IA_ERROR
},
3140 /* 7 */ { 0, BX_IA_ERROR
}
3143 static const BxOpcodeInfo_t BxOpcodeInfoG4R
[8] = {
3144 /* 0 */ { 0, BX_IA_INC_EbR
},
3145 /* 1 */ { 0, BX_IA_DEC_EbR
},
3146 /* 2 */ { 0, BX_IA_ERROR
},
3147 /* 3 */ { 0, BX_IA_ERROR
},
3148 /* 4 */ { 0, BX_IA_ERROR
},
3149 /* 5 */ { 0, BX_IA_ERROR
},
3150 /* 6 */ { 0, BX_IA_ERROR
},
3151 /* 7 */ { 0, BX_IA_ERROR
}
3158 static const BxOpcodeInfo_t BxOpcodeInfoG5wM
[8] = {
3159 // attributes defined in main area
3160 /* 0 */ { BxLockable
, BX_IA_INC_EwM
},
3161 /* 1 */ { BxLockable
, BX_IA_DEC_EwM
},
3162 /* 2 */ { BxTraceEnd
, BX_IA_CALL_EwM
},
3163 /* 3 */ { BxTraceEnd
, BX_IA_CALL16_Ep
},
3164 /* 4 */ { BxTraceEnd
, BX_IA_JMP_EwM
},
3165 /* 5 */ { BxTraceEnd
, BX_IA_JMP16_Ep
},
3166 /* 6 */ { 0, BX_IA_PUSH_EwM
},
3167 /* 7 */ { 0, BX_IA_ERROR
}
3170 static const BxOpcodeInfo_t BxOpcodeInfoG5wR
[8] = {
3171 // attributes defined in main area
3172 /* 0 */ { 0, BX_IA_INC_EwR
},
3173 /* 1 */ { 0, BX_IA_DEC_EwR
},
3174 /* 2 */ { BxTraceEnd
, BX_IA_CALL_EwR
},
3175 /* 3 */ { 0, BX_IA_ERROR
}, // CALL16_Ep
3176 /* 4 */ { BxTraceEnd
, BX_IA_JMP_EwR
},
3177 /* 5 */ { 0, BX_IA_ERROR
}, // JMP16_Ep
3178 /* 6 */ { 0, BX_IA_PUSH_EwR
},
3179 /* 7 */ { 0, BX_IA_ERROR
}
3182 static const BxOpcodeInfo_t BxOpcodeInfoG5dM
[8] = {
3183 // attributes defined in main area
3184 /* 0 */ { BxLockable
, BX_IA_INC_EdM
},
3185 /* 1 */ { BxLockable
, BX_IA_DEC_EdM
},
3186 /* 2 */ { BxTraceEnd
, BX_IA_CALL_EdM
},
3187 /* 3 */ { BxTraceEnd
, BX_IA_CALL32_Ep
},
3188 /* 4 */ { BxTraceEnd
, BX_IA_JMP_EdM
},
3189 /* 5 */ { BxTraceEnd
, BX_IA_JMP32_Ep
},
3190 /* 6 */ { 0, BX_IA_PUSH_EdM
},
3191 /* 7 */ { 0, BX_IA_ERROR
}
3194 static const BxOpcodeInfo_t BxOpcodeInfoG5dR
[8] = {
3195 // attributes defined in main area
3196 /* 0 */ { 0, BX_IA_INC_EdR
},
3197 /* 1 */ { 0, BX_IA_DEC_EdR
},
3198 /* 2 */ { BxTraceEnd
, BX_IA_CALL_EdR
},
3199 /* 3 */ { 0, BX_IA_ERROR
}, // CALL32_Ep
3200 /* 4 */ { BxTraceEnd
, BX_IA_JMP_EdR
},
3201 /* 5 */ { 0, BX_IA_ERROR
}, // JMP32_Ep
3202 /* 6 */ { 0, BX_IA_PUSH_EdR
},
3203 /* 7 */ { 0, BX_IA_ERROR
}
3206 #if BX_SUPPORT_X86_64
3207 static const BxOpcodeInfo_t BxOpcodeInfo64G5wM
[8] = {
3208 /* 0 */ { BxLockable
, BX_IA_INC_EwM
},
3209 /* 1 */ { BxLockable
, BX_IA_DEC_EwM
},
3210 /* 2 */ { BxTraceEnd
, BX_IA_CALL_EqM
},
3211 /* 3 */ { BxTraceEnd
, BX_IA_CALL16_Ep
},
3212 /* 4 */ { BxTraceEnd
, BX_IA_JMP_EqM
},
3213 /* 5 */ { BxTraceEnd
, BX_IA_JMP16_Ep
},
3214 /* 6 */ { 0, BX_IA_PUSH_EwM
},
3215 /* 7 */ { 0, BX_IA_ERROR
}
3218 static const BxOpcodeInfo_t BxOpcodeInfo64G5wR
[8] = {
3219 /* 0 */ { 0, BX_IA_INC_EwR
},
3220 /* 1 */ { 0, BX_IA_DEC_EwR
},
3221 /* 2 */ { BxTraceEnd
, BX_IA_CALL_EqR
},
3222 /* 3 */ { 0, BX_IA_ERROR
}, // CALL16_Ep
3223 /* 4 */ { BxTraceEnd
, BX_IA_JMP_EqR
},
3224 /* 5 */ { 0, BX_IA_ERROR
}, // JMP16_Ep
3225 /* 6 */ { 0, BX_IA_PUSH_EwR
},
3226 /* 7 */ { 0, BX_IA_ERROR
}
3229 static const BxOpcodeInfo_t BxOpcodeInfo64G5dM
[8] = {
3230 /* 0 */ { BxLockable
, BX_IA_INC_EdM
},
3231 /* 1 */ { BxLockable
, BX_IA_DEC_EdM
},
3232 /* 2 */ { BxTraceEnd
, BX_IA_CALL_EqM
},
3233 /* 3 */ { BxTraceEnd
, BX_IA_CALL32_Ep
},
3234 /* 4 */ { BxTraceEnd
, BX_IA_JMP_EqM
},
3235 /* 5 */ { BxTraceEnd
, BX_IA_JMP32_Ep
},
3236 /* 6 */ { 0, BX_IA_PUSH_EqM
},
3237 /* 7 */ { 0, BX_IA_ERROR
}
3240 static const BxOpcodeInfo_t BxOpcodeInfo64G5dR
[8] = {
3241 /* 0 */ { 0, BX_IA_INC_EdR
},
3242 /* 1 */ { 0, BX_IA_DEC_EdR
},
3243 /* 2 */ { BxTraceEnd
, BX_IA_CALL_EqR
},
3244 /* 3 */ { 0, BX_IA_ERROR
}, // CALL32_Ep
3245 /* 4 */ { BxTraceEnd
, BX_IA_JMP_EqR
},
3246 /* 5 */ { 0, BX_IA_ERROR
}, // JMP32_Ep
3247 /* 6 */ { 0, BX_IA_PUSH_EqR
},
3248 /* 7 */ { 0, BX_IA_ERROR
}
3251 static const BxOpcodeInfo_t BxOpcodeInfo64G5qM
[8] = {
3252 /* 0 */ { BxLockable
, BX_IA_INC_EqM
},
3253 /* 1 */ { BxLockable
, BX_IA_DEC_EqM
},
3254 /* 2 */ { BxTraceEnd
, BX_IA_CALL_EqM
},
3255 /* 3 */ { BxTraceEnd
, BX_IA_CALL64_Ep
}, // TODO: 64-bit offset for Intel
3256 /* 4 */ { BxTraceEnd
, BX_IA_JMP_EqM
},
3257 /* 5 */ { BxTraceEnd
, BX_IA_JMP64_Ep
}, // TODO: 64-bit offset for Intel
3258 /* 6 */ { 0, BX_IA_PUSH_EqM
},
3259 /* 7 */ { 0, BX_IA_ERROR
}
3262 static const BxOpcodeInfo_t BxOpcodeInfo64G5qR
[8] = {
3263 /* 0 */ { 0, BX_IA_INC_EqR
},
3264 /* 1 */ { 0, BX_IA_DEC_EqR
},
3265 /* 2 */ { BxTraceEnd
, BX_IA_CALL_EqR
},
3266 /* 3 */ { 0, BX_IA_ERROR
}, // CALL64_Ep
3267 /* 4 */ { BxTraceEnd
, BX_IA_JMP_EqR
},
3268 /* 5 */ { 0, BX_IA_ERROR
}, // JMP64_Ep
3269 /* 6 */ { 0, BX_IA_PUSH_EqR
},
3270 /* 7 */ { 0, BX_IA_ERROR
}
3278 static const BxOpcodeInfo_t BxOpcodeInfoG6
[8] = {
3279 /* 0 */ { 0, BX_IA_SLDT_Ew
},
3280 /* 1 */ { 0, BX_IA_STR_Ew
},
3281 /* 2 */ { BxTraceEnd
, BX_IA_LLDT_Ew
},
3282 /* 3 */ { BxTraceEnd
, BX_IA_LTR_Ew
},
3283 /* 4 */ { 0, BX_IA_VERR_Ew
},
3284 /* 5 */ { 0, BX_IA_VERW_Ew
},
3285 /* 6 */ { 0, BX_IA_ERROR
},
3286 /* 7 */ { 0, BX_IA_ERROR
}
3293 // ----------------------------------------------------
3294 // MOD REG RM | non 64 bit mode | 64 bit mode
3295 // ----------------------------------------------------
3296 // MOD <> 11 7 --- | INVLPG | INVLPG
3297 // MOD == 11 7 0 | #UD | SWAPGS
3298 // MOD == 11 7 1 | RDTSCP | RDTSCP
3299 // MOD == 11 7 2-7 | #UD | #UD
3301 static const BxOpcodeInfo_t opcodesGroupRmMONITOR
[8] = {
3302 /* 0 */ { 0, BX_IA_MONITOR
},
3303 /* 1 */ { BxTraceEnd
, BX_IA_MWAIT
},
3304 /* 2 */ { 0, BX_IA_ERROR
},
3305 /* 3 */ { 0, BX_IA_ERROR
},
3306 /* 4 */ { 0, BX_IA_ERROR
},
3307 /* 5 */ { 0, BX_IA_ERROR
},
3308 /* 6 */ { 0, BX_IA_ERROR
},
3309 /* 7 */ { 0, BX_IA_ERROR
}
3312 static const BxOpcodeInfo_t opcodesGroupRmXGETSET
[8] = {
3313 /* 0 */ { 0, BX_IA_XGETBV
},
3314 /* 1 */ { 0, BX_IA_XSETBV
},
3315 /* 2 */ { 0, BX_IA_ERROR
},
3316 /* 3 */ { 0, BX_IA_ERROR
},
3317 /* 4 */ { 0, BX_IA_ERROR
},
3318 /* 5 */ { 0, BX_IA_ERROR
},
3319 /* 6 */ { 0, BX_IA_ERROR
},
3320 /* 7 */ { 0, BX_IA_ERROR
}
3323 #if BX_SUPPORT_X86_64
3324 static const BxOpcodeInfo_t opcodesGroupRmINVLPG
[8] = {
3325 /* 0 */ { 0, BX_IA_ERROR
},
3326 /* 1 */ { 0, BX_IA_RDTSCP
},
3327 /* 2 */ { 0, BX_IA_ERROR
},
3328 /* 3 */ { 0, BX_IA_ERROR
},
3329 /* 4 */ { 0, BX_IA_ERROR
},
3330 /* 5 */ { 0, BX_IA_ERROR
},
3331 /* 6 */ { 0, BX_IA_ERROR
},
3332 /* 7 */ { 0, BX_IA_ERROR
}
3336 static const BxOpcodeInfo_t BxOpcodeInfoG7R
[8] = {
3337 /* 0 */ { 0, BX_IA_ERROR
},
3338 /* 1 */ { BxRMGroup
, BX_IA_ERROR
, opcodesGroupRmMONITOR
},
3339 /* 2 */ { BxRMGroup
, BX_IA_ERROR
, opcodesGroupRmXGETSET
},
3340 /* 3 */ { 0, BX_IA_ERROR
},
3341 /* 4 */ { 0, BX_IA_SMSW_EwR
},
3342 /* 5 */ { 0, BX_IA_ERROR
},
3343 /* 6 */ { BxTraceEnd
, BX_IA_LMSW_Ew
},
3344 #if BX_SUPPORT_X86_64
3345 /* 7 */ { BxRMGroup
, BX_IA_ERROR
, opcodesGroupRmINVLPG
}
3347 /* 7 */ { 0, BX_IA_ERROR
}
3351 static const BxOpcodeInfo_t BxOpcodeInfoG7M
[8] = {
3352 // attributes defined in main area
3353 /* 0 */ { 0, BX_IA_SGDT_Ms
},
3354 /* 1 */ { 0, BX_IA_SIDT_Ms
},
3355 /* 2 */ { BxTraceEnd
, BX_IA_LGDT_Ms
},
3356 /* 3 */ { BxTraceEnd
, BX_IA_LIDT_Ms
},
3357 /* 4 */ { 0, BX_IA_SMSW_EwM
},
3358 /* 5 */ { 0, BX_IA_ERROR
},
3359 /* 6 */ { BxTraceEnd
, BX_IA_LMSW_Ew
},
3360 /* 7 */ { BxTraceEnd
, BX_IA_INVLPG
}
3363 #if BX_SUPPORT_X86_64
3364 static const BxOpcodeInfo_t opcodesGroup64RmINVLPG
[8] = {
3365 /* 0 */ { 0, BX_IA_SWAPGS
},
3366 /* 1 */ { 0, BX_IA_RDTSCP
},
3367 /* 2 */ { 0, BX_IA_ERROR
},
3368 /* 3 */ { 0, BX_IA_ERROR
},
3369 /* 4 */ { 0, BX_IA_ERROR
},
3370 /* 5 */ { 0, BX_IA_ERROR
},
3371 /* 6 */ { 0, BX_IA_ERROR
},
3372 /* 7 */ { 0, BX_IA_ERROR
}
3375 static const BxOpcodeInfo_t BxOpcodeInfo64G7R
[8] = {
3376 /* 0 */ { 0, BX_IA_ERROR
},
3377 /* 1 */ { BxRMGroup
, BX_IA_ERROR
, opcodesGroupRmMONITOR
},
3378 /* 2 */ { 0, BX_IA_ERROR
},
3379 /* 3 */ { 0, BX_IA_ERROR
},
3380 /* 4 */ { 0, BX_IA_SMSW_EwR
},
3381 /* 5 */ { 0, BX_IA_ERROR
},
3382 /* 6 */ { BxTraceEnd
, BX_IA_LMSW_Ew
},
3383 /* 7 */ { BxRMGroup
, BX_IA_ERROR
, opcodesGroup64RmINVLPG
}
3386 static const BxOpcodeInfo_t BxOpcodeInfo64G7M
[8] = {
3387 /* 0 */ { 0, BX_IA_SGDT64_Ms
},
3388 /* 1 */ { 0, BX_IA_SIDT64_Ms
},
3389 /* 2 */ { BxTraceEnd
, BX_IA_LGDT64_Ms
},
3390 /* 3 */ { BxTraceEnd
, BX_IA_LIDT64_Ms
},
3391 /* 4 */ { 0, BX_IA_SMSW_EwM
},
3392 /* 5 */ { 0, BX_IA_ERROR
},
3393 /* 6 */ { BxTraceEnd
, BX_IA_LMSW_Ew
},
3394 /* 7 */ { BxTraceEnd
, BX_IA_INVLPG
}
3403 static const BxOpcodeInfo_t BxOpcodeInfoG8EwIbM
[8] = {
3404 /* 0 */ { 0, BX_IA_ERROR
},
3405 /* 1 */ { 0, BX_IA_ERROR
},
3406 /* 2 */ { 0, BX_IA_ERROR
},
3407 /* 3 */ { 0, BX_IA_ERROR
},
3408 /* 4 */ { BxImmediate_Ib
, BX_IA_BT_EwIbM
},
3409 /* 5 */ { BxImmediate_Ib
| BxLockable
, BX_IA_BTS_EwIbM
},
3410 /* 6 */ { BxImmediate_Ib
| BxLockable
, BX_IA_BTR_EwIbM
},
3411 /* 7 */ { BxImmediate_Ib
| BxLockable
, BX_IA_BTC_EwIbM
}
3414 static const BxOpcodeInfo_t BxOpcodeInfoG8EwIbR
[8] = {
3415 /* 0 */ { 0, BX_IA_ERROR
},
3416 /* 1 */ { 0, BX_IA_ERROR
},
3417 /* 2 */ { 0, BX_IA_ERROR
},
3418 /* 3 */ { 0, BX_IA_ERROR
},
3419 /* 4 */ { BxImmediate_Ib
, BX_IA_BT_EwIbR
},
3420 /* 5 */ { BxImmediate_Ib
, BX_IA_BTS_EwIbR
},
3421 /* 6 */ { BxImmediate_Ib
, BX_IA_BTR_EwIbR
},
3422 /* 7 */ { BxImmediate_Ib
, BX_IA_BTC_EwIbR
}
3425 static const BxOpcodeInfo_t BxOpcodeInfoG8EdIbM
[8] = {
3426 /* 0 */ { 0, BX_IA_ERROR
},
3427 /* 1 */ { 0, BX_IA_ERROR
},
3428 /* 2 */ { 0, BX_IA_ERROR
},
3429 /* 3 */ { 0, BX_IA_ERROR
},
3430 /* 4 */ { BxImmediate_Ib
, BX_IA_BT_EdIbM
},
3431 /* 5 */ { BxImmediate_Ib
| BxLockable
, BX_IA_BTS_EdIbM
},
3432 /* 6 */ { BxImmediate_Ib
| BxLockable
, BX_IA_BTR_EdIbM
},
3433 /* 7 */ { BxImmediate_Ib
| BxLockable
, BX_IA_BTC_EdIbM
}
3436 static const BxOpcodeInfo_t BxOpcodeInfoG8EdIbR
[8] = {
3437 /* 0 */ { 0, BX_IA_ERROR
},
3438 /* 1 */ { 0, BX_IA_ERROR
},
3439 /* 2 */ { 0, BX_IA_ERROR
},
3440 /* 3 */ { 0, BX_IA_ERROR
},
3441 /* 4 */ { BxImmediate_Ib
, BX_IA_BT_EdIbR
},
3442 /* 5 */ { BxImmediate_Ib
, BX_IA_BTS_EdIbR
},
3443 /* 6 */ { BxImmediate_Ib
, BX_IA_BTR_EdIbR
},
3444 /* 7 */ { BxImmediate_Ib
, BX_IA_BTC_EdIbR
}
3447 #if BX_SUPPORT_X86_64
3448 static const BxOpcodeInfo_t BxOpcodeInfo64G8EqIbM
[8] = {
3449 /* 0 */ { 0, BX_IA_ERROR
},
3450 /* 1 */ { 0, BX_IA_ERROR
},
3451 /* 2 */ { 0, BX_IA_ERROR
},
3452 /* 3 */ { 0, BX_IA_ERROR
},
3453 /* 4 */ { BxImmediate_Ib
, BX_IA_BT_EqIbM
},
3454 /* 5 */ { BxImmediate_Ib
| BxLockable
, BX_IA_BTS_EqIbM
},
3455 /* 6 */ { BxImmediate_Ib
| BxLockable
, BX_IA_BTR_EqIbM
},
3456 /* 7 */ { BxImmediate_Ib
| BxLockable
, BX_IA_BTC_EqIbM
}
3459 static const BxOpcodeInfo_t BxOpcodeInfo64G8EqIbR
[8] = {
3460 /* 0 */ { 0, BX_IA_ERROR
},
3461 /* 1 */ { 0, BX_IA_ERROR
},
3462 /* 2 */ { 0, BX_IA_ERROR
},
3463 /* 3 */ { 0, BX_IA_ERROR
},
3464 /* 4 */ { BxImmediate_Ib
, BX_IA_BT_EqIbR
},
3465 /* 5 */ { BxImmediate_Ib
, BX_IA_BTS_EqIbR
},
3466 /* 6 */ { BxImmediate_Ib
, BX_IA_BTR_EqIbR
},
3467 /* 7 */ { BxImmediate_Ib
, BX_IA_BTC_EqIbR
}
3475 static const BxOpcodeInfo_t BxOpcodeInfoG9M
[8] = {
3476 /* 0 */ { 0, BX_IA_ERROR
},
3477 /* 1 */ { BxLockable
, BX_IA_CMPXCHG8B
},
3478 /* 2 */ { 0, BX_IA_ERROR
},
3479 /* 3 */ { 0, BX_IA_ERROR
},
3480 /* 4 */ { 0, BX_IA_ERROR
},
3481 /* 5 */ { 0, BX_IA_ERROR
},
3482 /* 6 */ { 0, BX_IA_ERROR
},
3483 /* 7 */ { 0, BX_IA_ERROR
}
3486 #if BX_SUPPORT_X86_64
3487 static const BxOpcodeInfo_t BxOpcodeInfo64G9qM
[8] = {
3488 /* 0 */ { 0, BX_IA_ERROR
},
3489 /* 1 */ { BxLockable
, BX_IA_CMPXCHG16B
},
3490 /* 2 */ { 0, BX_IA_ERROR
},
3491 /* 3 */ { 0, BX_IA_ERROR
},
3492 /* 4 */ { 0, BX_IA_ERROR
},
3493 /* 5 */ { 0, BX_IA_ERROR
},
3494 /* 6 */ { 0, BX_IA_ERROR
},
3495 /* 7 */ { 0, BX_IA_ERROR
}
3503 static const BxOpcodeInfo_t BxOpcodeInfoG11EbR
[8] = {
3504 /* 0 */ { BxImmediate_Ib
, BX_IA_MOV_EbIbR
},
3505 /* 1 */ { 0, BX_IA_ERROR
},
3506 /* 2 */ { 0, BX_IA_ERROR
},
3507 /* 3 */ { 0, BX_IA_ERROR
},
3508 /* 4 */ { 0, BX_IA_ERROR
},
3509 /* 5 */ { 0, BX_IA_ERROR
},
3510 /* 6 */ { 0, BX_IA_ERROR
},
3511 /* 7 */ { 0, BX_IA_ERROR
}
3514 static const BxOpcodeInfo_t BxOpcodeInfoG11EbM
[8] = {
3515 /* 0 */ { BxImmediate_Ib
, BX_IA_MOV_EbIbM
},
3516 /* 1 */ { 0, BX_IA_ERROR
},
3517 /* 2 */ { 0, BX_IA_ERROR
},
3518 /* 3 */ { 0, BX_IA_ERROR
},
3519 /* 4 */ { 0, BX_IA_ERROR
},
3520 /* 5 */ { 0, BX_IA_ERROR
},
3521 /* 6 */ { 0, BX_IA_ERROR
},
3522 /* 7 */ { 0, BX_IA_ERROR
}
3525 static const BxOpcodeInfo_t BxOpcodeInfoG11EwR
[8] = {
3526 /* 0 */ { BxImmediate_Iw
, BX_IA_MOV_EwIwR
},
3527 /* 1 */ { 0, BX_IA_ERROR
},
3528 /* 2 */ { 0, BX_IA_ERROR
},
3529 /* 3 */ { 0, BX_IA_ERROR
},
3530 /* 4 */ { 0, BX_IA_ERROR
},
3531 /* 5 */ { 0, BX_IA_ERROR
},
3532 /* 6 */ { 0, BX_IA_ERROR
},
3533 /* 7 */ { 0, BX_IA_ERROR
}
3536 static const BxOpcodeInfo_t BxOpcodeInfoG11EwM
[8] = {
3537 /* 0 */ { BxImmediate_Iw
, BX_IA_MOV_EwIwM
},
3538 /* 1 */ { 0, BX_IA_ERROR
},
3539 /* 2 */ { 0, BX_IA_ERROR
},
3540 /* 3 */ { 0, BX_IA_ERROR
},
3541 /* 4 */ { 0, BX_IA_ERROR
},
3542 /* 5 */ { 0, BX_IA_ERROR
},
3543 /* 6 */ { 0, BX_IA_ERROR
},
3544 /* 7 */ { 0, BX_IA_ERROR
}
3547 static const BxOpcodeInfo_t BxOpcodeInfoG11EdR
[8] = {
3548 /* 0 */ { BxImmediate_Id
, BX_IA_MOV_EdIdR
},
3549 /* 1 */ { 0, BX_IA_ERROR
},
3550 /* 2 */ { 0, BX_IA_ERROR
},
3551 /* 3 */ { 0, BX_IA_ERROR
},
3552 /* 4 */ { 0, BX_IA_ERROR
},
3553 /* 5 */ { 0, BX_IA_ERROR
},
3554 /* 6 */ { 0, BX_IA_ERROR
},
3555 /* 7 */ { 0, BX_IA_ERROR
}
3558 static const BxOpcodeInfo_t BxOpcodeInfoG11EdM
[8] = {
3559 /* 0 */ { BxImmediate_Id
, BX_IA_MOV_EdIdM
},
3560 /* 1 */ { 0, BX_IA_ERROR
},
3561 /* 2 */ { 0, BX_IA_ERROR
},
3562 /* 3 */ { 0, BX_IA_ERROR
},
3563 /* 4 */ { 0, BX_IA_ERROR
},
3564 /* 5 */ { 0, BX_IA_ERROR
},
3565 /* 6 */ { 0, BX_IA_ERROR
},
3566 /* 7 */ { 0, BX_IA_ERROR
}
3569 #if BX_SUPPORT_X86_64
3570 static const BxOpcodeInfo_t BxOpcodeInfo64G11EqR
[8] = {
3571 /* 0 */ { BxImmediate_Id
, BX_IA_MOV_EqIdR
},
3572 /* 1 */ { 0, BX_IA_ERROR
},
3573 /* 2 */ { 0, BX_IA_ERROR
},
3574 /* 3 */ { 0, BX_IA_ERROR
},
3575 /* 4 */ { 0, BX_IA_ERROR
},
3576 /* 5 */ { 0, BX_IA_ERROR
},
3577 /* 6 */ { 0, BX_IA_ERROR
},
3578 /* 7 */ { 0, BX_IA_ERROR
}
3581 static const BxOpcodeInfo_t BxOpcodeInfo64G11EqM
[8] = {
3582 /* 0 */ { BxImmediate_Id
, BX_IA_MOV_EqIdM
},
3583 /* 1 */ { 0, BX_IA_ERROR
},
3584 /* 2 */ { 0, BX_IA_ERROR
},
3585 /* 3 */ { 0, BX_IA_ERROR
},
3586 /* 4 */ { 0, BX_IA_ERROR
},
3587 /* 5 */ { 0, BX_IA_ERROR
},
3588 /* 6 */ { 0, BX_IA_ERROR
},
3589 /* 7 */ { 0, BX_IA_ERROR
}
3597 static const BxOpcodeInfo_t BxOpcodeInfoG12R
[8] = {
3598 /* 0 */ { 0, BX_IA_ERROR
},
3599 /* 1 */ { 0, BX_IA_ERROR
},
3600 /* 2 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_PSRLW_PqIb
, BxOpcodeGroupSSE_G1202
},
3601 /* 3 */ { 0, BX_IA_ERROR
},
3602 /* 4 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_PSRAW_PqIb
, BxOpcodeGroupSSE_G1204
},
3603 /* 5 */ { 0, BX_IA_ERROR
},
3604 /* 6 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_PSLLW_PqIb
, BxOpcodeGroupSSE_G1206
},
3605 /* 7 */ { 0, BX_IA_ERROR
}
3612 static const BxOpcodeInfo_t BxOpcodeInfoG13R
[8] = {
3613 /* 0 */ { 0, BX_IA_ERROR
},
3614 /* 1 */ { 0, BX_IA_ERROR
},
3615 /* 2 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_PSRLD_PqIb
, BxOpcodeGroupSSE_G1302
},
3616 /* 3 */ { 0, BX_IA_ERROR
},
3617 /* 4 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_PSRAD_PqIb
, BxOpcodeGroupSSE_G1304
},
3618 /* 5 */ { 0, BX_IA_ERROR
},
3619 /* 6 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_PSLLD_PqIb
, BxOpcodeGroupSSE_G1306
},
3620 /* 7 */ { 0, BX_IA_ERROR
}
3627 static const BxOpcodeInfo_t BxOpcodeInfoG14R
[8] = {
3628 /* 0 */ { 0, BX_IA_ERROR
},
3629 /* 1 */ { 0, BX_IA_ERROR
},
3630 /* 2 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_PSRLQ_PqIb
, BxOpcodeGroupSSE_G1402
},
3631 /* 3 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_G1403
},
3632 /* 4 */ { 0, BX_IA_ERROR
},
3633 /* 5 */ { 0, BX_IA_ERROR
},
3634 /* 6 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_PSLLQ_PqIb
, BxOpcodeGroupSSE_G1406
},
3635 /* 7 */ { BxImmediate_Ib
| BxPrefixSSE
, BX_IA_ERROR
, BxOpcodeGroupSSE_G1407
}
3642 static const BxOpcodeInfo_t BxOpcodeInfoG15M
[8] = {
3643 /* 0 */ { 0, BX_IA_FXSAVE
},
3644 /* 1 */ { 0, BX_IA_FXRSTOR
},
3645 /* 2 */ { 0, BX_IA_LDMXCSR
},
3646 /* 3 */ { 0, BX_IA_STMXCSR
},
3647 /* 4 */ { 0, BX_IA_XSAVE
},
3648 /* 5 */ { 0, BX_IA_XRSTOR
},
3649 /* 6 */ { 0, BX_IA_ERROR
},
3650 /* 7 */ { 0, BX_IA_CLFLUSH
}
3653 static const BxOpcodeInfo_t BxOpcodeInfoG15R
[8] = {
3654 /* 0 */ { 0, BX_IA_ERROR
},
3655 /* 1 */ { 0, BX_IA_ERROR
},
3656 /* 2 */ { 0, BX_IA_ERROR
},
3657 /* 3 */ { 0, BX_IA_ERROR
},
3658 /* 4 */ { 0, BX_IA_ERROR
},
3659 /* 5 */ { 0, BX_IA_NOP
}, /* LFENCE */
3660 /* 6 */ { 0, BX_IA_NOP
}, /* MFENCE */
3661 /* 7 */ { 0, BX_IA_NOP
} /* SFENCE */
3664 #endif // BX_COMMON_FETCHDECODE_TABLES_H