1 | /** @file
|
---|
2 | * Disassembler - Opcodes
|
---|
3 | */
|
---|
4 |
|
---|
5 | /*
|
---|
6 | * Copyright (C) 2006-2024 Oracle and/or its affiliates.
|
---|
7 | *
|
---|
8 | * This file is part of VirtualBox base platform packages, as
|
---|
9 | * available from https://www.virtualbox.org.
|
---|
10 | *
|
---|
11 | * This program is free software; you can redistribute it and/or
|
---|
12 | * modify it under the terms of the GNU General Public License
|
---|
13 | * as published by the Free Software Foundation, in version 3 of the
|
---|
14 | * License.
|
---|
15 | *
|
---|
16 | * This program is distributed in the hope that it will be useful, but
|
---|
17 | * WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
19 | * General Public License for more details.
|
---|
20 | *
|
---|
21 | * You should have received a copy of the GNU General Public License
|
---|
22 | * along with this program; if not, see <https://www.gnu.org/licenses>.
|
---|
23 | *
|
---|
24 | * The contents of this file may alternatively be used under the terms
|
---|
25 | * of the Common Development and Distribution License Version 1.0
|
---|
26 | * (CDDL), a copy of it is provided in the "COPYING.CDDL" file included
|
---|
27 | * in the VirtualBox distribution, in which case the provisions of the
|
---|
28 | * CDDL are applicable instead of those of the GPL.
|
---|
29 | *
|
---|
30 | * You may elect to license modified versions of this file under the
|
---|
31 | * terms and conditions of either the GPL or the CDDL or both.
|
---|
32 | *
|
---|
33 | * SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
|
---|
34 | */
|
---|
35 |
|
---|
36 | #ifndef VBOX_INCLUDED_disopcode_x86_amd64_h
|
---|
37 | #define VBOX_INCLUDED_disopcode_x86_amd64_h
|
---|
38 | #ifndef RT_WITHOUT_PRAGMA_ONCE
|
---|
39 | # pragma once
|
---|
40 | #endif
|
---|
41 |
|
---|
42 | #include <iprt/assert.h>
|
---|
43 |
|
---|
44 | #define MODRM_MOD(a) (a>>6)
|
---|
45 | #define MODRM_REG(a) ((a>>3)&0x7)
|
---|
46 | #define MODRM_RM(a) (a&0x7)
|
---|
47 | #define MAKE_MODRM(mod, reg, rm) (((mod&3) << 6) | ((reg&7) << 3) | (rm&7))
|
---|
48 |
|
---|
49 | #define SIB_SCALE(a) (a>>6)
|
---|
50 | #define SIB_INDEX(a) ((a>>3)&0x7)
|
---|
51 | #define SIB_BASE(a) (a&0x7)
|
---|
52 |
|
---|
53 |
|
---|
54 | /** @defgroup grp_dis_opcodes Opcodes (DISOPCODEX86::uOpCode)
|
---|
55 | * @ingroup grp_dis
|
---|
56 | * @{
|
---|
57 | */
|
---|
58 | enum OPCODESX86
|
---|
59 | {
|
---|
60 | /** @name Full Intel X86 opcode list
|
---|
61 | * @{ */
|
---|
62 | OP_INVALID = 0,
|
---|
63 | OP_OPSIZE,
|
---|
64 | OP_ADDRSIZE,
|
---|
65 | OP_SEG,
|
---|
66 | OP_REPNE,
|
---|
67 | OP_REPE,
|
---|
68 | OP_REX,
|
---|
69 | OP_LOCK,
|
---|
70 | #ifndef IN_SLICKEDIT
|
---|
71 | OP_LAST_PREFIX = OP_LOCK, /**< Last prefix for disassembler. */
|
---|
72 | #else
|
---|
73 | OP_LAST_PREFIX = 7, /**< Last prefix for disassembler. */
|
---|
74 | #endif
|
---|
75 | OP_AND,
|
---|
76 | OP_OR,
|
---|
77 | OP_DAA,
|
---|
78 | OP_SUB,
|
---|
79 | OP_DAS,
|
---|
80 | OP_XOR,
|
---|
81 | OP_AAA,
|
---|
82 | OP_CMP,
|
---|
83 | OP_IMM_GRP1,
|
---|
84 | OP_AAS,
|
---|
85 | OP_INC,
|
---|
86 | OP_DEC,
|
---|
87 | OP_PUSHA,
|
---|
88 | OP_POPA,
|
---|
89 | OP_BOUND,
|
---|
90 | OP_ARPL,
|
---|
91 | OP_PUSH,
|
---|
92 | OP_POP,
|
---|
93 | OP_IMUL,
|
---|
94 | OP_INSB,
|
---|
95 | OP_INSWD,
|
---|
96 | OP_OUTSB,
|
---|
97 | OP_OUTSWD,
|
---|
98 | OP_JO,
|
---|
99 | OP_JNO,
|
---|
100 | OP_JC,
|
---|
101 | OP_JNC,
|
---|
102 | OP_JE,
|
---|
103 | OP_JNE,
|
---|
104 | OP_JBE,
|
---|
105 | OP_JNBE,
|
---|
106 | OP_JS,
|
---|
107 | OP_JNS,
|
---|
108 | OP_JP,
|
---|
109 | OP_JNP,
|
---|
110 | OP_JL,
|
---|
111 | OP_JNL,
|
---|
112 | OP_JLE,
|
---|
113 | OP_JNLE,
|
---|
114 | OP_ADD,
|
---|
115 | OP_TEST,
|
---|
116 | OP_XCHG,
|
---|
117 | OP_MOV,
|
---|
118 | OP_LEA,
|
---|
119 | OP_NOP,
|
---|
120 | OP_CBW,
|
---|
121 | OP_CWD,
|
---|
122 | OP_CALL,
|
---|
123 | OP_WAIT,
|
---|
124 | OP_PUSHF,
|
---|
125 | OP_POPF,
|
---|
126 | OP_SAHF,
|
---|
127 | OP_LAHF,
|
---|
128 | OP_MOVSB,
|
---|
129 | OP_MOVSWD,
|
---|
130 | OP_CMPSB,
|
---|
131 | OP_CMPWD,
|
---|
132 | OP_STOSB,
|
---|
133 | OP_STOSWD,
|
---|
134 | OP_LODSB,
|
---|
135 | OP_LODSWD,
|
---|
136 | OP_SCASB,
|
---|
137 | OP_SCASWD,
|
---|
138 | OP_SHIFT_GRP2,
|
---|
139 | OP_RETN,
|
---|
140 | OP_LES,
|
---|
141 | OP_LDS,
|
---|
142 | OP_ENTER,
|
---|
143 | OP_LEAVE,
|
---|
144 | OP_RETF,
|
---|
145 | OP_INT1,
|
---|
146 | OP_INT3,
|
---|
147 | OP_INT,
|
---|
148 | OP_INTO,
|
---|
149 | OP_IRET,
|
---|
150 | OP_AAM,
|
---|
151 | OP_AAD,
|
---|
152 | OP_SALC,
|
---|
153 | OP_XLAT,
|
---|
154 | OP_ESCF0,
|
---|
155 | OP_ESCF1,
|
---|
156 | OP_ESCF2,
|
---|
157 | OP_ESCF3,
|
---|
158 | OP_ESCF4,
|
---|
159 | OP_ESCF5,
|
---|
160 | OP_ESCF6,
|
---|
161 | OP_ESCF7,
|
---|
162 | OP_LOOPNE,
|
---|
163 | OP_LOOPE,
|
---|
164 | OP_LOOP,
|
---|
165 | OP_JECXZ,
|
---|
166 | OP_IN,
|
---|
167 | OP_OUT,
|
---|
168 | OP_JMP,
|
---|
169 | OP_2B_ESC,
|
---|
170 | OP_ADC,
|
---|
171 | OP_SBB,
|
---|
172 | OP_HLT,
|
---|
173 | OP_CMC,
|
---|
174 | OP_UNARY_GRP3,
|
---|
175 | OP_CLC,
|
---|
176 | OP_STC,
|
---|
177 | OP_CLI,
|
---|
178 | OP_STI,
|
---|
179 | OP_CLD,
|
---|
180 | OP_STD,
|
---|
181 | OP_CLAC,
|
---|
182 | OP_STAC,
|
---|
183 | OP_INC_GRP4,
|
---|
184 | OP_IND_GRP5,
|
---|
185 | OP_GRP6,
|
---|
186 | OP_GRP7,
|
---|
187 | OP_LAR,
|
---|
188 | OP_LSL,
|
---|
189 | OP_SYSCALL,
|
---|
190 | OP_CLTS,
|
---|
191 | OP_SYSRET,
|
---|
192 | OP_INVD,
|
---|
193 | OP_WBINVD,
|
---|
194 | OP_ILLUD2,
|
---|
195 | OP_FEMMS,
|
---|
196 | OP_3DNOW,
|
---|
197 | OP_MOVUPS,
|
---|
198 | OP_MOVLPS,
|
---|
199 | OP_MOVHLPS = OP_MOVLPS, /**< @todo OP_MOVHLPS */
|
---|
200 | OP_UNPCKLPS,
|
---|
201 | OP_MOVHPS,
|
---|
202 | OP_MOVLHPS = OP_MOVHPS, /**< @todo OP_MOVLHPS */
|
---|
203 | OP_UNPCKHPS,
|
---|
204 | OP_PREFETCH_GRP16,
|
---|
205 | OP_MOV_CR,
|
---|
206 | OP_MOVAPS,
|
---|
207 | OP_CVTPI2PS,
|
---|
208 | OP_MOVNTPS,
|
---|
209 | OP_CVTTPS2PI,
|
---|
210 | OP_CVTPS2PI,
|
---|
211 | OP_UCOMISS,
|
---|
212 | OP_COMISS,
|
---|
213 | OP_WRMSR,
|
---|
214 | OP_RDTSC,
|
---|
215 | OP_RDTSCP,
|
---|
216 | OP_RDMSR,
|
---|
217 | OP_RDPMC,
|
---|
218 | OP_SYSENTER,
|
---|
219 | OP_SYSEXIT,
|
---|
220 | OP_GETSEC,
|
---|
221 | OP_PAUSE,
|
---|
222 | OP_CMOVO,
|
---|
223 | OP_CMOVNO,
|
---|
224 | OP_CMOVC,
|
---|
225 | OP_CMOVNC,
|
---|
226 | OP_CMOVZ,
|
---|
227 | OP_CMOVNZ,
|
---|
228 | OP_CMOVBE,
|
---|
229 | OP_CMOVNBE,
|
---|
230 | OP_CMOVS,
|
---|
231 | OP_CMOVNS,
|
---|
232 | OP_CMOVP,
|
---|
233 | OP_CMOVNP,
|
---|
234 | OP_CMOVL,
|
---|
235 | OP_CMOVNL,
|
---|
236 | OP_CMOVLE,
|
---|
237 | OP_CMOVNLE,
|
---|
238 | OP_MOVMSKPS,
|
---|
239 | OP_SQRTPS,
|
---|
240 | OP_RSQRTPS,
|
---|
241 | OP_RCPPS,
|
---|
242 | OP_ANDPS,
|
---|
243 | OP_ANDNPS,
|
---|
244 | OP_ORPS,
|
---|
245 | OP_XORPS,
|
---|
246 | OP_ADDPS,
|
---|
247 | OP_MULPS,
|
---|
248 | OP_CVTPS2PD,
|
---|
249 | OP_CVTDQ2PS,
|
---|
250 | OP_SUBPS,
|
---|
251 | OP_MINPS,
|
---|
252 | OP_DIVPS,
|
---|
253 | OP_MAXPS,
|
---|
254 | OP_PUNPCKLBW,
|
---|
255 | OP_PUNPCKLWD,
|
---|
256 | OP_PUNPCKLDQ,
|
---|
257 | OP_PACKSSWB,
|
---|
258 | OP_PCMPGTB,
|
---|
259 | OP_PCMPGTW,
|
---|
260 | OP_PCMPGTD,
|
---|
261 | OP_PCMPGTQ,
|
---|
262 | OP_PACKUSWB,
|
---|
263 | OP_PUNPCKHBW,
|
---|
264 | OP_PUNPCKHWD,
|
---|
265 | OP_PUNPCKHDQ,
|
---|
266 | OP_PACKSSDW,
|
---|
267 | OP_MOVD,
|
---|
268 | OP_MOVQ,
|
---|
269 | OP_PSHUFW,
|
---|
270 | OP_3B_ESC4,
|
---|
271 | OP_3B_ESC5,
|
---|
272 | OP_PCMPEQB,
|
---|
273 | OP_PCMPEQW,
|
---|
274 | OP_PCMPEQD,
|
---|
275 | OP_PCMPEQQ,
|
---|
276 | OP_SETO,
|
---|
277 | OP_SETNO,
|
---|
278 | OP_SETC,
|
---|
279 | OP_SETNC,
|
---|
280 | OP_SETE,
|
---|
281 | OP_SETNE,
|
---|
282 | OP_SETBE,
|
---|
283 | OP_SETNBE,
|
---|
284 | OP_SETS,
|
---|
285 | OP_SETNS,
|
---|
286 | OP_SETP,
|
---|
287 | OP_SETNP,
|
---|
288 | OP_SETL,
|
---|
289 | OP_SETNL,
|
---|
290 | OP_SETLE,
|
---|
291 | OP_SETNLE,
|
---|
292 | OP_CPUID,
|
---|
293 | OP_BT,
|
---|
294 | OP_SHLD,
|
---|
295 | OP_RSM,
|
---|
296 | OP_BTS,
|
---|
297 | OP_SHRD,
|
---|
298 | OP_GRP15,
|
---|
299 | OP_CMPXCHG,
|
---|
300 | OP_LSS,
|
---|
301 | OP_BTR,
|
---|
302 | OP_LFS,
|
---|
303 | OP_LGS,
|
---|
304 | OP_MOVZX,
|
---|
305 | OP_GRP10_INV,
|
---|
306 | OP_GRP8,
|
---|
307 | OP_BTC,
|
---|
308 | OP_BSF,
|
---|
309 | OP_BSR,
|
---|
310 | OP_MOVSX,
|
---|
311 | OP_XADD,
|
---|
312 | OP_CMPPS,
|
---|
313 | OP_MOVNTI,
|
---|
314 | OP_PINSRW,
|
---|
315 | OP_PEXTRW,
|
---|
316 | OP_SHUFPS,
|
---|
317 | OP_GRP9,
|
---|
318 | OP_BSWAP,
|
---|
319 | OP_ADDSUBPS,
|
---|
320 | OP_ADDSUBPD,
|
---|
321 | OP_PSRLW,
|
---|
322 | OP_PSRLD,
|
---|
323 | OP_PSRLQ,
|
---|
324 | OP_PADDQ,
|
---|
325 | OP_PMULLW,
|
---|
326 | OP_PMOVMSKB,
|
---|
327 | OP_PSUBUSB,
|
---|
328 | OP_PSUBUSW,
|
---|
329 | OP_PMINUB,
|
---|
330 | OP_PAND,
|
---|
331 | OP_PADDUSB,
|
---|
332 | OP_PADDUSW,
|
---|
333 | OP_PMAXUB,
|
---|
334 | OP_PANDN,
|
---|
335 | OP_PAVGB,
|
---|
336 | OP_PSRAW,
|
---|
337 | OP_PSRAD,
|
---|
338 | OP_PAVGW,
|
---|
339 | OP_PMULHUW,
|
---|
340 | OP_PMULHW,
|
---|
341 | OP_MOVNTQ,
|
---|
342 | OP_PSUBSB,
|
---|
343 | OP_PSUBSW,
|
---|
344 | OP_PMINSW,
|
---|
345 | OP_POR,
|
---|
346 | OP_PADDSB,
|
---|
347 | OP_PADDSW,
|
---|
348 | OP_PMAXSW,
|
---|
349 | OP_PXOR,
|
---|
350 | OP_LDDQU,
|
---|
351 | OP_PSLLW,
|
---|
352 | OP_PSLLD,
|
---|
353 | OP_PSSQ,
|
---|
354 | OP_PMULUDQ,
|
---|
355 | OP_PMADDWD,
|
---|
356 | OP_PSADBW,
|
---|
357 | OP_MASKMOVQ,
|
---|
358 | OP_PSUBB,
|
---|
359 | OP_PSUBW,
|
---|
360 | OP_PSUBD,
|
---|
361 | OP_PSUBQ,
|
---|
362 | OP_PADDB,
|
---|
363 | OP_PADDW,
|
---|
364 | OP_PADDD,
|
---|
365 | OP_MOVUPD,
|
---|
366 | OP_MOVLPD,
|
---|
367 | OP_UNPCKLPD,
|
---|
368 | OP_UNPCKHPD,
|
---|
369 | OP_MOVHPD,
|
---|
370 | OP_MOVAPD,
|
---|
371 | OP_CVTPI2PD,
|
---|
372 | OP_MOVNTPD,
|
---|
373 | OP_CVTTPD2PI,
|
---|
374 | OP_CVTPD2PI,
|
---|
375 | OP_UCOMISD,
|
---|
376 | OP_COMISD,
|
---|
377 | OP_MOVMSKPD,
|
---|
378 | OP_SQRTPD,
|
---|
379 | OP_ANDPD,
|
---|
380 | OP_ANDNPD,
|
---|
381 | OP_ORPD,
|
---|
382 | OP_XORPD,
|
---|
383 | OP_ADDPD,
|
---|
384 | OP_MULPD,
|
---|
385 | OP_CVTPD2PS,
|
---|
386 | OP_CVTPS2DQ,
|
---|
387 | OP_SUBPD,
|
---|
388 | OP_MINPD,
|
---|
389 | OP_DIVPD,
|
---|
390 | OP_MAXPD,
|
---|
391 | OP_GRP12,
|
---|
392 | OP_GRP13,
|
---|
393 | OP_GRP14,
|
---|
394 | OP_GRP17,
|
---|
395 | OP_EMMS,
|
---|
396 | OP_MMX_UD78,
|
---|
397 | OP_MMX_UD79,
|
---|
398 | OP_MMX_UD7A,
|
---|
399 | OP_MMX_UD7B,
|
---|
400 | OP_MMX_UD7C,
|
---|
401 | OP_MMX_UD7D,
|
---|
402 | OP_PUNPCKLQDQ,
|
---|
403 | OP_PUNPCKHQDQ,
|
---|
404 | OP_MOVDQA,
|
---|
405 | OP_PSHUFD,
|
---|
406 | OP_CMPPD,
|
---|
407 | OP_SHUFPD,
|
---|
408 | OP_CVTTPD2DQ,
|
---|
409 | OP_MOVNTDQ,
|
---|
410 | OP_MOVNTDQA,
|
---|
411 | OP_PACKUSDW,
|
---|
412 | OP_PSHUFB,
|
---|
413 | OP_PHADDW,
|
---|
414 | OP_PHADDD,
|
---|
415 | OP_PHADDSW,
|
---|
416 | OP_HADDPS,
|
---|
417 | OP_HADDPD,
|
---|
418 | OP_PMADDUBSW,
|
---|
419 | OP_PHSUBW,
|
---|
420 | OP_PHSUBD,
|
---|
421 | OP_PHSUBSW,
|
---|
422 | OP_HSUBPS,
|
---|
423 | OP_HSUBPD,
|
---|
424 | OP_PSIGNB,
|
---|
425 | OP_PSIGNW,
|
---|
426 | OP_PSIGND,
|
---|
427 | OP_PMULHRSW,
|
---|
428 | OP_PERMILPS,
|
---|
429 | OP_PERMILPD,
|
---|
430 | OP_TESTPS,
|
---|
431 | OP_TESTPD,
|
---|
432 | OP_PBLENDVB,
|
---|
433 | OP_CVTPH2PS,
|
---|
434 | OP_BLENDVPS,
|
---|
435 | OP_BLENDVPD,
|
---|
436 | OP_PERMPS,
|
---|
437 | OP_PERMD,
|
---|
438 | OP_PTEST,
|
---|
439 | OP_BROADCASTSS,
|
---|
440 | OP_BROADCASTSD,
|
---|
441 | OP_BROADCASTF128,
|
---|
442 | OP_PABSB,
|
---|
443 | OP_PABSW,
|
---|
444 | OP_PABSD,
|
---|
445 | OP_PMOVSXBW,
|
---|
446 | OP_PMOVSXBD,
|
---|
447 | OP_PMOVSXBQ,
|
---|
448 | OP_PMOVSXWD,
|
---|
449 | OP_PMOVSXWQ,
|
---|
450 | OP_PMOVSXDQ,
|
---|
451 | OP_PMOVZXBW,
|
---|
452 | OP_PMOVZXBD,
|
---|
453 | OP_PMOVZXBQ,
|
---|
454 | OP_PMOVZXWD,
|
---|
455 | OP_PMOVZXWQ,
|
---|
456 | OP_PMOVZXDQ,
|
---|
457 | OP_PMULDQ,
|
---|
458 | OP_PMINSB,
|
---|
459 | OP_PMINSD,
|
---|
460 | OP_PMINUW,
|
---|
461 | OP_PMINUD,
|
---|
462 | OP_PMAXSB,
|
---|
463 | OP_PMAXSD,
|
---|
464 | OP_PMAXUW,
|
---|
465 | OP_PMAXUD,
|
---|
466 | OP_PMULLD,
|
---|
467 | OP_PHMINPOSUW,
|
---|
468 | OP_PSRLVD,
|
---|
469 | OP_PSRAVD,
|
---|
470 | OP_PSLLVD,
|
---|
471 | OP_PBROADCASTD,
|
---|
472 | OP_PBROADCASTQ,
|
---|
473 | OP_PBROADCASTI128,
|
---|
474 | OP_PBROADCASTB,
|
---|
475 | OP_PBROADCASTW,
|
---|
476 | OP_PMASKMOVD,
|
---|
477 | OP_GATHER,
|
---|
478 | OP_FMADDSUB132PS,
|
---|
479 | OP_FMSUBADD132PS,
|
---|
480 | OP_FMADD132PS,
|
---|
481 | OP_FMADD132SS,
|
---|
482 | OP_FMSUB132PS,
|
---|
483 | OP_FMSUB132SS,
|
---|
484 | OP_FNMADD132PS,
|
---|
485 | OP_FNMADD132SS,
|
---|
486 | OP_FNMSUB132PS,
|
---|
487 | OP_FNMSUB132SS,
|
---|
488 | OP_FMADDSUB213PS,
|
---|
489 | OP_FMSUBADD213PS,
|
---|
490 | OP_FMADD213PS,
|
---|
491 | OP_FMADD213SS,
|
---|
492 | OP_FMSUB213PS,
|
---|
493 | OP_FMSUB213SS,
|
---|
494 | OP_FNMADD213PS,
|
---|
495 | OP_FNMADD213SS,
|
---|
496 | OP_FNMSUB213PS,
|
---|
497 | OP_FNMSUB213SS,
|
---|
498 | OP_FMADDSUB231PS,
|
---|
499 | OP_FMSUBADD231PS,
|
---|
500 | OP_FMADD231PS,
|
---|
501 | OP_FMADD231SS,
|
---|
502 | OP_FMSUB231PS,
|
---|
503 | OP_FMSUB231SS,
|
---|
504 | OP_FNMADD231PS,
|
---|
505 | OP_FNMADD231SS,
|
---|
506 | OP_FNMSUB231PS,
|
---|
507 | OP_FNMSUB231SS,
|
---|
508 | OP_AESIMC,
|
---|
509 | OP_AESENC,
|
---|
510 | OP_AESENCLAST,
|
---|
511 | OP_AESDEC,
|
---|
512 | OP_AESDECLAST,
|
---|
513 | OP_MOVBEGM,
|
---|
514 | OP_MOVBEMG,
|
---|
515 | OP_CRC32,
|
---|
516 | OP_POPCNT,
|
---|
517 | OP_TZCNT,
|
---|
518 | OP_LZCNT,
|
---|
519 | OP_ADCX,
|
---|
520 | OP_ADOX,
|
---|
521 | OP_ANDN,
|
---|
522 | OP_BZHI,
|
---|
523 | OP_BEXTR,
|
---|
524 | OP_BLSR,
|
---|
525 | OP_BLSMSK,
|
---|
526 | OP_BLSI,
|
---|
527 | OP_PEXT,
|
---|
528 | OP_PDEP,
|
---|
529 | OP_SHLX,
|
---|
530 | OP_SHRX,
|
---|
531 | OP_SARX,
|
---|
532 | OP_MULX,
|
---|
533 | OP_MASKMOVDQU,
|
---|
534 | OP_MASKMOVPS,
|
---|
535 | OP_MASKMOVPD,
|
---|
536 | OP_MOVSD,
|
---|
537 | OP_CVTSI2SD,
|
---|
538 | OP_CVTTSD2SI,
|
---|
539 | OP_CVTSD2SI,
|
---|
540 | OP_SQRTSD,
|
---|
541 | OP_ADDSD,
|
---|
542 | OP_MULSD,
|
---|
543 | OP_CVTSD2SS,
|
---|
544 | OP_SUBSD,
|
---|
545 | OP_MINSD,
|
---|
546 | OP_DIVSD,
|
---|
547 | OP_MAXSD,
|
---|
548 | OP_PSHUFLW,
|
---|
549 | OP_CMPSD,
|
---|
550 | OP_MOVDQ2Q,
|
---|
551 | OP_CVTPD2DQ,
|
---|
552 | OP_MOVSS,
|
---|
553 | OP_MOVSLDUP,
|
---|
554 | OP_MOVDDUP,
|
---|
555 | OP_MOVSHDUP,
|
---|
556 | OP_CVTSI2SS,
|
---|
557 | OP_CVTTSS2SI,
|
---|
558 | OP_CVTSS2SI,
|
---|
559 | OP_CVTSS2SD,
|
---|
560 | OP_SQRTSS,
|
---|
561 | OP_RSQRTSS,
|
---|
562 | OP_RCPSS,
|
---|
563 | OP_ADDSS,
|
---|
564 | OP_MULSS,
|
---|
565 | OP_CVTTPS2DQ,
|
---|
566 | OP_SUBSS,
|
---|
567 | OP_MINSS,
|
---|
568 | OP_DIVSS,
|
---|
569 | OP_MAXSS,
|
---|
570 | OP_MOVDQU,
|
---|
571 | OP_PSHUFHW,
|
---|
572 | OP_CMPSS,
|
---|
573 | OP_MOVQ2DQ,
|
---|
574 | OP_CVTDQ2PD,
|
---|
575 | OP_PERMQ,
|
---|
576 | OP_PERMPD,
|
---|
577 | OP_PBLENDD,
|
---|
578 | OP_PERM2F128,
|
---|
579 | OP_ROUNDPS,
|
---|
580 | OP_ROUNDPD,
|
---|
581 | OP_ROUNDSS,
|
---|
582 | OP_ROUNDSD,
|
---|
583 | OP_BLENDPS,
|
---|
584 | OP_BLENDPD,
|
---|
585 | OP_PBLENDW,
|
---|
586 | OP_PALIGNR,
|
---|
587 | OP_PEXTRB,
|
---|
588 | OP_PEXTRD,
|
---|
589 | OP_PEXTRQ,
|
---|
590 | OP_EXTRACTPS,
|
---|
591 | OP_INSERTF128,
|
---|
592 | OP_EXTRACTF128,
|
---|
593 | OP_CVTPS2PH,
|
---|
594 | OP_PINSRB,
|
---|
595 | OP_PINSRD,
|
---|
596 | OP_PINSRQ,
|
---|
597 | OP_INSERTPS,
|
---|
598 | OP_INSERTI128,
|
---|
599 | OP_EXTRACTI128,
|
---|
600 | OP_DPPS,
|
---|
601 | OP_DPPD,
|
---|
602 | OP_MPSADBW,
|
---|
603 | OP_PCLMULQDQ,
|
---|
604 | OP_PERM2I128,
|
---|
605 | OP_PCMPESTRM,
|
---|
606 | OP_PCMPESTRI,
|
---|
607 | OP_PCMPISTRM,
|
---|
608 | OP_PCMPISTRI,
|
---|
609 | OP_AESKEYGEN,
|
---|
610 | OP_RORX,
|
---|
611 | OP_RDPID,
|
---|
612 | OP_RDRAND,
|
---|
613 | OP_RDSEED,
|
---|
614 | OP_MOVBE,
|
---|
615 | OP_SHA1NEXTE,
|
---|
616 | OP_SHA1MSG1,
|
---|
617 | OP_SHA1MSG2,
|
---|
618 | OP_SHA256RNDS2,
|
---|
619 | OP_SHA256MSG1,
|
---|
620 | OP_SHA256MSG2,
|
---|
621 | OP_SHA1RNDS4,
|
---|
622 | OP_VEX3B,
|
---|
623 | OP_VEX2B,
|
---|
624 | OP_ENCLS,
|
---|
625 | OP_ENCLU,
|
---|
626 | OP_ENCLV,
|
---|
627 | OP_XEND,
|
---|
628 | OP_XTEST,
|
---|
629 | /** @} */
|
---|
630 |
|
---|
631 | /** @name Floating point ops
|
---|
632 | * @{ */
|
---|
633 | OP_FADD,
|
---|
634 | OP_FMUL,
|
---|
635 | OP_FCOM,
|
---|
636 | OP_FCOMP,
|
---|
637 | OP_FSUB,
|
---|
638 | OP_FSUBR,
|
---|
639 | OP_FDIV,
|
---|
640 | OP_FDIVR,
|
---|
641 | OP_FLD,
|
---|
642 | OP_FST,
|
---|
643 | OP_FSTP,
|
---|
644 | OP_FLDENV,
|
---|
645 | OP_FSTENV,
|
---|
646 | OP_FSTCW,
|
---|
647 | OP_FXCH,
|
---|
648 | OP_FNOP,
|
---|
649 | OP_FCHS,
|
---|
650 | OP_FABS,
|
---|
651 | OP_FLD1,
|
---|
652 | OP_FLDL2T,
|
---|
653 | OP_FLDL2E,
|
---|
654 | OP_FLDPI,
|
---|
655 | OP_FLDLG2,
|
---|
656 | OP_FLDLN2,
|
---|
657 | OP_FLDZ,
|
---|
658 | OP_F2XM1,
|
---|
659 | OP_FYL2X,
|
---|
660 | OP_FPTAN,
|
---|
661 | OP_FPATAN,
|
---|
662 | OP_FXTRACT,
|
---|
663 | OP_FREM1,
|
---|
664 | OP_FDECSTP,
|
---|
665 | OP_FINCSTP,
|
---|
666 | OP_FPREM,
|
---|
667 | OP_FYL2XP1,
|
---|
668 | OP_FSQRT,
|
---|
669 | OP_FSINCOS,
|
---|
670 | OP_FRNDINT,
|
---|
671 | OP_FSCALE,
|
---|
672 | OP_FSIN,
|
---|
673 | OP_FCOS,
|
---|
674 | OP_FIADD,
|
---|
675 | OP_FIMUL,
|
---|
676 | OP_FISUB,
|
---|
677 | OP_FISUBR,
|
---|
678 | OP_FIDIV,
|
---|
679 | OP_FIDIVR,
|
---|
680 | OP_FCMOVB,
|
---|
681 | OP_FCMOVE,
|
---|
682 | OP_FCMOVBE,
|
---|
683 | OP_FCMOVU,
|
---|
684 | OP_FUCOMPP,
|
---|
685 | OP_FILD,
|
---|
686 | OP_FIST,
|
---|
687 | OP_FISTP,
|
---|
688 | OP_FCMOVNB,
|
---|
689 | OP_FCMOVNE,
|
---|
690 | OP_FCMOVNBE,
|
---|
691 | OP_FCMOVNU,
|
---|
692 | OP_FCLEX,
|
---|
693 | OP_FINIT,
|
---|
694 | OP_FUCOMI,
|
---|
695 | OP_FCOMI,
|
---|
696 | OP_FRSTOR,
|
---|
697 | OP_FSAVE,
|
---|
698 | OP_FNSTSW,
|
---|
699 | OP_FFREE,
|
---|
700 | OP_FUCOM,
|
---|
701 | OP_FUCOMP,
|
---|
702 | OP_FICOM,
|
---|
703 | OP_FICOMP,
|
---|
704 | OP_FADDP,
|
---|
705 | OP_FMULP,
|
---|
706 | OP_FCOMPP,
|
---|
707 | OP_FSUBRP,
|
---|
708 | OP_FSUBP,
|
---|
709 | OP_FDIVRP,
|
---|
710 | OP_FDIVP,
|
---|
711 | OP_FBLD,
|
---|
712 | OP_FBSTP,
|
---|
713 | OP_FCOMIP,
|
---|
714 | OP_FUCOMIP,
|
---|
715 | /** @} */
|
---|
716 |
|
---|
717 | /** @name 3DNow!
|
---|
718 | * @{ */
|
---|
719 | OP_PI2FW,
|
---|
720 | OP_PI2FD,
|
---|
721 | OP_PF2IW,
|
---|
722 | OP_PF2ID,
|
---|
723 | OP_PFPNACC,
|
---|
724 | OP_PFCMPGE,
|
---|
725 | OP_PFMIN,
|
---|
726 | OP_PFRCP,
|
---|
727 | OP_PFRSQRT,
|
---|
728 | OP_PFSUB,
|
---|
729 | OP_PFADD,
|
---|
730 | OP_PFCMPGT,
|
---|
731 | OP_PFMAX,
|
---|
732 | OP_PFRCPIT1,
|
---|
733 | OP_PFRSQRTIT1,
|
---|
734 | OP_PFSUBR,
|
---|
735 | OP_PFACC,
|
---|
736 | OP_PFCMPEQ,
|
---|
737 | OP_PFMUL,
|
---|
738 | OP_PFRCPIT2,
|
---|
739 | OP_PFMULHRW,
|
---|
740 | OP_PFSWAPD,
|
---|
741 | OP_PAVGUSB,
|
---|
742 | OP_PFNACC,
|
---|
743 | /** @} */
|
---|
744 | OP_ROL,
|
---|
745 | OP_ROR,
|
---|
746 | OP_RCL,
|
---|
747 | OP_RCR,
|
---|
748 | OP_SHL,
|
---|
749 | OP_SHR,
|
---|
750 | OP_SAR,
|
---|
751 | OP_NOT,
|
---|
752 | OP_NEG,
|
---|
753 | OP_MUL,
|
---|
754 | OP_DIV,
|
---|
755 | OP_IDIV,
|
---|
756 | OP_SLDT,
|
---|
757 | OP_STR,
|
---|
758 | OP_LLDT,
|
---|
759 | OP_LTR,
|
---|
760 | OP_VERR,
|
---|
761 | OP_VERW,
|
---|
762 | OP_SGDT,
|
---|
763 | OP_LGDT,
|
---|
764 | OP_SIDT,
|
---|
765 | OP_LIDT,
|
---|
766 | OP_SMSW,
|
---|
767 | OP_LMSW,
|
---|
768 | OP_INVLPG,
|
---|
769 | OP_CMPXCHG8B,
|
---|
770 | OP_CMPXCHG16B,
|
---|
771 | OP_PSLLQ,
|
---|
772 | OP_PSRLDQ,
|
---|
773 | OP_PSLLDQ,
|
---|
774 | OP_FXSAVE,
|
---|
775 | OP_FXRSTOR,
|
---|
776 | OP_LDMXCSR,
|
---|
777 | OP_STMXCSR,
|
---|
778 | OP_XSAVE,
|
---|
779 | OP_XSAVEOPT,
|
---|
780 | OP_XRSTOR,
|
---|
781 | OP_XGETBV,
|
---|
782 | OP_XSETBV,
|
---|
783 | OP_RDFSBASE,
|
---|
784 | OP_RDGSBASE,
|
---|
785 | OP_WRFSBASE,
|
---|
786 | OP_WRGSBASE,
|
---|
787 | OP_LFENCE,
|
---|
788 | OP_MFENCE,
|
---|
789 | OP_SFENCE,
|
---|
790 | OP_PREFETCH,
|
---|
791 | OP_MONITOR,
|
---|
792 | OP_MWAIT,
|
---|
793 | OP_CLFLUSH,
|
---|
794 | OP_CLFLUSHOPT,
|
---|
795 | OP_MOV_DR,
|
---|
796 | OP_MOV_TR,
|
---|
797 | OP_SWAPGS,
|
---|
798 | OP_UD1,
|
---|
799 | OP_UD2,
|
---|
800 | /** @name VT-x instructions
|
---|
801 | * @{ */
|
---|
802 | OP_VMREAD,
|
---|
803 | OP_VMWRITE,
|
---|
804 | OP_VMCALL,
|
---|
805 | OP_VMXON,
|
---|
806 | OP_VMXOFF,
|
---|
807 | OP_VMCLEAR,
|
---|
808 | OP_VMLAUNCH,
|
---|
809 | OP_VMRESUME,
|
---|
810 | OP_VMPTRLD,
|
---|
811 | OP_VMPTRST,
|
---|
812 | OP_INVEPT,
|
---|
813 | OP_INVVPID,
|
---|
814 | OP_INVPCID,
|
---|
815 | OP_VMFUNC,
|
---|
816 | /** @} */
|
---|
817 | /** @name AMD-V instructions
|
---|
818 | * @{ */
|
---|
819 | OP_VMMCALL,
|
---|
820 | OP_VMRUN,
|
---|
821 | OP_VMLOAD,
|
---|
822 | OP_VMSAVE,
|
---|
823 | OP_CLGI,
|
---|
824 | OP_STGI,
|
---|
825 | OP_INVLPGA,
|
---|
826 | OP_SKINIT,
|
---|
827 | /** @} */
|
---|
828 | /** @name 64 bits instruction
|
---|
829 | * @{ */
|
---|
830 | OP_MOVSXD,
|
---|
831 | /** @} */
|
---|
832 | /** @name AVX instructions
|
---|
833 | * @{ */
|
---|
834 | /* Manual */
|
---|
835 | OP_VSTMXCSR,
|
---|
836 | OP_VLDMXCSR,
|
---|
837 | OP_VPACKUSDW,
|
---|
838 |
|
---|
839 | /* Generated from tables: */
|
---|
840 | OP_VADDPD,
|
---|
841 | OP_VADDPS,
|
---|
842 | OP_VADDSD,
|
---|
843 | OP_VADDSS,
|
---|
844 | OP_VADDSUBPD,
|
---|
845 | OP_VADDSUBPS,
|
---|
846 | OP_VAESDEC,
|
---|
847 | OP_VAESDECLAST,
|
---|
848 | OP_VAESENC,
|
---|
849 | OP_VAESENCLAST,
|
---|
850 | OP_VAESIMC,
|
---|
851 | OP_VAESKEYGEN,
|
---|
852 | OP_VANDNPD,
|
---|
853 | OP_VANDNPS,
|
---|
854 | OP_VANDPD,
|
---|
855 | OP_VANDPS,
|
---|
856 | OP_VBLENDPD,
|
---|
857 | OP_VBLENDPS,
|
---|
858 | OP_VBLENDVPD,
|
---|
859 | OP_VBLENDVPS,
|
---|
860 | OP_VBROADCASTF128,
|
---|
861 | OP_VBROADCASTSD,
|
---|
862 | OP_VBROADCASTSS,
|
---|
863 | OP_VCMPPD,
|
---|
864 | OP_VCMPPS,
|
---|
865 | OP_VCMPSD,
|
---|
866 | OP_VCMPSS,
|
---|
867 | OP_VCOMISD,
|
---|
868 | OP_VCOMISS,
|
---|
869 | OP_VCVTDQ2PD,
|
---|
870 | OP_VCVTDQ2PS,
|
---|
871 | OP_VCVTPD2DQ,
|
---|
872 | OP_VCVTPD2PS,
|
---|
873 | OP_VCVTPH2PS,
|
---|
874 | OP_VCVTPS2DQ,
|
---|
875 | OP_VCVTPS2PD,
|
---|
876 | OP_VCVTPS2PH,
|
---|
877 | OP_VCVTSD2SI,
|
---|
878 | OP_VCVTSD2SS,
|
---|
879 | OP_VCVTSI2SS,
|
---|
880 | OP_VCVTSI2SD,
|
---|
881 | OP_VCVTSS2SD,
|
---|
882 | OP_VCVTSS2SI,
|
---|
883 | OP_VCVTTPD2DQ,
|
---|
884 | OP_VCVTTPS2DQ,
|
---|
885 | OP_VCVTTSD2SI,
|
---|
886 | OP_VCVTTSS2SI,
|
---|
887 | OP_VDIVPD,
|
---|
888 | OP_VDIVPS,
|
---|
889 | OP_VDIVSD,
|
---|
890 | OP_VDIVSS,
|
---|
891 | OP_VDPPD,
|
---|
892 | OP_VDPPS,
|
---|
893 | OP_VEXTRACTF128,
|
---|
894 | OP_VEXTRACTI128,
|
---|
895 | OP_VEXTRACTPS,
|
---|
896 | OP_VFMADD132PS,
|
---|
897 | OP_VFMADD132SS,
|
---|
898 | OP_VFMADD213PS,
|
---|
899 | OP_VFMADD213SS,
|
---|
900 | OP_VFMADD231PS,
|
---|
901 | OP_VFMADD231SS,
|
---|
902 | OP_VFMADDSUB132PS,
|
---|
903 | OP_VFMADDSUB213PS,
|
---|
904 | OP_VFMADDSUB231PS,
|
---|
905 | OP_VFMSUB132PS,
|
---|
906 | OP_VFMSUB132SS,
|
---|
907 | OP_VFMSUB213PS,
|
---|
908 | OP_VFMSUB213SS,
|
---|
909 | OP_VFMSUB231PS,
|
---|
910 | OP_VFMSUB231SS,
|
---|
911 | OP_VFMSUBADD132PS,
|
---|
912 | OP_VFMSUBADD213PS,
|
---|
913 | OP_VFMSUBADD231PS,
|
---|
914 | OP_VFNMADD132PS,
|
---|
915 | OP_VFNMADD132SS,
|
---|
916 | OP_VFNMADD213PS,
|
---|
917 | OP_VFNMADD213SS,
|
---|
918 | OP_VFNMADD231PS,
|
---|
919 | OP_VFNMADD231SS,
|
---|
920 | OP_VFNMSUB132PS,
|
---|
921 | OP_VFNMSUB132SS,
|
---|
922 | OP_VFNMSUB213PS,
|
---|
923 | OP_VFNMSUB213SS,
|
---|
924 | OP_VFNMSUB231PS,
|
---|
925 | OP_VFNMSUB231SS,
|
---|
926 | OP_VGATHER,
|
---|
927 | OP_VGATHERDPS,
|
---|
928 | OP_VGATHERDPD,
|
---|
929 | OP_VGATHERQPS,
|
---|
930 | OP_VGATHERQPD,
|
---|
931 | OP_VHADDPD,
|
---|
932 | OP_VHADDPS,
|
---|
933 | OP_VHSUBPD,
|
---|
934 | OP_VHSUBPS,
|
---|
935 | OP_VINSERTF128,
|
---|
936 | OP_VINSERTI128,
|
---|
937 | OP_VINSERTPS,
|
---|
938 | OP_VLDDQU,
|
---|
939 | OP_VMASKMOVDQU,
|
---|
940 | OP_VMASKMOVPD,
|
---|
941 | OP_VMASKMOVPS,
|
---|
942 | OP_VMAXPD,
|
---|
943 | OP_VMAXPS,
|
---|
944 | OP_VMAXSD,
|
---|
945 | OP_VMAXSS,
|
---|
946 | OP_VMINPD,
|
---|
947 | OP_VMINPS,
|
---|
948 | OP_VMINSD,
|
---|
949 | OP_VMINSS,
|
---|
950 | OP_VMOVAPD,
|
---|
951 | OP_VMOVAPS,
|
---|
952 | OP_VMOVD,
|
---|
953 | OP_VMOVDDUP,
|
---|
954 | OP_VMOVDQA,
|
---|
955 | OP_VMOVDQU,
|
---|
956 | OP_VMOVHPD,
|
---|
957 | OP_VMOVHPS,
|
---|
958 | OP_VMOVLHPS = OP_VMOVHPS, /**< @todo OP_VMOVHPS */
|
---|
959 | OP_VMOVLPD,
|
---|
960 | OP_VMOVLPS,
|
---|
961 | OP_VMOVHLPS = OP_VMOVLPS, /**< @todo OP_VMOVLPS */
|
---|
962 | OP_VMOVMSKPD,
|
---|
963 | OP_VMOVMSKPS,
|
---|
964 | OP_VMOVNTDQ,
|
---|
965 | OP_VMOVNTDQA,
|
---|
966 | OP_VMOVNTPD,
|
---|
967 | OP_VMOVNTPS,
|
---|
968 | OP_VMOVQ,
|
---|
969 | OP_VMOVSD,
|
---|
970 | OP_VMOVSHDUP,
|
---|
971 | OP_VMOVSLDUP,
|
---|
972 | OP_VMOVSS,
|
---|
973 | OP_VMOVUPD,
|
---|
974 | OP_VMOVUPS,
|
---|
975 | OP_VMPSADBW,
|
---|
976 | OP_VMULPD,
|
---|
977 | OP_VMULPS,
|
---|
978 | OP_VMULSD,
|
---|
979 | OP_VMULSS,
|
---|
980 | OP_VORPD,
|
---|
981 | OP_VORPS,
|
---|
982 | OP_VPABSB,
|
---|
983 | OP_VPABSD,
|
---|
984 | OP_VPABSW,
|
---|
985 | OP_VPACKSSDW,
|
---|
986 | OP_VPACKSSWB,
|
---|
987 | OP_VPACKUSWB,
|
---|
988 | OP_VPADDB,
|
---|
989 | OP_VPADDD,
|
---|
990 | OP_VPADDQ,
|
---|
991 | OP_VPADDSB,
|
---|
992 | OP_VPADDSW,
|
---|
993 | OP_VPADDUSB,
|
---|
994 | OP_VPADDUSW,
|
---|
995 | OP_VPADDW,
|
---|
996 | OP_VPALIGNR,
|
---|
997 | OP_VPAND,
|
---|
998 | OP_VPANDN,
|
---|
999 | OP_VPAVGB,
|
---|
1000 | OP_VPAVGW,
|
---|
1001 | OP_VPBLENDD,
|
---|
1002 | OP_VPBLENDVB,
|
---|
1003 | OP_VPBLENDW,
|
---|
1004 | OP_VPBROADCASTB,
|
---|
1005 | OP_VPBROADCASTD,
|
---|
1006 | OP_VBROADCASTI128,
|
---|
1007 | OP_VPBROADCASTQ,
|
---|
1008 | OP_VPBROADCASTW,
|
---|
1009 | OP_VPCLMULQDQ,
|
---|
1010 | OP_VPCMPEQB,
|
---|
1011 | OP_VPCMPEQD,
|
---|
1012 | OP_VPCMPEQQ,
|
---|
1013 | OP_VPCMPEQW,
|
---|
1014 | OP_VPCMPESTRI,
|
---|
1015 | OP_VPCMPESTRM,
|
---|
1016 | OP_VPCMPGTB,
|
---|
1017 | OP_VPCMPGTD,
|
---|
1018 | OP_VPCMPGTQ,
|
---|
1019 | OP_VPCMPGTW,
|
---|
1020 | OP_VPCMPISTRI,
|
---|
1021 | OP_VPCMPISTRM,
|
---|
1022 | OP_VPERM2F128,
|
---|
1023 | OP_VPERM2I128,
|
---|
1024 | OP_VPERMD,
|
---|
1025 | OP_VPERMILPD,
|
---|
1026 | OP_VPERMILPS,
|
---|
1027 | OP_VPERMPD,
|
---|
1028 | OP_VPERMPS,
|
---|
1029 | OP_VPERMQ,
|
---|
1030 | OP_VPEXTRB,
|
---|
1031 | OP_VPEXTRD,
|
---|
1032 | OP_VPEXTRW,
|
---|
1033 | OP_VPEXTRQ,
|
---|
1034 | OP_VPGATHERDD,
|
---|
1035 | OP_VPGATHERDQ,
|
---|
1036 | OP_VPGATHERQD,
|
---|
1037 | OP_VPGATHERQQ,
|
---|
1038 | OP_VPHADDD,
|
---|
1039 | OP_VPHADDSW,
|
---|
1040 | OP_VPHADDW,
|
---|
1041 | OP_VPHMINPOSUW,
|
---|
1042 | OP_VPHSUBD,
|
---|
1043 | OP_VPHSUBSW,
|
---|
1044 | OP_VPHSUBW,
|
---|
1045 | OP_VPINSRB,
|
---|
1046 | OP_VPINSRD,
|
---|
1047 | OP_VPINSRW,
|
---|
1048 | OP_VPINSRQ,
|
---|
1049 | OP_VPMADDUBSW,
|
---|
1050 | OP_VPMADDWD,
|
---|
1051 | OP_VPMASKMOVD,
|
---|
1052 | OP_VPMAXSB,
|
---|
1053 | OP_VPMAXSD,
|
---|
1054 | OP_VPMAXSW,
|
---|
1055 | OP_VPMAXUB,
|
---|
1056 | OP_VPMAXUD,
|
---|
1057 | OP_VPMAXUW,
|
---|
1058 | OP_VPMINSB,
|
---|
1059 | OP_VPMINSD,
|
---|
1060 | OP_VPMINSW,
|
---|
1061 | OP_VPMINUB,
|
---|
1062 | OP_VPMINUD,
|
---|
1063 | OP_VPMINUW,
|
---|
1064 | OP_VPMOVMSKB,
|
---|
1065 | OP_VPMOVSXBW,
|
---|
1066 | OP_VPMOVSXBD,
|
---|
1067 | OP_VPMOVSXBQ,
|
---|
1068 | OP_VPMOVSXWD,
|
---|
1069 | OP_VPMOVSXWQ,
|
---|
1070 | OP_VPMOVSXDQ,
|
---|
1071 | OP_VPMOVZXBW,
|
---|
1072 | OP_VPMOVZXBD,
|
---|
1073 | OP_VPMOVZXBQ,
|
---|
1074 | OP_VPMOVZXWD,
|
---|
1075 | OP_VPMOVZXWQ,
|
---|
1076 | OP_VPMOVZXDQ,
|
---|
1077 | OP_VPMULDQ,
|
---|
1078 | OP_VPMULHRSW,
|
---|
1079 | OP_VPMULHUW,
|
---|
1080 | OP_VPMULHW,
|
---|
1081 | OP_VPMULLD,
|
---|
1082 | OP_VPMULLW,
|
---|
1083 | OP_VPMULUDQ,
|
---|
1084 | OP_VPOR,
|
---|
1085 | OP_VPSADBW,
|
---|
1086 | OP_VPSHUFB,
|
---|
1087 | OP_VPSHUFD,
|
---|
1088 | OP_VPSHUFHW,
|
---|
1089 | OP_VPSHUFLW,
|
---|
1090 | OP_VPSIGNB,
|
---|
1091 | OP_VPSIGND,
|
---|
1092 | OP_VPSIGNW,
|
---|
1093 | OP_VPSLLD,
|
---|
1094 | OP_VPSLLQ,
|
---|
1095 | OP_VPSLLDQ,
|
---|
1096 | OP_VPSLLVD,
|
---|
1097 | OP_VPSLLVQ,
|
---|
1098 | OP_VPSLLW,
|
---|
1099 | OP_VPSRAD,
|
---|
1100 | OP_VPSRAVD,
|
---|
1101 | OP_VPSRAW,
|
---|
1102 | OP_VPSRLD,
|
---|
1103 | OP_VPSRLDQ,
|
---|
1104 | OP_VPSRLQ,
|
---|
1105 | OP_VPSRLVD,
|
---|
1106 | OP_VPSRLVQ,
|
---|
1107 | OP_VPSRLW,
|
---|
1108 | OP_VPSUBB,
|
---|
1109 | OP_VPSUBD,
|
---|
1110 | OP_VPSUBQ,
|
---|
1111 | OP_VPSUBSB,
|
---|
1112 | OP_VPSUBSW,
|
---|
1113 | OP_VPSUBUSB,
|
---|
1114 | OP_VPSUBUSW,
|
---|
1115 | OP_VPSUBW,
|
---|
1116 | OP_VPTEST,
|
---|
1117 | OP_VPUNPCKHBW,
|
---|
1118 | OP_VPUNPCKHDQ,
|
---|
1119 | OP_VPUNPCKHQDQ,
|
---|
1120 | OP_VPUNPCKHWD,
|
---|
1121 | OP_VPUNPCKLBW,
|
---|
1122 | OP_VPUNPCKLDQ,
|
---|
1123 | OP_VPUNPCKLQDQ,
|
---|
1124 | OP_VPUNPCKLWD,
|
---|
1125 | OP_VPXOR,
|
---|
1126 | OP_VRCPPS,
|
---|
1127 | OP_VRCPSS,
|
---|
1128 | OP_VROUNDPD,
|
---|
1129 | OP_VROUNDPS,
|
---|
1130 | OP_VROUNDSD,
|
---|
1131 | OP_VROUNDSS,
|
---|
1132 | OP_VRSQRTPS,
|
---|
1133 | OP_VRSQRTSS,
|
---|
1134 | OP_VSHUFPD,
|
---|
1135 | OP_VSHUFPS,
|
---|
1136 | OP_VSQRTPD,
|
---|
1137 | OP_VSQRTPS,
|
---|
1138 | OP_VSQRTSD,
|
---|
1139 | OP_VSQRTSS,
|
---|
1140 | OP_VSUBPD,
|
---|
1141 | OP_VSUBPS,
|
---|
1142 | OP_VSUBSD,
|
---|
1143 | OP_VSUBSS,
|
---|
1144 | OP_VTESTPD,
|
---|
1145 | OP_VTESTPS,
|
---|
1146 | OP_VUCOMISD,
|
---|
1147 | OP_VUCOMISS,
|
---|
1148 | OP_VUNPCKHPD,
|
---|
1149 | OP_VUNPCKHPS,
|
---|
1150 | OP_VUNPCKLPD,
|
---|
1151 | OP_VUNPCKLPS,
|
---|
1152 | OP_VVPACKUSDW,
|
---|
1153 | OP_VXORPD,
|
---|
1154 | OP_VXORPS,
|
---|
1155 | OP_VZEROALL,
|
---|
1156 |
|
---|
1157 | /** @} */
|
---|
1158 | OP_END_OF_OPCODES
|
---|
1159 | };
|
---|
1160 | AssertCompile(OP_LOCK == 7);
|
---|
1161 | #if 0
|
---|
1162 | AssertCompile(OP_END_OF_OPCODES < 1024 /* see 15 byte DISOPCODE variant */);
|
---|
1163 | #endif
|
---|
1164 | /** @} */
|
---|
1165 |
|
---|
1166 |
|
---|
1167 | /** @defgroup grp_dis_opparam Opcode parameters (DISOPCODE::fParam1,
|
---|
1168 | * DISOPCODE::fParam2, DISOPCODE::fParam3)
|
---|
1169 | * @ingroup grp_dis
|
---|
1170 | * @{
|
---|
1171 | */
|
---|
1172 |
|
---|
1173 | /**
|
---|
1174 | * @remarks Register order is important for translations!!
|
---|
1175 | */
|
---|
1176 | enum OP_PARM
|
---|
1177 | {
|
---|
1178 | OP_PARM_NONE,
|
---|
1179 |
|
---|
1180 | OP_PARM_REG_EAX,
|
---|
1181 | OP_PARM_REG_GEN32_START = OP_PARM_REG_EAX,
|
---|
1182 | OP_PARM_REG_ECX,
|
---|
1183 | OP_PARM_REG_EDX,
|
---|
1184 | OP_PARM_REG_EBX,
|
---|
1185 | OP_PARM_REG_ESP,
|
---|
1186 | OP_PARM_REG_EBP,
|
---|
1187 | OP_PARM_REG_ESI,
|
---|
1188 | OP_PARM_REG_EDI,
|
---|
1189 | OP_PARM_REG_GEN32_END = OP_PARM_REG_EDI,
|
---|
1190 |
|
---|
1191 | OP_PARM_REG_ES,
|
---|
1192 | OP_PARM_REG_SEG_START = OP_PARM_REG_ES,
|
---|
1193 | OP_PARM_REG_CS,
|
---|
1194 | OP_PARM_REG_SS,
|
---|
1195 | OP_PARM_REG_DS,
|
---|
1196 | OP_PARM_REG_FS,
|
---|
1197 | OP_PARM_REG_GS,
|
---|
1198 | OP_PARM_REG_SEG_END = OP_PARM_REG_GS,
|
---|
1199 |
|
---|
1200 | OP_PARM_REG_AX,
|
---|
1201 | OP_PARM_REG_GEN16_START = OP_PARM_REG_AX,
|
---|
1202 | OP_PARM_REG_CX,
|
---|
1203 | OP_PARM_REG_DX,
|
---|
1204 | OP_PARM_REG_BX,
|
---|
1205 | OP_PARM_REG_SP,
|
---|
1206 | OP_PARM_REG_BP,
|
---|
1207 | OP_PARM_REG_SI,
|
---|
1208 | OP_PARM_REG_DI,
|
---|
1209 | OP_PARM_REG_GEN16_END = OP_PARM_REG_DI,
|
---|
1210 |
|
---|
1211 | OP_PARM_REG_AL,
|
---|
1212 | OP_PARM_REG_GEN8_START = OP_PARM_REG_AL,
|
---|
1213 | OP_PARM_REG_CL,
|
---|
1214 | OP_PARM_REG_DL,
|
---|
1215 | OP_PARM_REG_BL,
|
---|
1216 | OP_PARM_REG_AH,
|
---|
1217 | OP_PARM_REG_CH,
|
---|
1218 | OP_PARM_REG_DH,
|
---|
1219 | OP_PARM_REG_BH,
|
---|
1220 | OP_PARM_REG_GEN8_END = OP_PARM_REG_BH,
|
---|
1221 |
|
---|
1222 | OP_PARM_REGFP_0,
|
---|
1223 | OP_PARM_REG_FP_START = OP_PARM_REGFP_0,
|
---|
1224 | OP_PARM_REGFP_1,
|
---|
1225 | OP_PARM_REGFP_2,
|
---|
1226 | OP_PARM_REGFP_3,
|
---|
1227 | OP_PARM_REGFP_4,
|
---|
1228 | OP_PARM_REGFP_5,
|
---|
1229 | OP_PARM_REGFP_6,
|
---|
1230 | OP_PARM_REGFP_7,
|
---|
1231 | OP_PARM_REG_FP_END = OP_PARM_REGFP_7,
|
---|
1232 |
|
---|
1233 | OP_PARM_NTA,
|
---|
1234 | OP_PARM_T0,
|
---|
1235 | OP_PARM_T1,
|
---|
1236 | OP_PARM_T2,
|
---|
1237 | OP_PARM_1,
|
---|
1238 |
|
---|
1239 | OP_PARM_REX,
|
---|
1240 | OP_PARM_REX_START = OP_PARM_REX,
|
---|
1241 | OP_PARM_REX_B,
|
---|
1242 | OP_PARM_REX_X,
|
---|
1243 | OP_PARM_REX_XB,
|
---|
1244 | OP_PARM_REX_R,
|
---|
1245 | OP_PARM_REX_RB,
|
---|
1246 | OP_PARM_REX_RX,
|
---|
1247 | OP_PARM_REX_RXB,
|
---|
1248 | OP_PARM_REX_W,
|
---|
1249 | OP_PARM_REX_WB,
|
---|
1250 | OP_PARM_REX_WX,
|
---|
1251 | OP_PARM_REX_WXB,
|
---|
1252 | OP_PARM_REX_WR,
|
---|
1253 | OP_PARM_REX_WRB,
|
---|
1254 | OP_PARM_REX_WRX,
|
---|
1255 | OP_PARM_REX_WRXB,
|
---|
1256 |
|
---|
1257 | OP_PARM_REG_RAX,
|
---|
1258 | OP_PARM_REG_GEN64_START = OP_PARM_REG_RAX,
|
---|
1259 | OP_PARM_REG_RCX,
|
---|
1260 | OP_PARM_REG_RDX,
|
---|
1261 | OP_PARM_REG_RBX,
|
---|
1262 | OP_PARM_REG_RSP,
|
---|
1263 | OP_PARM_REG_RBP,
|
---|
1264 | OP_PARM_REG_RSI,
|
---|
1265 | OP_PARM_REG_RDI,
|
---|
1266 | OP_PARM_REG_R8,
|
---|
1267 | OP_PARM_REG_R9,
|
---|
1268 | OP_PARM_REG_R10,
|
---|
1269 | OP_PARM_REG_R11,
|
---|
1270 | OP_PARM_REG_R12,
|
---|
1271 | OP_PARM_REG_R13,
|
---|
1272 | OP_PARM_REG_R14,
|
---|
1273 | OP_PARM_REG_R15,
|
---|
1274 | OP_PARM_REG_GEN64_END = OP_PARM_REG_R15,
|
---|
1275 |
|
---|
1276 | OP_PARM_REG_XMM0,
|
---|
1277 | OP_PARM_REG_SSE_START = OP_PARM_REG_XMM0,
|
---|
1278 | OP_PARM_REG_XMM1,
|
---|
1279 | OP_PARM_REG_XMM2,
|
---|
1280 | OP_PARM_REG_XMM3,
|
---|
1281 | OP_PARM_REG_XMM4,
|
---|
1282 | OP_PARM_REG_XMM5,
|
---|
1283 | OP_PARM_REG_XMM6,
|
---|
1284 | OP_PARM_REG_XMM7,
|
---|
1285 | OP_PARM_REG_XMM8,
|
---|
1286 | OP_PARM_REG_XMM9,
|
---|
1287 | OP_PARM_REG_XMM10,
|
---|
1288 | OP_PARM_REG_XMM11,
|
---|
1289 | OP_PARM_REG_XMM12,
|
---|
1290 | OP_PARM_REG_XMM13,
|
---|
1291 | OP_PARM_REG_XMM14,
|
---|
1292 | OP_PARM_REG_XMM15,
|
---|
1293 | OP_PARM_REG_SSE_END = OP_PARM_REG_XMM15
|
---|
1294 | };
|
---|
1295 |
|
---|
1296 |
|
---|
1297 | /* 8-bit GRP aliases (for IEM). */
|
---|
1298 | #define OP_PARM_AL OP_PARM_REG_AL
|
---|
1299 |
|
---|
1300 | /* GPR aliases for op-size specified register sizes (for IEM). */
|
---|
1301 | #define OP_PARM_rAX OP_PARM_REG_EAX
|
---|
1302 | #define OP_PARM_rCX OP_PARM_REG_ECX
|
---|
1303 | #define OP_PARM_rDX OP_PARM_REG_EDX
|
---|
1304 | #define OP_PARM_rBX OP_PARM_REG_EBX
|
---|
1305 | #define OP_PARM_rSP OP_PARM_REG_ESP
|
---|
1306 | #define OP_PARM_rBP OP_PARM_REG_EBP
|
---|
1307 | #define OP_PARM_rSI OP_PARM_REG_ESI
|
---|
1308 | #define OP_PARM_rDI OP_PARM_REG_EDI
|
---|
1309 |
|
---|
1310 | /* SREG aliases (for IEM). */
|
---|
1311 | #define OP_PARM_ES OP_PARM_REG_ES
|
---|
1312 | #define OP_PARM_CS OP_PARM_REG_CS
|
---|
1313 | #define OP_PARM_SS OP_PARM_REG_SS
|
---|
1314 | #define OP_PARM_DS OP_PARM_REG_DS
|
---|
1315 | #define OP_PARM_FS OP_PARM_REG_FS
|
---|
1316 | #define OP_PARM_GS OP_PARM_REG_GS
|
---|
1317 |
|
---|
1318 | /*
|
---|
1319 | * Note! We don't document anything here if we can help it, because it we love
|
---|
1320 | * wasting other peoples time figuring out crypting crap. The new VEX
|
---|
1321 | * stuff of course uphelds this vexing tradition. Aaaaaaaaaaaaaaaaaaarg!
|
---|
1322 | */
|
---|
1323 |
|
---|
1324 | #define OP_PARM_VTYPE(a) ((unsigned)a & 0xFE0)
|
---|
1325 | #define OP_PARM_VSUBTYPE(a) ((unsigned)a & 0x01F)
|
---|
1326 |
|
---|
1327 | #define OP_PARM_A 0x100
|
---|
1328 | #define OP_PARM_VARIABLE OP_PARM_A
|
---|
1329 | #define OP_PARM_E 0x120
|
---|
1330 | #define OP_PARM_F 0x140
|
---|
1331 | #define OP_PARM_G 0x160
|
---|
1332 | #define OP_PARM_I 0x180
|
---|
1333 | #define OP_PARM_J 0x1A0
|
---|
1334 | #define OP_PARM_M 0x1C0
|
---|
1335 | #define OP_PARM_O 0x1E0
|
---|
1336 | #define OP_PARM_R 0x200
|
---|
1337 | #define OP_PARM_X 0x220
|
---|
1338 | #define OP_PARM_Y 0x240
|
---|
1339 |
|
---|
1340 | /* Grouped rare parameters for optimization purposes */
|
---|
1341 | #define IS_OP_PARM_RARE(a) ((a & 0xF00) >= 0x300)
|
---|
1342 | #define OP_PARM_C 0x300 /* control register */
|
---|
1343 | #define OP_PARM_D 0x320 /* debug register */
|
---|
1344 | #define OP_PARM_S 0x340 /* segment register */
|
---|
1345 | #define OP_PARM_T 0x360 /* test register */
|
---|
1346 | #define OP_PARM_Q 0x380
|
---|
1347 | #define OP_PARM_P 0x3A0 /* mmx register */
|
---|
1348 | #define OP_PARM_W 0x3C0 /* xmm register */
|
---|
1349 | #define OP_PARM_V 0x3E0
|
---|
1350 | #define OP_PARM_U 0x400 /* The R/M field of the ModR/M byte selects XMM/YMM register. */
|
---|
1351 | #define OP_PARM_B 0x420 /* VEX.vvvv field select general purpose register. */
|
---|
1352 | #define OP_PARM_H 0x440
|
---|
1353 | #define OP_PARM_L 0x460
|
---|
1354 |
|
---|
1355 | #define OP_PARM_NONE 0
|
---|
1356 | #define OP_PARM_a 0x1 /**< Operand to bound instruction. */
|
---|
1357 | #define OP_PARM_b 0x2 /**< Byte (always). */
|
---|
1358 | #define OP_PARM_d 0x3 /**< Double word (always). */
|
---|
1359 | #define OP_PARM_dq 0x4 /**< Double quad word (always). */
|
---|
1360 | #define OP_PARM_p 0x5 /**< Far pointer (subject to opsize). */
|
---|
1361 | #define OP_PARM_pd 0x6 /**< 128-bit or 256-bit double precision floating point data. */
|
---|
1362 | #define OP_PARM_pi 0x7 /**< Quad word MMX register. */
|
---|
1363 | #define OP_PARM_ps 0x8 /**< 128-bit or 256-bit single precision floating point data. */
|
---|
1364 | #define OP_PARM_q 0xA /**< Quad word (always). */
|
---|
1365 | #define OP_PARM_s 0xB /**< Descriptor table size (SIDT/LIDT/SGDT/LGDT). */
|
---|
1366 | #define OP_PARM_sd 0xC /**< Scalar element of 128-bit double precision floating point data. */
|
---|
1367 | #define OP_PARM_ss 0xD /**< Scalar element of 128-bit single precision floating point data. */
|
---|
1368 | #define OP_PARM_v 0xE /**< Word, double word, or quad word depending on opsize. */
|
---|
1369 | #define OP_PARM_w 0xF /**< Word (always). */
|
---|
1370 | #define OP_PARM_x 0x10 /**< Double quad word (dq) or quad quad word (qq) depending on opsize. */
|
---|
1371 | #define OP_PARM_y 0x11 /**< Double word or quad word depending on opsize. */
|
---|
1372 | #define OP_PARM_z 0x12 /**< Word (16-bit opsize) or double word (32-bit/64-bit opsize). */
|
---|
1373 | #define OP_PARM_qq 0x13 /**< Quad quad word. */
|
---|
1374 |
|
---|
1375 |
|
---|
1376 | #define OP_PARM_Ap (OP_PARM_A+OP_PARM_p)
|
---|
1377 | #define OP_PARM_By (OP_PARM_B+OP_PARM_y)
|
---|
1378 | #define OP_PARM_Cd (OP_PARM_C+OP_PARM_d)
|
---|
1379 | #define OP_PARM_Dd (OP_PARM_D+OP_PARM_d)
|
---|
1380 | #define OP_PARM_Eb (OP_PARM_E+OP_PARM_b)
|
---|
1381 | #define OP_PARM_Ed (OP_PARM_E+OP_PARM_d)
|
---|
1382 | #define OP_PARM_Ep (OP_PARM_E+OP_PARM_p)
|
---|
1383 | #define OP_PARM_Ev (OP_PARM_E+OP_PARM_v)
|
---|
1384 | #define OP_PARM_Ew (OP_PARM_E+OP_PARM_w)
|
---|
1385 | #define OP_PARM_Ey (OP_PARM_E+OP_PARM_y)
|
---|
1386 | #define OP_PARM_Fv (OP_PARM_F+OP_PARM_v)
|
---|
1387 | #define OP_PARM_Gb (OP_PARM_G+OP_PARM_b)
|
---|
1388 | #define OP_PARM_Gd (OP_PARM_G+OP_PARM_d)
|
---|
1389 | #define OP_PARM_Gv (OP_PARM_G+OP_PARM_v)
|
---|
1390 | #define OP_PARM_Gw (OP_PARM_G+OP_PARM_w)
|
---|
1391 | #define OP_PARM_Gy (OP_PARM_G+OP_PARM_y)
|
---|
1392 | #define OP_PARM_Hq (OP_PARM_H+OP_PARM_q)
|
---|
1393 | #define OP_PARM_Hps (OP_PARM_H+OP_PARM_ps)
|
---|
1394 | #define OP_PARM_Hpd (OP_PARM_H+OP_PARM_pd)
|
---|
1395 | #define OP_PARM_Hdq (OP_PARM_H+OP_PARM_dq)
|
---|
1396 | #define OP_PARM_Hqq (OP_PARM_H+OP_PARM_qq)
|
---|
1397 | #define OP_PARM_Hsd (OP_PARM_H+OP_PARM_sd)
|
---|
1398 | #define OP_PARM_Hss (OP_PARM_H+OP_PARM_ss)
|
---|
1399 | #define OP_PARM_Hx (OP_PARM_H+OP_PARM_x)
|
---|
1400 | #define OP_PARM_Ib (OP_PARM_I+OP_PARM_b)
|
---|
1401 | #define OP_PARM_Id (OP_PARM_I+OP_PARM_d)
|
---|
1402 | #define OP_PARM_Iq (OP_PARM_I+OP_PARM_q)
|
---|
1403 | #define OP_PARM_Iw (OP_PARM_I+OP_PARM_w)
|
---|
1404 | #define OP_PARM_Iv (OP_PARM_I+OP_PARM_v)
|
---|
1405 | #define OP_PARM_Iz (OP_PARM_I+OP_PARM_z)
|
---|
1406 | #define OP_PARM_Jb (OP_PARM_J+OP_PARM_b)
|
---|
1407 | #define OP_PARM_Jv (OP_PARM_J+OP_PARM_v)
|
---|
1408 | #define OP_PARM_Ma (OP_PARM_M+OP_PARM_a)
|
---|
1409 | #define OP_PARM_Mb (OP_PARM_M+OP_PARM_b)
|
---|
1410 | #define OP_PARM_Mw (OP_PARM_M+OP_PARM_w)
|
---|
1411 | #define OP_PARM_Md (OP_PARM_M+OP_PARM_d)
|
---|
1412 | #define OP_PARM_Mp (OP_PARM_M+OP_PARM_p)
|
---|
1413 | #define OP_PARM_Mq (OP_PARM_M+OP_PARM_q)
|
---|
1414 | #define OP_PARM_Mdq (OP_PARM_M+OP_PARM_dq)
|
---|
1415 | #define OP_PARM_Ms (OP_PARM_M+OP_PARM_s)
|
---|
1416 | #define OP_PARM_Mx (OP_PARM_M+OP_PARM_x)
|
---|
1417 | #define OP_PARM_My (OP_PARM_M+OP_PARM_y)
|
---|
1418 | #define OP_PARM_Mps (OP_PARM_M+OP_PARM_ps)
|
---|
1419 | #define OP_PARM_Mpd (OP_PARM_M+OP_PARM_pd)
|
---|
1420 | #define OP_PARM_MVx (OP_PARM_M+OP_PARM_x) /**< VSIB encoding. AMD uses 'M*x'. @todo add a OP_PARM_VSIB or smth. */
|
---|
1421 | #define OP_PARM_Ob (OP_PARM_O+OP_PARM_b)
|
---|
1422 | #define OP_PARM_Ov (OP_PARM_O+OP_PARM_v)
|
---|
1423 | #define OP_PARM_Pq (OP_PARM_P+OP_PARM_q)
|
---|
1424 | #define OP_PARM_Pd (OP_PARM_P+OP_PARM_d)
|
---|
1425 | #define OP_PARM_Qd (OP_PARM_Q+OP_PARM_d)
|
---|
1426 | #define OP_PARM_Qq (OP_PARM_Q+OP_PARM_q)
|
---|
1427 | #define OP_PARM_Rd (OP_PARM_R+OP_PARM_d)
|
---|
1428 | #define OP_PARM_Rw (OP_PARM_R+OP_PARM_w)
|
---|
1429 | #define OP_PARM_Ry (OP_PARM_R+OP_PARM_y)
|
---|
1430 | #define OP_PARM_Sw (OP_PARM_S+OP_PARM_w)
|
---|
1431 | #define OP_PARM_Td (OP_PARM_T+OP_PARM_d)
|
---|
1432 | #define OP_PARM_Ux (OP_PARM_U+OP_PARM_x)
|
---|
1433 | #define OP_PARM_Vq (OP_PARM_V+OP_PARM_q)
|
---|
1434 | #define OP_PARM_Vx (OP_PARM_V+OP_PARM_x)
|
---|
1435 | #define OP_PARM_Vy (OP_PARM_V+OP_PARM_y)
|
---|
1436 | #define OP_PARM_Wq (OP_PARM_W+OP_PARM_q)
|
---|
1437 | /*#define OP_PARM_Ws (OP_PARM_W+OP_PARM_s) - wtf? Same as lgdt (OP_PARM_Ms)?*/
|
---|
1438 | #define OP_PARM_Wx (OP_PARM_W+OP_PARM_x)
|
---|
1439 | #define OP_PARM_Xb (OP_PARM_X+OP_PARM_b)
|
---|
1440 | #define OP_PARM_Xv (OP_PARM_X+OP_PARM_v)
|
---|
1441 | #define OP_PARM_Yb (OP_PARM_Y+OP_PARM_b)
|
---|
1442 | #define OP_PARM_Yv (OP_PARM_Y+OP_PARM_v)
|
---|
1443 |
|
---|
1444 | #define OP_PARM_Vps (OP_PARM_V+OP_PARM_ps)
|
---|
1445 | #define OP_PARM_Vss (OP_PARM_V+OP_PARM_ss)
|
---|
1446 | #define OP_PARM_Vpd (OP_PARM_V+OP_PARM_pd)
|
---|
1447 | #define OP_PARM_Vdq (OP_PARM_V+OP_PARM_dq)
|
---|
1448 | #define OP_PARM_Wps (OP_PARM_W+OP_PARM_ps)
|
---|
1449 | #define OP_PARM_Wpd (OP_PARM_W+OP_PARM_pd)
|
---|
1450 | #define OP_PARM_Wss (OP_PARM_W+OP_PARM_ss)
|
---|
1451 | #define OP_PARM_Ww (OP_PARM_W+OP_PARM_w)
|
---|
1452 | #define OP_PARM_Wd (OP_PARM_W+OP_PARM_d)
|
---|
1453 | #define OP_PARM_Wq (OP_PARM_W+OP_PARM_q)
|
---|
1454 | #define OP_PARM_Wdq (OP_PARM_W+OP_PARM_dq)
|
---|
1455 | #define OP_PARM_Wqq (OP_PARM_W+OP_PARM_qq)
|
---|
1456 | #define OP_PARM_Ppi (OP_PARM_P+OP_PARM_pi)
|
---|
1457 | #define OP_PARM_Qpi (OP_PARM_Q+OP_PARM_pi)
|
---|
1458 | #define OP_PARM_Qdq (OP_PARM_Q+OP_PARM_dq)
|
---|
1459 | #define OP_PARM_Vsd (OP_PARM_V+OP_PARM_sd)
|
---|
1460 | #define OP_PARM_Wsd (OP_PARM_W+OP_PARM_sd)
|
---|
1461 | #define OP_PARM_Vqq (OP_PARM_V+OP_PARM_qq)
|
---|
1462 | #define OP_PARM_Pdq (OP_PARM_P+OP_PARM_dq)
|
---|
1463 | #define OP_PARM_Ups (OP_PARM_U+OP_PARM_ps)
|
---|
1464 | #define OP_PARM_Upd (OP_PARM_U+OP_PARM_pd)
|
---|
1465 | #define OP_PARM_Udq (OP_PARM_U+OP_PARM_dq)
|
---|
1466 | #define OP_PARM_Lx (OP_PARM_L+OP_PARM_x)
|
---|
1467 |
|
---|
1468 | /* For making IEM / bs3-cpu-generated-1 happy: */
|
---|
1469 | #define OP_PARM_Ew_WO OP_PARM_Ew /**< Annotates write only operand. */
|
---|
1470 | #define OP_PARM_Ed_WO OP_PARM_Ed /**< Annotates write only operand. */
|
---|
1471 | #define OP_PARM_Eq (OP_PARM_E+OP_PARM_q)
|
---|
1472 | #define OP_PARM_Eq_WO OP_PARM_Eq /**< Annotates write only operand. */
|
---|
1473 | #define OP_PARM_Ey_WO OP_PARM_Ey /**< Annotates write only operand. */
|
---|
1474 | #define OP_PARM_Gv_RO OP_PARM_Gv /**< Annotates read only first operand (default is readwrite). */
|
---|
1475 | #define OP_PARM_HssHi OP_PARM_Hx /**< Register referenced by VEX.vvvv, bits [127:32]. */
|
---|
1476 | #define OP_PARM_HsdHi OP_PARM_Hx /**< Register referenced by VEX.vvvv, bits [127:64]. */
|
---|
1477 | #define OP_PARM_HqHi OP_PARM_Hx /**< Register referenced by VEX.vvvv, bits [127:64]. */
|
---|
1478 | #define OP_PARM_M_RO OP_PARM_M /**< Annotates read only memory of variable operand size (xrstor). */
|
---|
1479 | #define OP_PARM_M_RW OP_PARM_M /**< Annotates read-write memory of variable operand size (xsave). */
|
---|
1480 | #define OP_PARM_Mb_RO OP_PARM_Mb /**< Annotates read only memory byte operand. */
|
---|
1481 | #define OP_PARM_Md_RO OP_PARM_Md /**< Annotates read only memory operand. */
|
---|
1482 | #define OP_PARM_MVx_RO OP_PARM_MVx /**< Annotates read only memory operand. */
|
---|
1483 | #define OP_PARM_Md_WO OP_PARM_Md /**< Annotates write only memory operand. */
|
---|
1484 | #define OP_PARM_Mdq_WO OP_PARM_Mdq /**< Annotates write only memory operand. */
|
---|
1485 | #define OP_PARM_Mq_WO OP_PARM_Mq /**< Annotates write only memory quad word operand. */
|
---|
1486 | #define OP_PARM_Mps_WO OP_PARM_Mps /**< Annotates write only memory operand. */
|
---|
1487 | #define OP_PARM_Mpd_WO OP_PARM_Mpd /**< Annotates write only memory operand. */
|
---|
1488 | #define OP_PARM_Mx_WO OP_PARM_Mx /**< Annotates write only memory operand. */
|
---|
1489 | #define OP_PARM_MVx_WO OP_PARM_MVx /**< Annotates write only memory operand. */
|
---|
1490 | #define OP_PARM_PdZx_WO OP_PARM_Pd /**< Annotates write only operand and zero extends to 64-bit. */
|
---|
1491 | #define OP_PARM_Pq_WO OP_PARM_Pq /**< Annotates write only operand. */
|
---|
1492 | #define OP_PARM_Qq_WO OP_PARM_Qq /**< Annotates write only operand. */
|
---|
1493 | #define OP_PARM_Nq OP_PARM_Qq /**< Missing 'N' class (MMX reg selected by modrm.mem) in disasm. */
|
---|
1494 | #define OP_PARM_Uq (OP_PARM_U+OP_PARM_q)
|
---|
1495 | #define OP_PARM_UqHi (OP_PARM_U+OP_PARM_dq)
|
---|
1496 | #define OP_PARM_Uss (OP_PARM_U+OP_PARM_ss)
|
---|
1497 | #define OP_PARM_Uss_WO OP_PARM_Uss /**< Annotates write only operand. */
|
---|
1498 | #define OP_PARM_Usd (OP_PARM_U+OP_PARM_sd)
|
---|
1499 | #define OP_PARM_Usd_WO OP_PARM_Usd /**< Annotates write only operand. */
|
---|
1500 | #define OP_PARM_Vd (OP_PARM_V+OP_PARM_d)
|
---|
1501 | #define OP_PARM_Vd_WO OP_PARM_Vd /**< Annotates write only operand. */
|
---|
1502 | #define OP_PARM_VdZx_WO OP_PARM_Vd /**< Annotates that the registers get their upper bits cleared */
|
---|
1503 | #define OP_PARM_Vdq_WO OP_PARM_Vdq /**< Annotates that only YMM/XMM[127:64] are accessed. */
|
---|
1504 | #define OP_PARM_Vpd_WO OP_PARM_Vpd /**< Annotates write only operand. */
|
---|
1505 | #define OP_PARM_Vps_WO OP_PARM_Vps /**< Annotates write only operand. */
|
---|
1506 | #define OP_PARM_Vq_WO OP_PARM_Vq /**< Annotates write only operand. */
|
---|
1507 | #define OP_PARM_VqHi OP_PARM_Vdq /**< Annotates that only YMM/XMM[127:64] are accessed. */
|
---|
1508 | #define OP_PARM_VqHi_WO OP_PARM_Vdq /**< Annotates that only YMM/XMM[127:64] are written. */
|
---|
1509 | #define OP_PARM_VqZx_WO OP_PARM_Vq /**< Annotates that the registers get their upper bits cleared */
|
---|
1510 | #define OP_PARM_Vqq_WO OP_PARM_Vq /**< Annotates write only operand. */
|
---|
1511 | #define OP_PARM_VsdZx_WO OP_PARM_Vsd /**< Annotates that the registers get their upper bits cleared. */
|
---|
1512 | #define OP_PARM_VssZx_WO OP_PARM_Vss /**< Annotates that the registers get their upper bits cleared. */
|
---|
1513 | #define OP_PARM_Vss_WO OP_PARM_Vss /**< Annotates write only operand. */
|
---|
1514 | #define OP_PARM_Vsd_WO OP_PARM_Vsd /**< Annotates write only operand. */
|
---|
1515 | #define OP_PARM_Vx_WO OP_PARM_Vx /**< Annotates write only operand. */
|
---|
1516 | #define OP_PARM_Wpd_WO OP_PARM_Wpd /**< Annotates write only operand. */
|
---|
1517 | #define OP_PARM_Wps_WO OP_PARM_Wps /**< Annotates write only operand. */
|
---|
1518 | #define OP_PARM_Wq_WO OP_PARM_Wq /**< Annotates write only operand. */
|
---|
1519 | #define OP_PARM_WqZxReg_WO OP_PARM_Wq /**< Annotates that register targets get their upper bits cleared. */
|
---|
1520 | #define OP_PARM_Wss_WO OP_PARM_Wss /**< Annotates write only operand. */
|
---|
1521 | #define OP_PARM_Wsd_WO OP_PARM_Wsd /**< Annotates write only operand. */
|
---|
1522 | #define OP_PARM_Wx_WO OP_PARM_Wx /**< Annotates write only operand. */
|
---|
1523 |
|
---|
1524 | /** @} */
|
---|
1525 |
|
---|
1526 | #endif /* !VBOX_INCLUDED_disopcode_x86_amd64_h */
|
---|
1527 |
|
---|