VirtualBox

source: vbox/trunk/include/VBox/disopcode.h@ 53094

Last change on this file since 53094 was 53094, checked in by vboxsync, 10 years ago

DIS: #6251: AVX / VEX instructions support (two byte instructions only) and some fixes to the other tables.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 16.5 KB
Line 
1/** @file
2 * Disassembler - opcode.h.
3 */
4
5/*
6 * Copyright (C) 2006-2012 Oracle Corporation
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License (GPL) as published by the Free Software
12 * Foundation, in version 2 as it comes in the "COPYING" file of the
13 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15 *
16 * The contents of this file may alternatively be used under the terms
17 * of the Common Development and Distribution License Version 1.0
18 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19 * VirtualBox OSE distribution, in which case the provisions of the
20 * CDDL are applicable instead of those of the GPL.
21 *
22 * You may elect to license modified versions of this file under the
23 * terms and conditions of either the GPL or the CDDL or both.
24 */
25
26#ifndef ___VBox_opcode_h
27#define ___VBox_opcode_h
28
29#define MODRM_MOD(a) (a>>6)
30#define MODRM_REG(a) ((a>>3)&0x7)
31#define MODRM_RM(a) (a&0x7)
32#define MAKE_MODRM(mod, reg, rm) (((mod&3) << 6) | ((reg&7) << 3) | (rm&7))
33
34#define SIB_SCALE(a) (a>>6)
35#define SIB_INDEX(a) ((a>>3)&0x7)
36#define SIB_BASE(a) (a&0x7)
37
38
39/** @defgroup grp_dis_opcodes Opcodes (DISOPCODE::uOpCode)
40 * @ingroup grp_dis
41 * @{
42 */
43enum OPCODES {
44/** @name Full Intel X86 opcode list
45 * @{ */
46 OP_INVALID,
47 OP_OPSIZE,
48 OP_ADDRSIZE,
49 OP_SEG,
50 OP_REPNE,
51 OP_REPE,
52 OP_REX,
53 OP_LOCK,
54 OP_LAST_PREFIX = OP_LOCK, /* Last prefix for disassembler */
55 OP_AND,
56 OP_OR,
57 OP_DAA,
58 OP_SUB,
59 OP_DAS,
60 OP_XOR,
61 OP_AAA,
62 OP_CMP,
63 OP_IMM_GRP1,
64 OP_AAS,
65 OP_INC,
66 OP_DEC,
67 OP_PUSHA,
68 OP_POPA,
69 OP_BOUND,
70 OP_ARPL,
71 OP_PUSH,
72 OP_POP,
73 OP_IMUL,
74 OP_INSB,
75 OP_INSWD,
76 OP_OUTSB,
77 OP_OUTSWD,
78 OP_JO,
79 OP_JNO,
80 OP_JC,
81 OP_JNC,
82 OP_JE,
83 OP_JNE,
84 OP_JBE,
85 OP_JNBE,
86 OP_JS,
87 OP_JNS,
88 OP_JP,
89 OP_JNP,
90 OP_JL,
91 OP_JNL,
92 OP_JLE,
93 OP_JNLE,
94 OP_ADD,
95 OP_TEST,
96 OP_XCHG,
97 OP_MOV,
98 OP_LEA,
99 OP_NOP,
100 OP_CBW,
101 OP_CWD,
102 OP_CALL,
103 OP_WAIT,
104 OP_PUSHF,
105 OP_POPF,
106 OP_SAHF,
107 OP_LAHF,
108 OP_MOVSB,
109 OP_MOVSWD,
110 OP_CMPSB,
111 OP_CMPWD,
112 OP_STOSB,
113 OP_STOSWD,
114 OP_LODSB,
115 OP_LODSWD,
116 OP_SCASB,
117 OP_SCASWD,
118 OP_SHIFT_GRP2,
119 OP_RETN,
120 OP_LES,
121 OP_LDS,
122 OP_ENTER,
123 OP_LEAVE,
124 OP_RETF,
125 OP_INT3,
126 OP_INT,
127 OP_INTO,
128 OP_IRET,
129 OP_AAM,
130 OP_AAD,
131 OP_XLAT,
132 OP_ESCF0,
133 OP_ESCF1,
134 OP_ESCF2,
135 OP_ESCF3,
136 OP_ESCF4,
137 OP_ESCF5,
138 OP_ESCF6,
139 OP_ESCF7,
140 OP_LOOPNE,
141 OP_LOOPE,
142 OP_LOOP,
143 OP_JECXZ,
144 OP_IN,
145 OP_OUT,
146 OP_JMP,
147 OP_2B_ESC,
148 OP_ADC,
149 OP_SBB,
150 OP_HLT,
151 OP_CMC,
152 OP_UNARY_GRP3,
153 OP_CLC,
154 OP_STC,
155 OP_CLI,
156 OP_STI,
157 OP_CLD,
158 OP_STD,
159 OP_INC_GRP4,
160 OP_IND_GRP5,
161 OP_GRP6,
162 OP_GRP7,
163 OP_LAR,
164 OP_LSL,
165 OP_SYSCALL,
166 OP_CLTS,
167 OP_SYSRET,
168 OP_INVD,
169 OP_WBINVD,
170 OP_ILLUD2,
171 OP_FEMMS,
172 OP_3DNOW,
173 OP_MOVUPS,
174 OP_MOVLPS,
175 OP_UNPCKLPS,
176 OP_MOVHPS,
177 OP_UNPCKHPS,
178 OP_PREFETCH_GRP16,
179 OP_MOV_CR,
180 OP_MOVAPS,
181 OP_CVTPI2PS,
182 OP_MOVNTPS,
183 OP_CVTTPS2PI,
184 OP_CVTPS2PI,
185 OP_UCOMISS,
186 OP_COMISS,
187 OP_WRMSR,
188 OP_RDTSC,
189 OP_RDMSR,
190 OP_RDPMC,
191 OP_SYSENTER,
192 OP_SYSEXIT,
193 OP_GETSEC,
194 OP_PAUSE,
195 OP_CMOVO,
196 OP_CMOVNO,
197 OP_CMOVC,
198 OP_CMOVNC,
199 OP_CMOVZ,
200 OP_CMOVNZ,
201 OP_CMOVBE,
202 OP_CMOVNBE,
203 OP_CMOVS,
204 OP_CMOVNS,
205 OP_CMOVP,
206 OP_CMOVNP,
207 OP_CMOVL,
208 OP_CMOVNL,
209 OP_CMOVLE,
210 OP_CMOVNLE,
211 OP_MOVMSKPS,
212 OP_SQRTPS,
213 OP_RSQRTPS,
214 OP_RCPPS,
215 OP_ANDPS,
216 OP_ANDNPS,
217 OP_ORPS,
218 OP_XORPS,
219 OP_ADDPS,
220 OP_MULPS,
221 OP_CVTPS2PD,
222 OP_CVTDQ2PS,
223 OP_SUBPS,
224 OP_MINPS,
225 OP_DIVPS,
226 OP_MAXPS,
227 OP_PUNPCKLBW,
228 OP_PUNPCKLWD,
229 OP_PUNPCKLDQ,
230 OP_PACKSSWB,
231 OP_PCMPGTB,
232 OP_PCMPGTW,
233 OP_PCMPGTD,
234 OP_PACKUSWB,
235 OP_PUNPCKHBW,
236 OP_PUNPCKHWD,
237 OP_PUNPCKHDQ,
238 OP_PACKSSDW,
239 OP_MOVD,
240 OP_MOVQ,
241 OP_PSHUFW,
242 OP_3B_ESC4,
243 OP_3B_ESC5,
244 OP_PCMPEQB,
245 OP_PCMPEQW,
246 OP_PCMPEQD,
247 OP_SETO,
248 OP_SETNO,
249 OP_SETC,
250 OP_SETNC,
251 OP_SETE,
252 OP_SETNE,
253 OP_SETBE,
254 OP_SETNBE,
255 OP_SETS,
256 OP_SETNS,
257 OP_SETP,
258 OP_SETNP,
259 OP_SETL,
260 OP_SETNL,
261 OP_SETLE,
262 OP_SETNLE,
263 OP_CPUID,
264 OP_BT,
265 OP_SHLD,
266 OP_RSM,
267 OP_BTS,
268 OP_SHRD,
269 OP_GRP15,
270 OP_CMPXCHG,
271 OP_LSS,
272 OP_BTR,
273 OP_LFS,
274 OP_LGS,
275 OP_MOVZX,
276 OP_GRP10_INV,
277 OP_GRP8,
278 OP_BTC,
279 OP_BSF,
280 OP_BSR,
281 OP_MOVSX,
282 OP_XADD,
283 OP_CMPPS,
284 OP_MOVNTI,
285 OP_PINSRW,
286 OP_PEXTRW,
287 OP_SHUFPS,
288 OP_GRP9,
289 OP_BSWAP,
290 OP_ADDSUBPS,
291 OP_ADDSUBPD,
292 OP_PSRLW,
293 OP_PSRLD,
294 OP_PSRLQ,
295 OP_PADDQ,
296 OP_PMULLW,
297 OP_PMOVMSKB,
298 OP_PSUBUSB,
299 OP_PSUBUSW,
300 OP_PMINUB,
301 OP_PAND,
302 OP_PADDUSB,
303 OP_PADDUSW,
304 OP_PMAXUB,
305 OP_PANDN,
306 OP_PAVGB,
307 OP_PSRAW,
308 OP_PSRAD,
309 OP_PAVGW,
310 OP_PMULHUW,
311 OP_PMULHW,
312 OP_MOVNTQ,
313 OP_PSUBSB,
314 OP_PSUBSW,
315 OP_PMINSW,
316 OP_POR,
317 OP_PADDSB,
318 OP_PADDSW,
319 OP_PMAXSW,
320 OP_PXOR,
321 OP_LDDQU,
322 OP_PSLLW,
323 OP_PSLLD,
324 OP_PSSQ,
325 OP_PMULUDQ,
326 OP_PMADDWD,
327 OP_PSADBW,
328 OP_MASKMOVQ,
329 OP_PSUBB,
330 OP_PSUBW,
331 OP_PSUBD,
332 OP_PSUBQ,
333 OP_PADDB,
334 OP_PADDW,
335 OP_PADDD,
336 OP_MOVUPD,
337 OP_MOVLPD,
338 OP_UNPCKLPD,
339 OP_UNPCKHPD,
340 OP_MOVHPD,
341 OP_MOVAPD,
342 OP_CVTPI2PD,
343 OP_MOVNTPD,
344 OP_CVTTPD2PI,
345 OP_CVTPD2PI,
346 OP_UCOMISD,
347 OP_COMISD,
348 OP_MOVMSKPD,
349 OP_SQRTPD,
350 OP_ANDPD,
351 OP_ANDNPD,
352 OP_ORPD,
353 OP_XORPD,
354 OP_ADDPD,
355 OP_MULPD,
356 OP_CVTPD2PS,
357 OP_CVTPS2DQ,
358 OP_SUBPD,
359 OP_MINPD,
360 OP_DIVPD,
361 OP_MAXPD,
362 OP_GRP12,
363 OP_GRP13,
364 OP_GRP14,
365 OP_EMMS,
366 OP_MMX_UD78,
367 OP_MMX_UD79,
368 OP_MMX_UD7A,
369 OP_MMX_UD7B,
370 OP_MMX_UD7C,
371 OP_MMX_UD7D,
372 OP_PUNPCKLQDQ,
373 OP_PUNPCKHQDQ,
374 OP_MOVDQA,
375 OP_PSHUFD,
376 OP_CMPPD,
377 OP_SHUFPD,
378 OP_CVTTPD2DQ,
379 OP_MOVNTDQ,
380 OP_PSHUFB,
381 OP_PHADDW,
382 OP_PHADDD,
383 OP_PHADDSW,
384 OP_HADDPS,
385 OP_HADDPD,
386 OP_PMADDUBSW,
387 OP_PHSUBW,
388 OP_PHSUBD,
389 OP_PHSUBSW,
390 OP_HSUBPS,
391 OP_HSUBPD,
392 OP_PSIGNB,
393 OP_PSIGNW,
394 OP_PSIGND,
395 OP_PMULHRSW,
396 OP_PBLENDVB,
397 OP_BLENDVPS,
398 OP_BLENDVPD,
399 OP_PTEST,
400 OP_PABSB,
401 OP_PABSW,
402 OP_PABSD,
403 OP_MOVBEGM,
404 OP_MOVBEMG,
405 OP_CRC32GDEB,
406 OP_CRC32GDEY,
407 OP_POPCNT,
408 OP_TZCNT,
409 OP_LZCNT,
410 OP_ADCX,
411 OP_ADOX,
412 OP_ANDN,
413 OP_BZHI,
414 OP_BEXTR,
415 OP_MASKMOVDQU,
416 OP_MOVSD,
417 OP_CVTSI2SD,
418 OP_CVTTSD2SI,
419 OP_CVTSD2SI,
420 OP_SQRTSD,
421 OP_ADDSD,
422 OP_MULSD,
423 OP_CVTSD2SS,
424 OP_SUBSD,
425 OP_MINSD,
426 OP_DIVSD,
427 OP_MAXSD,
428 OP_PSHUFLW,
429 OP_CMPSD,
430 OP_MOVDQ2Q,
431 OP_CVTPD2DQ,
432 OP_MOVSS,
433 OP_MOVSLDUP,
434 OP_MOVDDUP,
435 OP_MOVSHDUP,
436 OP_CVTSI2SS,
437 OP_CVTTSS2SI,
438 OP_CVTSS2SI,
439 OP_CVTSS2SD,
440 OP_SQRTSS,
441 OP_RSQRTSS,
442 OP_RCPSS,
443 OP_ADDSS,
444 OP_MULSS,
445 OP_CVTTPS2DQ,
446 OP_SUBSS,
447 OP_MINSS,
448 OP_DIVSS,
449 OP_MAXSS,
450 OP_MOVDQU,
451 OP_PSHUFHW,
452 OP_CMPSS,
453 OP_MOVQ2DQ,
454 OP_CVTDQ2PD,
455 OP_VEX3B,
456 OP_VEX2B,
457/** @} */
458
459/** @name Floating point ops
460 * @{ */
461 OP_FADD,
462 OP_FMUL,
463 OP_FCOM,
464 OP_FCOMP,
465 OP_FSUB,
466 OP_FSUBR,
467 OP_FDIV,
468 OP_FDIVR,
469 OP_FLD,
470 OP_FST,
471 OP_FSTP,
472 OP_FLDENV,
473 OP_FSTENV,
474 OP_FSTCW,
475 OP_FXCH,
476 OP_FNOP,
477 OP_FCHS,
478 OP_FABS,
479 OP_FLD1,
480 OP_FLDL2T,
481 OP_FLDL2E,
482 OP_FLDPI,
483 OP_FLDLG2,
484 OP_FLDLN2,
485 OP_FLDZ,
486 OP_F2XM1,
487 OP_FYL2X,
488 OP_FPTAN,
489 OP_FPATAN,
490 OP_FXTRACT,
491 OP_FREM1,
492 OP_FDECSTP,
493 OP_FINCSTP,
494 OP_FPREM,
495 OP_FYL2XP1,
496 OP_FSQRT,
497 OP_FSINCOS,
498 OP_FRNDINT,
499 OP_FSCALE,
500 OP_FSIN,
501 OP_FCOS,
502 OP_FIADD,
503 OP_FIMUL,
504 OP_FISUB,
505 OP_FISUBR,
506 OP_FIDIV,
507 OP_FIDIVR,
508 OP_FCMOVB,
509 OP_FCMOVE,
510 OP_FCMOVBE,
511 OP_FCMOVU,
512 OP_FUCOMPP,
513 OP_FILD,
514 OP_FIST,
515 OP_FISTP,
516 OP_FCMOVNB,
517 OP_FCMOVNE,
518 OP_FCMOVNBE,
519 OP_FCMOVNU,
520 OP_FCLEX,
521 OP_FINIT,
522 OP_FUCOMI,
523 OP_FCOMI,
524 OP_FRSTOR,
525 OP_FSAVE,
526 OP_FNSTSW,
527 OP_FFREE,
528 OP_FUCOM,
529 OP_FUCOMP,
530 OP_FICOM,
531 OP_FICOMP,
532 OP_FADDP,
533 OP_FMULP,
534 OP_FCOMPP,
535 OP_FSUBRP,
536 OP_FSUBP,
537 OP_FDIVRP,
538 OP_FDIVP,
539 OP_FBLD,
540 OP_FBSTP,
541 OP_FCOMIP,
542 OP_FUCOMIP,
543/** @} */
544
545/** @name 3DNow!
546 * @{ */
547 OP_PI2FW,
548 OP_PI2FD,
549 OP_PF2IW,
550 OP_PF2ID,
551 OP_PFPNACC,
552 OP_PFCMPGE,
553 OP_PFMIN,
554 OP_PFRCP,
555 OP_PFRSQRT,
556 OP_PFSUB,
557 OP_PFADD,
558 OP_PFCMPGT,
559 OP_PFMAX,
560 OP_PFRCPIT1,
561 OP_PFRSQRTIT1,
562 OP_PFSUBR,
563 OP_PFACC,
564 OP_PFCMPEQ,
565 OP_PFMUL,
566 OP_PFRCPIT2,
567 OP_PFMULHRW,
568 OP_PFSWAPD,
569 OP_PAVGUSB,
570 OP_PFNACC,
571 OP_ROL,
572 OP_ROR,
573 OP_RCL,
574 OP_RCR,
575 OP_SHL,
576 OP_SHR,
577 OP_SAR,
578 OP_NOT,
579 OP_NEG,
580 OP_MUL,
581 OP_DIV,
582 OP_IDIV,
583 OP_SLDT,
584 OP_STR,
585 OP_LLDT,
586 OP_LTR,
587 OP_VERR,
588 OP_VERW,
589 OP_SGDT,
590 OP_LGDT,
591 OP_SIDT,
592 OP_LIDT,
593 OP_SMSW,
594 OP_LMSW,
595 OP_INVLPG,
596 OP_CMPXCHG8B,
597 OP_PSLLQ,
598 OP_PSRLDQ,
599 OP_PSLLDQ,
600 OP_FXSAVE,
601 OP_FXRSTOR,
602 OP_LDMXCSR,
603 OP_STMXCSR,
604 OP_LFENCE,
605 OP_MFENCE,
606 OP_SFENCE,
607 OP_PREFETCH,
608 OP_MONITOR,
609 OP_MWAIT,
610 OP_CLFLUSH,
611 OP_MOV_DR,
612 OP_MOV_TR,
613 OP_SWAPGS,
614/** @name VT-x instructions
615* @{ */
616 OP_VMREAD,
617 OP_VMWRITE,
618 OP_VMCALL,
619 OP_VMXON,
620 OP_VMXOFF,
621 OP_VMCLEAR,
622 OP_VMLAUNCH,
623 OP_VMRESUME,
624 OP_VMPTRLD,
625 OP_VMPTRST,
626 OP_INVEPT,
627 OP_INVVPID,
628/** @} */
629/** @name 64 bits instruction
630 * @{ */
631
632 OP_MOVSXD
633/** @} */
634};
635/** @} */
636
637/** @defgroup grp_dis_opparam Opcode parameters (DISOPCODE::fParam1,
638 * DISOPCODE::fParam2, DISOPCODE::fParam3)
639 * @ingroup grp_dis
640 * @{
641 */
642
643/* NOTE: Register order is important for translations!! */
644enum OP_PARM
645{
646 OP_PARM_NONE,
647
648 OP_PARM_REG_EAX,
649 OP_PARM_REG_GEN32_START = OP_PARM_REG_EAX,
650 OP_PARM_REG_ECX,
651 OP_PARM_REG_EDX,
652 OP_PARM_REG_EBX,
653 OP_PARM_REG_ESP,
654 OP_PARM_REG_EBP,
655 OP_PARM_REG_ESI,
656 OP_PARM_REG_EDI,
657 OP_PARM_REG_GEN32_END = OP_PARM_REG_EDI,
658
659 OP_PARM_REG_ES,
660 OP_PARM_REG_SEG_START = OP_PARM_REG_ES,
661 OP_PARM_REG_CS,
662 OP_PARM_REG_SS,
663 OP_PARM_REG_DS,
664 OP_PARM_REG_FS,
665 OP_PARM_REG_GS,
666 OP_PARM_REG_SEG_END = OP_PARM_REG_GS,
667
668 OP_PARM_REG_AX,
669 OP_PARM_REG_GEN16_START = OP_PARM_REG_AX,
670 OP_PARM_REG_CX,
671 OP_PARM_REG_DX,
672 OP_PARM_REG_BX,
673 OP_PARM_REG_SP,
674 OP_PARM_REG_BP,
675 OP_PARM_REG_SI,
676 OP_PARM_REG_DI,
677 OP_PARM_REG_GEN16_END = OP_PARM_REG_DI,
678
679 OP_PARM_REG_AL,
680 OP_PARM_REG_GEN8_START = OP_PARM_REG_AL,
681 OP_PARM_REG_CL,
682 OP_PARM_REG_DL,
683 OP_PARM_REG_BL,
684 OP_PARM_REG_AH,
685 OP_PARM_REG_CH,
686 OP_PARM_REG_DH,
687 OP_PARM_REG_BH,
688 OP_PARM_REG_GEN8_END = OP_PARM_REG_BH,
689
690 OP_PARM_REGFP_0,
691 OP_PARM_REG_FP_START = OP_PARM_REGFP_0,
692 OP_PARM_REGFP_1,
693 OP_PARM_REGFP_2,
694 OP_PARM_REGFP_3,
695 OP_PARM_REGFP_4,
696 OP_PARM_REGFP_5,
697 OP_PARM_REGFP_6,
698 OP_PARM_REGFP_7,
699 OP_PARM_REG_FP_END = OP_PARM_REGFP_7,
700
701 OP_PARM_NTA,
702 OP_PARM_T0,
703 OP_PARM_T1,
704 OP_PARM_T2,
705 OP_PARM_1,
706
707 OP_PARM_REX,
708 OP_PARM_REX_START = OP_PARM_REX,
709 OP_PARM_REX_B,
710 OP_PARM_REX_X,
711 OP_PARM_REX_XB,
712 OP_PARM_REX_R,
713 OP_PARM_REX_RB,
714 OP_PARM_REX_RX,
715 OP_PARM_REX_RXB,
716 OP_PARM_REX_W,
717 OP_PARM_REX_WB,
718 OP_PARM_REX_WX,
719 OP_PARM_REX_WXB,
720 OP_PARM_REX_WR,
721 OP_PARM_REX_WRB,
722 OP_PARM_REX_WRX,
723 OP_PARM_REX_WRXB,
724
725 OP_PARM_REG_RAX,
726 OP_PARM_REG_GEN64_START = OP_PARM_REG_RAX,
727 OP_PARM_REG_RCX,
728 OP_PARM_REG_RDX,
729 OP_PARM_REG_RBX,
730 OP_PARM_REG_RSP,
731 OP_PARM_REG_RBP,
732 OP_PARM_REG_RSI,
733 OP_PARM_REG_RDI,
734 OP_PARM_REG_R8,
735 OP_PARM_REG_R9,
736 OP_PARM_REG_R10,
737 OP_PARM_REG_R11,
738 OP_PARM_REG_R12,
739 OP_PARM_REG_R13,
740 OP_PARM_REG_R14,
741 OP_PARM_REG_R15,
742 OP_PARM_REG_GEN64_END = OP_PARM_REG_R15
743};
744
745#define OP_PARM_VTYPE(a) ((unsigned)a & 0xFE0)
746#define OP_PARM_VSUBTYPE(a) ((unsigned)a & 0x01F)
747
748#define OP_PARM_A 0x100
749#define OP_PARM_VARIABLE OP_PARM_A
750#define OP_PARM_E 0x120
751#define OP_PARM_F 0x140
752#define OP_PARM_G 0x160
753#define OP_PARM_I 0x180
754#define OP_PARM_J 0x1A0
755#define OP_PARM_M 0x1C0
756#define OP_PARM_O 0x1E0
757#define OP_PARM_R 0x200
758#define OP_PARM_X 0x220
759#define OP_PARM_Y 0x240
760
761/* Grouped rare parameters for optimization purposes */
762#define IS_OP_PARM_RARE(a) ((a & 0xF00) >= 0x300)
763#define OP_PARM_C 0x300 /* control register */
764#define OP_PARM_D 0x320 /* debug register */
765#define OP_PARM_S 0x340 /* segment register */
766#define OP_PARM_T 0x360 /* test register */
767#define OP_PARM_Q 0x380
768#define OP_PARM_P 0x3A0 /* mmx register */
769#define OP_PARM_W 0x3C0 /* xmm register */
770#define OP_PARM_V 0x3E0
771#define OP_PARM_U 0x400 /* The R/M field of the ModR/M byte selects XMM/YMM register. */
772#define OP_PARM_B 0x420 /* VEX.vvvv field select general purpose register. */
773#define OP_PARM_H 0x440
774
775#define OP_PARM_NONE 0
776#define OP_PARM_a 0x1
777#define OP_PARM_b 0x2
778#define OP_PARM_d 0x3
779#define OP_PARM_dq 0x4
780#define OP_PARM_p 0x5
781#define OP_PARM_pd 0x6
782#define OP_PARM_pi 0x7
783#define OP_PARM_ps 0x8
784#define OP_PARM_pq 0x9
785#define OP_PARM_q 0xA
786#define OP_PARM_s 0xB
787#define OP_PARM_sd 0xC
788#define OP_PARM_ss 0xD
789#define OP_PARM_v 0xE
790#define OP_PARM_w 0xF
791#define OP_PARM_x 0x10
792#define OP_PARM_y 0x11
793#define OP_PARM_z 0x12
794
795
796#define OP_PARM_Ap (OP_PARM_A+OP_PARM_p)
797#define OP_PARM_Cd (OP_PARM_C+OP_PARM_d)
798#define OP_PARM_Dd (OP_PARM_D+OP_PARM_d)
799#define OP_PARM_Eb (OP_PARM_E+OP_PARM_b)
800#define OP_PARM_Ed (OP_PARM_E+OP_PARM_d)
801#define OP_PARM_Ep (OP_PARM_E+OP_PARM_p)
802#define OP_PARM_Ev (OP_PARM_E+OP_PARM_v)
803#define OP_PARM_Ew (OP_PARM_E+OP_PARM_w)
804#define OP_PARM_Ey (OP_PARM_E+OP_PARM_y)
805#define OP_PARM_Fv (OP_PARM_F+OP_PARM_v)
806#define OP_PARM_Gb (OP_PARM_G+OP_PARM_b)
807#define OP_PARM_Gd (OP_PARM_G+OP_PARM_d)
808#define OP_PARM_Gv (OP_PARM_G+OP_PARM_v)
809#define OP_PARM_Gw (OP_PARM_G+OP_PARM_w)
810#define OP_PARM_Gy (OP_PARM_G+OP_PARM_y)
811#define OP_PARM_Hq (OP_PARM_H+OP_PARM_q)
812#define OP_PARM_Hps (OP_PARM_H+OP_PARM_ps)
813#define OP_PARM_Hpd (OP_PARM_H+OP_PARM_pd)
814#define OP_PARM_Hdq (OP_PARM_H+OP_PARM_dq)
815#define OP_PARM_Hsd (OP_PARM_H+OP_PARM_sd)
816#define OP_PARM_Hss (OP_PARM_H+OP_PARM_ss)
817#define OP_PARM_Hx (OP_PARM_H+OP_PARM_x)
818#define OP_PARM_Ib (OP_PARM_I+OP_PARM_b)
819#define OP_PARM_Id (OP_PARM_I+OP_PARM_d)
820#define OP_PARM_Iq (OP_PARM_I+OP_PARM_q)
821#define OP_PARM_Iw (OP_PARM_I+OP_PARM_w)
822#define OP_PARM_Iv (OP_PARM_I+OP_PARM_v)
823#define OP_PARM_Iz (OP_PARM_I+OP_PARM_z)
824#define OP_PARM_Jb (OP_PARM_J+OP_PARM_b)
825#define OP_PARM_Jv (OP_PARM_J+OP_PARM_v)
826#define OP_PARM_Ma (OP_PARM_M+OP_PARM_a)
827#define OP_PARM_Mb (OP_PARM_M+OP_PARM_b)
828#define OP_PARM_Mw (OP_PARM_M+OP_PARM_w)
829#define OP_PARM_Md (OP_PARM_M+OP_PARM_d)
830#define OP_PARM_Mp (OP_PARM_M+OP_PARM_p)
831#define OP_PARM_Mq (OP_PARM_M+OP_PARM_q)
832#define OP_PARM_Mdq (OP_PARM_M+OP_PARM_dq)
833#define OP_PARM_Ms (OP_PARM_M+OP_PARM_s)
834#define OP_PARM_Mx (OP_PARM_M+OP_PARM_x)
835#define OP_PARM_My (OP_PARM_M+OP_PARM_y)
836#define OP_PARM_Mps (OP_PARM_M+OP_PARM_ps)
837#define OP_PARM_Mpd (OP_PARM_M+OP_PARM_pd)
838#define OP_PARM_Ob (OP_PARM_O+OP_PARM_b)
839#define OP_PARM_Ov (OP_PARM_O+OP_PARM_v)
840#define OP_PARM_Pq (OP_PARM_P+OP_PARM_q)
841#define OP_PARM_Pd (OP_PARM_P+OP_PARM_d)
842#define OP_PARM_Qd (OP_PARM_Q+OP_PARM_d)
843#define OP_PARM_Qq (OP_PARM_Q+OP_PARM_q)
844#define OP_PARM_Rd (OP_PARM_R+OP_PARM_d)
845#define OP_PARM_Rw (OP_PARM_R+OP_PARM_w)
846#define OP_PARM_Ry (OP_PARM_R+OP_PARM_y)
847#define OP_PARM_Sw (OP_PARM_S+OP_PARM_w)
848#define OP_PARM_Td (OP_PARM_T+OP_PARM_d)
849#define OP_PARM_Ux (OP_PARM_U+OP_PARM_x)
850#define OP_PARM_Vq (OP_PARM_V+OP_PARM_q)
851#define OP_PARM_Vx (OP_PARM_V+OP_PARM_x)
852#define OP_PARM_Vy (OP_PARM_V+OP_PARM_y)
853#define OP_PARM_Wq (OP_PARM_W+OP_PARM_q)
854#define OP_PARM_Ws (OP_PARM_W+OP_PARM_s)
855#define OP_PARM_Wx (OP_PARM_W+OP_PARM_x)
856#define OP_PARM_Xb (OP_PARM_X+OP_PARM_b)
857#define OP_PARM_Xv (OP_PARM_X+OP_PARM_v)
858#define OP_PARM_Yb (OP_PARM_Y+OP_PARM_b)
859#define OP_PARM_Yv (OP_PARM_Y+OP_PARM_v)
860
861#define OP_PARM_Vps (OP_PARM_V+OP_PARM_ps)
862#define OP_PARM_Vss (OP_PARM_V+OP_PARM_ss)
863#define OP_PARM_Vpd (OP_PARM_V+OP_PARM_pd)
864#define OP_PARM_Vdq (OP_PARM_V+OP_PARM_dq)
865#define OP_PARM_Wps (OP_PARM_W+OP_PARM_ps)
866#define OP_PARM_Wpd (OP_PARM_W+OP_PARM_pd)
867#define OP_PARM_Wss (OP_PARM_W+OP_PARM_ss)
868#define OP_PARM_Wdq (OP_PARM_W+OP_PARM_dq)
869#define OP_PARM_Ppi (OP_PARM_P+OP_PARM_pi)
870#define OP_PARM_Qpi (OP_PARM_Q+OP_PARM_pi)
871#define OP_PARM_Qdq (OP_PARM_Q+OP_PARM_dq)
872#define OP_PARM_Vsd (OP_PARM_V+OP_PARM_sd)
873#define OP_PARM_Wsd (OP_PARM_W+OP_PARM_sd)
874#define OP_PARM_Vpq (OP_PARM_V+OP_PARM_pq)
875#define OP_PARM_Pdq (OP_PARM_P+OP_PARM_dq)
876#define OP_PARM_Ups (OP_PARM_U+OP_PARM_ps)
877#define OP_PARM_Upd (OP_PARM_U+OP_PARM_pd)
878#define OP_PARM_Udq (OP_PARM_U+OP_PARM_dq)
879
880/** @} */
881
882#endif
883
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette