1 /////////////////////////////////////////////////////////////////////////
2 // $Id: fetchdecode.h,v 1.30 2007/08/31 18:09:34 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 /////////////////////////////////////////////////////////////////////////
25 #ifndef BX_COMMON_FETCHDECODE_TABLES_H
26 #define BX_COMMON_FETCHDECODE_TABLES_H
29 // This file contains common IA-32/IA-64 opcode tables, like FPU opcode
30 // table, 3DNow! opcode table or SSE opcode groups (choose the opcode
31 // according to instruction prefixes)
34 BX_CPP_INLINE Bit16u
FetchWORD(Bit8u
*iptr
)
37 ReadHostWordFromLittleEndian(iptr
, data
);
41 BX_CPP_INLINE Bit32u
FetchDWORD(Bit8u
*iptr
)
44 ReadHostDWordFromLittleEndian(iptr
, data
);
49 BX_CPP_INLINE Bit64u
FetchQWORD(Bit8u
*iptr
)
52 ReadHostQWordFromLittleEndian(iptr
, data
);
58 // Common FetchDecode Opcode Tables
61 static const BxOpcodeInfo_t opcodesADD_EwIw
[2] = {
62 /* M */ { BxLockable
, &BX_CPU_C::ADD_EEwIw
},
63 /* R */ { 0, &BX_CPU_C::ADD_EGwIw
}
66 static const BxOpcodeInfo_t opcodesADD_EdId
[2] = {
67 /* M */ { BxLockable
, &BX_CPU_C::ADD_EEdId
},
68 /* R */ { 0, &BX_CPU_C::ADD_EGdId
}
71 static const BxOpcodeInfo_t opcodesADD_GwEw
[2] = {
72 /* M */ { 0, &BX_CPU_C::ADD_GwEEw
},
73 /* R */ { 0, &BX_CPU_C::ADD_GwEGw
}
76 static const BxOpcodeInfo_t opcodesADD_GdEd
[2] = {
77 /* M */ { 0, &BX_CPU_C::ADD_GdEEd
},
78 /* R */ { 0, &BX_CPU_C::ADD_GdEGd
}
81 static const BxOpcodeInfo_t opcodesMOV_GbEb
[2] = {
82 /* M */ { 0, &BX_CPU_C::MOV_GbEEb
},
83 /* R */ { 0, &BX_CPU_C::MOV_GbEGb
}
86 static const BxOpcodeInfo_t opcodesMOV_GwEw
[2] = {
87 /* M */ { 0, &BX_CPU_C::MOV_GwEEw
},
88 /* R */ { 0, &BX_CPU_C::MOV_GwEGw
}
91 static const BxOpcodeInfo_t opcodesMOV_GdEd
[2] = {
92 /* M */ { 0, &BX_CPU_C::MOV_GdEEd
},
93 /* R */ { 0, &BX_CPU_C::MOV_GdEGd
}
96 static const BxOpcodeInfo_t opcodesMOV_EbGb
[2] = {
97 /* M */ { 0, &BX_CPU_C::MOV_EEbGb
},
98 /* R */ { 0, &BX_CPU_C::MOV_EGbGb
}
101 static const BxOpcodeInfo_t opcodesMOV_EwGw
[2] = {
102 /* M */ { 0, &BX_CPU_C::MOV_EEwGw
},
103 /* R */ { 0, &BX_CPU_C::MOV_EGwGw
}
106 static const BxOpcodeInfo_t opcodesMOV_EdGd
[2] = {
107 /* M */ { 0, &BX_CPU_C::MOV_EEdGd
},
108 /* R */ { 0, &BX_CPU_C::MOV_EGdGd
}
114 /* ************************************************************************ */
117 // floating point instructions when mod!=11b.
118 // the following tables will be accessed like groups using the nnn (reg) field of
119 // the modrm byte. (the first byte is D8-DF)
121 // D8 (modrm is outside 00h - BFh) (mod != 11)
122 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupD8
[8] = {
123 /* 0 */ { 0, &BX_CPU_C::FADD_SINGLE_REAL
},
124 /* 1 */ { 0, &BX_CPU_C::FMUL_SINGLE_REAL
},
125 /* 2 */ { 0, &BX_CPU_C::FCOM_SINGLE_REAL
},
126 /* 3 */ { 0, &BX_CPU_C::FCOM_SINGLE_REAL
}, // FCOMP_SINGLE_REAL
127 /* 4 */ { 0, &BX_CPU_C::FSUB_SINGLE_REAL
},
128 /* 5 */ { 0, &BX_CPU_C::FSUBR_SINGLE_REAL
},
129 /* 6 */ { 0, &BX_CPU_C::FDIV_SINGLE_REAL
},
130 /* 7 */ { 0, &BX_CPU_C::FDIVR_SINGLE_REAL
}
133 // D9 (modrm is outside 00h - BFh) (mod != 11)
134 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupD9
[8] = {
135 /* 0 */ { 0, &BX_CPU_C::FLD_SINGLE_REAL
},
136 /* 1 */ { 0, &BX_CPU_C::BxError
},
137 /* 2 */ { 0, &BX_CPU_C::FST_SINGLE_REAL
},
138 /* 3 */ { 0, &BX_CPU_C::FST_SINGLE_REAL
}, // FSTP_SINGLE_REAL
139 /* 4 */ { 0, &BX_CPU_C::FLDENV
},
140 /* 5 */ { 0, &BX_CPU_C::FLDCW
},
141 /* 6 */ { 0, &BX_CPU_C::FNSTENV
},
142 /* 7 */ { 0, &BX_CPU_C::FNSTCW
}
145 // DA (modrm is outside 00h - BFh) (mod != 11)
146 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupDA
[8] = {
147 /* 0 */ { 0, &BX_CPU_C::FIADD_DWORD_INTEGER
},
148 /* 1 */ { 0, &BX_CPU_C::FIMUL_DWORD_INTEGER
},
149 /* 2 */ { 0, &BX_CPU_C::FICOM_DWORD_INTEGER
},
150 /* 3 */ { 0, &BX_CPU_C::FICOM_DWORD_INTEGER
}, // FICOMP_DWORD_INTEGER
151 /* 4 */ { 0, &BX_CPU_C::FISUB_DWORD_INTEGER
},
152 /* 5 */ { 0, &BX_CPU_C::FISUBR_DWORD_INTEGER
},
153 /* 6 */ { 0, &BX_CPU_C::FIDIV_DWORD_INTEGER
},
154 /* 7 */ { 0, &BX_CPU_C::FIDIVR_DWORD_INTEGER
}
157 // DB (modrm is outside 00h - BFh) (mod != 11)
158 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupDB
[8] = {
159 /* 0 */ { 0, &BX_CPU_C::FILD_DWORD_INTEGER
},
160 /* 1 */ { 0, &BX_CPU_C::FISTTP32
},
161 /* 2 */ { 0, &BX_CPU_C::FIST_DWORD_INTEGER
},
162 /* 3 */ { 0, &BX_CPU_C::FIST_DWORD_INTEGER
}, // FISTP_DWORD_INTEGER
163 /* 4 */ { 0, &BX_CPU_C::BxError
},
164 /* 5 */ { 0, &BX_CPU_C::FLD_EXTENDED_REAL
},
165 /* 6 */ { 0, &BX_CPU_C::BxError
},
166 /* 7 */ { 0, &BX_CPU_C::FSTP_EXTENDED_REAL
}
169 // DC (modrm is outside 00h - BFh) (mod != 11)
170 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupDC
[8] = {
171 /* 0 */ { 0, &BX_CPU_C::FADD_DOUBLE_REAL
},
172 /* 1 */ { 0, &BX_CPU_C::FMUL_DOUBLE_REAL
},
173 /* 2 */ { 0, &BX_CPU_C::FCOM_DOUBLE_REAL
},
174 /* 3 */ { 0, &BX_CPU_C::FCOM_DOUBLE_REAL
}, // FCOMP_DOUBLE_REAL
175 /* 4 */ { 0, &BX_CPU_C::FSUB_DOUBLE_REAL
},
176 /* 5 */ { 0, &BX_CPU_C::FSUBR_DOUBLE_REAL
},
177 /* 6 */ { 0, &BX_CPU_C::FDIV_DOUBLE_REAL
},
178 /* 7 */ { 0, &BX_CPU_C::FDIVR_DOUBLE_REAL
}
181 // DD (modrm is outside 00h - BFh) (mod != 11)
182 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupDD
[8] = {
183 /* 0 */ { 0, &BX_CPU_C::FLD_DOUBLE_REAL
},
184 /* 1 */ { 0, &BX_CPU_C::FISTTP64
},
185 /* 2 */ { 0, &BX_CPU_C::FST_DOUBLE_REAL
},
186 /* 3 */ { 0, &BX_CPU_C::FST_DOUBLE_REAL
}, // FSTP_DOUBLE_REAL
187 /* 4 */ { 0, &BX_CPU_C::FRSTOR
},
188 /* 5 */ { 0, &BX_CPU_C::BxError
},
189 /* 6 */ { 0, &BX_CPU_C::FNSAVE
},
190 /* 7 */ { 0, &BX_CPU_C::FNSTSW
}
193 // DE (modrm is outside 00h - BFh) (mod != 11)
194 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupDE
[8] = {
195 /* 0 */ { 0, &BX_CPU_C::FIADD_WORD_INTEGER
},
196 /* 1 */ { 0, &BX_CPU_C::FIMUL_WORD_INTEGER
},
197 /* 2 */ { 0, &BX_CPU_C::FICOM_WORD_INTEGER
},
198 /* 3 */ { 0, &BX_CPU_C::FICOM_WORD_INTEGER
}, // FICOMP_WORD_INTEGER
199 /* 4 */ { 0, &BX_CPU_C::FISUB_WORD_INTEGER
},
200 /* 5 */ { 0, &BX_CPU_C::FISUBR_WORD_INTEGER
},
201 /* 6 */ { 0, &BX_CPU_C::FIDIV_WORD_INTEGER
},
202 /* 7 */ { 0, &BX_CPU_C::FIDIVR_WORD_INTEGER
}
205 // DF (modrm is outside 00h - BFh) (mod != 11)
206 static const BxOpcodeInfo_t BxOpcodeInfo_FPGroupDF
[8] = {
207 /* 0 */ { 0, &BX_CPU_C::FILD_WORD_INTEGER
},
208 /* 1 */ { 0, &BX_CPU_C::FISTTP16
},
209 /* 2 */ { 0, &BX_CPU_C::FIST_WORD_INTEGER
},
210 /* 3 */ { 0, &BX_CPU_C::FIST_WORD_INTEGER
}, // FISTP_WORD_INTEGER
211 /* 4 */ { 0, &BX_CPU_C::FBLD_PACKED_BCD
},
212 /* 5 */ { 0, &BX_CPU_C::FILD_QWORD_INTEGER
},
213 /* 6 */ { 0, &BX_CPU_C::FBSTP_PACKED_BCD
},
214 /* 7 */ { 0, &BX_CPU_C::FISTP_QWORD_INTEGER
}
217 // 512 entries for second byte of floating point instructions. (when mod==11b)
218 static const BxOpcodeInfo_t BxOpcodeInfo_FloatingPoint
[512] = {
219 // D8 (modrm is outside 00h - BFh) (mod == 11)
220 /* D8 C0 */ { 0, &BX_CPU_C::FADD_ST0_STj
},
221 /* D8 C1 */ { 0, &BX_CPU_C::FADD_ST0_STj
},
222 /* D8 C2 */ { 0, &BX_CPU_C::FADD_ST0_STj
},
223 /* D8 C3 */ { 0, &BX_CPU_C::FADD_ST0_STj
},
224 /* D8 C4 */ { 0, &BX_CPU_C::FADD_ST0_STj
},
225 /* D8 C5 */ { 0, &BX_CPU_C::FADD_ST0_STj
},
226 /* D8 C6 */ { 0, &BX_CPU_C::FADD_ST0_STj
},
227 /* D8 C7 */ { 0, &BX_CPU_C::FADD_ST0_STj
},
228 /* D8 C8 */ { 0, &BX_CPU_C::FMUL_ST0_STj
},
229 /* D8 C9 */ { 0, &BX_CPU_C::FMUL_ST0_STj
},
230 /* D8 CA */ { 0, &BX_CPU_C::FMUL_ST0_STj
},
231 /* D8 CB */ { 0, &BX_CPU_C::FMUL_ST0_STj
},
232 /* D8 CC */ { 0, &BX_CPU_C::FMUL_ST0_STj
},
233 /* D8 CD */ { 0, &BX_CPU_C::FMUL_ST0_STj
},
234 /* D8 CE */ { 0, &BX_CPU_C::FMUL_ST0_STj
},
235 /* D8 CF */ { 0, &BX_CPU_C::FMUL_ST0_STj
},
236 /* D8 D0 */ { 0, &BX_CPU_C::FCOM_STi
},
237 /* D8 D1 */ { 0, &BX_CPU_C::FCOM_STi
},
238 /* D8 D2 */ { 0, &BX_CPU_C::FCOM_STi
},
239 /* D8 D3 */ { 0, &BX_CPU_C::FCOM_STi
},
240 /* D8 D4 */ { 0, &BX_CPU_C::FCOM_STi
},
241 /* D8 D5 */ { 0, &BX_CPU_C::FCOM_STi
},
242 /* D8 D6 */ { 0, &BX_CPU_C::FCOM_STi
},
243 /* D8 D7 */ { 0, &BX_CPU_C::FCOM_STi
},
244 /* D8 D8 */ { 0, &BX_CPU_C::FCOM_STi
}, // FCOMP
245 /* D8 D9 */ { 0, &BX_CPU_C::FCOM_STi
}, // FCOMP
246 /* D8 DA */ { 0, &BX_CPU_C::FCOM_STi
}, // FCOMP
247 /* D8 DB */ { 0, &BX_CPU_C::FCOM_STi
}, // FCOMP
248 /* D8 DC */ { 0, &BX_CPU_C::FCOM_STi
}, // FCOMP
249 /* D8 DD */ { 0, &BX_CPU_C::FCOM_STi
}, // FCOMP
250 /* D8 DE */ { 0, &BX_CPU_C::FCOM_STi
}, // FCOMP
251 /* D8 DF */ { 0, &BX_CPU_C::FCOM_STi
}, // FCOMP
252 /* D8 E0 */ { 0, &BX_CPU_C::FSUB_ST0_STj
},
253 /* D8 E1 */ { 0, &BX_CPU_C::FSUB_ST0_STj
},
254 /* D8 E2 */ { 0, &BX_CPU_C::FSUB_ST0_STj
},
255 /* D8 E3 */ { 0, &BX_CPU_C::FSUB_ST0_STj
},
256 /* D8 E4 */ { 0, &BX_CPU_C::FSUB_ST0_STj
},
257 /* D8 E5 */ { 0, &BX_CPU_C::FSUB_ST0_STj
},
258 /* D8 E6 */ { 0, &BX_CPU_C::FSUB_ST0_STj
},
259 /* D8 E7 */ { 0, &BX_CPU_C::FSUB_ST0_STj
},
260 /* D8 E8 */ { 0, &BX_CPU_C::FSUBR_ST0_STj
},
261 /* D8 E9 */ { 0, &BX_CPU_C::FSUBR_ST0_STj
},
262 /* D8 EA */ { 0, &BX_CPU_C::FSUBR_ST0_STj
},
263 /* D8 EB */ { 0, &BX_CPU_C::FSUBR_ST0_STj
},
264 /* D8 EC */ { 0, &BX_CPU_C::FSUBR_ST0_STj
},
265 /* D8 ED */ { 0, &BX_CPU_C::FSUBR_ST0_STj
},
266 /* D8 EE */ { 0, &BX_CPU_C::FSUBR_ST0_STj
},
267 /* D8 EF */ { 0, &BX_CPU_C::FSUBR_ST0_STj
},
268 /* D8 F0 */ { 0, &BX_CPU_C::FDIV_ST0_STj
},
269 /* D8 F1 */ { 0, &BX_CPU_C::FDIV_ST0_STj
},
270 /* D8 F2 */ { 0, &BX_CPU_C::FDIV_ST0_STj
},
271 /* D8 F3 */ { 0, &BX_CPU_C::FDIV_ST0_STj
},
272 /* D8 F4 */ { 0, &BX_CPU_C::FDIV_ST0_STj
},
273 /* D8 F5 */ { 0, &BX_CPU_C::FDIV_ST0_STj
},
274 /* D8 F6 */ { 0, &BX_CPU_C::FDIV_ST0_STj
},
275 /* D8 F7 */ { 0, &BX_CPU_C::FDIV_ST0_STj
},
276 /* D8 F8 */ { 0, &BX_CPU_C::FDIVR_ST0_STj
},
277 /* D8 F9 */ { 0, &BX_CPU_C::FDIVR_ST0_STj
},
278 /* D8 FA */ { 0, &BX_CPU_C::FDIVR_ST0_STj
},
279 /* D8 FB */ { 0, &BX_CPU_C::FDIVR_ST0_STj
},
280 /* D8 FC */ { 0, &BX_CPU_C::FDIVR_ST0_STj
},
281 /* D8 FD */ { 0, &BX_CPU_C::FDIVR_ST0_STj
},
282 /* D8 FE */ { 0, &BX_CPU_C::FDIVR_ST0_STj
},
283 /* D8 FF */ { 0, &BX_CPU_C::FDIVR_ST0_STj
},
285 // D9 (modrm is outside 00h - BFh) (mod == 11)
286 /* D9 C0 */ { 0, &BX_CPU_C::FLD_STi
},
287 /* D9 C1 */ { 0, &BX_CPU_C::FLD_STi
},
288 /* D9 C2 */ { 0, &BX_CPU_C::FLD_STi
},
289 /* D9 C3 */ { 0, &BX_CPU_C::FLD_STi
},
290 /* D9 C4 */ { 0, &BX_CPU_C::FLD_STi
},
291 /* D9 C5 */ { 0, &BX_CPU_C::FLD_STi
},
292 /* D9 C6 */ { 0, &BX_CPU_C::FLD_STi
},
293 /* D9 C7 */ { 0, &BX_CPU_C::FLD_STi
},
294 /* D9 C8 */ { 0, &BX_CPU_C::FXCH_STi
},
295 /* D9 C9 */ { 0, &BX_CPU_C::FXCH_STi
},
296 /* D9 CA */ { 0, &BX_CPU_C::FXCH_STi
},
297 /* D9 CB */ { 0, &BX_CPU_C::FXCH_STi
},
298 /* D9 CC */ { 0, &BX_CPU_C::FXCH_STi
},
299 /* D9 CD */ { 0, &BX_CPU_C::FXCH_STi
},
300 /* D9 CE */ { 0, &BX_CPU_C::FXCH_STi
},
301 /* D9 CF */ { 0, &BX_CPU_C::FXCH_STi
},
302 /* D9 D0 */ { 0, &BX_CPU_C::FNOP
},
303 /* D9 D1 */ { 0, &BX_CPU_C::BxError
},
304 /* D9 D2 */ { 0, &BX_CPU_C::BxError
},
305 /* D9 D3 */ { 0, &BX_CPU_C::BxError
},
306 /* D9 D4 */ { 0, &BX_CPU_C::BxError
},
307 /* D9 D5 */ { 0, &BX_CPU_C::BxError
},
308 /* D9 D6 */ { 0, &BX_CPU_C::BxError
},
309 /* D9 D7 */ { 0, &BX_CPU_C::BxError
},
310 /* D9 D8 */ { 0, &BX_CPU_C::BxError
},
311 /* D9 D9 */ { 0, &BX_CPU_C::BxError
},
312 /* D9 DA */ { 0, &BX_CPU_C::BxError
},
313 /* D9 DB */ { 0, &BX_CPU_C::BxError
},
314 /* D9 DC */ { 0, &BX_CPU_C::BxError
},
315 /* D9 DD */ { 0, &BX_CPU_C::BxError
},
316 /* D9 DE */ { 0, &BX_CPU_C::BxError
},
317 /* D9 DF */ { 0, &BX_CPU_C::BxError
},
318 /* D9 E0 */ { 0, &BX_CPU_C::FCHS
},
319 /* D9 E1 */ { 0, &BX_CPU_C::FABS
},
320 /* D9 E2 */ { 0, &BX_CPU_C::BxError
},
321 /* D9 E3 */ { 0, &BX_CPU_C::BxError
},
322 /* D9 E4 */ { 0, &BX_CPU_C::FTST
},
323 /* D9 E5 */ { 0, &BX_CPU_C::FXAM
},
324 /* D9 E6 */ { 0, &BX_CPU_C::BxError
},
325 /* D9 E7 */ { 0, &BX_CPU_C::BxError
},
326 /* D9 E8 */ { 0, &BX_CPU_C::FLD1
},
327 /* D9 E9 */ { 0, &BX_CPU_C::FLDL2T
},
328 /* D9 EA */ { 0, &BX_CPU_C::FLDL2E
},
329 /* D9 EB */ { 0, &BX_CPU_C::FLDPI
},
330 /* D9 EC */ { 0, &BX_CPU_C::FLDLG2
},
331 /* D9 ED */ { 0, &BX_CPU_C::FLDLN2
},
332 /* D9 EE */ { 0, &BX_CPU_C::FLDZ
},
333 /* D9 EF */ { 0, &BX_CPU_C::BxError
},
334 /* D9 F0 */ { 0, &BX_CPU_C::F2XM1
},
335 /* D9 F1 */ { 0, &BX_CPU_C::FYL2X
},
336 /* D9 F2 */ { 0, &BX_CPU_C::FPTAN
},
337 /* D9 F3 */ { 0, &BX_CPU_C::FPATAN
},
338 /* D9 F4 */ { 0, &BX_CPU_C::FXTRACT
},
339 /* D9 F5 */ { 0, &BX_CPU_C::FPREM1
},
340 /* D9 F6 */ { 0, &BX_CPU_C::FDECSTP
},
341 /* D9 F7 */ { 0, &BX_CPU_C::FINCSTP
},
342 /* D9 F8 */ { 0, &BX_CPU_C::FPREM
},
343 /* D9 F9 */ { 0, &BX_CPU_C::FYL2XP1
},
344 /* D9 FA */ { 0, &BX_CPU_C::FSQRT
},
345 /* D9 FB */ { 0, &BX_CPU_C::FSINCOS
},
346 /* D9 FC */ { 0, &BX_CPU_C::FRNDINT
},
347 /* D9 FD */ { 0, &BX_CPU_C::FSCALE
},
348 /* D9 FE */ { 0, &BX_CPU_C::FSIN
},
349 /* D9 FF */ { 0, &BX_CPU_C::FCOS
},
351 // DA (modrm is outside 00h - BFh) (mod == 11)
352 /* DA C0 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
353 /* DA C1 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
354 /* DA C2 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
355 /* DA C3 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
356 /* DA C4 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
357 /* DA C5 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
358 /* DA C6 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
359 /* DA C7 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
360 /* DA C8 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
361 /* DA C9 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
362 /* DA CA */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
363 /* DA CB */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
364 /* DA CC */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
365 /* DA CD */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
366 /* DA CE */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
367 /* DA CF */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
368 /* DA D0 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
369 /* DA D1 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
370 /* DA D2 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
371 /* DA D3 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
372 /* DA D4 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
373 /* DA D5 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
374 /* DA D6 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
375 /* DA D7 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
376 /* DA D8 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
377 /* DA D9 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
378 /* DA DA */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
379 /* DA DB */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
380 /* DA DC */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
381 /* DA DD */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
382 /* DA DE */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
383 /* DA DF */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
384 /* DA E0 */ { 0, &BX_CPU_C::BxError
},
385 /* DA E1 */ { 0, &BX_CPU_C::BxError
},
386 /* DA E2 */ { 0, &BX_CPU_C::BxError
},
387 /* DA E3 */ { 0, &BX_CPU_C::BxError
},
388 /* DA E4 */ { 0, &BX_CPU_C::BxError
},
389 /* DA E5 */ { 0, &BX_CPU_C::BxError
},
390 /* DA E6 */ { 0, &BX_CPU_C::BxError
},
391 /* DA E7 */ { 0, &BX_CPU_C::BxError
},
392 /* DA E8 */ { 0, &BX_CPU_C::BxError
},
393 /* DA E9 */ { 0, &BX_CPU_C::FUCOMPP
},
394 /* DA EA */ { 0, &BX_CPU_C::BxError
},
395 /* DA EB */ { 0, &BX_CPU_C::BxError
},
396 /* DA EC */ { 0, &BX_CPU_C::BxError
},
397 /* DA ED */ { 0, &BX_CPU_C::BxError
},
398 /* DA EE */ { 0, &BX_CPU_C::BxError
},
399 /* DA EF */ { 0, &BX_CPU_C::BxError
},
400 /* DA F0 */ { 0, &BX_CPU_C::BxError
},
401 /* DA F1 */ { 0, &BX_CPU_C::BxError
},
402 /* DA F2 */ { 0, &BX_CPU_C::BxError
},
403 /* DA F3 */ { 0, &BX_CPU_C::BxError
},
404 /* DA F4 */ { 0, &BX_CPU_C::BxError
},
405 /* DA F5 */ { 0, &BX_CPU_C::BxError
},
406 /* DA F6 */ { 0, &BX_CPU_C::BxError
},
407 /* DA F7 */ { 0, &BX_CPU_C::BxError
},
408 /* DA F8 */ { 0, &BX_CPU_C::BxError
},
409 /* DA F9 */ { 0, &BX_CPU_C::BxError
},
410 /* DA FA */ { 0, &BX_CPU_C::BxError
},
411 /* DA FB */ { 0, &BX_CPU_C::BxError
},
412 /* DA FC */ { 0, &BX_CPU_C::BxError
},
413 /* DA FD */ { 0, &BX_CPU_C::BxError
},
414 /* DA FE */ { 0, &BX_CPU_C::BxError
},
415 /* DA FF */ { 0, &BX_CPU_C::BxError
},
417 // DB (modrm is outside 00h - BFh) (mod == 11)
418 /* DB C0 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
419 /* DB C1 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
420 /* DB C2 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
421 /* DB C3 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
422 /* DB C4 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
423 /* DB C5 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
424 /* DB C6 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
425 /* DB C7 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
426 /* DB C8 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
427 /* DB C9 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
428 /* DB CA */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
429 /* DB CB */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
430 /* DB CC */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
431 /* DB CD */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
432 /* DB CE */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
433 /* DB CF */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
434 /* DB D0 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
435 /* DB D1 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
436 /* DB D2 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
437 /* DB D3 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
438 /* DB D4 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
439 /* DB D5 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
440 /* DB D6 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
441 /* DB D7 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
442 /* DB D8 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
443 /* DB D9 */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
444 /* DB DA */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
445 /* DB DB */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
446 /* DB DC */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
447 /* DB DD */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
448 /* DB DE */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
449 /* DB DF */ { 0, &BX_CPU_C::FCMOV_ST0_STj
},
450 /* DB E0 */ { 0, &BX_CPU_C::FPLEGACY
}, // feni (287 only)
451 /* DB E1 */ { 0, &BX_CPU_C::FPLEGACY
}, // fdisi (287 only)
452 /* DB E2 */ { 0, &BX_CPU_C::FNCLEX
},
453 /* DB E3 */ { 0, &BX_CPU_C::FNINIT
},
454 /* DB E4 */ { 0, &BX_CPU_C::FPLEGACY
}, // fsetpm (287 only)
455 /* DB E5 */ { 0, &BX_CPU_C::BxError
},
456 /* DB E6 */ { 0, &BX_CPU_C::BxError
},
457 /* DB E7 */ { 0, &BX_CPU_C::BxError
},
458 /* DB E8 */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
},
459 /* DB E9 */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
},
460 /* DB EA */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
},
461 /* DB EB */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
},
462 /* DB EC */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
},
463 /* DB ED */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
},
464 /* DB EE */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
},
465 /* DB EF */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
},
466 /* DB F0 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
},
467 /* DB F1 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
},
468 /* DB F2 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
},
469 /* DB F3 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
},
470 /* DB F4 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
},
471 /* DB F5 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
},
472 /* DB F6 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
},
473 /* DB F7 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
},
474 /* DB F8 */ { 0, &BX_CPU_C::BxError
},
475 /* DB F9 */ { 0, &BX_CPU_C::BxError
},
476 /* DB FA */ { 0, &BX_CPU_C::BxError
},
477 /* DB FB */ { 0, &BX_CPU_C::BxError
},
478 /* DB FC */ { 0, &BX_CPU_C::BxError
},
479 /* DB FD */ { 0, &BX_CPU_C::BxError
},
480 /* DB FE */ { 0, &BX_CPU_C::BxError
},
481 /* DB FF */ { 0, &BX_CPU_C::BxError
},
483 // DC (modrm is outside 00h - BFh) (mod == 11)
484 /* DC C0 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
485 /* DC C1 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
486 /* DC C2 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
487 /* DC C3 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
488 /* DC C4 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
489 /* DC C5 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
490 /* DC C6 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
491 /* DC C7 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
492 /* DC C8 */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
493 /* DC C9 */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
494 /* DC CA */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
495 /* DC CB */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
496 /* DC CC */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
497 /* DC CD */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
498 /* DC CE */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
499 /* DC CF */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
500 /* DC D0 */ { 0, &BX_CPU_C::BxError
},
501 /* DC D1 */ { 0, &BX_CPU_C::BxError
},
502 /* DC D2 */ { 0, &BX_CPU_C::BxError
},
503 /* DC D3 */ { 0, &BX_CPU_C::BxError
},
504 /* DC D4 */ { 0, &BX_CPU_C::BxError
},
505 /* DC D5 */ { 0, &BX_CPU_C::BxError
},
506 /* DC D6 */ { 0, &BX_CPU_C::BxError
},
507 /* DC D7 */ { 0, &BX_CPU_C::BxError
},
508 /* DC D8 */ { 0, &BX_CPU_C::BxError
},
509 /* DC D9 */ { 0, &BX_CPU_C::BxError
},
510 /* DC DA */ { 0, &BX_CPU_C::BxError
},
511 /* DC DB */ { 0, &BX_CPU_C::BxError
},
512 /* DC DC */ { 0, &BX_CPU_C::BxError
},
513 /* DC DD */ { 0, &BX_CPU_C::BxError
},
514 /* DC DE */ { 0, &BX_CPU_C::BxError
},
515 /* DC DF */ { 0, &BX_CPU_C::BxError
},
516 /* DC E0 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
517 /* DC E1 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
518 /* DC E2 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
519 /* DC E3 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
520 /* DC E4 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
521 /* DC E5 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
522 /* DC E6 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
523 /* DC E7 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
524 /* DC E8 */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
525 /* DC E9 */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
526 /* DC EA */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
527 /* DC EB */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
528 /* DC EC */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
529 /* DC ED */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
530 /* DC EE */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
531 /* DC EF */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
532 /* DC F0 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
533 /* DC F1 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
534 /* DC F2 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
535 /* DC F3 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
536 /* DC F4 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
537 /* DC F5 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
538 /* DC F6 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
539 /* DC F7 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
540 /* DC F8 */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
541 /* DC F9 */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
542 /* DC FA */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
543 /* DC FB */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
544 /* DC FC */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
545 /* DC FD */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
546 /* DC FE */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
547 /* DC FF */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
549 // DD (modrm is outside 00h - BFh) (mod == 11)
550 /* DD C0 */ { 0, &BX_CPU_C::FFREE_STi
},
551 /* DD C1 */ { 0, &BX_CPU_C::FFREE_STi
},
552 /* DD C2 */ { 0, &BX_CPU_C::FFREE_STi
},
553 /* DD C3 */ { 0, &BX_CPU_C::FFREE_STi
},
554 /* DD C4 */ { 0, &BX_CPU_C::FFREE_STi
},
555 /* DD C5 */ { 0, &BX_CPU_C::FFREE_STi
},
556 /* DD C6 */ { 0, &BX_CPU_C::FFREE_STi
},
557 /* DD C7 */ { 0, &BX_CPU_C::FFREE_STi
},
558 /* DD C8 */ { 0, &BX_CPU_C::BxError
},
559 /* DD C9 */ { 0, &BX_CPU_C::BxError
},
560 /* DD CA */ { 0, &BX_CPU_C::BxError
},
561 /* DD CB */ { 0, &BX_CPU_C::BxError
},
562 /* DD CC */ { 0, &BX_CPU_C::BxError
},
563 /* DD CD */ { 0, &BX_CPU_C::BxError
},
564 /* DD CE */ { 0, &BX_CPU_C::BxError
},
565 /* DD CF */ { 0, &BX_CPU_C::BxError
},
566 /* DD D0 */ { 0, &BX_CPU_C::FST_STi
},
567 /* DD D1 */ { 0, &BX_CPU_C::FST_STi
},
568 /* DD D2 */ { 0, &BX_CPU_C::FST_STi
},
569 /* DD D3 */ { 0, &BX_CPU_C::FST_STi
},
570 /* DD D4 */ { 0, &BX_CPU_C::FST_STi
},
571 /* DD D5 */ { 0, &BX_CPU_C::FST_STi
},
572 /* DD D6 */ { 0, &BX_CPU_C::FST_STi
},
573 /* DD D7 */ { 0, &BX_CPU_C::FST_STi
},
574 /* DD D8 */ { 0, &BX_CPU_C::FST_STi
}, // FSTP_STi
575 /* DD D9 */ { 0, &BX_CPU_C::FST_STi
}, // FSTP_STi
576 /* DD DA */ { 0, &BX_CPU_C::FST_STi
}, // FSTP_STi
577 /* DD DB */ { 0, &BX_CPU_C::FST_STi
}, // FSTP_STi
578 /* DD DC */ { 0, &BX_CPU_C::FST_STi
}, // FSTP_STi
579 /* DD DD */ { 0, &BX_CPU_C::FST_STi
}, // FSTP_STi
580 /* DD DE */ { 0, &BX_CPU_C::FST_STi
}, // FSTP_STi
581 /* DD DF */ { 0, &BX_CPU_C::FST_STi
}, // FSTP_STi
582 /* DD E0 */ { 0, &BX_CPU_C::FUCOM_STi
},
583 /* DD E1 */ { 0, &BX_CPU_C::FUCOM_STi
},
584 /* DD E2 */ { 0, &BX_CPU_C::FUCOM_STi
},
585 /* DD E3 */ { 0, &BX_CPU_C::FUCOM_STi
},
586 /* DD E4 */ { 0, &BX_CPU_C::FUCOM_STi
},
587 /* DD E5 */ { 0, &BX_CPU_C::FUCOM_STi
},
588 /* DD E6 */ { 0, &BX_CPU_C::FUCOM_STi
},
589 /* DD E7 */ { 0, &BX_CPU_C::FUCOM_STi
},
590 /* DD E8 */ { 0, &BX_CPU_C::FUCOM_STi
}, // FUCOMP
591 /* DD E9 */ { 0, &BX_CPU_C::FUCOM_STi
}, // FUCOMP
592 /* DD EA */ { 0, &BX_CPU_C::FUCOM_STi
}, // FUCOMP
593 /* DD EB */ { 0, &BX_CPU_C::FUCOM_STi
}, // FUCOMP
594 /* DD EC */ { 0, &BX_CPU_C::FUCOM_STi
}, // FUCOMP
595 /* DD ED */ { 0, &BX_CPU_C::FUCOM_STi
}, // FUCOMP
596 /* DD EE */ { 0, &BX_CPU_C::FUCOM_STi
}, // FUCOMP
597 /* DD EF */ { 0, &BX_CPU_C::FUCOM_STi
}, // FUCOMP
598 /* DD F0 */ { 0, &BX_CPU_C::BxError
},
599 /* DD F1 */ { 0, &BX_CPU_C::BxError
},
600 /* DD F2 */ { 0, &BX_CPU_C::BxError
},
601 /* DD F3 */ { 0, &BX_CPU_C::BxError
},
602 /* DD F4 */ { 0, &BX_CPU_C::BxError
},
603 /* DD F5 */ { 0, &BX_CPU_C::BxError
},
604 /* DD F6 */ { 0, &BX_CPU_C::BxError
},
605 /* DD F7 */ { 0, &BX_CPU_C::BxError
},
606 /* DD F8 */ { 0, &BX_CPU_C::BxError
},
607 /* DD F9 */ { 0, &BX_CPU_C::BxError
},
608 /* DD FA */ { 0, &BX_CPU_C::BxError
},
609 /* DD FB */ { 0, &BX_CPU_C::BxError
},
610 /* DD FC */ { 0, &BX_CPU_C::BxError
},
611 /* DD FD */ { 0, &BX_CPU_C::BxError
},
612 /* DD FE */ { 0, &BX_CPU_C::BxError
},
613 /* DD FF */ { 0, &BX_CPU_C::BxError
},
615 // DE (modrm is outside 00h - BFh) (mod == 11)
616 // all instructions pop FPU stack
617 /* DE C0 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
618 /* DE C1 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
619 /* DE C2 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
620 /* DE C3 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
621 /* DE C4 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
622 /* DE C5 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
623 /* DE C6 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
624 /* DE C7 */ { 0, &BX_CPU_C::FADD_STi_ST0
},
625 /* DE C8 */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
626 /* DE C9 */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
627 /* DE CA */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
628 /* DE CB */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
629 /* DE CC */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
630 /* DE CD */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
631 /* DE CE */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
632 /* DE CF */ { 0, &BX_CPU_C::FMUL_STi_ST0
},
633 /* DE D0 */ { 0, &BX_CPU_C::BxError
},
634 /* DE D1 */ { 0, &BX_CPU_C::BxError
},
635 /* DE D2 */ { 0, &BX_CPU_C::BxError
},
636 /* DE D3 */ { 0, &BX_CPU_C::BxError
},
637 /* DE D4 */ { 0, &BX_CPU_C::BxError
},
638 /* DE D5 */ { 0, &BX_CPU_C::BxError
},
639 /* DE D6 */ { 0, &BX_CPU_C::BxError
},
640 /* DE D7 */ { 0, &BX_CPU_C::BxError
},
641 /* DE D8 */ { 0, &BX_CPU_C::BxError
},
642 /* DE D9 */ { 0, &BX_CPU_C::FCOMPP
},
643 /* DE DA */ { 0, &BX_CPU_C::BxError
},
644 /* DE DB */ { 0, &BX_CPU_C::BxError
},
645 /* DE DC */ { 0, &BX_CPU_C::BxError
},
646 /* DE DD */ { 0, &BX_CPU_C::BxError
},
647 /* DE DE */ { 0, &BX_CPU_C::BxError
},
648 /* DE DF */ { 0, &BX_CPU_C::BxError
},
649 /* DE E0 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
650 /* DE E1 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
651 /* DE E2 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
652 /* DE E3 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
653 /* DE E4 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
654 /* DE E5 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
655 /* DE E6 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
656 /* DE E7 */ { 0, &BX_CPU_C::FSUBR_STi_ST0
},
657 /* DE E8 */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
658 /* DE E9 */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
659 /* DE EA */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
660 /* DE EB */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
661 /* DE EC */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
662 /* DE ED */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
663 /* DE EE */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
664 /* DE EF */ { 0, &BX_CPU_C::FSUB_STi_ST0
},
665 /* DE F0 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
666 /* DE F1 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
667 /* DE F2 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
668 /* DE F3 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
669 /* DE F4 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
670 /* DE F5 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
671 /* DE F6 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
672 /* DE F7 */ { 0, &BX_CPU_C::FDIVR_STi_ST0
},
673 /* DE F8 */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
674 /* DE F9 */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
675 /* DE FA */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
676 /* DE FB */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
677 /* DE FC */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
678 /* DE FD */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
679 /* DE FE */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
680 /* DE FF */ { 0, &BX_CPU_C::FDIV_STi_ST0
},
682 // DF (modrm is outside 00h - BFh) (mod == 11)
683 /* DF C0 */ { 0, &BX_CPU_C::FFREEP_STi
}, // 287+ compatibility opcode
684 /* DF C1 */ { 0, &BX_CPU_C::FFREEP_STi
},
685 /* DF C2 */ { 0, &BX_CPU_C::FFREEP_STi
},
686 /* DF C3 */ { 0, &BX_CPU_C::FFREEP_STi
},
687 /* DF C4 */ { 0, &BX_CPU_C::FFREEP_STi
},
688 /* DF C5 */ { 0, &BX_CPU_C::FFREEP_STi
},
689 /* DF C6 */ { 0, &BX_CPU_C::FFREEP_STi
},
690 /* DF C7 */ { 0, &BX_CPU_C::FFREEP_STi
},
691 /* DF C8 */ { 0, &BX_CPU_C::BxError
},
692 /* DF C9 */ { 0, &BX_CPU_C::BxError
},
693 /* DF CA */ { 0, &BX_CPU_C::BxError
},
694 /* DF CB */ { 0, &BX_CPU_C::BxError
},
695 /* DF CC */ { 0, &BX_CPU_C::BxError
},
696 /* DF CD */ { 0, &BX_CPU_C::BxError
},
697 /* DF CE */ { 0, &BX_CPU_C::BxError
},
698 /* DF CF */ { 0, &BX_CPU_C::BxError
},
699 /* DF D0 */ { 0, &BX_CPU_C::BxError
},
700 /* DF D1 */ { 0, &BX_CPU_C::BxError
},
701 /* DF D2 */ { 0, &BX_CPU_C::BxError
},
702 /* DF D3 */ { 0, &BX_CPU_C::BxError
},
703 /* DF D4 */ { 0, &BX_CPU_C::BxError
},
704 /* DF D5 */ { 0, &BX_CPU_C::BxError
},
705 /* DF D6 */ { 0, &BX_CPU_C::BxError
},
706 /* DF D7 */ { 0, &BX_CPU_C::BxError
},
707 /* DF D8 */ { 0, &BX_CPU_C::BxError
},
708 /* DF D9 */ { 0, &BX_CPU_C::BxError
},
709 /* DF DA */ { 0, &BX_CPU_C::BxError
},
710 /* DF DB */ { 0, &BX_CPU_C::BxError
},
711 /* DF DC */ { 0, &BX_CPU_C::BxError
},
712 /* DF DD */ { 0, &BX_CPU_C::BxError
},
713 /* DF DE */ { 0, &BX_CPU_C::BxError
},
714 /* DF DF */ { 0, &BX_CPU_C::BxError
},
715 /* DF E0 */ { 0, &BX_CPU_C::FNSTSW_AX
},
716 /* DF E1 */ { 0, &BX_CPU_C::BxError
},
717 /* DF E2 */ { 0, &BX_CPU_C::BxError
},
718 /* DF E3 */ { 0, &BX_CPU_C::BxError
},
719 /* DF E4 */ { 0, &BX_CPU_C::BxError
},
720 /* DF E5 */ { 0, &BX_CPU_C::BxError
},
721 /* DF E6 */ { 0, &BX_CPU_C::BxError
},
722 /* DF E7 */ { 0, &BX_CPU_C::BxError
},
723 /* DF E8 */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
}, // FUCOMIP
724 /* DF E9 */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
}, // FUCOMIP
725 /* DF EA */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
}, // FUCOMIP
726 /* DF EB */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
}, // FUCOMIP
727 /* DF EC */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
}, // FUCOMIP
728 /* DF ED */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
}, // FUCOMIP
729 /* DF EE */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
}, // FUCOMIP
730 /* DF EF */ { 0, &BX_CPU_C::FUCOMI_ST0_STj
}, // FUCOMIP
731 /* DF F0 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
}, // FCOMIP
732 /* DF F1 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
}, // FCOMIP
733 /* DF F2 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
}, // FCOMIP
734 /* DF F3 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
}, // FCOMIP
735 /* DF F4 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
}, // FCOMIP
736 /* DF F5 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
}, // FCOMIP
737 /* DF F6 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
}, // FCOMIP
738 /* DF F7 */ { 0, &BX_CPU_C::FCOMI_ST0_STj
}, // FCOMIP
739 /* DF F8 */ { 0, &BX_CPU_C::BxError
},
740 /* DF F9 */ { 0, &BX_CPU_C::BxError
},
741 /* DF FA */ { 0, &BX_CPU_C::BxError
},
742 /* DF FB */ { 0, &BX_CPU_C::BxError
},
743 /* DF FC */ { 0, &BX_CPU_C::BxError
},
744 /* DF FD */ { 0, &BX_CPU_C::BxError
},
745 /* DF FE */ { 0, &BX_CPU_C::BxError
},
746 /* DF FF */ { 0, &BX_CPU_C::BxError
},
751 /* ************************************************************************ */
756 static const BxOpcodeInfo_t Bx3DNowOpcodeInfo
[256] = {
757 // 256 entries for 3DNow opcodes, by suffix
758 /* 00 */ { 0, &BX_CPU_C::BxError
},
759 /* 01 */ { 0, &BX_CPU_C::BxError
},
760 /* 02 */ { 0, &BX_CPU_C::BxError
},
761 /* 03 */ { 0, &BX_CPU_C::BxError
},
762 /* 04 */ { 0, &BX_CPU_C::BxError
},
763 /* 05 */ { 0, &BX_CPU_C::BxError
},
764 /* 06 */ { 0, &BX_CPU_C::BxError
},
765 /* 07 */ { 0, &BX_CPU_C::BxError
},
766 /* 08 */ { 0, &BX_CPU_C::BxError
},
767 /* 09 */ { 0, &BX_CPU_C::BxError
},
768 /* 0A */ { 0, &BX_CPU_C::BxError
},
769 /* 0B */ { 0, &BX_CPU_C::BxError
},
770 /* 0C */ { 0, &BX_CPU_C::PI2FW_PqQq
},
771 /* 0D */ { 0, &BX_CPU_C::PI2FD_PqQq
},
772 /* 0E */ { 0, &BX_CPU_C::BxError
},
773 /* 0F */ { 0, &BX_CPU_C::BxError
},
774 /* 10 */ { 0, &BX_CPU_C::BxError
},
775 /* 11 */ { 0, &BX_CPU_C::BxError
},
776 /* 12 */ { 0, &BX_CPU_C::BxError
},
777 /* 13 */ { 0, &BX_CPU_C::BxError
},
778 /* 14 */ { 0, &BX_CPU_C::BxError
},
779 /* 15 */ { 0, &BX_CPU_C::BxError
},
780 /* 16 */ { 0, &BX_CPU_C::BxError
},
781 /* 17 */ { 0, &BX_CPU_C::BxError
},
782 /* 18 */ { 0, &BX_CPU_C::BxError
},
783 /* 19 */ { 0, &BX_CPU_C::BxError
},
784 /* 1A */ { 0, &BX_CPU_C::BxError
},
785 /* 1B */ { 0, &BX_CPU_C::BxError
},
786 /* 1C */ { 0, &BX_CPU_C::PF2IW_PqQq
},
787 /* 1D */ { 0, &BX_CPU_C::PF2ID_PqQq
},
788 /* 1E */ { 0, &BX_CPU_C::BxError
},
789 /* 1F */ { 0, &BX_CPU_C::BxError
},
790 /* 20 */ { 0, &BX_CPU_C::BxError
},
791 /* 21 */ { 0, &BX_CPU_C::BxError
},
792 /* 22 */ { 0, &BX_CPU_C::BxError
},
793 /* 23 */ { 0, &BX_CPU_C::BxError
},
794 /* 24 */ { 0, &BX_CPU_C::BxError
},
795 /* 25 */ { 0, &BX_CPU_C::BxError
},
796 /* 26 */ { 0, &BX_CPU_C::BxError
},
797 /* 27 */ { 0, &BX_CPU_C::BxError
},
798 /* 28 */ { 0, &BX_CPU_C::BxError
},
799 /* 29 */ { 0, &BX_CPU_C::BxError
},
800 /* 2A */ { 0, &BX_CPU_C::BxError
},
801 /* 2B */ { 0, &BX_CPU_C::BxError
},
802 /* 2C */ { 0, &BX_CPU_C::BxError
},
803 /* 2D */ { 0, &BX_CPU_C::BxError
},
804 /* 2E */ { 0, &BX_CPU_C::BxError
},
805 /* 2F */ { 0, &BX_CPU_C::BxError
},
806 /* 30 */ { 0, &BX_CPU_C::BxError
},
807 /* 31 */ { 0, &BX_CPU_C::BxError
},
808 /* 32 */ { 0, &BX_CPU_C::BxError
},
809 /* 33 */ { 0, &BX_CPU_C::BxError
},
810 /* 34 */ { 0, &BX_CPU_C::BxError
},
811 /* 35 */ { 0, &BX_CPU_C::BxError
},
812 /* 36 */ { 0, &BX_CPU_C::BxError
},
813 /* 37 */ { 0, &BX_CPU_C::BxError
},
814 /* 38 */ { 0, &BX_CPU_C::BxError
},
815 /* 39 */ { 0, &BX_CPU_C::BxError
},
816 /* 3A */ { 0, &BX_CPU_C::BxError
},
817 /* 3B */ { 0, &BX_CPU_C::BxError
},
818 /* 3C */ { 0, &BX_CPU_C::BxError
},
819 /* 3D */ { 0, &BX_CPU_C::BxError
},
820 /* 3E */ { 0, &BX_CPU_C::BxError
},
821 /* 3F */ { 0, &BX_CPU_C::BxError
},
822 /* 40 */ { 0, &BX_CPU_C::BxError
},
823 /* 41 */ { 0, &BX_CPU_C::BxError
},
824 /* 42 */ { 0, &BX_CPU_C::BxError
},
825 /* 43 */ { 0, &BX_CPU_C::BxError
},
826 /* 44 */ { 0, &BX_CPU_C::BxError
},
827 /* 45 */ { 0, &BX_CPU_C::BxError
},
828 /* 46 */ { 0, &BX_CPU_C::BxError
},
829 /* 47 */ { 0, &BX_CPU_C::BxError
},
830 /* 48 */ { 0, &BX_CPU_C::BxError
},
831 /* 49 */ { 0, &BX_CPU_C::BxError
},
832 /* 4A */ { 0, &BX_CPU_C::BxError
},
833 /* 4B */ { 0, &BX_CPU_C::BxError
},
834 /* 4C */ { 0, &BX_CPU_C::BxError
},
835 /* 4D */ { 0, &BX_CPU_C::BxError
},
836 /* 4E */ { 0, &BX_CPU_C::BxError
},
837 /* 4F */ { 0, &BX_CPU_C::BxError
},
838 /* 50 */ { 0, &BX_CPU_C::BxError
},
839 /* 51 */ { 0, &BX_CPU_C::BxError
},
840 /* 52 */ { 0, &BX_CPU_C::BxError
},
841 /* 53 */ { 0, &BX_CPU_C::BxError
},
842 /* 54 */ { 0, &BX_CPU_C::BxError
},
843 /* 55 */ { 0, &BX_CPU_C::BxError
},
844 /* 56 */ { 0, &BX_CPU_C::BxError
},
845 /* 57 */ { 0, &BX_CPU_C::BxError
},
846 /* 58 */ { 0, &BX_CPU_C::BxError
},
847 /* 59 */ { 0, &BX_CPU_C::BxError
},
848 /* 5A */ { 0, &BX_CPU_C::BxError
},
849 /* 5B */ { 0, &BX_CPU_C::BxError
},
850 /* 5C */ { 0, &BX_CPU_C::BxError
},
851 /* 5D */ { 0, &BX_CPU_C::BxError
},
852 /* 5E */ { 0, &BX_CPU_C::BxError
},
853 /* 5F */ { 0, &BX_CPU_C::BxError
},
854 /* 60 */ { 0, &BX_CPU_C::BxError
},
855 /* 61 */ { 0, &BX_CPU_C::BxError
},
856 /* 62 */ { 0, &BX_CPU_C::BxError
},
857 /* 63 */ { 0, &BX_CPU_C::BxError
},
858 /* 64 */ { 0, &BX_CPU_C::BxError
},
859 /* 65 */ { 0, &BX_CPU_C::BxError
},
860 /* 66 */ { 0, &BX_CPU_C::BxError
},
861 /* 67 */ { 0, &BX_CPU_C::BxError
},
862 /* 68 */ { 0, &BX_CPU_C::BxError
},
863 /* 69 */ { 0, &BX_CPU_C::BxError
},
864 /* 6A */ { 0, &BX_CPU_C::BxError
},
865 /* 6B */ { 0, &BX_CPU_C::BxError
},
866 /* 6C */ { 0, &BX_CPU_C::BxError
},
867 /* 6D */ { 0, &BX_CPU_C::BxError
},
868 /* 6E */ { 0, &BX_CPU_C::BxError
},
869 /* 6F */ { 0, &BX_CPU_C::BxError
},
870 /* 70 */ { 0, &BX_CPU_C::BxError
},
871 /* 71 */ { 0, &BX_CPU_C::BxError
},
872 /* 72 */ { 0, &BX_CPU_C::BxError
},
873 /* 73 */ { 0, &BX_CPU_C::BxError
},
874 /* 74 */ { 0, &BX_CPU_C::BxError
},
875 /* 75 */ { 0, &BX_CPU_C::BxError
},
876 /* 76 */ { 0, &BX_CPU_C::BxError
},
877 /* 77 */ { 0, &BX_CPU_C::BxError
},
878 /* 78 */ { 0, &BX_CPU_C::BxError
},
879 /* 79 */ { 0, &BX_CPU_C::BxError
},
880 /* 7A */ { 0, &BX_CPU_C::BxError
},
881 /* 7B */ { 0, &BX_CPU_C::BxError
},
882 /* 7C */ { 0, &BX_CPU_C::BxError
},
883 /* 7D */ { 0, &BX_CPU_C::BxError
},
884 /* 7E */ { 0, &BX_CPU_C::BxError
},
885 /* 7F */ { 0, &BX_CPU_C::BxError
},
886 /* 80 */ { 0, &BX_CPU_C::BxError
},
887 /* 81 */ { 0, &BX_CPU_C::BxError
},
888 /* 82 */ { 0, &BX_CPU_C::BxError
},
889 /* 83 */ { 0, &BX_CPU_C::BxError
},
890 /* 84 */ { 0, &BX_CPU_C::BxError
},
891 /* 85 */ { 0, &BX_CPU_C::BxError
},
892 /* 86 */ { 0, &BX_CPU_C::BxError
},
893 /* 87 */ { 0, &BX_CPU_C::BxError
},
894 /* 88 */ { 0, &BX_CPU_C::BxError
},
895 /* 89 */ { 0, &BX_CPU_C::BxError
},
896 /* 8A */ { 0, &BX_CPU_C::PFNACC_PqQq
},
897 /* 8B */ { 0, &BX_CPU_C::BxError
},
898 /* 8C */ { 0, &BX_CPU_C::BxError
},
899 /* 8D */ { 0, &BX_CPU_C::BxError
},
900 /* 8E */ { 0, &BX_CPU_C::PFPNACC_PqQq
},
901 /* 8F */ { 0, &BX_CPU_C::BxError
},
902 /* 90 */ { 0, &BX_CPU_C::PFCMPGE_PqQq
},
903 /* 91 */ { 0, &BX_CPU_C::BxError
},
904 /* 92 */ { 0, &BX_CPU_C::BxError
},
905 /* 93 */ { 0, &BX_CPU_C::BxError
},
906 /* 94 */ { 0, &BX_CPU_C::PFMIN_PqQq
},
907 /* 95 */ { 0, &BX_CPU_C::BxError
},
908 /* 96 */ { 0, &BX_CPU_C::PFRCP_PqQq
},
909 /* 97 */ { 0, &BX_CPU_C::PFRSQRT_PqQq
},
910 /* 98 */ { 0, &BX_CPU_C::BxError
},
911 /* 99 */ { 0, &BX_CPU_C::BxError
},
912 /* 9A */ { 0, &BX_CPU_C::PFSUB_PqQq
},
913 /* 9B */ { 0, &BX_CPU_C::BxError
},
914 /* 9C */ { 0, &BX_CPU_C::BxError
},
915 /* 9D */ { 0, &BX_CPU_C::BxError
},
916 /* 9E */ { 0, &BX_CPU_C::PFADD_PqQq
},
917 /* 9F */ { 0, &BX_CPU_C::BxError
},
918 /* A0 */ { 0, &BX_CPU_C::PFCMPGT_PqQq
},
919 /* A1 */ { 0, &BX_CPU_C::BxError
},
920 /* A2 */ { 0, &BX_CPU_C::BxError
},
921 /* A3 */ { 0, &BX_CPU_C::BxError
},
922 /* A4 */ { 0, &BX_CPU_C::PFMAX_PqQq
},
923 /* A5 */ { 0, &BX_CPU_C::BxError
},
924 /* A6 */ { 0, &BX_CPU_C::PFRCPIT1_PqQq
},
925 /* A7 */ { 0, &BX_CPU_C::PFRSQIT1_PqQq
},
926 /* A8 */ { 0, &BX_CPU_C::BxError
},
927 /* A9 */ { 0, &BX_CPU_C::BxError
},
928 /* AA */ { 0, &BX_CPU_C::PFSUBR_PqQq
},
929 /* AB */ { 0, &BX_CPU_C::BxError
},
930 /* AC */ { 0, &BX_CPU_C::BxError
},
931 /* AD */ { 0, &BX_CPU_C::BxError
},
932 /* AE */ { 0, &BX_CPU_C::PFACC_PqQq
},
933 /* AF */ { 0, &BX_CPU_C::BxError
},
934 /* B0 */ { 0, &BX_CPU_C::PFCMPEQ_PqQq
},
935 /* B1 */ { 0, &BX_CPU_C::BxError
},
936 /* B2 */ { 0, &BX_CPU_C::BxError
},
937 /* B3 */ { 0, &BX_CPU_C::BxError
},
938 /* B4 */ { 0, &BX_CPU_C::PFMUL_PqQq
},
939 /* B5 */ { 0, &BX_CPU_C::BxError
},
940 /* B6 */ { 0, &BX_CPU_C::PFRCPIT2_PqQq
},
941 /* B7 */ { 0, &BX_CPU_C::PMULHRW_PqQq
},
942 /* B8 */ { 0, &BX_CPU_C::BxError
},
943 /* B9 */ { 0, &BX_CPU_C::BxError
},
944 /* BA */ { 0, &BX_CPU_C::BxError
},
945 /* BB */ { 0, &BX_CPU_C::PSWAPD_PqQq
},
946 /* BC */ { 0, &BX_CPU_C::BxError
},
947 /* BD */ { 0, &BX_CPU_C::BxError
},
948 /* BE */ { 0, &BX_CPU_C::BxError
},
949 /* BF */ { 0, &BX_CPU_C::PAVGB_PqQq
},
950 /* C0 */ { 0, &BX_CPU_C::BxError
},
951 /* C1 */ { 0, &BX_CPU_C::BxError
},
952 /* C2 */ { 0, &BX_CPU_C::BxError
},
953 /* C3 */ { 0, &BX_CPU_C::BxError
},
954 /* C4 */ { 0, &BX_CPU_C::BxError
},
955 /* C5 */ { 0, &BX_CPU_C::BxError
},
956 /* C6 */ { 0, &BX_CPU_C::BxError
},
957 /* C7 */ { 0, &BX_CPU_C::BxError
},
958 /* C8 */ { 0, &BX_CPU_C::BxError
},
959 /* C9 */ { 0, &BX_CPU_C::BxError
},
960 /* CA */ { 0, &BX_CPU_C::BxError
},
961 /* CB */ { 0, &BX_CPU_C::BxError
},
962 /* CC */ { 0, &BX_CPU_C::BxError
},
963 /* CD */ { 0, &BX_CPU_C::BxError
},
964 /* CE */ { 0, &BX_CPU_C::BxError
},
965 /* CF */ { 0, &BX_CPU_C::BxError
},
966 /* D0 */ { 0, &BX_CPU_C::BxError
},
967 /* D1 */ { 0, &BX_CPU_C::BxError
},
968 /* D2 */ { 0, &BX_CPU_C::BxError
},
969 /* D3 */ { 0, &BX_CPU_C::BxError
},
970 /* D4 */ { 0, &BX_CPU_C::BxError
},
971 /* D5 */ { 0, &BX_CPU_C::BxError
},
972 /* D6 */ { 0, &BX_CPU_C::BxError
},
973 /* D7 */ { 0, &BX_CPU_C::BxError
},
974 /* D8 */ { 0, &BX_CPU_C::BxError
},
975 /* D9 */ { 0, &BX_CPU_C::BxError
},
976 /* DA */ { 0, &BX_CPU_C::BxError
},
977 /* DB */ { 0, &BX_CPU_C::BxError
},
978 /* DC */ { 0, &BX_CPU_C::BxError
},
979 /* DD */ { 0, &BX_CPU_C::BxError
},
980 /* DE */ { 0, &BX_CPU_C::BxError
},
981 /* DF */ { 0, &BX_CPU_C::BxError
},
982 /* E0 */ { 0, &BX_CPU_C::BxError
},
983 /* E1 */ { 0, &BX_CPU_C::BxError
},
984 /* E2 */ { 0, &BX_CPU_C::BxError
},
985 /* E3 */ { 0, &BX_CPU_C::BxError
},
986 /* E4 */ { 0, &BX_CPU_C::BxError
},
987 /* E5 */ { 0, &BX_CPU_C::BxError
},
988 /* E6 */ { 0, &BX_CPU_C::BxError
},
989 /* E7 */ { 0, &BX_CPU_C::BxError
},
990 /* E8 */ { 0, &BX_CPU_C::BxError
},
991 /* E9 */ { 0, &BX_CPU_C::BxError
},
992 /* EA */ { 0, &BX_CPU_C::BxError
},
993 /* EB */ { 0, &BX_CPU_C::BxError
},
994 /* EC */ { 0, &BX_CPU_C::BxError
},
995 /* ED */ { 0, &BX_CPU_C::BxError
},
996 /* EE */ { 0, &BX_CPU_C::BxError
},
997 /* EF */ { 0, &BX_CPU_C::BxError
},
998 /* F0 */ { 0, &BX_CPU_C::BxError
},
999 /* F1 */ { 0, &BX_CPU_C::BxError
},
1000 /* F2 */ { 0, &BX_CPU_C::BxError
},
1001 /* F3 */ { 0, &BX_CPU_C::BxError
},
1002 /* F4 */ { 0, &BX_CPU_C::BxError
},
1003 /* F5 */ { 0, &BX_CPU_C::BxError
},
1004 /* F6 */ { 0, &BX_CPU_C::BxError
},
1005 /* F7 */ { 0, &BX_CPU_C::BxError
},
1006 /* F8 */ { 0, &BX_CPU_C::BxError
},
1007 /* F9 */ { 0, &BX_CPU_C::BxError
},
1008 /* FA */ { 0, &BX_CPU_C::BxError
},
1009 /* FB */ { 0, &BX_CPU_C::BxError
},
1010 /* FC */ { 0, &BX_CPU_C::BxError
},
1011 /* FD */ { 0, &BX_CPU_C::BxError
},
1012 /* FE */ { 0, &BX_CPU_C::BxError
},
1013 /* FF */ { 0, &BX_CPU_C::BxError
}
1023 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f10
[4] = {
1024 /* -- */ { 0, &BX_CPU_C::MOVUPS_VpsWps
},
1025 /* 66 */ { 0, &BX_CPU_C::MOVUPD_VpdWpd
},
1026 /* F2 */ { 0, &BX_CPU_C::MOVSD_VsdWsd
},
1027 /* F3 */ { 0, &BX_CPU_C::MOVSS_VssWss
}
1030 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f11
[4] = {
1031 /* -- */ { 0, &BX_CPU_C::MOVUPS_WpsVps
},
1032 /* 66 */ { 0, &BX_CPU_C::MOVUPD_WpdVpd
},
1033 /* F2 */ { 0, &BX_CPU_C::MOVSD_WsdVsd
},
1034 /* F3 */ { 0, &BX_CPU_C::MOVSS_WssVss
}
1037 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f12
[4] = {
1038 /* -- */ { 0, &BX_CPU_C::MOVLPS_VpsMq
},
1039 /* 66 */ { 0, &BX_CPU_C::MOVLPD_VsdMq
},
1040 /* F2 */ { 0, &BX_CPU_C::MOVDDUP_VpdWq
}, // SSE3
1041 /* F3 */ { 0, &BX_CPU_C::MOVSLDUP_VpsWps
} // SSE3
1044 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f13
[4] = {
1045 /* -- */ { 0, &BX_CPU_C::MOVLPS_MqVps
},
1046 /* 66 */ { 0, &BX_CPU_C::MOVLPD_MqVsd
},
1047 /* F2 */ { 0, &BX_CPU_C::BxError
},
1048 /* F3 */ { 0, &BX_CPU_C::BxError
}
1051 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f14
[4] = {
1052 /* -- */ { 0, &BX_CPU_C::UNPCKLPS_VpsWq
},
1053 /* 66 */ { 0, &BX_CPU_C::UNPCKLPD_VpdWq
},
1054 /* F2 */ { 0, &BX_CPU_C::BxError
},
1055 /* F3 */ { 0, &BX_CPU_C::BxError
}
1058 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f15
[4] = {
1059 /* -- */ { 0, &BX_CPU_C::UNPCKHPS_VpsWq
},
1060 /* 66 */ { 0, &BX_CPU_C::UNPCKHPD_VpdWq
},
1061 /* F2 */ { 0, &BX_CPU_C::BxError
},
1062 /* F3 */ { 0, &BX_CPU_C::BxError
}
1065 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f16
[4] = {
1066 /* -- */ { 0, &BX_CPU_C::MOVHPS_VpsMq
},
1067 /* 66 */ { 0, &BX_CPU_C::MOVHPD_VsdMq
},
1068 /* F2 */ { 0, &BX_CPU_C::BxError
},
1069 /* F3 */ { 0, &BX_CPU_C::MOVSHDUP_VpsWps
} // SSE3
1072 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f17
[4] = {
1073 /* -- */ { 0, &BX_CPU_C::MOVHPS_MqVps
},
1074 /* 66 */ { 0, &BX_CPU_C::MOVHPD_MqVsd
},
1075 /* F2 */ { 0, &BX_CPU_C::BxError
},
1076 /* F3 */ { 0, &BX_CPU_C::BxError
}
1079 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f28
[4] = {
1080 /* -- */ { 0, &BX_CPU_C::MOVAPS_VpsWps
},
1081 /* 66 */ { 0, &BX_CPU_C::MOVAPD_VpdWpd
},
1082 /* F2 */ { 0, &BX_CPU_C::BxError
},
1083 /* F3 */ { 0, &BX_CPU_C::BxError
}
1086 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f29
[4] = {
1087 /* -- */ { 0, &BX_CPU_C::MOVAPS_WpsVps
},
1088 /* 66 */ { 0, &BX_CPU_C::MOVAPD_WpdVpd
},
1089 /* F2 */ { 0, &BX_CPU_C::BxError
},
1090 /* F3 */ { 0, &BX_CPU_C::BxError
}
1093 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2a
[4] = {
1094 /* -- */ { 0, &BX_CPU_C::CVTPI2PS_VpsQq
},
1095 /* 66 */ { 0, &BX_CPU_C::CVTPI2PD_VpdQq
},
1096 /* F2 */ { 0, &BX_CPU_C::CVTSI2SD_VsdEd
},
1097 /* F3 */ { 0, &BX_CPU_C::CVTSI2SS_VssEd
}
1100 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2b
[4] = {
1101 /* -- */ { 0, &BX_CPU_C::MOVNTPS_MpsVps
},
1102 /* 66 */ { 0, &BX_CPU_C::MOVNTPD_MpdVpd
},
1103 /* F2 */ { 0, &BX_CPU_C::BxError
},
1104 /* F3 */ { 0, &BX_CPU_C::BxError
}
1107 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2c
[4] = {
1108 /* -- */ { 0, &BX_CPU_C::CVTTPS2PI_PqWps
},
1109 /* 66 */ { 0, &BX_CPU_C::CVTTPD2PI_PqWpd
},
1110 /* F2 */ { 0, &BX_CPU_C::CVTTSD2SI_GdWsd
},
1111 /* F3 */ { 0, &BX_CPU_C::CVTTSS2SI_GdWss
}
1114 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2d
[4] = {
1115 /* -- */ { 0, &BX_CPU_C::CVTPS2PI_PqWps
},
1116 /* 66 */ { 0, &BX_CPU_C::CVTPD2PI_PqWpd
},
1117 /* F2 */ { 0, &BX_CPU_C::CVTSD2SI_GdWsd
},
1118 /* F3 */ { 0, &BX_CPU_C::CVTSS2SI_GdWss
}
1121 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2e
[4] = {
1122 /* -- */ { 0, &BX_CPU_C::UCOMISS_VssWss
},
1123 /* 66 */ { 0, &BX_CPU_C::UCOMISD_VsdWsd
},
1124 /* F2 */ { 0, &BX_CPU_C::BxError
},
1125 /* F3 */ { 0, &BX_CPU_C::BxError
}
1128 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2f
[4] = {
1129 /* -- */ { 0, &BX_CPU_C::COMISS_VpsWps
},
1130 /* 66 */ { 0, &BX_CPU_C::COMISD_VpdWpd
},
1131 /* F2 */ { 0, &BX_CPU_C::BxError
},
1132 /* F3 */ { 0, &BX_CPU_C::BxError
}
1135 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f50
[4] = {
1136 /* -- */ { 0, &BX_CPU_C::MOVMSKPS_GdVRps
},
1137 /* 66 */ { 0, &BX_CPU_C::MOVMSKPD_GdVRpd
},
1138 /* F2 */ { 0, &BX_CPU_C::BxError
},
1139 /* F3 */ { 0, &BX_CPU_C::BxError
}
1142 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f51
[4] = {
1143 /* -- */ { 0, &BX_CPU_C::SQRTPS_VpsWps
},
1144 /* 66 */ { 0, &BX_CPU_C::SQRTPD_VpdWpd
},
1145 /* F2 */ { 0, &BX_CPU_C::SQRTSD_VsdWsd
},
1146 /* F3 */ { 0, &BX_CPU_C::SQRTSS_VssWss
}
1149 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f52
[4] = {
1150 /* -- */ { 0, &BX_CPU_C::RSQRTPS_VpsWps
},
1151 /* 66 */ { 0, &BX_CPU_C::BxError
},
1152 /* F2 */ { 0, &BX_CPU_C::BxError
},
1153 /* F3 */ { 0, &BX_CPU_C::RSQRTSS_VssWss
}
1156 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f53
[4] = {
1157 /* -- */ { 0, &BX_CPU_C::RCPPS_VpsWps
},
1158 /* 66 */ { 0, &BX_CPU_C::BxError
},
1159 /* F2 */ { 0, &BX_CPU_C::BxError
},
1160 /* F3 */ { 0, &BX_CPU_C::RCPSS_VssWss
}
1163 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f54
[4] = {
1164 /* -- */ { 0, &BX_CPU_C::ANDPS_VpsWps
},
1165 /* 66 */ { 0, &BX_CPU_C::ANDPD_VpdWpd
},
1166 /* F2 */ { 0, &BX_CPU_C::BxError
},
1167 /* F3 */ { 0, &BX_CPU_C::BxError
}
1170 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f55
[4] = {
1171 /* -- */ { 0, &BX_CPU_C::ANDNPS_VpsWps
},
1172 /* 66 */ { 0, &BX_CPU_C::ANDNPD_VpdWpd
},
1173 /* F2 */ { 0, &BX_CPU_C::BxError
},
1174 /* F3 */ { 0, &BX_CPU_C::BxError
}
1177 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f56
[4] = {
1178 /* -- */ { 0, &BX_CPU_C::ORPS_VpsWps
},
1179 /* 66 */ { 0, &BX_CPU_C::ORPD_VpdWpd
},
1180 /* F2 */ { 0, &BX_CPU_C::BxError
},
1181 /* F3 */ { 0, &BX_CPU_C::BxError
}
1184 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f57
[4] = {
1185 /* -- */ { 0, &BX_CPU_C::XORPS_VpsWps
},
1186 /* 66 */ { 0, &BX_CPU_C::XORPD_VpdWpd
},
1187 /* F2 */ { 0, &BX_CPU_C::BxError
},
1188 /* F3 */ { 0, &BX_CPU_C::BxError
}
1191 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f58
[4] = {
1192 /* -- */ { 0, &BX_CPU_C::ADDPS_VpsWps
},
1193 /* 66 */ { 0, &BX_CPU_C::ADDPD_VpdWpd
},
1194 /* F2 */ { 0, &BX_CPU_C::ADDSD_VsdWsd
},
1195 /* F3 */ { 0, &BX_CPU_C::ADDSS_VssWss
}
1198 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f59
[4] = {
1199 /* -- */ { 0, &BX_CPU_C::MULPS_VpsWps
},
1200 /* 66 */ { 0, &BX_CPU_C::MULPD_VpdWpd
},
1201 /* F2 */ { 0, &BX_CPU_C::MULSD_VsdWsd
},
1202 /* F3 */ { 0, &BX_CPU_C::MULSS_VssWss
}
1205 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5a
[4] = {
1206 /* -- */ { 0, &BX_CPU_C::CVTPS2PD_VpsWps
},
1207 /* 66 */ { 0, &BX_CPU_C::CVTPD2PS_VpdWpd
},
1208 /* F2 */ { 0, &BX_CPU_C::CVTSD2SS_VsdWsd
},
1209 /* F3 */ { 0, &BX_CPU_C::CVTSS2SD_VssWss
}
1212 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5b
[4] = {
1213 /* -- */ { 0, &BX_CPU_C::CVTDQ2PS_VpsWdq
},
1214 /* 66 */ { 0, &BX_CPU_C::CVTPS2DQ_VdqWps
},
1215 /* F2 */ { 0, &BX_CPU_C::BxError
},
1216 /* F3 */ { 0, &BX_CPU_C::CVTTPS2DQ_VdqWps
}
1219 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5c
[4] = {
1220 /* -- */ { 0, &BX_CPU_C::SUBPS_VpsWps
},
1221 /* 66 */ { 0, &BX_CPU_C::SUBPD_VpdWpd
},
1222 /* F2 */ { 0, &BX_CPU_C::SUBSD_VsdWsd
},
1223 /* F3 */ { 0, &BX_CPU_C::SUBSS_VssWss
}
1226 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5d
[4] = {
1227 /* -- */ { 0, &BX_CPU_C::MINPS_VpsWps
},
1228 /* 66 */ { 0, &BX_CPU_C::MINPD_VpdWpd
},
1229 /* F2 */ { 0, &BX_CPU_C::MINSD_VsdWsd
},
1230 /* F3 */ { 0, &BX_CPU_C::MINSS_VssWss
}
1233 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5e
[4] = {
1234 /* -- */ { 0, &BX_CPU_C::DIVPS_VpsWps
},
1235 /* 66 */ { 0, &BX_CPU_C::DIVPD_VpdWpd
},
1236 /* F2 */ { 0, &BX_CPU_C::DIVSD_VsdWsd
},
1237 /* F3 */ { 0, &BX_CPU_C::DIVSS_VssWss
}
1240 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5f
[4] = {
1241 /* -- */ { 0, &BX_CPU_C::MAXPS_VpsWps
},
1242 /* 66 */ { 0, &BX_CPU_C::MAXPD_VpdWpd
},
1243 /* F2 */ { 0, &BX_CPU_C::MAXSD_VsdWsd
},
1244 /* F3 */ { 0, &BX_CPU_C::MAXSS_VssWss
}
1247 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f60
[4] = {
1248 /* -- */ { 0, &BX_CPU_C::PUNPCKLBW_PqQd
},
1249 /* 66 */ { 0, &BX_CPU_C::PUNPCKLBW_VdqWq
},
1250 /* F2 */ { 0, &BX_CPU_C::BxError
},
1251 /* F3 */ { 0, &BX_CPU_C::BxError
}
1254 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f61
[4] = {
1255 /* -- */ { 0, &BX_CPU_C::PUNPCKLWD_PqQd
},
1256 /* 66 */ { 0, &BX_CPU_C::PUNPCKLWD_VdqWq
},
1257 /* F2 */ { 0, &BX_CPU_C::BxError
},
1258 /* F3 */ { 0, &BX_CPU_C::BxError
}
1261 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f62
[4] = {
1262 /* -- */ { 0, &BX_CPU_C::PUNPCKLDQ_PqQd
},
1263 /* 66 */ { 0, &BX_CPU_C::PUNPCKLDQ_VdqWq
},
1264 /* F2 */ { 0, &BX_CPU_C::BxError
},
1265 /* F3 */ { 0, &BX_CPU_C::BxError
}
1268 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f63
[4] = {
1269 /* -- */ { 0, &BX_CPU_C::PACKSSWB_PqQq
},
1270 /* 66 */ { 0, &BX_CPU_C::PACKSSWB_VdqWq
},
1271 /* F2 */ { 0, &BX_CPU_C::BxError
},
1272 /* F3 */ { 0, &BX_CPU_C::BxError
}
1275 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f64
[4] = {
1276 /* -- */ { 0, &BX_CPU_C::PCMPGTB_PqQq
},
1277 /* 66 */ { 0, &BX_CPU_C::PCMPGTB_VdqWq
},
1278 /* F2 */ { 0, &BX_CPU_C::BxError
},
1279 /* F3 */ { 0, &BX_CPU_C::BxError
}
1282 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f65
[4] = {
1283 /* -- */ { 0, &BX_CPU_C::PCMPGTW_PqQq
},
1284 /* 66 */ { 0, &BX_CPU_C::PCMPGTW_VdqWq
},
1285 /* F2 */ { 0, &BX_CPU_C::BxError
},
1286 /* F3 */ { 0, &BX_CPU_C::BxError
}
1289 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f66
[4] = {
1290 /* -- */ { 0, &BX_CPU_C::PCMPGTD_PqQq
},
1291 /* 66 */ { 0, &BX_CPU_C::PCMPGTD_VdqWdq
},
1292 /* F2 */ { 0, &BX_CPU_C::BxError
},
1293 /* F3 */ { 0, &BX_CPU_C::BxError
}
1296 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f67
[4] = {
1297 /* -- */ { 0, &BX_CPU_C::PACKUSWB_PqQq
},
1298 /* 66 */ { 0, &BX_CPU_C::PACKUSWB_VdqWdq
},
1299 /* F2 */ { 0, &BX_CPU_C::BxError
},
1300 /* F3 */ { 0, &BX_CPU_C::BxError
}
1303 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f68
[4] = {
1304 /* -- */ { 0, &BX_CPU_C::PUNPCKHBW_PqQq
},
1305 /* 66 */ { 0, &BX_CPU_C::PUNPCKHBW_VdqWq
},
1306 /* F2 */ { 0, &BX_CPU_C::BxError
},
1307 /* F3 */ { 0, &BX_CPU_C::BxError
}
1310 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f69
[4] = {
1311 /* -- */ { 0, &BX_CPU_C::PUNPCKHWD_PqQq
},
1312 /* 66 */ { 0, &BX_CPU_C::PUNPCKHWD_VdqWq
},
1313 /* F2 */ { 0, &BX_CPU_C::BxError
},
1314 /* F3 */ { 0, &BX_CPU_C::BxError
}
1317 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6a
[4] = {
1318 /* -- */ { 0, &BX_CPU_C::PUNPCKHDQ_PqQq
},
1319 /* 66 */ { 0, &BX_CPU_C::PUNPCKHDQ_VdqWq
},
1320 /* F2 */ { 0, &BX_CPU_C::BxError
},
1321 /* F3 */ { 0, &BX_CPU_C::BxError
}
1324 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6b
[4] = {
1325 /* -- */ { 0, &BX_CPU_C::PACKSSDW_PqQq
},
1326 /* 66 */ { 0, &BX_CPU_C::PACKSSDW_VdqWdq
},
1327 /* F2 */ { 0, &BX_CPU_C::BxError
},
1328 /* F3 */ { 0, &BX_CPU_C::BxError
}
1331 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6c
[4] = {
1332 /* -- */ { 0, &BX_CPU_C::BxError
},
1333 /* 66 */ { 0, &BX_CPU_C::PUNPCKLQDQ_VdqWq
},
1334 /* F2 */ { 0, &BX_CPU_C::BxError
},
1335 /* F3 */ { 0, &BX_CPU_C::BxError
}
1338 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6d
[4] = {
1339 /* -- */ { 0, &BX_CPU_C::BxError
},
1340 /* 66 */ { 0, &BX_CPU_C::PUNPCKHQDQ_VdqWq
},
1341 /* F2 */ { 0, &BX_CPU_C::BxError
},
1342 /* F3 */ { 0, &BX_CPU_C::BxError
}
1345 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6e
[4] = {
1346 /* -- */ { 0, &BX_CPU_C::MOVD_PqEd
},
1347 /* 66 */ { 0, &BX_CPU_C::MOVD_VdqEd
},
1348 /* F2 */ { 0, &BX_CPU_C::BxError
},
1349 /* F3 */ { 0, &BX_CPU_C::BxError
}
1352 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6f
[4] = {
1353 /* -- */ { 0, &BX_CPU_C::MOVQ_PqQq
},
1354 /* 66 */ { 0, &BX_CPU_C::MOVDQA_VdqWdq
},
1355 /* F2 */ { 0, &BX_CPU_C::BxError
},
1356 /* F3 */ { 0, &BX_CPU_C::MOVDQU_VdqWdq
}
1359 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f70
[4] = {
1360 /* -- */ { 0, &BX_CPU_C::PSHUFW_PqQqIb
},
1361 /* 66 */ { 0, &BX_CPU_C::PSHUFD_VdqWdqIb
},
1362 /* F2 */ { 0, &BX_CPU_C::PSHUFHW_VqWqIb
},
1363 /* F3 */ { 0, &BX_CPU_C::PSHUFLW_VqWqIb
}
1366 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f74
[4] = {
1367 /* -- */ { 0, &BX_CPU_C::PCMPEQB_PqQq
},
1368 /* 66 */ { 0, &BX_CPU_C::PCMPEQB_VdqWdq
},
1369 /* F2 */ { 0, &BX_CPU_C::BxError
},
1370 /* F3 */ { 0, &BX_CPU_C::BxError
}
1373 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f75
[4] = {
1374 /* -- */ { 0, &BX_CPU_C::PCMPEQW_PqQq
},
1375 /* 66 */ { 0, &BX_CPU_C::PCMPEQW_VdqWdq
},
1376 /* F2 */ { 0, &BX_CPU_C::BxError
},
1377 /* F3 */ { 0, &BX_CPU_C::BxError
}
1380 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f76
[4] = {
1381 /* -- */ { 0, &BX_CPU_C::PCMPEQD_PqQq
},
1382 /* 66 */ { 0, &BX_CPU_C::PCMPEQD_VdqWdq
},
1383 /* F2 */ { 0, &BX_CPU_C::BxError
},
1384 /* F3 */ { 0, &BX_CPU_C::BxError
}
1387 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7c
[4] = {
1388 /* -- */ { 0, &BX_CPU_C::BxError
},
1389 /* 66 */ { 0, &BX_CPU_C::HADDPD_VpdWpd
}, // SSE3
1390 /* F2 */ { 0, &BX_CPU_C::HADDPS_VpsWps
}, // SSE3
1391 /* F3 */ { 0, &BX_CPU_C::BxError
}
1394 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7d
[4] = {
1395 /* -- */ { 0, &BX_CPU_C::BxError
},
1396 /* 66 */ { 0, &BX_CPU_C::HSUBPD_VpdWpd
}, // SSE3
1397 /* F2 */ { 0, &BX_CPU_C::HSUBPS_VpsWps
}, // SSE3
1398 /* F3 */ { 0, &BX_CPU_C::BxError
}
1401 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7e
[4] = {
1402 /* -- */ { 0, &BX_CPU_C::MOVD_EdPd
},
1403 /* 66 */ { 0, &BX_CPU_C::MOVD_EdVd
},
1404 /* F2 */ { 0, &BX_CPU_C::BxError
},
1405 /* F3 */ { 0, &BX_CPU_C::MOVQ_VqWq
}
1408 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7f
[4] = {
1409 /* -- */ { 0, &BX_CPU_C::MOVQ_QqPq
},
1410 /* 66 */ { 0, &BX_CPU_C::MOVDQA_WdqVdq
},
1411 /* F2 */ { 0, &BX_CPU_C::BxError
},
1412 /* F3 */ { 0, &BX_CPU_C::MOVDQU_WdqVdq
}
1415 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc2
[4] = {
1416 /* -- */ { 0, &BX_CPU_C::CMPPS_VpsWpsIb
},
1417 /* 66 */ { 0, &BX_CPU_C::CMPPD_VpdWpdIb
},
1418 /* F2 */ { 0, &BX_CPU_C::CMPSD_VsdWsdIb
},
1419 /* F3 */ { 0, &BX_CPU_C::CMPSS_VssWssIb
}
1422 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc3
[4] = {
1423 /* -- */ { 0, &BX_CPU_C::MOVNTI_MdGd
},
1424 /* 66 */ { 0, &BX_CPU_C::BxError
},
1425 /* F2 */ { 0, &BX_CPU_C::BxError
},
1426 /* F3 */ { 0, &BX_CPU_C::BxError
}
1429 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc4
[4] = {
1430 /* -- */ { BxImmediate_Ib
, &BX_CPU_C::PINSRW_PqEwIb
},
1431 /* 66 */ { BxImmediate_Ib
, &BX_CPU_C::PINSRW_VdqEwIb
},
1432 /* F2 */ { 0, &BX_CPU_C::BxError
},
1433 /* F3 */ { 0, &BX_CPU_C::BxError
}
1436 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc5
[4] = {
1437 /* -- */ { BxImmediate_Ib
, &BX_CPU_C::PEXTRW_GdPqIb
},
1438 /* 66 */ { BxImmediate_Ib
, &BX_CPU_C::PEXTRW_GdUdqIb
},
1439 /* F2 */ { 0, &BX_CPU_C::BxError
},
1440 /* F3 */ { 0, &BX_CPU_C::BxError
}
1443 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc6
[4] = {
1444 /* -- */ { BxImmediate_Ib
, &BX_CPU_C::SHUFPS_VpsWpsIb
},
1445 /* 66 */ { BxImmediate_Ib
, &BX_CPU_C::SHUFPD_VpdWpdIb
},
1446 /* F2 */ { 0, &BX_CPU_C::BxError
},
1447 /* F3 */ { 0, &BX_CPU_C::BxError
}
1450 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd0
[4] = {
1451 /* -- */ { 0, &BX_CPU_C::BxError
},
1452 /* 66 */ { 0, &BX_CPU_C::ADDSUBPD_VpdWpd
}, // SSE3
1453 /* F2 */ { 0, &BX_CPU_C::ADDSUBPS_VpsWps
}, // SSE3
1454 /* F3 */ { 0, &BX_CPU_C::BxError
}
1457 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd1
[4] = {
1458 /* -- */ { 0, &BX_CPU_C::PSRLW_PqQq
},
1459 /* 66 */ { 0, &BX_CPU_C::PSRLW_VdqWdq
},
1460 /* F2 */ { 0, &BX_CPU_C::BxError
},
1461 /* F3 */ { 0, &BX_CPU_C::BxError
}
1464 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd2
[4] = {
1465 /* -- */ { 0, &BX_CPU_C::PSRLD_PqQq
},
1466 /* 66 */ { 0, &BX_CPU_C::PSRLD_VdqWdq
},
1467 /* F2 */ { 0, &BX_CPU_C::BxError
},
1468 /* F3 */ { 0, &BX_CPU_C::BxError
}
1471 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd3
[4] = {
1472 /* -- */ { 0, &BX_CPU_C::PSRLQ_PqQq
},
1473 /* 66 */ { 0, &BX_CPU_C::PSRLQ_VdqWdq
},
1474 /* F2 */ { 0, &BX_CPU_C::BxError
},
1475 /* F3 */ { 0, &BX_CPU_C::BxError
}
1478 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd4
[4] = {
1479 /* -- */ { 0, &BX_CPU_C::PADDQ_PqQq
},
1480 /* 66 */ { 0, &BX_CPU_C::PADDQ_VdqWdq
},
1481 /* F2 */ { 0, &BX_CPU_C::BxError
},
1482 /* F3 */ { 0, &BX_CPU_C::BxError
}
1485 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd5
[4] = {
1486 /* -- */ { 0, &BX_CPU_C::PMULLW_PqQq
},
1487 /* 66 */ { 0, &BX_CPU_C::PMULLW_VdqWdq
},
1488 /* F2 */ { 0, &BX_CPU_C::BxError
},
1489 /* F3 */ { 0, &BX_CPU_C::BxError
}
1492 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd6
[4] = {
1493 /* -- */ { 0, &BX_CPU_C::BxError
},
1494 /* 66 */ { 0, &BX_CPU_C::MOVQ_WqVq
},
1495 /* F2 */ { 0, &BX_CPU_C::MOVDQ2Q_PqVRq
},
1496 /* F3 */ { 0, &BX_CPU_C::MOVQ2DQ_VdqQq
}
1499 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd7
[4] = {
1500 /* -- */ { 0, &BX_CPU_C::PMOVMSKB_GdPRq
},
1501 /* 66 */ { 0, &BX_CPU_C::PMOVMSKB_GdUdq
},
1502 /* F2 */ { 0, &BX_CPU_C::BxError
},
1503 /* F3 */ { 0, &BX_CPU_C::BxError
}
1506 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd8
[4] = {
1507 /* -- */ { 0, &BX_CPU_C::PSUBUSB_PqQq
},
1508 /* 66 */ { 0, &BX_CPU_C::PSUBUSB_VdqWdq
},
1509 /* F2 */ { 0, &BX_CPU_C::BxError
},
1510 /* F3 */ { 0, &BX_CPU_C::BxError
}
1513 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd9
[4] = {
1514 /* -- */ { 0, &BX_CPU_C::PSUBUSW_PqQq
},
1515 /* 66 */ { 0, &BX_CPU_C::PSUBUSW_VdqWdq
},
1516 /* F2 */ { 0, &BX_CPU_C::BxError
},
1517 /* F3 */ { 0, &BX_CPU_C::BxError
}
1520 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fda
[4] = {
1521 /* -- */ { 0, &BX_CPU_C::PMINUB_PqQq
},
1522 /* 66 */ { 0, &BX_CPU_C::PMINUB_VdqWdq
},
1523 /* F2 */ { 0, &BX_CPU_C::BxError
},
1524 /* F3 */ { 0, &BX_CPU_C::BxError
}
1527 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdb
[4] = {
1528 /* -- */ { 0, &BX_CPU_C::PAND_PqQq
},
1529 /* 66 */ { 0, &BX_CPU_C::PAND_VdqWdq
},
1530 /* F2 */ { 0, &BX_CPU_C::BxError
},
1531 /* F3 */ { 0, &BX_CPU_C::BxError
}
1534 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdc
[4] = {
1535 /* -- */ { 0, &BX_CPU_C::PADDUSB_PqQq
},
1536 /* 66 */ { 0, &BX_CPU_C::PADDUSB_VdqWdq
},
1537 /* F2 */ { 0, &BX_CPU_C::BxError
},
1538 /* F3 */ { 0, &BX_CPU_C::BxError
}
1541 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdd
[4] = {
1542 /* -- */ { 0, &BX_CPU_C::PADDUSW_PqQq
},
1543 /* 66 */ { 0, &BX_CPU_C::PADDUSW_VdqWdq
},
1544 /* F2 */ { 0, &BX_CPU_C::BxError
},
1545 /* F3 */ { 0, &BX_CPU_C::BxError
}
1548 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fde
[4] = {
1549 /* -- */ { 0, &BX_CPU_C::PMAXUB_PqQq
},
1550 /* 66 */ { 0, &BX_CPU_C::PMAXUB_VdqWdq
},
1551 /* F2 */ { 0, &BX_CPU_C::BxError
},
1552 /* F3 */ { 0, &BX_CPU_C::BxError
}
1555 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdf
[4] = {
1556 /* -- */ { 0, &BX_CPU_C::PANDN_PqQq
},
1557 /* 66 */ { 0, &BX_CPU_C::PANDN_VdqWdq
},
1558 /* F2 */ { 0, &BX_CPU_C::BxError
},
1559 /* F3 */ { 0, &BX_CPU_C::BxError
}
1562 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe0
[4] = {
1563 /* -- */ { 0, &BX_CPU_C::PAVGB_PqQq
},
1564 /* 66 */ { 0, &BX_CPU_C::PAVGB_VdqWdq
},
1565 /* F2 */ { 0, &BX_CPU_C::BxError
},
1566 /* F3 */ { 0, &BX_CPU_C::BxError
}
1569 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe1
[4] = {
1570 /* -- */ { 0, &BX_CPU_C::PSRAW_PqQq
},
1571 /* 66 */ { 0, &BX_CPU_C::PSRAW_VdqWdq
},
1572 /* F2 */ { 0, &BX_CPU_C::BxError
},
1573 /* F3 */ { 0, &BX_CPU_C::BxError
}
1576 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe2
[4] = {
1577 /* -- */ { 0, &BX_CPU_C::PSRAD_PqQq
},
1578 /* 66 */ { 0, &BX_CPU_C::PSRAD_VdqWdq
},
1579 /* F2 */ { 0, &BX_CPU_C::BxError
},
1580 /* F3 */ { 0, &BX_CPU_C::BxError
}
1583 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe3
[4] = {
1584 /* -- */ { 0, &BX_CPU_C::PAVGW_PqQq
},
1585 /* 66 */ { 0, &BX_CPU_C::PAVGW_VdqWdq
},
1586 /* F2 */ { 0, &BX_CPU_C::BxError
},
1587 /* F3 */ { 0, &BX_CPU_C::BxError
}
1590 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe4
[4] = {
1591 /* -- */ { 0, &BX_CPU_C::PMULHUW_PqQq
},
1592 /* 66 */ { 0, &BX_CPU_C::PMULHUW_VdqWdq
},
1593 /* F2 */ { 0, &BX_CPU_C::BxError
},
1594 /* F3 */ { 0, &BX_CPU_C::BxError
}
1597 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe5
[4] = {
1598 /* -- */ { 0, &BX_CPU_C::PMULHW_PqQq
},
1599 /* 66 */ { 0, &BX_CPU_C::PMULHW_VdqWdq
},
1600 /* F2 */ { 0, &BX_CPU_C::BxError
},
1601 /* F3 */ { 0, &BX_CPU_C::BxError
}
1604 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe6
[4] = {
1605 /* -- */ { 0, &BX_CPU_C::BxError
},
1606 /* 66 */ { 0, &BX_CPU_C::CVTTPD2DQ_VqWpd
},
1607 /* F2 */ { 0, &BX_CPU_C::CVTPD2DQ_VqWpd
},
1608 /* F3 */ { 0, &BX_CPU_C::CVTDQ2PD_VpdWq
}
1611 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe7
[4] = {
1612 /* -- */ { 0, &BX_CPU_C::MOVNTQ_MqPq
},
1613 /* 66 */ { 0, &BX_CPU_C::MOVNTDQ_MdqVdq
},
1614 /* F2 */ { 0, &BX_CPU_C::BxError
},
1615 /* F3 */ { 0, &BX_CPU_C::BxError
}
1618 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe8
[4] = {
1619 /* -- */ { 0, &BX_CPU_C::PSUBSB_PqQq
},
1620 /* 66 */ { 0, &BX_CPU_C::PSUBSB_VdqWdq
},
1621 /* F2 */ { 0, &BX_CPU_C::BxError
},
1622 /* F3 */ { 0, &BX_CPU_C::BxError
}
1625 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe9
[4] = {
1626 /* -- */ { 0, &BX_CPU_C::PSUBSW_PqQq
},
1627 /* 66 */ { 0, &BX_CPU_C::PSUBSW_VdqWdq
},
1628 /* F2 */ { 0, &BX_CPU_C::BxError
},
1629 /* F3 */ { 0, &BX_CPU_C::BxError
}
1632 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fea
[4] = {
1633 /* -- */ { 0, &BX_CPU_C::PMINSW_PqQq
},
1634 /* 66 */ { 0, &BX_CPU_C::PMINSW_VdqWdq
},
1635 /* F2 */ { 0, &BX_CPU_C::BxError
},
1636 /* F3 */ { 0, &BX_CPU_C::BxError
}
1639 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0feb
[4] = {
1640 /* -- */ { 0, &BX_CPU_C::POR_PqQq
},
1641 /* 66 */ { 0, &BX_CPU_C::POR_VdqWdq
},
1642 /* F2 */ { 0, &BX_CPU_C::BxError
},
1643 /* F3 */ { 0, &BX_CPU_C::BxError
}
1646 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fec
[4] = {
1647 /* -- */ { 0, &BX_CPU_C::PADDSB_PqQq
},
1648 /* 66 */ { 0, &BX_CPU_C::PADDSB_VdqWdq
},
1649 /* F2 */ { 0, &BX_CPU_C::BxError
},
1650 /* F3 */ { 0, &BX_CPU_C::BxError
}
1653 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fed
[4] = {
1654 /* -- */ { 0, &BX_CPU_C::PADDSW_PqQq
},
1655 /* 66 */ { 0, &BX_CPU_C::PADDSW_VdqWdq
},
1656 /* F2 */ { 0, &BX_CPU_C::BxError
},
1657 /* F3 */ { 0, &BX_CPU_C::BxError
}
1660 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fee
[4] = {
1661 /* -- */ { 0, &BX_CPU_C::PMAXSW_PqQq
},
1662 /* 66 */ { 0, &BX_CPU_C::PMAXSW_VdqWdq
},
1663 /* F2 */ { 0, &BX_CPU_C::BxError
},
1664 /* F3 */ { 0, &BX_CPU_C::BxError
}
1667 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fef
[4] = {
1668 /* -- */ { 0, &BX_CPU_C::PXOR_PqQq
},
1669 /* 66 */ { 0, &BX_CPU_C::PXOR_VdqWdq
},
1670 /* F2 */ { 0, &BX_CPU_C::BxError
},
1671 /* F3 */ { 0, &BX_CPU_C::BxError
}
1674 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff0
[4] = {
1675 /* -- */ { 0, &BX_CPU_C::BxError
},
1676 /* 66 */ { 0, &BX_CPU_C::BxError
},
1677 /* F2 */ { 0, &BX_CPU_C::LDDQU_VdqMdq
}, // SSE3
1678 /* F3 */ { 0, &BX_CPU_C::BxError
}
1681 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff1
[4] = {
1682 /* -- */ { 0, &BX_CPU_C::PSLLW_PqQq
},
1683 /* 66 */ { 0, &BX_CPU_C::PSLLW_VdqWdq
},
1684 /* F2 */ { 0, &BX_CPU_C::BxError
},
1685 /* F3 */ { 0, &BX_CPU_C::BxError
}
1688 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff2
[4] = {
1689 /* -- */ { 0, &BX_CPU_C::PSLLD_PqQq
},
1690 /* 66 */ { 0, &BX_CPU_C::PSLLD_VdqWdq
},
1691 /* F2 */ { 0, &BX_CPU_C::BxError
},
1692 /* F3 */ { 0, &BX_CPU_C::BxError
}
1695 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff3
[4] = {
1696 /* -- */ { 0, &BX_CPU_C::PSLLQ_PqQq
},
1697 /* 66 */ { 0, &BX_CPU_C::PSLLQ_VdqWdq
},
1698 /* F2 */ { 0, &BX_CPU_C::BxError
},
1699 /* F3 */ { 0, &BX_CPU_C::BxError
}
1702 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff4
[4] = {
1703 /* -- */ { 0, &BX_CPU_C::PMULUDQ_PqQq
},
1704 /* 66 */ { 0, &BX_CPU_C::PMULUDQ_VdqWdq
},
1705 /* F2 */ { 0, &BX_CPU_C::BxError
},
1706 /* F3 */ { 0, &BX_CPU_C::BxError
}
1709 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff5
[4] = {
1710 /* -- */ { 0, &BX_CPU_C::PMADDWD_PqQq
},
1711 /* 66 */ { 0, &BX_CPU_C::PMADDWD_VdqWdq
},
1712 /* F2 */ { 0, &BX_CPU_C::BxError
},
1713 /* F3 */ { 0, &BX_CPU_C::BxError
}
1716 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff6
[4] = {
1717 /* -- */ { 0, &BX_CPU_C::PSADBW_PqQq
},
1718 /* 66 */ { 0, &BX_CPU_C::PSADBW_VdqWdq
},
1719 /* F2 */ { 0, &BX_CPU_C::BxError
},
1720 /* F3 */ { 0, &BX_CPU_C::BxError
}
1723 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff7
[4] = {
1724 /* -- */ { 0, &BX_CPU_C::MASKMOVQ_PqPRq
},
1725 /* 66 */ { 0, &BX_CPU_C::MASKMOVDQU_VdqUdq
},
1726 /* F2 */ { 0, &BX_CPU_C::BxError
},
1727 /* F3 */ { 0, &BX_CPU_C::BxError
}
1730 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff8
[4] = {
1731 /* -- */ { 0, &BX_CPU_C::PSUBB_PqQq
},
1732 /* 66 */ { 0, &BX_CPU_C::PSUBB_VdqWdq
},
1733 /* F2 */ { 0, &BX_CPU_C::BxError
},
1734 /* F3 */ { 0, &BX_CPU_C::BxError
}
1737 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff9
[4] = {
1738 /* -- */ { 0, &BX_CPU_C::PSUBW_PqQq
},
1739 /* 66 */ { 0, &BX_CPU_C::PSUBW_VdqWdq
},
1740 /* F2 */ { 0, &BX_CPU_C::BxError
},
1741 /* F3 */ { 0, &BX_CPU_C::BxError
}
1744 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffa
[4] = {
1745 /* -- */ { 0, &BX_CPU_C::PSUBD_PqQq
},
1746 /* 66 */ { 0, &BX_CPU_C::PSUBD_VdqWdq
},
1747 /* F2 */ { 0, &BX_CPU_C::BxError
},
1748 /* F3 */ { 0, &BX_CPU_C::BxError
}
1751 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffb
[4] = {
1752 /* -- */ { 0, &BX_CPU_C::PSUBQ_PqQq
},
1753 /* 66 */ { 0, &BX_CPU_C::PSUBQ_VdqWdq
},
1754 /* F2 */ { 0, &BX_CPU_C::BxError
},
1755 /* F3 */ { 0, &BX_CPU_C::BxError
}
1758 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffc
[4] = {
1759 /* -- */ { 0, &BX_CPU_C::PADDB_PqQq
},
1760 /* 66 */ { 0, &BX_CPU_C::PADDB_VdqWdq
},
1761 /* F2 */ { 0, &BX_CPU_C::BxError
},
1762 /* F3 */ { 0, &BX_CPU_C::BxError
}
1765 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffd
[4] = {
1766 /* -- */ { 0, &BX_CPU_C::PADDW_PqQq
},
1767 /* 66 */ { 0, &BX_CPU_C::PADDW_VdqWdq
},
1768 /* F2 */ { 0, &BX_CPU_C::BxError
},
1769 /* F3 */ { 0, &BX_CPU_C::BxError
}
1772 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffe
[4] = {
1773 /* -- */ { 0, &BX_CPU_C::PADDD_PqQq
},
1774 /* 66 */ { 0, &BX_CPU_C::PADDD_VdqWdq
},
1775 /* F2 */ { 0, &BX_CPU_C::BxError
},
1776 /* F3 */ { 0, &BX_CPU_C::BxError
}
1779 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1202
[4] = {
1780 /* -- */ { 0, &BX_CPU_C::PSRLW_PqIb
},
1781 /* 66 */ { 0, &BX_CPU_C::PSRLW_UdqIb
},
1782 /* F2 */ { 0, &BX_CPU_C::BxError
},
1783 /* F3 */ { 0, &BX_CPU_C::BxError
}
1786 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1204
[4] = {
1787 /* -- */ { 0, &BX_CPU_C::PSRAW_PqIb
},
1788 /* 66 */ { 0, &BX_CPU_C::PSRAW_UdqIb
},
1789 /* F2 */ { 0, &BX_CPU_C::BxError
},
1790 /* F3 */ { 0, &BX_CPU_C::BxError
}
1793 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1206
[4] = {
1794 /* -- */ { 0, &BX_CPU_C::PSLLW_PqIb
},
1795 /* 66 */ { 0, &BX_CPU_C::PSLLW_UdqIb
},
1796 /* F2 */ { 0, &BX_CPU_C::BxError
},
1797 /* F3 */ { 0, &BX_CPU_C::BxError
}
1800 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1302
[4] = {
1801 /* -- */ { 0, &BX_CPU_C::PSRLD_PqIb
},
1802 /* 66 */ { 0, &BX_CPU_C::PSRLD_UdqIb
},
1803 /* F2 */ { 0, &BX_CPU_C::BxError
},
1804 /* F3 */ { 0, &BX_CPU_C::BxError
}
1807 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1304
[4] = {
1808 /* -- */ { 0, &BX_CPU_C::PSRAD_PqIb
},
1809 /* 66 */ { 0, &BX_CPU_C::PSRAD_UdqIb
},
1810 /* F2 */ { 0, &BX_CPU_C::BxError
},
1811 /* F3 */ { 0, &BX_CPU_C::BxError
}
1814 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1306
[4] = {
1815 /* -- */ { 0, &BX_CPU_C::PSLLD_PqIb
},
1816 /* 66 */ { 0, &BX_CPU_C::PSLLD_UdqIb
},
1817 /* F2 */ { 0, &BX_CPU_C::BxError
},
1818 /* F3 */ { 0, &BX_CPU_C::BxError
}
1821 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1402
[4] = {
1822 /* -- */ { 0, &BX_CPU_C::PSRLQ_PqIb
},
1823 /* 66 */ { 0, &BX_CPU_C::PSRLQ_UdqIb
},
1824 /* F2 */ { 0, &BX_CPU_C::BxError
},
1825 /* F3 */ { 0, &BX_CPU_C::BxError
}
1828 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1403
[4] = {
1829 /* -- */ { 0, &BX_CPU_C::BxError
},
1830 /* 66 */ { 0, &BX_CPU_C::PSRLDQ_UdqIb
},
1831 /* F2 */ { 0, &BX_CPU_C::BxError
},
1832 /* F3 */ { 0, &BX_CPU_C::BxError
}
1835 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1406
[4] = {
1836 /* -- */ { 0, &BX_CPU_C::PSLLQ_PqIb
},
1837 /* 66 */ { 0, &BX_CPU_C::PSLLQ_UdqIb
},
1838 /* F2 */ { 0, &BX_CPU_C::BxError
},
1839 /* F3 */ { 0, &BX_CPU_C::BxError
}
1842 static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1407
[4] = {
1843 /* -- */ { 0, &BX_CPU_C::BxError
},
1844 /* 66 */ { 0, &BX_CPU_C::PSLLDQ_UdqIb
},
1845 /* F2 */ { 0, &BX_CPU_C::BxError
},
1846 /* F3 */ { 0, &BX_CPU_C::BxError
}
1849 #if (BX_SUPPORT_SSE >= 4) || (BX_SUPPORT_SSE >= 3 && BX_SUPPORT_SSE_EXTENSION > 0)
1851 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3800
[4] = {
1852 /* -- */ { 0, &BX_CPU_C::PSHUFB_PqQq
},
1853 /* 66 */ { 0, &BX_CPU_C::PSHUFB_VdqWdq
},
1854 /* F2 */ { 0, &BX_CPU_C::BxError
},
1855 /* F3 */ { 0, &BX_CPU_C::BxError
}
1858 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3801
[4] = {
1859 /* -- */ { 0, &BX_CPU_C::PHADDW_PqQq
},
1860 /* 66 */ { 0, &BX_CPU_C::PHADDW_VdqWdq
},
1861 /* F2 */ { 0, &BX_CPU_C::BxError
},
1862 /* F3 */ { 0, &BX_CPU_C::BxError
}
1865 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3802
[4] = {
1866 /* -- */ { 0, &BX_CPU_C::PHADDD_PqQq
},
1867 /* 66 */ { 0, &BX_CPU_C::PHADDD_VdqWdq
},
1868 /* F2 */ { 0, &BX_CPU_C::BxError
},
1869 /* F3 */ { 0, &BX_CPU_C::BxError
}
1872 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3803
[4] = {
1873 /* -- */ { 0, &BX_CPU_C::PHADDSW_PqQq
},
1874 /* 66 */ { 0, &BX_CPU_C::PHADDSW_VdqWdq
},
1875 /* F2 */ { 0, &BX_CPU_C::BxError
},
1876 /* F3 */ { 0, &BX_CPU_C::BxError
}
1879 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3804
[4] = {
1880 /* -- */ { 0, &BX_CPU_C::PMADDUBSW_PqQq
},
1881 /* 66 */ { 0, &BX_CPU_C::PMADDUBSW_VdqWdq
},
1882 /* F2 */ { 0, &BX_CPU_C::BxError
},
1883 /* F3 */ { 0, &BX_CPU_C::BxError
}
1886 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3805
[4] = {
1887 /* -- */ { 0, &BX_CPU_C::PHSUBW_PqQq
},
1888 /* 66 */ { 0, &BX_CPU_C::PHSUBW_VdqWdq
},
1889 /* F2 */ { 0, &BX_CPU_C::BxError
},
1890 /* F3 */ { 0, &BX_CPU_C::BxError
}
1893 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3806
[4] = {
1894 /* -- */ { 0, &BX_CPU_C::PHSUBD_PqQq
},
1895 /* 66 */ { 0, &BX_CPU_C::PHSUBD_VdqWdq
},
1896 /* F2 */ { 0, &BX_CPU_C::BxError
},
1897 /* F3 */ { 0, &BX_CPU_C::BxError
}
1900 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3807
[4] = {
1901 /* -- */ { 0, &BX_CPU_C::PHSUBSW_PqQq
},
1902 /* 66 */ { 0, &BX_CPU_C::PHSUBSW_VdqWdq
},
1903 /* F2 */ { 0, &BX_CPU_C::BxError
},
1904 /* F3 */ { 0, &BX_CPU_C::BxError
}
1907 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3808
[4] = {
1908 /* -- */ { 0, &BX_CPU_C::PSIGNB_PqQq
},
1909 /* 66 */ { 0, &BX_CPU_C::PSIGNB_VdqWdq
},
1910 /* F2 */ { 0, &BX_CPU_C::BxError
},
1911 /* F3 */ { 0, &BX_CPU_C::BxError
}
1914 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3809
[4] = {
1915 /* -- */ { 0, &BX_CPU_C::PSIGNW_PqQq
},
1916 /* 66 */ { 0, &BX_CPU_C::PSIGNW_VdqWdq
},
1917 /* F2 */ { 0, &BX_CPU_C::BxError
},
1918 /* F3 */ { 0, &BX_CPU_C::BxError
}
1921 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3810
[4] = {
1922 /* -- */ { 0, &BX_CPU_C::BxError
},
1923 /* 66 */ { 0, &BX_CPU_C::PBLENDVB_VdqWdq
},
1924 /* F2 */ { 0, &BX_CPU_C::BxError
},
1925 /* F3 */ { 0, &BX_CPU_C::BxError
}
1928 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3814
[4] = {
1929 /* -- */ { 0, &BX_CPU_C::BxError
},
1930 /* 66 */ { 0, &BX_CPU_C::BLENDVPS_VpsWps
},
1931 /* F2 */ { 0, &BX_CPU_C::BxError
},
1932 /* F3 */ { 0, &BX_CPU_C::BxError
}
1935 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3815
[4] = {
1936 /* -- */ { 0, &BX_CPU_C::BxError
},
1937 /* 66 */ { 0, &BX_CPU_C::BLENDVPD_VpdWpd
},
1938 /* F2 */ { 0, &BX_CPU_C::BxError
},
1939 /* F3 */ { 0, &BX_CPU_C::BxError
}
1942 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3817
[4] = {
1943 /* -- */ { 0, &BX_CPU_C::BxError
},
1944 /* 66 */ { 0, &BX_CPU_C::PTEST_VdqWdq
},
1945 /* F2 */ { 0, &BX_CPU_C::BxError
},
1946 /* F3 */ { 0, &BX_CPU_C::BxError
}
1949 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3820
[4] = {
1950 /* -- */ { 0, &BX_CPU_C::BxError
},
1951 /* 66 */ { 0, &BX_CPU_C::PMOVSXBW_VdqWq
},
1952 /* F2 */ { 0, &BX_CPU_C::BxError
},
1953 /* F3 */ { 0, &BX_CPU_C::BxError
}
1956 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3821
[4] = {
1957 /* -- */ { 0, &BX_CPU_C::BxError
},
1958 /* 66 */ { 0, &BX_CPU_C::PMOVSXBD_VdqWd
},
1959 /* F2 */ { 0, &BX_CPU_C::BxError
},
1960 /* F3 */ { 0, &BX_CPU_C::BxError
}
1963 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3822
[4] = {
1964 /* -- */ { 0, &BX_CPU_C::BxError
},
1965 /* 66 */ { 0, &BX_CPU_C::PMOVSXBQ_VdqWw
},
1966 /* F2 */ { 0, &BX_CPU_C::BxError
},
1967 /* F3 */ { 0, &BX_CPU_C::BxError
}
1970 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3823
[4] = {
1971 /* -- */ { 0, &BX_CPU_C::BxError
},
1972 /* 66 */ { 0, &BX_CPU_C::PMOVSXWD_VdqWq
},
1973 /* F2 */ { 0, &BX_CPU_C::BxError
},
1974 /* F3 */ { 0, &BX_CPU_C::BxError
}
1977 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3824
[4] = {
1978 /* -- */ { 0, &BX_CPU_C::BxError
},
1979 /* 66 */ { 0, &BX_CPU_C::PMOVSXWQ_VdqWd
},
1980 /* F2 */ { 0, &BX_CPU_C::BxError
},
1981 /* F3 */ { 0, &BX_CPU_C::BxError
}
1984 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3825
[4] = {
1985 /* -- */ { 0, &BX_CPU_C::BxError
},
1986 /* 66 */ { 0, &BX_CPU_C::PMOVSXDQ_VdqWq
},
1987 /* F2 */ { 0, &BX_CPU_C::BxError
},
1988 /* F3 */ { 0, &BX_CPU_C::BxError
}
1991 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3828
[4] = {
1992 /* -- */ { 0, &BX_CPU_C::BxError
},
1993 /* 66 */ { 0, &BX_CPU_C::PMULDQ_VdqWdq
},
1994 /* F2 */ { 0, &BX_CPU_C::BxError
},
1995 /* F3 */ { 0, &BX_CPU_C::BxError
}
1998 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3829
[4] = {
1999 /* -- */ { 0, &BX_CPU_C::BxError
},
2000 /* 66 */ { 0, &BX_CPU_C::PCMPEQQ_VdqWdq
},
2001 /* F2 */ { 0, &BX_CPU_C::BxError
},
2002 /* F3 */ { 0, &BX_CPU_C::BxError
}
2005 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f382a
[4] = {
2006 /* -- */ { 0, &BX_CPU_C::BxError
},
2007 /* 66 */ { 0, &BX_CPU_C::MOVNTDQA_VdqMdq
},
2008 /* F2 */ { 0, &BX_CPU_C::BxError
},
2009 /* F3 */ { 0, &BX_CPU_C::BxError
}
2012 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f382b
[4] = {
2013 /* -- */ { 0, &BX_CPU_C::BxError
},
2014 /* 66 */ { 0, &BX_CPU_C::PACKUSDW_VdqWdq
},
2015 /* F2 */ { 0, &BX_CPU_C::BxError
},
2016 /* F3 */ { 0, &BX_CPU_C::BxError
}
2019 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f380a
[4] = {
2020 /* -- */ { 0, &BX_CPU_C::PSIGND_PqQq
},
2021 /* 66 */ { 0, &BX_CPU_C::PSIGND_VdqWdq
},
2022 /* F2 */ { 0, &BX_CPU_C::BxError
},
2023 /* F3 */ { 0, &BX_CPU_C::BxError
}
2026 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f380b
[4] = {
2027 /* -- */ { 0, &BX_CPU_C::PMULHRSW_PqQq
},
2028 /* 66 */ { 0, &BX_CPU_C::PMULHRSW_VdqWdq
},
2029 /* F2 */ { 0, &BX_CPU_C::BxError
},
2030 /* F3 */ { 0, &BX_CPU_C::BxError
}
2033 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f381c
[4] = {
2034 /* -- */ { 0, &BX_CPU_C::PABSB_PqQq
},
2035 /* 66 */ { 0, &BX_CPU_C::PABSB_VdqWdq
},
2036 /* F2 */ { 0, &BX_CPU_C::BxError
},
2037 /* F3 */ { 0, &BX_CPU_C::BxError
}
2040 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f381d
[4] = {
2041 /* -- */ { 0, &BX_CPU_C::PABSW_PqQq
},
2042 /* 66 */ { 0, &BX_CPU_C::PABSW_VdqWdq
},
2043 /* F2 */ { 0, &BX_CPU_C::BxError
},
2044 /* F3 */ { 0, &BX_CPU_C::BxError
}
2047 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f381e
[4] = {
2048 /* -- */ { 0, &BX_CPU_C::PABSD_PqQq
},
2049 /* 66 */ { 0, &BX_CPU_C::PABSD_VdqWdq
},
2050 /* F2 */ { 0, &BX_CPU_C::BxError
},
2051 /* F3 */ { 0, &BX_CPU_C::BxError
}
2054 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3830
[4] = {
2055 /* -- */ { 0, &BX_CPU_C::BxError
},
2056 /* 66 */ { 0, &BX_CPU_C::PMOVZXBW_VdqWq
},
2057 /* F2 */ { 0, &BX_CPU_C::BxError
},
2058 /* F3 */ { 0, &BX_CPU_C::BxError
}
2061 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3831
[4] = {
2062 /* -- */ { 0, &BX_CPU_C::BxError
},
2063 /* 66 */ { 0, &BX_CPU_C::PMOVZXBD_VdqWd
},
2064 /* F2 */ { 0, &BX_CPU_C::BxError
},
2065 /* F3 */ { 0, &BX_CPU_C::BxError
}
2068 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3832
[4] = {
2069 /* -- */ { 0, &BX_CPU_C::BxError
},
2070 /* 66 */ { 0, &BX_CPU_C::PMOVZXBQ_VdqWw
},
2071 /* F2 */ { 0, &BX_CPU_C::BxError
},
2072 /* F3 */ { 0, &BX_CPU_C::BxError
}
2075 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3833
[4] = {
2076 /* -- */ { 0, &BX_CPU_C::BxError
},
2077 /* 66 */ { 0, &BX_CPU_C::PMOVZXWD_VdqWq
},
2078 /* F2 */ { 0, &BX_CPU_C::BxError
},
2079 /* F3 */ { 0, &BX_CPU_C::BxError
}
2082 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3834
[4] = {
2083 /* -- */ { 0, &BX_CPU_C::BxError
},
2084 /* 66 */ { 0, &BX_CPU_C::PMOVZXWQ_VdqWd
},
2085 /* F2 */ { 0, &BX_CPU_C::BxError
},
2086 /* F3 */ { 0, &BX_CPU_C::BxError
}
2089 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3835
[4] = {
2090 /* -- */ { 0, &BX_CPU_C::BxError
},
2091 /* 66 */ { 0, &BX_CPU_C::PMOVZXDQ_VdqWq
},
2092 /* F2 */ { 0, &BX_CPU_C::BxError
},
2093 /* F3 */ { 0, &BX_CPU_C::BxError
}
2096 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3838
[4] = {
2097 /* -- */ { 0, &BX_CPU_C::BxError
},
2098 /* 66 */ { 0, &BX_CPU_C::PMINSB_VdqWdq
},
2099 /* F2 */ { 0, &BX_CPU_C::BxError
},
2100 /* F3 */ { 0, &BX_CPU_C::BxError
}
2103 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3839
[4] = {
2104 /* -- */ { 0, &BX_CPU_C::BxError
},
2105 /* 66 */ { 0, &BX_CPU_C::PMINSD_VdqWdq
},
2106 /* F2 */ { 0, &BX_CPU_C::BxError
},
2107 /* F3 */ { 0, &BX_CPU_C::BxError
}
2110 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383a
[4] = {
2111 /* -- */ { 0, &BX_CPU_C::BxError
},
2112 /* 66 */ { 0, &BX_CPU_C::PMINUW_VdqWdq
},
2113 /* F2 */ { 0, &BX_CPU_C::BxError
},
2114 /* F3 */ { 0, &BX_CPU_C::BxError
}
2117 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383b
[4] = {
2118 /* -- */ { 0, &BX_CPU_C::BxError
},
2119 /* 66 */ { 0, &BX_CPU_C::PMINUD_VdqWdq
},
2120 /* F2 */ { 0, &BX_CPU_C::BxError
},
2121 /* F3 */ { 0, &BX_CPU_C::BxError
}
2124 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383c
[4] = {
2125 /* -- */ { 0, &BX_CPU_C::BxError
},
2126 /* 66 */ { 0, &BX_CPU_C::PMAXSB_VdqWdq
},
2127 /* F2 */ { 0, &BX_CPU_C::BxError
},
2128 /* F3 */ { 0, &BX_CPU_C::BxError
}
2131 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383d
[4] = {
2132 /* -- */ { 0, &BX_CPU_C::BxError
},
2133 /* 66 */ { 0, &BX_CPU_C::PMAXSD_VdqWdq
},
2134 /* F2 */ { 0, &BX_CPU_C::BxError
},
2135 /* F3 */ { 0, &BX_CPU_C::BxError
}
2138 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383e
[4] = {
2139 /* -- */ { 0, &BX_CPU_C::BxError
},
2140 /* 66 */ { 0, &BX_CPU_C::PMAXUW_VdqWdq
},
2141 /* F2 */ { 0, &BX_CPU_C::BxError
},
2142 /* F3 */ { 0, &BX_CPU_C::BxError
}
2145 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383f
[4] = {
2146 /* -- */ { 0, &BX_CPU_C::BxError
},
2147 /* 66 */ { 0, &BX_CPU_C::PMAXUD_VdqWdq
},
2148 /* F2 */ { 0, &BX_CPU_C::BxError
},
2149 /* F3 */ { 0, &BX_CPU_C::BxError
}
2152 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3840
[4] = {
2153 /* -- */ { 0, &BX_CPU_C::BxError
},
2154 /* 66 */ { 0, &BX_CPU_C::PMULLD_VdqWdq
},
2155 /* F2 */ { 0, &BX_CPU_C::BxError
},
2156 /* F3 */ { 0, &BX_CPU_C::BxError
}
2159 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3841
[4] = {
2160 /* -- */ { 0, &BX_CPU_C::BxError
},
2161 /* 66 */ { 0, &BX_CPU_C::PHMINPOSUW_VdqWdq
},
2162 /* F2 */ { 0, &BX_CPU_C::BxError
},
2163 /* F3 */ { 0, &BX_CPU_C::BxError
}
2166 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a08
[4] = {
2167 /* -- */ { 0, &BX_CPU_C::BxError
},
2168 /* 66 */ { 0, &BX_CPU_C::ROUNDPS_VpsWpsIb
},
2169 /* F2 */ { 0, &BX_CPU_C::BxError
},
2170 /* F3 */ { 0, &BX_CPU_C::BxError
}
2173 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a09
[4] = {
2174 /* -- */ { 0, &BX_CPU_C::BxError
},
2175 /* 66 */ { 0, &BX_CPU_C::ROUNDPD_VpdWpdIb
},
2176 /* F2 */ { 0, &BX_CPU_C::BxError
},
2177 /* F3 */ { 0, &BX_CPU_C::BxError
}
2180 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0a
[4] = {
2181 /* -- */ { 0, &BX_CPU_C::BxError
},
2182 /* 66 */ { 0, &BX_CPU_C::ROUNDSS_VssWssIb
},
2183 /* F2 */ { 0, &BX_CPU_C::BxError
},
2184 /* F3 */ { 0, &BX_CPU_C::BxError
}
2187 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0b
[4] = {
2188 /* -- */ { 0, &BX_CPU_C::BxError
},
2189 /* 66 */ { 0, &BX_CPU_C::ROUNDSD_VsdWsdIb
},
2190 /* F2 */ { 0, &BX_CPU_C::BxError
},
2191 /* F3 */ { 0, &BX_CPU_C::BxError
}
2194 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0c
[4] = {
2195 /* -- */ { 0, &BX_CPU_C::BxError
},
2196 /* 66 */ { 0, &BX_CPU_C::BLENDPS_VpsWpsIb
},
2197 /* F2 */ { 0, &BX_CPU_C::BxError
},
2198 /* F3 */ { 0, &BX_CPU_C::BxError
}
2201 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0d
[4] = {
2202 /* -- */ { 0, &BX_CPU_C::BxError
},
2203 /* 66 */ { 0, &BX_CPU_C::BLENDPD_VpdWpdIb
},
2204 /* F2 */ { 0, &BX_CPU_C::BxError
},
2205 /* F3 */ { 0, &BX_CPU_C::BxError
}
2208 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0e
[4] = {
2209 /* -- */ { 0, &BX_CPU_C::BxError
},
2210 /* 66 */ { 0, &BX_CPU_C::PBLENDW_VdqWdqIb
},
2211 /* F2 */ { 0, &BX_CPU_C::BxError
},
2212 /* F3 */ { 0, &BX_CPU_C::BxError
}
2215 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0f
[4] = {
2216 /* -- */ { 0, &BX_CPU_C::PALIGNR_PqQqIb
},
2217 /* 66 */ { 0, &BX_CPU_C::PALIGNR_VdqWdqIb
},
2218 /* F2 */ { 0, &BX_CPU_C::BxError
},
2219 /* F3 */ { 0, &BX_CPU_C::BxError
}
2222 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a14
[4] = {
2223 /* -- */ { 0, &BX_CPU_C::BxError
},
2224 /* 66 */ { 0, &BX_CPU_C::PEXTRB_HbdUdqIb
},
2225 /* F2 */ { 0, &BX_CPU_C::BxError
},
2226 /* F3 */ { 0, &BX_CPU_C::BxError
}
2229 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a15
[4] = {
2230 /* -- */ { 0, &BX_CPU_C::BxError
},
2231 /* 66 */ { 0, &BX_CPU_C::PEXTRW_HwdUdqIb
},
2232 /* F2 */ { 0, &BX_CPU_C::BxError
},
2233 /* F3 */ { 0, &BX_CPU_C::BxError
}
2236 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a16
[4] = {
2237 /* -- */ { 0, &BX_CPU_C::BxError
},
2238 /* 66 */ { 0, &BX_CPU_C::PEXTRD_HdUdqIb
},
2239 /* F2 */ { 0, &BX_CPU_C::BxError
},
2240 /* F3 */ { 0, &BX_CPU_C::BxError
}
2243 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a17
[4] = {
2244 /* -- */ { 0, &BX_CPU_C::BxError
},
2245 /* 66 */ { 0, &BX_CPU_C::EXTRACTPS_HdUpsIb
},
2246 /* F2 */ { 0, &BX_CPU_C::BxError
},
2247 /* F3 */ { 0, &BX_CPU_C::BxError
}
2250 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a20
[4] = {
2251 /* -- */ { 0, &BX_CPU_C::BxError
},
2252 /* 66 */ { 0, &BX_CPU_C::PINSRB_VdqEbIb
},
2253 /* F2 */ { 0, &BX_CPU_C::BxError
},
2254 /* F3 */ { 0, &BX_CPU_C::BxError
}
2257 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a21
[4] = {
2258 /* -- */ { 0, &BX_CPU_C::BxError
},
2259 /* 66 */ { 0, &BX_CPU_C::INSERTPS_VpsWssIb
},
2260 /* F2 */ { 0, &BX_CPU_C::BxError
},
2261 /* F3 */ { 0, &BX_CPU_C::BxError
}
2264 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a22
[4] = {
2265 /* -- */ { 0, &BX_CPU_C::BxError
},
2266 /* 66 */ { 0, &BX_CPU_C::PINSRD_VdqEdIb
},
2267 /* F2 */ { 0, &BX_CPU_C::BxError
},
2268 /* F3 */ { 0, &BX_CPU_C::BxError
}
2271 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a40
[4] = {
2272 /* -- */ { 0, &BX_CPU_C::BxError
},
2273 /* 66 */ { 0, &BX_CPU_C::DPPS_VpsWpsIb
},
2274 /* F2 */ { 0, &BX_CPU_C::BxError
},
2275 /* F3 */ { 0, &BX_CPU_C::BxError
}
2278 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a41
[4] = {
2279 /* -- */ { 0, &BX_CPU_C::BxError
},
2280 /* 66 */ { 0, &BX_CPU_C::DPPD_VpdWpdIb
},
2281 /* F2 */ { 0, &BX_CPU_C::BxError
},
2282 /* F3 */ { 0, &BX_CPU_C::BxError
}
2285 static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a42
[4] = {
2286 /* -- */ { 0, &BX_CPU_C::BxError
},
2287 /* 66 */ { 0, &BX_CPU_C::MPSADBW_VdqWdqIb
},
2288 /* F2 */ { 0, &BX_CPU_C::BxError
},
2289 /* F3 */ { 0, &BX_CPU_C::BxError
}
2292 /* ************************************************************************ */
2293 /* 3-byte opcode table (Table A-4, 0F 38) */
2295 static const BxOpcodeInfo_t BxOpcode3ByteOp0f380x
[16] = {
2296 /* 00 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3800
},
2297 /* 01 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3801
},
2298 /* 02 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3802
},
2299 /* 03 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3803
},
2300 /* 04 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3804
},
2301 /* 05 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3805
},
2302 /* 06 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3806
},
2303 /* 07 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3807
},
2304 /* 08 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3808
},
2305 /* 09 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3809
},
2306 /* 0A */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f380a
},
2307 /* 0B */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f380b
},
2308 /* 0C */ { 0, &BX_CPU_C::BxError
},
2309 /* 0D */ { 0, &BX_CPU_C::BxError
},
2310 /* 0E */ { 0, &BX_CPU_C::BxError
},
2311 /* 0F */ { 0, &BX_CPU_C::BxError
}
2314 static const BxOpcodeInfo_t BxOpcode3ByteOp0f381x
[16] = {
2315 /* 00 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3810
},
2316 /* 01 */ { 0, &BX_CPU_C::BxError
},
2317 /* 02 */ { 0, &BX_CPU_C::BxError
},
2318 /* 03 */ { 0, &BX_CPU_C::BxError
},
2319 /* 04 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3814
},
2320 /* 05 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3815
},
2321 /* 06 */ { 0, &BX_CPU_C::BxError
},
2322 /* 07 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3817
},
2323 /* 08 */ { 0, &BX_CPU_C::BxError
},
2324 /* 09 */ { 0, &BX_CPU_C::BxError
},
2325 /* 0A */ { 0, &BX_CPU_C::BxError
},
2326 /* 0B */ { 0, &BX_CPU_C::BxError
},
2327 /* 0C */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f381c
},
2328 /* 0D */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f381d
},
2329 /* 0E */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f381e
},
2330 /* 0F */ { 0, &BX_CPU_C::BxError
}
2333 static const BxOpcodeInfo_t BxOpcode3ByteOp0f382x
[16] = {
2334 /* 00 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3820
},
2335 /* 01 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3821
},
2336 /* 02 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3822
},
2337 /* 03 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3823
},
2338 /* 04 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3824
},
2339 /* 05 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3825
},
2340 /* 06 */ { 0, &BX_CPU_C::BxError
},
2341 /* 07 */ { 0, &BX_CPU_C::BxError
},
2342 /* 08 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3828
},
2343 /* 09 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3829
},
2344 /* 0A */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f382a
},
2345 /* 0B */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f382b
},
2346 /* 0C */ { 0, &BX_CPU_C::BxError
},
2347 /* 0D */ { 0, &BX_CPU_C::BxError
},
2348 /* 0E */ { 0, &BX_CPU_C::BxError
},
2349 /* 0F */ { 0, &BX_CPU_C::BxError
}
2352 static const BxOpcodeInfo_t BxOpcode3ByteOp0f383x
[16] = {
2353 /* 00 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3830
},
2354 /* 01 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3831
},
2355 /* 02 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3832
},
2356 /* 03 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3833
},
2357 /* 04 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3834
},
2358 /* 05 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3835
},
2359 /* 06 */ { 0, &BX_CPU_C::BxError
},
2360 /* 07 */ { 0, &BX_CPU_C::BxError
},
2361 /* 08 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3838
},
2362 /* 09 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3839
},
2363 /* 0A */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f383a
},
2364 /* 0B */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f383b
},
2365 /* 0C */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f383c
},
2366 /* 0D */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f383d
},
2367 /* 0E */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f383e
},
2368 /* 0F */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f383f
}
2371 static const BxOpcodeInfo_t BxOpcode3ByteOp0f384x
[16] = {
2372 /* 00 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3840
},
2373 /* 01 */ { BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3841
},
2374 /* 02 */ { 0, &BX_CPU_C::BxError
},
2375 /* 03 */ { 0, &BX_CPU_C::BxError
},
2376 /* 04 */ { 0, &BX_CPU_C::BxError
},
2377 /* 05 */ { 0, &BX_CPU_C::BxError
},
2378 /* 06 */ { 0, &BX_CPU_C::BxError
},
2379 /* 07 */ { 0, &BX_CPU_C::BxError
},
2380 /* 08 */ { 0, &BX_CPU_C::BxError
},
2381 /* 09 */ { 0, &BX_CPU_C::BxError
},
2382 /* 0A */ { 0, &BX_CPU_C::BxError
},
2383 /* 0B */ { 0, &BX_CPU_C::BxError
},
2384 /* 0C */ { 0, &BX_CPU_C::BxError
},
2385 /* 0D */ { 0, &BX_CPU_C::BxError
},
2386 /* 0E */ { 0, &BX_CPU_C::BxError
},
2387 /* 0F */ { 0, &BX_CPU_C::BxError
}
2390 static const BxOpcodeInfo_t BxOpcode3ByteTableA4
[16] = {
2391 /* 00 */ { Bx3ByteOpIndex
, NULL
, BxOpcode3ByteOp0f380x
},
2392 /* 01 */ { Bx3ByteOpIndex
, NULL
, BxOpcode3ByteOp0f381x
},
2393 /* 02 */ { Bx3ByteOpIndex
, NULL
, BxOpcode3ByteOp0f382x
},
2394 /* 03 */ { Bx3ByteOpIndex
, NULL
, BxOpcode3ByteOp0f383x
},
2395 /* 04 */ { Bx3ByteOpIndex
, NULL
, BxOpcode3ByteOp0f384x
},
2396 /* 05 */ { 0, &BX_CPU_C::BxError
},
2397 /* 06 */ { 0, &BX_CPU_C::BxError
},
2398 /* 07 */ { 0, &BX_CPU_C::BxError
},
2399 /* 08 */ { 0, &BX_CPU_C::BxError
},
2400 /* 09 */ { 0, &BX_CPU_C::BxError
},
2401 /* 0A */ { 0, &BX_CPU_C::BxError
},
2402 /* 0B */ { 0, &BX_CPU_C::BxError
},
2403 /* 0C */ { 0, &BX_CPU_C::BxError
},
2404 /* 0D */ { 0, &BX_CPU_C::BxError
},
2405 /* 0E */ { 0, &BX_CPU_C::BxError
},
2406 /* 0F */ { 0, &BX_CPU_C::BxError
}
2409 /* ************************************************************************ */
2410 /* 3-byte opcode table (Table A-5, 0F 3A) */
2412 static const BxOpcodeInfo_t BxOpcode3ByteOp0f3a0x
[16] = {
2413 /* 00 */ { 0, &BX_CPU_C::BxError
},
2414 /* 01 */ { 0, &BX_CPU_C::BxError
},
2415 /* 02 */ { 0, &BX_CPU_C::BxError
},
2416 /* 03 */ { 0, &BX_CPU_C::BxError
},
2417 /* 04 */ { 0, &BX_CPU_C::BxError
},
2418 /* 05 */ { 0, &BX_CPU_C::BxError
},
2419 /* 06 */ { 0, &BX_CPU_C::BxError
},
2420 /* 07 */ { 0, &BX_CPU_C::BxError
},
2421 /* 08 */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a08
},
2422 /* 09 */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a09
},
2423 /* 0A */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a0a
},
2424 /* 0B */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a0b
},
2425 /* 0C */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a0c
},
2426 /* 0D */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a0d
},
2427 /* 0E */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a0e
},
2428 /* 0F */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a0f
}
2431 static const BxOpcodeInfo_t BxOpcode3ByteOp0f3a1x
[16] = {
2432 /* 00 */ { 0, &BX_CPU_C::BxError
},
2433 /* 01 */ { 0, &BX_CPU_C::BxError
},
2434 /* 02 */ { 0, &BX_CPU_C::BxError
},
2435 /* 03 */ { 0, &BX_CPU_C::BxError
},
2436 /* 04 */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a14
},
2437 /* 05 */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a15
},
2438 /* 06 */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a16
},
2439 /* 07 */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a17
},
2440 /* 08 */ { 0, &BX_CPU_C::BxError
},
2441 /* 09 */ { 0, &BX_CPU_C::BxError
},
2442 /* 0A */ { 0, &BX_CPU_C::BxError
},
2443 /* 0B */ { 0, &BX_CPU_C::BxError
},
2444 /* 0C */ { 0, &BX_CPU_C::BxError
},
2445 /* 0D */ { 0, &BX_CPU_C::BxError
},
2446 /* 0E */ { 0, &BX_CPU_C::BxError
},
2447 /* 0F */ { 0, &BX_CPU_C::BxError
}
2450 static const BxOpcodeInfo_t BxOpcode3ByteOp0f3a2x
[16] = {
2451 /* 00 */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a20
},
2452 /* 01 */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a21
},
2453 /* 02 */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a22
},
2454 /* 03 */ { 0, &BX_CPU_C::BxError
},
2455 /* 04 */ { 0, &BX_CPU_C::BxError
},
2456 /* 05 */ { 0, &BX_CPU_C::BxError
},
2457 /* 06 */ { 0, &BX_CPU_C::BxError
},
2458 /* 07 */ { 0, &BX_CPU_C::BxError
},
2459 /* 08 */ { 0, &BX_CPU_C::BxError
},
2460 /* 09 */ { 0, &BX_CPU_C::BxError
},
2461 /* 0A */ { 0, &BX_CPU_C::BxError
},
2462 /* 0B */ { 0, &BX_CPU_C::BxError
},
2463 /* 0C */ { 0, &BX_CPU_C::BxError
},
2464 /* 0D */ { 0, &BX_CPU_C::BxError
},
2465 /* 0E */ { 0, &BX_CPU_C::BxError
},
2466 /* 0F */ { 0, &BX_CPU_C::BxError
}
2469 static const BxOpcodeInfo_t BxOpcode3ByteOp0f3a4x
[16] = {
2470 /* 00 */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a40
},
2471 /* 01 */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a41
},
2472 /* 02 */ { BxImmediate_Ib
| BxPrefixSSE
, NULL
, BxOpcodeGroupSSE_0f3a42
},
2473 /* 03 */ { 0, &BX_CPU_C::BxError
},
2474 /* 04 */ { 0, &BX_CPU_C::BxError
},
2475 /* 05 */ { 0, &BX_CPU_C::BxError
},
2476 /* 06 */ { 0, &BX_CPU_C::BxError
},
2477 /* 07 */ { 0, &BX_CPU_C::BxError
},
2478 /* 08 */ { 0, &BX_CPU_C::BxError
},
2479 /* 09 */ { 0, &BX_CPU_C::BxError
},
2480 /* 0A */ { 0, &BX_CPU_C::BxError
},
2481 /* 0B */ { 0, &BX_CPU_C::BxError
},
2482 /* 0C */ { 0, &BX_CPU_C::BxError
},
2483 /* 0D */ { 0, &BX_CPU_C::BxError
},
2484 /* 0E */ { 0, &BX_CPU_C::BxError
},
2485 /* 0F */ { 0, &BX_CPU_C::BxError
}
2488 static const BxOpcodeInfo_t BxOpcode3ByteTableA5
[16] = {
2489 /* 00 */ { Bx3ByteOpIndex
, NULL
, BxOpcode3ByteOp0f3a0x
},
2490 /* 01 */ { Bx3ByteOpIndex
, NULL
, BxOpcode3ByteOp0f3a1x
},
2491 /* 02 */ { Bx3ByteOpIndex
, NULL
, BxOpcode3ByteOp0f3a2x
},
2492 /* 03 */ { 0, &BX_CPU_C::BxError
},
2493 /* 04 */ { Bx3ByteOpIndex
, NULL
, BxOpcode3ByteOp0f3a4x
},
2494 /* 05 */ { 0, &BX_CPU_C::BxError
},
2495 /* 06 */ { 0, &BX_CPU_C::BxError
},
2496 /* 07 */ { 0, &BX_CPU_C::BxError
},
2497 /* 08 */ { 0, &BX_CPU_C::BxError
},
2498 /* 09 */ { 0, &BX_CPU_C::BxError
},
2499 /* 0A */ { 0, &BX_CPU_C::BxError
},
2500 /* 0B */ { 0, &BX_CPU_C::BxError
},
2501 /* 0C */ { 0, &BX_CPU_C::BxError
},
2502 /* 0D */ { 0, &BX_CPU_C::BxError
},
2503 /* 0E */ { 0, &BX_CPU_C::BxError
},
2504 /* 0F */ { 0, &BX_CPU_C::BxError
}
2507 #endif // BX_SUPPORT_SSE >= 4 || (BX_SUPPORT_SSE >= 3 && BX_SUPPORT_SSE_EXTENSION > 0)