Changeset 66479 in vbox
- Timestamp:
- Apr 7, 2017 3:55:21 PM (8 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 7 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/Makefile.kmk
r66474 r66479 1017 1017 IEMAllInstructionsThree0f3a.cpp.o IEMAllInstructionsThree0f3a.cpp.obj \ 1018 1018 IEMAllInstructionsVexMap1.cpp.o IEMAllInstructionsVexMap1.cpp.obj \ 1019 IEMAllInstructionsVexMap2.cpp.o IEMAllInstructionsVexMap2.cpp.obj \ 1020 IEMAllInstructionsVexMap3.cpp.o IEMAllInstructionsVexMap3.cpp.obj \ 1019 1021 IEMAllInstructions3DNow.cpp.o IEMAllInstructions3DNow.cpp.obj \ 1020 1022 IEMAllCImpl.cpp.o IEMAllCImpl.cpp.obj \ -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h
r66474 r66479 743 743 #ifdef IEM_WITH_VEX 744 744 # include "IEMAllInstructionsVexMap1.cpp.h" 745 # include "IEMAllInstructionsVexMap2.cpp.h" 746 # include "IEMAllInstructionsVexMap3.cpp.h" 745 747 #endif 746 748 #include "IEMAllInstructionsOneByte.cpp.h" -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsOneByte.cpp.h
r66469 r66479 6239 6239 6240 6240 case 2: /* 0x0f 0x38 lead opcode bytes. */ 6241 /** @todo VEX: Just use new tables and decoders. */ 6241 #ifdef IEM_WITH_VEX 6242 return FNIEMOP_CALL(g_apfnVexMap2[(uintptr_t)bOpcode * 4 + pVCpu->iem.s.idxPrefix]); 6243 #else 6242 6244 IEMOP_BITCH_ABOUT_STUB(); 6243 6245 return VERR_IEM_INSTR_NOT_IMPLEMENTED; 6246 #endif 6244 6247 6245 6248 case 3: /* 0x0f 0x3a lead opcode bytes. */ 6246 /** @todo VEX: Just use new tables and decoders. */ 6249 #ifdef IEM_WITH_VEX 6250 return FNIEMOP_CALL(g_apfnVexMap3[(uintptr_t)bOpcode * 4 + pVCpu->iem.s.idxPrefix]); 6251 #else 6247 6252 IEMOP_BITCH_ABOUT_STUB(); 6248 6253 return VERR_IEM_INSTR_NOT_IMPLEMENTED; 6254 #endif 6249 6255 6250 6256 default: -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsPython.py
r66474 r66479 3221 3221 ( 'three0f3a', 'IEMAllInstructionsThree0f3a.cpp.h'), 3222 3222 ( 'vexmap1', 'IEMAllInstructionsVexMap1.cpp.h'), 3223 ( 'vexmap2', 'IEMAllInstructionsVexMap2.cpp.h'), 3224 ( 'vexmap3', 'IEMAllInstructionsVexMap3.cpp.h'), 3223 3225 ( '3dnow', 'IEMAllInstructions3DNow.cpp.h'), 3224 3226 ]: -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f38.cpp.h
r66474 r66479 3 3 * IEM - Instruction Decoding and Emulation. 4 4 * 5 * @remarks IEMAllInstructionsVexMap 1.cpp.h is a VEX mirror of this file.5 * @remarks IEMAllInstructionsVexMap2.cpp.h is a VEX mirror of this file. 6 6 * Any update here is likely needed in that file too. 7 7 */ … … 35 35 FNIEMOP_STUB(iemOp_phaddd_Pq_Qq); 36 36 /** Opcode 0x66 0x0f 0x38 0x02. */ 37 FNIEMOP_STUB(iemOp_phaddd_ vx_Wx);37 FNIEMOP_STUB(iemOp_phaddd_Vx_Wx); 38 38 /** Opcode 0x0f 0x38 0x03. */ 39 39 FNIEMOP_STUB(iemOp_phaddsw_Pq_Qq); … … 83 83 84 84 /* Opcode 0x0f 0x38 0x10 - invalid */ 85 /** Opcode 0x66 0x0f 0x38 0x10 . */85 /** Opcode 0x66 0x0f 0x38 0x10 (legacy only). */ 86 86 FNIEMOP_STUB(iemOp_pblendvb_Vdq_Wdq); 87 87 /* Opcode 0x0f 0x38 0x11 - invalid */ … … 92 92 /* Opcode 0x66 0x0f 0x38 0x13 - invalid (vex only). */ 93 93 /* Opcode 0x0f 0x38 0x14 - invalid */ 94 /** Opcode 0x66 0x0f 0x38 0x14 . */94 /** Opcode 0x66 0x0f 0x38 0x14 (legacy only). */ 95 95 FNIEMOP_STUB(iemOp_blendvps_Vdq_Wdq); 96 96 /* Opcode 0x0f 0x38 0x15 - invalid */ 97 /** Opcode 0x66 0x0f 0x38 0x15 . */97 /** Opcode 0x66 0x0f 0x38 0x15 (legacy only). */ 98 98 FNIEMOP_STUB(iemOp_blendvpd_Vdq_Wdq); 99 99 /* Opcode 0x0f 0x38 0x16 - invalid */ … … 388 388 FNIEMOP_STUB(iemOp_aesdeclast_Vdq_Wdq); 389 389 390 /* Opcode 0x66 0x0f 0x38 0x b0 - invalid. */391 /* Opcode 0x66 0x0f 0x38 0x b1 - invalid. */392 /* Opcode 0x66 0x0f 0x38 0x b2 - invalid. */393 /* Opcode 0x66 0x0f 0x38 0x b3 - invalid. */394 /* Opcode 0x66 0x0f 0x38 0x b4 - invalid. */395 /* Opcode 0x66 0x0f 0x38 0x b5 - invalid. */396 /* Opcode 0x66 0x0f 0x38 0x b6 - invalid. */397 /* Opcode 0x66 0x0f 0x38 0x b7 - invalid. */398 /* Opcode 0x66 0x0f 0x38 0x b8 - invalid. */399 /* Opcode 0x66 0x0f 0x38 0x b9 - invalid. */400 /* Opcode 0x66 0x0f 0x38 0x ba - invalid. */401 /* Opcode 0x66 0x0f 0x38 0x bb - invalid. */402 /* Opcode 0x66 0x0f 0x38 0x bc - invalid. */403 /* Opcode 0x66 0x0f 0x38 0x bd - invalid. */404 /* Opcode 0x66 0x0f 0x38 0x be - invalid. */405 /* Opcode 0x66 0x0f 0x38 0x bf - invalid. */390 /* Opcode 0x66 0x0f 0x38 0xe0 - invalid. */ 391 /* Opcode 0x66 0x0f 0x38 0xe1 - invalid. */ 392 /* Opcode 0x66 0x0f 0x38 0xe2 - invalid. */ 393 /* Opcode 0x66 0x0f 0x38 0xe3 - invalid. */ 394 /* Opcode 0x66 0x0f 0x38 0xe4 - invalid. */ 395 /* Opcode 0x66 0x0f 0x38 0xe5 - invalid. */ 396 /* Opcode 0x66 0x0f 0x38 0xe6 - invalid. */ 397 /* Opcode 0x66 0x0f 0x38 0xe7 - invalid. */ 398 /* Opcode 0x66 0x0f 0x38 0xe8 - invalid. */ 399 /* Opcode 0x66 0x0f 0x38 0xe9 - invalid. */ 400 /* Opcode 0x66 0x0f 0x38 0xea - invalid. */ 401 /* Opcode 0x66 0x0f 0x38 0xeb - invalid. */ 402 /* Opcode 0x66 0x0f 0x38 0xec - invalid. */ 403 /* Opcode 0x66 0x0f 0x38 0xed - invalid. */ 404 /* Opcode 0x66 0x0f 0x38 0xee - invalid. */ 405 /* Opcode 0x66 0x0f 0x38 0xef - invalid. */ 406 406 407 407 … … 504 504 /* 0x00 */ iemOp_pshufb_Pq_Qq, iemOp_pshufb_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 505 505 /* 0x01 */ iemOp_phaddw_Pq_Qq, iemOp_phaddw_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 506 /* 0x02 */ iemOp_phaddd_Pq_Qq, iemOp_phaddd_ vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,506 /* 0x02 */ iemOp_phaddd_Pq_Qq, iemOp_phaddd_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 507 507 /* 0x03 */ iemOp_phaddsw_Pq_Qq, iemOp_phaddsw_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 508 508 /* 0x04 */ iemOp_pmaddubsw_Pq_Qq, iemOp_pmaddubsw_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f3a.cpp.h
r66474 r66479 24 24 */ 25 25 26 /** Opcode 0x66 0x0f 0x00. */ 27 FNIEMOP_STUB(iemOp_permq_Vqq_Wqq_Ib); 28 /** Opcode 0x66 0x0f 0x01. */ 29 FNIEMOP_STUB(iemOp_permqd_Vqq_Wqq_Ib); 30 /** Opcode 0x66 0x0f 0x02. */ 31 FNIEMOP_STUB(iemOp_pblendd_Vx_Wx_Ib); 26 /** Opcode 0x66 0x0f 0x00 - invalid (vex only). */ 27 /** Opcode 0x66 0x0f 0x01 - invalid (vex only). */ 28 /** Opcode 0x66 0x0f 0x02 - invalid (vex only). */ 32 29 /* Opcode 0x66 0x0f 0x03 - invalid */ 33 /** Opcode 0x66 0x0f 0x04. */ 34 FNIEMOP_STUB(iemOp_permilps_Vx_Wx_Ib); 35 /** Opcode 0x66 0x0f 0x05. */ 36 FNIEMOP_STUB(iemOp_permilpd_Vx_Wx_Ib); 30 /** Opcode 0x66 0x0f 0x04 - invalid (vex only). */ 31 /** Opcode 0x66 0x0f 0x05 - invalid (vex only). */ 37 32 /* Opcode 0x66 0x0f 0x06 - invalid (vex only) */ 38 33 /* Opcode 0x66 0x0f 0x07 - invalid */ … … 230 225 { 231 226 /* no prefix, 066h prefix f3h prefix, f2h prefix */ 232 /* 0x00 */ iemOp_InvalidNeedRMImm8, iemOp_permq_Vqq_Wqq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,233 /* 0x01 */ iemOp_InvalidNeedRMImm8, iemOp_permqd_Vqq_Wqq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,234 /* 0x02 */ iemOp_InvalidNeedRMImm8, iemOp_pblendd_Vx_Wx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,227 /* 0x00 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 228 /* 0x01 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 229 /* 0x02 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 235 230 /* 0x03 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 236 /* 0x04 */ iemOp_InvalidNeedRMImm8, iemOp_permilps_Vx_Wx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,237 /* 0x05 */ iemOp_InvalidNeedRMImm8, iemOp_permilpd_Vx_Wx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,231 /* 0x04 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 232 /* 0x05 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 238 233 /* 0x06 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 239 234 /* 0x07 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap1.cpp.h
r66469 r66479 18 18 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 19 19 */ 20 21 22 /*******************************************************************************23 * Global Variables *24 *******************************************************************************/25 extern const PFNIEMOP g_apfnOneByteMap[256]; /* not static since we need to forward declare it. */26 27 20 28 21 … … 2790 2783 * VEX opcode map \#1. 2791 2784 * 2792 * @remarks This is (currently) a subset of g_apfnTwoByteMap, so please check if 2793 * it it needs updating too when making changes. 2785 * @sa g_apfnTwoByteMap 2794 2786 */ 2795 2787 IEM_STATIC const PFNIEMOP g_apfnVexMap1[] = -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap2.cpp.h
r66474 r66479 3 3 * IEM - Instruction Decoding and Emulation. 4 4 * 5 * @remarks IEMAllInstructions VexMap1.cpp.h is a VEX mirror of this file.5 * @remarks IEMAllInstructionsThree0f38.cpp.h is a VEX mirror of this file. 6 6 * Any update here is likely needed in that file too. 7 7 */ … … 20 20 21 21 22 /** @name Three byte opcodes with first two bytes 0x0f 0x3822 /** @name VEX Opcode Map 2 23 23 * @{ 24 24 */ 25 25 26 /* Opcode 0x0f 0x38 0x00. */ 27 FNIEMOP_STUB(iemOp_pshufb_Pq_Qq); 28 /* Opcode 0x66 0x0f 0x38 0x00. */ 29 FNIEMOP_STUB(iemOp_pshufb_Vx_Wx); 30 /* Opcode 0x0f 0x38 0x01. */ 31 FNIEMOP_STUB(iemOp_phaddw_Pq_Qq); 32 /** Opcode 0x66 0x0f 0x38 0x01. */ 33 FNIEMOP_STUB(iemOp_phaddw_Vx_Wx); 34 /** Opcode 0x0f 0x38 0x02. */ 35 FNIEMOP_STUB(iemOp_phaddd_Pq_Qq); 36 /** Opcode 0x66 0x0f 0x38 0x02. */ 37 FNIEMOP_STUB(iemOp_phaddd_vx_Wx); 38 /** Opcode 0x0f 0x38 0x03. */ 39 FNIEMOP_STUB(iemOp_phaddsw_Pq_Qq); 40 /** Opcode 0x66 0x0f 0x38 0x03. */ 41 FNIEMOP_STUB(iemOp_phaddsw_Vx_Wx); 42 /** Opcode 0x0f 0x38 0x04. */ 43 FNIEMOP_STUB(iemOp_pmaddubsw_Pq_Qq); 44 /** Opcode 0x66 0x0f 0x38 0x04. */ 45 FNIEMOP_STUB(iemOp_pmaddubsw_Vx_Wx); 46 /** Opcode 0x0f 0x38 0x05. */ 47 FNIEMOP_STUB(iemOp_phsubw_Pq_Qq); 48 /** Opcode 0x66 0x0f 0x38 0x05. */ 49 FNIEMOP_STUB(iemOp_phsubw_Vx_Wx); 50 /** Opcode 0x0f 0x38 0x06. */ 51 FNIEMOP_STUB(iemOp_phsubd_Pq_Qq); 52 /** Opcode 0x66 0x0f 0x38 0x06. */ 53 FNIEMOP_STUB(iemOp_phsubdq_Vx_Wx); 54 /** Opcode 0x0f 0x38 0x07. */ 55 FNIEMOP_STUB(iemOp_phsubsw_Pq_Qq); 56 /** Opcode 0x66 0x0f 0x38 0x07. */ 57 FNIEMOP_STUB(iemOp_phsubsw_Vx_Wx); 58 /** Opcode 0x0f 0x38 0x08. */ 59 FNIEMOP_STUB(iemOp_psignb_Pq_Qq); 60 /** Opcode 0x66 0x0f 0x38 0x08. */ 61 FNIEMOP_STUB(iemOp_psignb_Vx_Wx); 62 /** Opcode 0x0f 0x38 0x09. */ 63 FNIEMOP_STUB(iemOp_psignw_Pq_Qq); 64 /** Opcode 0x66 0x0f 0x38 0x09. */ 65 FNIEMOP_STUB(iemOp_psignw_Vx_Wx); 66 /** Opcode 0x0f 0x38 0x0a. */ 67 FNIEMOP_STUB(iemOp_psignd_Pq_Qq); 68 /** Opcode 0x66 0x0f 0x38 0x0a. */ 69 FNIEMOP_STUB(iemOp_psignd_Vx_Wx); 70 /** Opcode 0x0f 0x38 0x0b. */ 71 FNIEMOP_STUB(iemOp_pmulhrsw_Pq_Qq); 72 /** Opcode 0x66 0x0f 0x38 0x0b. */ 73 FNIEMOP_STUB(iemOp_pmulhrsw_Vx_Wx); 74 /* Opcode 0x0f 0x38 0x0c - invalid. */ 75 /* Opcode 0x66 0x0f 0x38 0x0c - invalid (vex only). */ 76 /* Opcode 0x0f 0x38 0x0d - invalid. */ 77 /* Opcode 0x66 0x0f 0x38 0x0d - invalid (vex only). */ 78 /* Opcode 0x0f 0x38 0x0e - invalid. */ 79 /* Opcode 0x66 0x0f 0x38 0x0e - invalid (vex only). */ 80 /* Opcode 0x0f 0x38 0x0f - invalid. */ 81 /* Opcode 0x66 0x0f 0x38 0x0f - invalid (vex only). */ 82 83 84 /* Opcode 0x0f 0x38 0x10 - invalid */ 85 /** Opcode 0x66 0x0f 0x38 0x10. */ 86 FNIEMOP_STUB(iemOp_pblendvb_Vdq_Wdq); 87 /* Opcode 0x0f 0x38 0x11 - invalid */ 88 /* Opcode 0x66 0x0f 0x38 0x11 - invalid */ 89 /* Opcode 0x0f 0x38 0x12 - invalid */ 90 /* Opcode 0x66 0x0f 0x38 0x12 - invalid */ 91 /* Opcode 0x0f 0x38 0x13 - invalid */ 92 /* Opcode 0x66 0x0f 0x38 0x13 - invalid (vex only). */ 93 /* Opcode 0x0f 0x38 0x14 - invalid */ 94 /** Opcode 0x66 0x0f 0x38 0x14. */ 95 FNIEMOP_STUB(iemOp_blendvps_Vdq_Wdq); 96 /* Opcode 0x0f 0x38 0x15 - invalid */ 97 /** Opcode 0x66 0x0f 0x38 0x15. */ 98 FNIEMOP_STUB(iemOp_blendvpd_Vdq_Wdq); 99 /* Opcode 0x0f 0x38 0x16 - invalid */ 100 /* Opcode 0x66 0x0f 0x38 0x16 - invalid (vex only). */ 101 /* Opcode 0x0f 0x38 0x17 - invalid */ 102 /** Opcode 0x66 0x0f 0x38 0x17 - invalid */ 103 FNIEMOP_STUB(iemOp_ptest_Vx_Wx); 104 /* Opcode 0x0f 0x38 0x18 - invalid */ 105 /* Opcode 0x66 0x0f 0x38 0x18 - invalid (vex only). */ 106 /* Opcode 0x0f 0x38 0x19 - invalid */ 107 /* Opcode 0x66 0x0f 0x38 0x19 - invalid (vex only). */ 108 /* Opcode 0x0f 0x38 0x1a - invalid */ 109 /* Opcode 0x66 0x0f 0x38 0x1a - invalid (vex only). */ 110 /* Opcode 0x0f 0x38 0x1b - invalid */ 111 /* Opcode 0x66 0x0f 0x38 0x1b - invalid */ 112 /** Opcode 0x0f 0x38 0x1c. */ 113 FNIEMOP_STUB(iemOp_pabsb_Pq_Qq); 114 /** Opcode 0x66 0x0f 0x38 0x1c. */ 115 FNIEMOP_STUB(iemOp_pabsb_Vx_Wx); 116 /** Opcode 0x0f 0x38 0x1d. */ 117 FNIEMOP_STUB(iemOp_pabsw_Pq_Qq); 118 /** Opcode 0x66 0x0f 0x38 0x1d. */ 119 FNIEMOP_STUB(iemOp_pabsw_Vx_Wx); 120 /** Opcode 0x0f 0x38 0x1e. */ 121 FNIEMOP_STUB(iemOp_pabsd_Pq_Qq); 122 /** Opcode 0x66 0x0f 0x38 0x1e. */ 123 FNIEMOP_STUB(iemOp_pabsd_Vx_Wx); 124 /* Opcode 0x0f 0x38 0x1f - invalid */ 125 /* Opcode 0x66 0x0f 0x38 0x1f - invalid */ 126 127 128 /** Opcode 0x66 0x0f 0x38 0x20. */ 129 FNIEMOP_STUB(iemOp_pmovsxbw_Vx_UxMq); 130 /** Opcode 0x66 0x0f 0x38 0x21. */ 131 FNIEMOP_STUB(iemOp_pmovsxbd_Vx_UxMd); 132 /** Opcode 0x66 0x0f 0x38 0x22. */ 133 FNIEMOP_STUB(iemOp_pmovsxbq_Vx_UxMw); 134 /** Opcode 0x66 0x0f 0x38 0x23. */ 135 FNIEMOP_STUB(iemOp_pmovsxwd_Vx_UxMq); 136 /** Opcode 0x66 0x0f 0x38 0x24. */ 137 FNIEMOP_STUB(iemOp_pmovsxwq_Vx_UxMd); 138 /** Opcode 0x66 0x0f 0x38 0x25. */ 139 FNIEMOP_STUB(iemOp_pmovsxdq_Vx_UxMq); 140 /* Opcode 0x66 0x0f 0x38 0x26 - invalid */ 141 /* Opcode 0x66 0x0f 0x38 0x27 - invalid */ 142 /** Opcode 0x66 0x0f 0x38 0x28. */ 143 FNIEMOP_STUB(iemOp_pmuldq_Vx_Wx); 144 /** Opcode 0x66 0x0f 0x38 0x29. */ 145 FNIEMOP_STUB(iemOp_pcmpeqq_Vx_Wx); 146 /** Opcode 0x66 0x0f 0x38 0x2a. */ 147 FNIEMOP_STUB(iemOp_movntdqa_Vx_Mx); 148 /** Opcode 0x66 0x0f 0x38 0x2b. */ 149 FNIEMOP_STUB(iemOp_packusdw_Vx_Wx); 150 /* Opcode 0x66 0x0f 0x38 0x2c - invalid (vex only). */ 151 /* Opcode 0x66 0x0f 0x38 0x2d - invalid (vex only). */ 152 /* Opcode 0x66 0x0f 0x38 0x2e - invalid (vex only). */ 153 /* Opcode 0x66 0x0f 0x38 0x2f - invalid (vex only). */ 154 155 /** Opcode 0x66 0x0f 0x38 0x30. */ 156 FNIEMOP_STUB(iemOp_pmovzxbw_Vx_UxMq); 157 /** Opcode 0x66 0x0f 0x38 0x31. */ 158 FNIEMOP_STUB(iemOp_pmovzxbd_Vx_UxMd); 159 /** Opcode 0x66 0x0f 0x38 0x32. */ 160 FNIEMOP_STUB(iemOp_pmovzxbq_Vx_UxMw); 161 /** Opcode 0x66 0x0f 0x38 0x33. */ 162 FNIEMOP_STUB(iemOp_pmovzxwd_Vx_UxMq); 163 /** Opcode 0x66 0x0f 0x38 0x34. */ 164 FNIEMOP_STUB(iemOp_pmovzxwq_Vx_UxMd); 165 /** Opcode 0x66 0x0f 0x38 0x35. */ 166 FNIEMOP_STUB(iemOp_pmovzxdq_Vx_UxMq); 167 /* Opcode 0x66 0x0f 0x38 0x36 - invalid (vex only). */ 168 /** Opcode 0x66 0x0f 0x38 0x37. */ 169 FNIEMOP_STUB(iemOp_pcmpgtq_Vx_Wx); 170 /** Opcode 0x66 0x0f 0x38 0x38. */ 171 FNIEMOP_STUB(iemOp_pminsb_Vx_Wx); 172 /** Opcode 0x66 0x0f 0x38 0x39. */ 173 FNIEMOP_STUB(iemOp_pminsd_Vx_Wx); 174 /** Opcode 0x66 0x0f 0x38 0x3a. */ 175 FNIEMOP_STUB(iemOp_pminuw_Vx_Wx); 176 /** Opcode 0x66 0x0f 0x38 0x3b. */ 177 FNIEMOP_STUB(iemOp_pminud_Vx_Wx); 178 /** Opcode 0x66 0x0f 0x38 0x3c. */ 179 FNIEMOP_STUB(iemOp_pmaxsb_Vx_Wx); 180 /** Opcode 0x66 0x0f 0x38 0x3d. */ 181 FNIEMOP_STUB(iemOp_pmaxsd_Vx_Wx); 182 /** Opcode 0x66 0x0f 0x38 0x3e. */ 183 FNIEMOP_STUB(iemOp_pmaxuw_Vx_Wx); 184 /** Opcode 0x66 0x0f 0x38 0x3f. */ 185 FNIEMOP_STUB(iemOp_pmaxud_Vx_Wx); 186 187 188 /** Opcode 0x66 0x0f 0x38 0x40. */ 189 FNIEMOP_STUB(iemOp_pmulld_Vx_Wx); 190 /** Opcode 0x66 0x0f 0x38 0x41. */ 191 FNIEMOP_STUB(iemOp_phminposuw_Vdq_Wdq); 192 /* Opcode 0x66 0x0f 0x38 0x42 - invalid. */ 193 /* Opcode 0x66 0x0f 0x38 0x43 - invalid. */ 194 /* Opcode 0x66 0x0f 0x38 0x44 - invalid. */ 195 /* Opcode 0x66 0x0f 0x38 0x45 - invalid (vex only). */ 196 /* Opcode 0x66 0x0f 0x38 0x46 - invalid (vex only). */ 197 /* Opcode 0x66 0x0f 0x38 0x47 - invalid (vex only). */ 198 /* Opcode 0x66 0x0f 0x38 0x48 - invalid. */ 199 /* Opcode 0x66 0x0f 0x38 0x49 - invalid. */ 200 /* Opcode 0x66 0x0f 0x38 0x4a - invalid. */ 201 /* Opcode 0x66 0x0f 0x38 0x4b - invalid. */ 202 /* Opcode 0x66 0x0f 0x38 0x4c - invalid. */ 203 /* Opcode 0x66 0x0f 0x38 0x4d - invalid. */ 204 /* Opcode 0x66 0x0f 0x38 0x4e - invalid. */ 205 /* Opcode 0x66 0x0f 0x38 0x4f - invalid. */ 206 207 /* Opcode 0x66 0x0f 0x38 0x50 - invalid. */ 208 /* Opcode 0x66 0x0f 0x38 0x51 - invalid. */ 209 /* Opcode 0x66 0x0f 0x38 0x52 - invalid. */ 210 /* Opcode 0x66 0x0f 0x38 0x53 - invalid. */ 211 /* Opcode 0x66 0x0f 0x38 0x54 - invalid. */ 212 /* Opcode 0x66 0x0f 0x38 0x55 - invalid. */ 213 /* Opcode 0x66 0x0f 0x38 0x56 - invalid. */ 214 /* Opcode 0x66 0x0f 0x38 0x57 - invalid. */ 215 /* Opcode 0x66 0x0f 0x38 0x58 - invalid (vex only). */ 216 /* Opcode 0x66 0x0f 0x38 0x59 - invalid (vex only). */ 217 /* Opcode 0x66 0x0f 0x38 0x5a - invalid (vex only). */ 218 /* Opcode 0x66 0x0f 0x38 0x5b - invalid. */ 219 /* Opcode 0x66 0x0f 0x38 0x5c - invalid. */ 220 /* Opcode 0x66 0x0f 0x38 0x5d - invalid. */ 221 /* Opcode 0x66 0x0f 0x38 0x5e - invalid. */ 222 /* Opcode 0x66 0x0f 0x38 0x5f - invalid. */ 223 224 /* Opcode 0x66 0x0f 0x38 0x60 - invalid. */ 225 /* Opcode 0x66 0x0f 0x38 0x61 - invalid. */ 226 /* Opcode 0x66 0x0f 0x38 0x62 - invalid. */ 227 /* Opcode 0x66 0x0f 0x38 0x63 - invalid. */ 228 /* Opcode 0x66 0x0f 0x38 0x64 - invalid. */ 229 /* Opcode 0x66 0x0f 0x38 0x65 - invalid. */ 230 /* Opcode 0x66 0x0f 0x38 0x66 - invalid. */ 231 /* Opcode 0x66 0x0f 0x38 0x67 - invalid. */ 232 /* Opcode 0x66 0x0f 0x38 0x68 - invalid. */ 233 /* Opcode 0x66 0x0f 0x38 0x69 - invalid. */ 234 /* Opcode 0x66 0x0f 0x38 0x6a - invalid. */ 235 /* Opcode 0x66 0x0f 0x38 0x6b - invalid. */ 236 /* Opcode 0x66 0x0f 0x38 0x6c - invalid. */ 237 /* Opcode 0x66 0x0f 0x38 0x6d - invalid. */ 238 /* Opcode 0x66 0x0f 0x38 0x6e - invalid. */ 239 /* Opcode 0x66 0x0f 0x38 0x6f - invalid. */ 240 241 /* Opcode 0x66 0x0f 0x38 0x70 - invalid. */ 242 /* Opcode 0x66 0x0f 0x38 0x71 - invalid. */ 243 /* Opcode 0x66 0x0f 0x38 0x72 - invalid. */ 244 /* Opcode 0x66 0x0f 0x38 0x73 - invalid. */ 245 /* Opcode 0x66 0x0f 0x38 0x74 - invalid. */ 246 /* Opcode 0x66 0x0f 0x38 0x75 - invalid. */ 247 /* Opcode 0x66 0x0f 0x38 0x76 - invalid. */ 248 /* Opcode 0x66 0x0f 0x38 0x77 - invalid. */ 249 /* Opcode 0x66 0x0f 0x38 0x78 - invalid (vex only). */ 250 /* Opcode 0x66 0x0f 0x38 0x79 - invalid (vex only). */ 251 /* Opcode 0x66 0x0f 0x38 0x7a - invalid. */ 252 /* Opcode 0x66 0x0f 0x38 0x7b - invalid. */ 253 /* Opcode 0x66 0x0f 0x38 0x7c - invalid. */ 254 /* Opcode 0x66 0x0f 0x38 0x7d - invalid. */ 255 /* Opcode 0x66 0x0f 0x38 0x7e - invalid. */ 256 /* Opcode 0x66 0x0f 0x38 0x7f - invalid. */ 257 258 /** Opcode 0x66 0x0f 0x38 0x80. */ 259 FNIEMOP_STUB(iemOp_invept_Gy_Mdq); 260 /** Opcode 0x66 0x0f 0x38 0x81. */ 261 FNIEMOP_STUB(iemOp_invvpid_Gy_Mdq); 262 /** Opcode 0x66 0x0f 0x38 0x82. */ 263 FNIEMOP_STUB(iemOp_invpcid_Gy_Mdq); 264 /* Opcode 0x66 0x0f 0x38 0x83 - invalid. */ 265 /* Opcode 0x66 0x0f 0x38 0x84 - invalid. */ 266 /* Opcode 0x66 0x0f 0x38 0x85 - invalid. */ 267 /* Opcode 0x66 0x0f 0x38 0x86 - invalid. */ 268 /* Opcode 0x66 0x0f 0x38 0x87 - invalid. */ 269 /* Opcode 0x66 0x0f 0x38 0x88 - invalid. */ 270 /* Opcode 0x66 0x0f 0x38 0x89 - invalid. */ 271 /* Opcode 0x66 0x0f 0x38 0x8a - invalid. */ 272 /* Opcode 0x66 0x0f 0x38 0x8b - invalid. */ 273 /* Opcode 0x66 0x0f 0x38 0x8c - invalid (vex only). */ 274 /* Opcode 0x66 0x0f 0x38 0x8d - invalid. */ 275 /* Opcode 0x66 0x0f 0x38 0x8e - invalid (vex only). */ 276 /* Opcode 0x66 0x0f 0x38 0x8f - invalid. */ 277 278 /* Opcode 0x66 0x0f 0x38 0x90 - invalid (vex only). */ 279 /* Opcode 0x66 0x0f 0x38 0x91 - invalid (vex only). */ 280 /* Opcode 0x66 0x0f 0x38 0x92 - invalid (vex only). */ 281 /* Opcode 0x66 0x0f 0x38 0x93 - invalid (vex only). */ 282 /* Opcode 0x66 0x0f 0x38 0x94 - invalid. */ 283 /* Opcode 0x66 0x0f 0x38 0x95 - invalid. */ 284 /* Opcode 0x66 0x0f 0x38 0x96 - invalid (vex only). */ 285 /* Opcode 0x66 0x0f 0x38 0x97 - invalid (vex only). */ 286 /* Opcode 0x66 0x0f 0x38 0x98 - invalid (vex only). */ 287 /* Opcode 0x66 0x0f 0x38 0x99 - invalid (vex only). */ 288 /* Opcode 0x66 0x0f 0x38 0x9a - invalid (vex only). */ 289 /* Opcode 0x66 0x0f 0x38 0x9b - invalid (vex only). */ 290 /* Opcode 0x66 0x0f 0x38 0x9c - invalid (vex only). */ 291 /* Opcode 0x66 0x0f 0x38 0x9d - invalid (vex only). */ 292 /* Opcode 0x66 0x0f 0x38 0x9e - invalid (vex only). */ 293 /* Opcode 0x66 0x0f 0x38 0x9f - invalid (vex only). */ 294 295 /* Opcode 0x66 0x0f 0x38 0xa0 - invalid. */ 296 /* Opcode 0x66 0x0f 0x38 0xa1 - invalid. */ 297 /* Opcode 0x66 0x0f 0x38 0xa2 - invalid. */ 298 /* Opcode 0x66 0x0f 0x38 0xa3 - invalid. */ 299 /* Opcode 0x66 0x0f 0x38 0xa4 - invalid. */ 300 /* Opcode 0x66 0x0f 0x38 0xa5 - invalid. */ 301 /* Opcode 0x66 0x0f 0x38 0xa6 - invalid (vex only). */ 302 /* Opcode 0x66 0x0f 0x38 0xa7 - invalid (vex only). */ 303 /* Opcode 0x66 0x0f 0x38 0xa8 - invalid (vex only). */ 304 /* Opcode 0x66 0x0f 0x38 0xa9 - invalid (vex only). */ 305 /* Opcode 0x66 0x0f 0x38 0xaa - invalid (vex only). */ 306 /* Opcode 0x66 0x0f 0x38 0xab - invalid (vex only). */ 307 /* Opcode 0x66 0x0f 0x38 0xac - invalid (vex only). */ 308 /* Opcode 0x66 0x0f 0x38 0xad - invalid (vex only). */ 309 /* Opcode 0x66 0x0f 0x38 0xae - invalid (vex only). */ 310 /* Opcode 0x66 0x0f 0x38 0xaf - invalid (vex only). */ 311 312 /* Opcode 0x66 0x0f 0x38 0xb0 - invalid. */ 313 /* Opcode 0x66 0x0f 0x38 0xb1 - invalid. */ 314 /* Opcode 0x66 0x0f 0x38 0xb2 - invalid. */ 315 /* Opcode 0x66 0x0f 0x38 0xb3 - invalid. */ 316 /* Opcode 0x66 0x0f 0x38 0xb4 - invalid. */ 317 /* Opcode 0x66 0x0f 0x38 0xb5 - invalid. */ 318 /* Opcode 0x66 0x0f 0x38 0xb6 - invalid (vex only). */ 319 /* Opcode 0x66 0x0f 0x38 0xb7 - invalid (vex only). */ 320 /* Opcode 0x66 0x0f 0x38 0xb8 - invalid (vex only). */ 321 /* Opcode 0x66 0x0f 0x38 0xb9 - invalid (vex only). */ 322 /* Opcode 0x66 0x0f 0x38 0xba - invalid (vex only). */ 323 /* Opcode 0x66 0x0f 0x38 0xbb - invalid (vex only). */ 324 /* Opcode 0x66 0x0f 0x38 0xbc - invalid (vex only). */ 325 /* Opcode 0x66 0x0f 0x38 0xbd - invalid (vex only). */ 326 /* Opcode 0x66 0x0f 0x38 0xbe - invalid (vex only). */ 327 /* Opcode 0x66 0x0f 0x38 0xbf - invalid (vex only). */ 328 329 /* Opcode 0x0f 0x38 0xc0 - invalid. */ 330 /* Opcode 0x66 0x0f 0x38 0xc0 - invalid. */ 331 /* Opcode 0x0f 0x38 0xc1 - invalid. */ 332 /* Opcode 0x66 0x0f 0x38 0xc1 - invalid. */ 333 /* Opcode 0x0f 0x38 0xc2 - invalid. */ 334 /* Opcode 0x66 0x0f 0x38 0xc2 - invalid. */ 335 /* Opcode 0x0f 0x38 0xc3 - invalid. */ 336 /* Opcode 0x66 0x0f 0x38 0xc3 - invalid. */ 337 /* Opcode 0x0f 0x38 0xc4 - invalid. */ 338 /* Opcode 0x66 0x0f 0x38 0xc4 - invalid. */ 339 /* Opcode 0x0f 0x38 0xc5 - invalid. */ 340 /* Opcode 0x66 0x0f 0x38 0xc5 - invalid. */ 341 /* Opcode 0x0f 0x38 0xc6 - invalid. */ 342 /* Opcode 0x66 0x0f 0x38 0xc6 - invalid. */ 343 /* Opcode 0x0f 0x38 0xc7 - invalid. */ 344 /* Opcode 0x66 0x0f 0x38 0xc7 - invalid. */ 345 /** Opcode 0x0f 0x38 0xc8. */ 346 FNIEMOP_STUB(iemOp_sha1nexte_Vdq_Wdq); 347 /* Opcode 0x66 0x0f 0x38 0xc8 - invalid. */ 348 /** Opcode 0x0f 0x38 0xc9. */ 349 FNIEMOP_STUB(iemOp_sha1msg1_Vdq_Wdq); 350 /* Opcode 0x66 0x0f 0x38 0xc9 - invalid. */ 351 /** Opcode 0x0f 0x38 0xca. */ 352 FNIEMOP_STUB(iemOp_sha1msg2_Vdq_Wdq); 353 /* Opcode 0x66 0x0f 0x38 0xca - invalid. */ 354 /** Opcode 0x0f 0x38 0xcb. */ 355 FNIEMOP_STUB(iemOp_sha256rnds2_Vdq_Wdq); 356 /* Opcode 0x66 0x0f 0x38 0xcb - invalid. */ 357 /** Opcode 0x0f 0x38 0xcc. */ 358 FNIEMOP_STUB(iemOp_sha256msg1_Vdq_Wdq); 359 /* Opcode 0x66 0x0f 0x38 0xcc - invalid. */ 360 /** Opcode 0x0f 0x38 0xcd. */ 361 FNIEMOP_STUB(iemOp_sha256msg2_Vdq_Wdq); 362 /* Opcode 0x66 0x0f 0x38 0xcd - invalid. */ 363 /* Opcode 0x0f 0x38 0xce - invalid. */ 364 /* Opcode 0x66 0x0f 0x38 0xce - invalid. */ 365 /* Opcode 0x0f 0x38 0xcf - invalid. */ 366 /* Opcode 0x66 0x0f 0x38 0xcf - invalid. */ 367 368 /* Opcode 0x66 0x0f 0x38 0xd0 - invalid. */ 369 /* Opcode 0x66 0x0f 0x38 0xd1 - invalid. */ 370 /* Opcode 0x66 0x0f 0x38 0xd2 - invalid. */ 371 /* Opcode 0x66 0x0f 0x38 0xd3 - invalid. */ 372 /* Opcode 0x66 0x0f 0x38 0xd4 - invalid. */ 373 /* Opcode 0x66 0x0f 0x38 0xd5 - invalid. */ 374 /* Opcode 0x66 0x0f 0x38 0xd6 - invalid. */ 375 /* Opcode 0x66 0x0f 0x38 0xd7 - invalid. */ 376 /* Opcode 0x66 0x0f 0x38 0xd8 - invalid. */ 377 /* Opcode 0x66 0x0f 0x38 0xd9 - invalid. */ 378 /* Opcode 0x66 0x0f 0x38 0xda - invalid. */ 379 /** Opcode 0x66 0x0f 0x38 0xdb. */ 380 FNIEMOP_STUB(iemOp_aesimc_Vdq_Wdq); 381 /** Opcode 0x66 0x0f 0x38 0xdc. */ 382 FNIEMOP_STUB(iemOp_aesenc_Vdq_Wdq); 383 /** Opcode 0x66 0x0f 0x38 0xdd. */ 384 FNIEMOP_STUB(iemOp_aesenclast_Vdq_Wdq); 385 /** Opcode 0x66 0x0f 0x38 0xde. */ 386 FNIEMOP_STUB(iemOp_aesdec_Vdq_Wdq); 387 /** Opcode 0x66 0x0f 0x38 0xdf. */ 388 FNIEMOP_STUB(iemOp_aesdeclast_Vdq_Wdq); 389 390 /* Opcode 0x66 0x0f 0x38 0xb0 - invalid. */ 391 /* Opcode 0x66 0x0f 0x38 0xb1 - invalid. */ 392 /* Opcode 0x66 0x0f 0x38 0xb2 - invalid. */ 393 /* Opcode 0x66 0x0f 0x38 0xb3 - invalid. */ 394 /* Opcode 0x66 0x0f 0x38 0xb4 - invalid. */ 395 /* Opcode 0x66 0x0f 0x38 0xb5 - invalid. */ 396 /* Opcode 0x66 0x0f 0x38 0xb6 - invalid. */ 397 /* Opcode 0x66 0x0f 0x38 0xb7 - invalid. */ 398 /* Opcode 0x66 0x0f 0x38 0xb8 - invalid. */ 399 /* Opcode 0x66 0x0f 0x38 0xb9 - invalid. */ 400 /* Opcode 0x66 0x0f 0x38 0xba - invalid. */ 401 /* Opcode 0x66 0x0f 0x38 0xbb - invalid. */ 402 /* Opcode 0x66 0x0f 0x38 0xbc - invalid. */ 403 /* Opcode 0x66 0x0f 0x38 0xbd - invalid. */ 404 /* Opcode 0x66 0x0f 0x38 0xbe - invalid. */ 405 /* Opcode 0x66 0x0f 0x38 0xbf - invalid. */ 406 407 408 /** Opcode 0x0f 0x38 0xf0. */ 409 FNIEMOP_STUB(iemOp_movbe_Gy_My); 410 /** Opcode 0x66 0x0f 0x38 0xf0. */ 411 FNIEMOP_STUB(iemOp_movbe_Gw_Mw); 412 /* Opcode 0xf3 0x0f 0x38 0xf0 - invalid. */ 413 /** Opcode 0xf2 0x0f 0x38 0xf0. */ 414 FNIEMOP_STUB(iemOp_crc32_Gb_Eb); 415 416 /** Opcode 0x0f 0x38 0xf1. */ 417 FNIEMOP_STUB(iemOp_movbe_My_Gy); 418 /** Opcode 0x66 0x0f 0x38 0xf1. */ 419 FNIEMOP_STUB(iemOp_movbe_Mw_Gw); 420 /* Opcode 0xf3 0x0f 0x38 0xf1 - invalid. */ 421 /** Opcode 0xf2 0x0f 0x38 0xf1. */ 422 FNIEMOP_STUB(iemOp_crc32_Gv_Ev); 423 424 /* Opcode 0x0f 0x38 0xf2 - invalid (vex only). */ 425 /* Opcode 0x66 0x0f 0x38 0xf2 - invalid. */ 426 /* Opcode 0xf3 0x0f 0x38 0xf2 - invalid. */ 427 /* Opcode 0xf2 0x0f 0x38 0xf2 - invalid. */ 428 429 /* Opcode 0x0f 0x38 0xf3 - invalid (vex only - group 17). */ 430 /* Opcode 0x66 0x0f 0x38 0xf3 - invalid (vex only - group 17). */ 431 /* Opcode 0xf3 0x0f 0x38 0xf3 - invalid (vex only - group 17). */ 432 /* Opcode 0xf2 0x0f 0x38 0xf3 - invalid (vex only - group 17). */ 433 434 /* Opcode 0x0f 0x38 0xf4 - invalid. */ 435 /* Opcode 0x66 0x0f 0x38 0xf4 - invalid. */ 436 /* Opcode 0xf3 0x0f 0x38 0xf4 - invalid. */ 437 /* Opcode 0xf2 0x0f 0x38 0xf4 - invalid. */ 438 439 /* Opcode 0x0f 0x38 0xf5 - invalid (vex only). */ 440 /* Opcode 0x66 0x0f 0x38 0xf5 - invalid. */ 441 /* Opcode 0xf3 0x0f 0x38 0xf5 - invalid (vex only). */ 442 /* Opcode 0xf2 0x0f 0x38 0xf5 - invalid (vex only). */ 443 444 /* Opcode 0x0f 0x38 0xf6 - invalid. */ 445 /** Opcode 0x66 0x0f 0x38 0xf6. */ 446 FNIEMOP_STUB(iemOp_adcx_Gy_Ey); 447 /** Opcode 0xf3 0x0f 0x38 0xf6. */ 448 FNIEMOP_STUB(iemOp_adox_Gy_Ey); 449 /* Opcode 0xf2 0x0f 0x38 0xf6 - invalid (vex only). */ 450 451 /* Opcode 0x0f 0x38 0xf7 - invalid (vex only). */ 452 /* Opcode 0x66 0x0f 0x38 0xf7 - invalid (vex only). */ 453 /* Opcode 0xf3 0x0f 0x38 0xf7 - invalid (vex only). */ 454 /* Opcode 0xf2 0x0f 0x38 0xf7 - invalid (vex only). */ 455 456 /* Opcode 0x0f 0x38 0xf8 - invalid. */ 457 /* Opcode 0x66 0x0f 0x38 0xf8 - invalid. */ 458 /* Opcode 0xf3 0x0f 0x38 0xf8 - invalid. */ 459 /* Opcode 0xf2 0x0f 0x38 0xf8 - invalid. */ 460 461 /* Opcode 0x0f 0x38 0xf9 - invalid. */ 462 /* Opcode 0x66 0x0f 0x38 0xf9 - invalid. */ 463 /* Opcode 0xf3 0x0f 0x38 0xf9 - invalid. */ 464 /* Opcode 0xf2 0x0f 0x38 0xf9 - invalid. */ 465 466 /* Opcode 0x0f 0x38 0xfa - invalid. */ 467 /* Opcode 0x66 0x0f 0x38 0xfa - invalid. */ 468 /* Opcode 0xf3 0x0f 0x38 0xfa - invalid. */ 469 /* Opcode 0xf2 0x0f 0x38 0xfa - invalid. */ 470 471 /* Opcode 0x0f 0x38 0xfb - invalid. */ 472 /* Opcode 0x66 0x0f 0x38 0xfb - invalid. */ 473 /* Opcode 0xf3 0x0f 0x38 0xfb - invalid. */ 474 /* Opcode 0xf2 0x0f 0x38 0xfb - invalid. */ 475 476 /* Opcode 0x0f 0x38 0xfc - invalid. */ 477 /* Opcode 0x66 0x0f 0x38 0xfc - invalid. */ 478 /* Opcode 0xf3 0x0f 0x38 0xfc - invalid. */ 479 /* Opcode 0xf2 0x0f 0x38 0xfc - invalid. */ 480 481 /* Opcode 0x0f 0x38 0xfd - invalid. */ 482 /* Opcode 0x66 0x0f 0x38 0xfd - invalid. */ 483 /* Opcode 0xf3 0x0f 0x38 0xfd - invalid. */ 484 /* Opcode 0xf2 0x0f 0x38 0xfd - invalid. */ 485 486 /* Opcode 0x0f 0x38 0xfe - invalid. */ 487 /* Opcode 0x66 0x0f 0x38 0xfe - invalid. */ 488 /* Opcode 0xf3 0x0f 0x38 0xfe - invalid. */ 489 /* Opcode 0xf2 0x0f 0x38 0xfe - invalid. */ 490 491 /* Opcode 0x0f 0x38 0xff - invalid. */ 492 /* Opcode 0x66 0x0f 0x38 0xff - invalid. */ 493 /* Opcode 0xf3 0x0f 0x38 0xff - invalid. */ 494 /* Opcode 0xf2 0x0f 0x38 0xff - invalid. */ 495 26 /* Opcode VEX.0F38 0x00 - invalid. */ 27 /** Opcode VEX.66.0F38 0x00. */ 28 FNIEMOP_STUB(iemOp_vpshufb_Vx_Hx_Wx); 29 /* Opcode VEX.0F38 0x01 - invalid. */ 30 /** Opcode VEX.66.0F38 0x01. */ 31 FNIEMOP_STUB(iemOp_vphaddw_Vx_Hx_Wx); 32 /* Opcode VEX.0F38 0x02 - invalid. */ 33 /** Opcode VEX.66.0F38 0x02. */ 34 FNIEMOP_STUB(iemOp_vphaddd_Vx_Hx_Wx); 35 /* Opcode VEX.0F38 0x03 - invalid. */ 36 /** Opcode VEX.66.0F38 0x03. */ 37 FNIEMOP_STUB(iemOp_vphaddsw_Vx_Hx_Wx); 38 /* Opcode VEX.0F38 0x04 - invalid. */ 39 /** Opcode VEX.66.0F38 0x04. */ 40 FNIEMOP_STUB(iemOp_vpmaddubsw_Vx_Hx_Wx); 41 /* Opcode VEX.0F38 0x05 - invalid. */ 42 /** Opcode VEX.66.0F38 0x05. */ 43 FNIEMOP_STUB(iemOp_vphsubw_Vx_Hx_Wx); 44 /* Opcode VEX.0F38 0x06 - invalid. */ 45 /** Opcode VEX.66.0F38 0x06. */ 46 FNIEMOP_STUB(iemOp_vphsubdq_Vx_Hx_Wx); 47 /* Opcode VEX.0F38 0x07 - invalid. */ 48 /** Opcode VEX.66.0F38 0x07. */ 49 FNIEMOP_STUB(iemOp_vphsubsw_Vx_Hx_Wx); 50 /* Opcode VEX.0F38 0x08 - invalid. */ 51 /** Opcode VEX.66.0F38 0x08. */ 52 FNIEMOP_STUB(iemOp_vpsignb_Vx_Hx_Wx); 53 /* Opcode VEX.0F38 0x09 - invalid. */ 54 /** Opcode VEX.66.0F38 0x09. */ 55 FNIEMOP_STUB(iemOp_vpsignw_Vx_Hx_Wx); 56 /* Opcode VEX.0F38 0x0a - invalid. */ 57 /** Opcode VEX.66.0F38 0x0a. */ 58 FNIEMOP_STUB(iemOp_vpsignd_Vx_Hx_Wx); 59 /* Opcode VEX.0F38 0x0b - invalid. */ 60 /** Opcode VEX.66.0F38 0x0b. */ 61 FNIEMOP_STUB(iemOp_vpmulhrsw_Vx_Hx_Wx); 62 /* Opcode VEX.0F38 0x0c - invalid. */ 63 /** Opcode VEX.66.0F38 0x0c. */ 64 FNIEMOP_STUB(iemOp_vpermilps_Vx_Hx_Wx); 65 /* Opcode VEX.0F38 0x0d - invalid. */ 66 /** Opcode VEX.66.0F38 0x0d. */ 67 FNIEMOP_STUB(iemOp_vpermilpd_Vx_Hx_Wx); 68 /* Opcode VEX.0F38 0x0e - invalid. */ 69 /** Opcode VEX.66.0F38 0x0e. */ 70 FNIEMOP_STUB(iemOp_vtestps_Vx_Wx); 71 /* Opcode VEX.0F38 0x0f - invalid. */ 72 /** Opcode VEX.66.0F38 0x0f. */ 73 FNIEMOP_STUB(iemOp_vtestpd_Vx_Wx); 74 75 76 /* Opcode VEX.0F38 0x10 - invalid */ 77 /* Opcode VEX.66.0F38 0x10 - invalid (legacy only). */ 78 /* Opcode VEX.0F38 0x11 - invalid */ 79 /* Opcode VEX.66.0F38 0x11 - invalid */ 80 /* Opcode VEX.0F38 0x12 - invalid */ 81 /* Opcode VEX.66.0F38 0x12 - invalid */ 82 /* Opcode VEX.0F38 0x13 - invalid */ 83 /* Opcode VEX.66.0F38 0x13 - invalid (vex only). */ 84 /* Opcode VEX.0F38 0x14 - invalid */ 85 /* Opcode VEX.66.0F38 0x14 - invalid (legacy only). */ 86 /* Opcode VEX.0F38 0x15 - invalid */ 87 /* Opcode VEX.66.0F38 0x15 - invalid (legacy only). */ 88 /* Opcode VEX.0F38 0x16 - invalid */ 89 /** Opcode VEX.66.0F38 0x16. */ 90 FNIEMOP_STUB(iemOp_vpermps_Vqq_Hqq_Wqq); 91 /* Opcode VEX.0F38 0x17 - invalid */ 92 /** Opcode VEX.66.0F38 0x17 - invalid */ 93 FNIEMOP_STUB(iemOp_vptest_Vx_Wx); 94 /* Opcode VEX.0F38 0x18 - invalid */ 95 /** Opcode VEX.66.0F38 0x18. */ 96 FNIEMOP_STUB(iemOp_vbroadcastss_Vx_Wd); 97 /* Opcode VEX.0F38 0x19 - invalid */ 98 /** Opcode VEX.66.0F38 0x19. */ 99 FNIEMOP_STUB(iemOp_vbroadcastsd_Vqq_Wq); 100 /* Opcode VEX.0F38 0x1a - invalid */ 101 /** Opcode VEX.66.0F38 0x1a. */ 102 FNIEMOP_STUB(iemOp_vbroadcastf128_Vqq_Mdq); 103 /* Opcode VEX.0F38 0x1b - invalid */ 104 /* Opcode VEX.66.0F38 0x1b - invalid */ 105 /* Opcode VEX.0F38 0x1c - invalid. */ 106 /** Opcode VEX.66.0F38 0x1c. */ 107 FNIEMOP_STUB(iemOp_vpabsb_Vx_Wx); 108 /* Opcode VEX.0F38 0x1d - invalid. */ 109 /** Opcode VEX.66.0F38 0x1d. */ 110 FNIEMOP_STUB(iemOp_vpabsw_Vx_Wx); 111 /* Opcode VEX.0F38 0x1e - invalid. */ 112 /** Opcode VEX.66.0F38 0x1e. */ 113 FNIEMOP_STUB(iemOp_vpabsd_Vx_Wx); 114 /* Opcode VEX.0F38 0x1f - invalid */ 115 /* Opcode VEX.66.0F38 0x1f - invalid */ 116 117 118 /** Opcode VEX.66.0F38 0x20. */ 119 FNIEMOP_STUB(iemOp_vpmovsxbw_Vx_UxMq); 120 /** Opcode VEX.66.0F38 0x21. */ 121 FNIEMOP_STUB(iemOp_vpmovsxbd_Vx_UxMd); 122 /** Opcode VEX.66.0F38 0x22. */ 123 FNIEMOP_STUB(iemOp_vpmovsxbq_Vx_UxMw); 124 /** Opcode VEX.66.0F38 0x23. */ 125 FNIEMOP_STUB(iemOp_vpmovsxwd_Vx_UxMq); 126 /** Opcode VEX.66.0F38 0x24. */ 127 FNIEMOP_STUB(iemOp_vpmovsxwq_Vx_UxMd); 128 /** Opcode VEX.66.0F38 0x25. */ 129 FNIEMOP_STUB(iemOp_vpmovsxdq_Vx_UxMq); 130 /* Opcode VEX.66.0F38 0x26 - invalid */ 131 /* Opcode VEX.66.0F38 0x27 - invalid */ 132 /** Opcode VEX.66.0F38 0x28. */ 133 FNIEMOP_STUB(iemOp_vpmuldq_Vx_Hx_Wx); 134 /** Opcode VEX.66.0F38 0x29. */ 135 FNIEMOP_STUB(iemOp_vpcmpeqq_Vx_Hx_Wx); 136 /** Opcode VEX.66.0F38 0x2a. */ 137 FNIEMOP_STUB(iemOp_vmovntdqa_Vx_Hx_Mx); 138 /** Opcode VEX.66.0F38 0x2b. */ 139 FNIEMOP_STUB(iemOp_vpackusdw_Vx_Hx_Wx); 140 /** Opcode VEX.66.0F38 0x2c. */ 141 FNIEMOP_STUB(iemOp_vmaskmovps_Vx_Hx_Mx); 142 /** Opcode VEX.66.0F38 0x2d. */ 143 FNIEMOP_STUB(iemOp_vmaskmovpd_Vx_Hx_Mx); 144 /** Opcode VEX.66.0F38 0x2e. */ 145 FNIEMOP_STUB(iemOp_vmaskmovps_Mx_Hx_Vx); 146 /** Opcode VEX.66.0F38 0x2f. */ 147 FNIEMOP_STUB(iemOp_vmaskmovpd_Mx_Hx_Vx); 148 149 /** Opcode VEX.66.0F38 0x30. */ 150 FNIEMOP_STUB(iemOp_vpmovzxbw_Vx_UxMq); 151 /** Opcode VEX.66.0F38 0x31. */ 152 FNIEMOP_STUB(iemOp_vpmovzxbd_Vx_UxMd); 153 /** Opcode VEX.66.0F38 0x32. */ 154 FNIEMOP_STUB(iemOp_vpmovzxbq_Vx_UxMw); 155 /** Opcode VEX.66.0F38 0x33. */ 156 FNIEMOP_STUB(iemOp_vpmovzxwd_Vx_UxMq); 157 /** Opcode VEX.66.0F38 0x34. */ 158 FNIEMOP_STUB(iemOp_vpmovzxwq_Vx_UxMd); 159 /** Opcode VEX.66.0F38 0x35. */ 160 FNIEMOP_STUB(iemOp_vpmovzxdq_Vx_UxMq); 161 /* Opcode VEX.66.0F38 0x36. */ 162 FNIEMOP_STUB(iemOp_vpermd_Vqq_Hqq_Wqq); 163 /** Opcode VEX.66.0F38 0x37. */ 164 FNIEMOP_STUB(iemOp_vpcmpgtq_Vx_Hx_Wx); 165 /** Opcode VEX.66.0F38 0x38. */ 166 FNIEMOP_STUB(iemOp_vpminsb_Vx_Hx_Wx); 167 /** Opcode VEX.66.0F38 0x39. */ 168 FNIEMOP_STUB(iemOp_vpminsd_Vx_Hx_Wx); 169 /** Opcode VEX.66.0F38 0x3a. */ 170 FNIEMOP_STUB(iemOp_vpminuw_Vx_Hx_Wx); 171 /** Opcode VEX.66.0F38 0x3b. */ 172 FNIEMOP_STUB(iemOp_vpminud_Vx_Hx_Wx); 173 /** Opcode VEX.66.0F38 0x3c. */ 174 FNIEMOP_STUB(iemOp_vpmaxsb_Vx_Hx_Wx); 175 /** Opcode VEX.66.0F38 0x3d. */ 176 FNIEMOP_STUB(iemOp_vpmaxsd_Vx_Hx_Wx); 177 /** Opcode VEX.66.0F38 0x3e. */ 178 FNIEMOP_STUB(iemOp_vpmaxuw_Vx_Hx_Wx); 179 /** Opcode VEX.66.0F38 0x3f. */ 180 FNIEMOP_STUB(iemOp_vpmaxud_Vx_Hx_Wx); 181 182 183 /** Opcode VEX.66.0F38 0x40. */ 184 FNIEMOP_STUB(iemOp_vpmulld_Vx_Hx_Wx); 185 /** Opcode VEX.66.0F38 0x41. */ 186 FNIEMOP_STUB(iemOp_vphminposuw_Vdq_Wdq); 187 /* Opcode VEX.66.0F38 0x42 - invalid. */ 188 /* Opcode VEX.66.0F38 0x43 - invalid. */ 189 /* Opcode VEX.66.0F38 0x44 - invalid. */ 190 /** Opcode VEX.66.0F38 0x45. */ 191 FNIEMOP_STUB(iemOp_vpsrlvd_q_Vx_Hx_Wx); 192 /** Opcode VEX.66.0F38 0x46. */ 193 FNIEMOP_STUB(iemOp_vsravd_Vx_Hx_Wx); 194 /** Opcode VEX.66.0F38 0x47. */ 195 FNIEMOP_STUB(iemOp_vpsllvd_q_Vx_Hx_Wx); 196 /* Opcode VEX.66.0F38 0x48 - invalid. */ 197 /* Opcode VEX.66.0F38 0x49 - invalid. */ 198 /* Opcode VEX.66.0F38 0x4a - invalid. */ 199 /* Opcode VEX.66.0F38 0x4b - invalid. */ 200 /* Opcode VEX.66.0F38 0x4c - invalid. */ 201 /* Opcode VEX.66.0F38 0x4d - invalid. */ 202 /* Opcode VEX.66.0F38 0x4e - invalid. */ 203 /* Opcode VEX.66.0F38 0x4f - invalid. */ 204 205 /* Opcode VEX.66.0F38 0x50 - invalid. */ 206 /* Opcode VEX.66.0F38 0x51 - invalid. */ 207 /* Opcode VEX.66.0F38 0x52 - invalid. */ 208 /* Opcode VEX.66.0F38 0x53 - invalid. */ 209 /* Opcode VEX.66.0F38 0x54 - invalid. */ 210 /* Opcode VEX.66.0F38 0x55 - invalid. */ 211 /* Opcode VEX.66.0F38 0x56 - invalid. */ 212 /* Opcode VEX.66.0F38 0x57 - invalid. */ 213 /** Opcode VEX.66.0F38 0x58. */ 214 FNIEMOP_STUB(iemOp_vpbroadcastd_Vx_Wx); 215 /** Opcode VEX.66.0F38 0x59. */ 216 FNIEMOP_STUB(iemOp_vpbroadcastq_Vx_Wx); 217 /** Opcode VEX.66.0F38 0x5a. */ 218 FNIEMOP_STUB(iemOp_vbroadcasti128_Vqq_Mdq); 219 /* Opcode VEX.66.0F38 0x5b - invalid. */ 220 /* Opcode VEX.66.0F38 0x5c - invalid. */ 221 /* Opcode VEX.66.0F38 0x5d - invalid. */ 222 /* Opcode VEX.66.0F38 0x5e - invalid. */ 223 /* Opcode VEX.66.0F38 0x5f - invalid. */ 224 225 /* Opcode VEX.66.0F38 0x60 - invalid. */ 226 /* Opcode VEX.66.0F38 0x61 - invalid. */ 227 /* Opcode VEX.66.0F38 0x62 - invalid. */ 228 /* Opcode VEX.66.0F38 0x63 - invalid. */ 229 /* Opcode VEX.66.0F38 0x64 - invalid. */ 230 /* Opcode VEX.66.0F38 0x65 - invalid. */ 231 /* Opcode VEX.66.0F38 0x66 - invalid. */ 232 /* Opcode VEX.66.0F38 0x67 - invalid. */ 233 /* Opcode VEX.66.0F38 0x68 - invalid. */ 234 /* Opcode VEX.66.0F38 0x69 - invalid. */ 235 /* Opcode VEX.66.0F38 0x6a - invalid. */ 236 /* Opcode VEX.66.0F38 0x6b - invalid. */ 237 /* Opcode VEX.66.0F38 0x6c - invalid. */ 238 /* Opcode VEX.66.0F38 0x6d - invalid. */ 239 /* Opcode VEX.66.0F38 0x6e - invalid. */ 240 /* Opcode VEX.66.0F38 0x6f - invalid. */ 241 242 /* Opcode VEX.66.0F38 0x70 - invalid. */ 243 /* Opcode VEX.66.0F38 0x71 - invalid. */ 244 /* Opcode VEX.66.0F38 0x72 - invalid. */ 245 /* Opcode VEX.66.0F38 0x73 - invalid. */ 246 /* Opcode VEX.66.0F38 0x74 - invalid. */ 247 /* Opcode VEX.66.0F38 0x75 - invalid. */ 248 /* Opcode VEX.66.0F38 0x76 - invalid. */ 249 /* Opcode VEX.66.0F38 0x77 - invalid. */ 250 /** Opcode VEX.66.0F38 0x78. */ 251 FNIEMOP_STUB(iemOp_vpboardcastb_Vx_Wx); 252 /** Opcode VEX.66.0F38 0x79. */ 253 FNIEMOP_STUB(iemOp_vpboardcastw_Vx_Wx); 254 /* Opcode VEX.66.0F38 0x7a - invalid. */ 255 /* Opcode VEX.66.0F38 0x7b - invalid. */ 256 /* Opcode VEX.66.0F38 0x7c - invalid. */ 257 /* Opcode VEX.66.0F38 0x7d - invalid. */ 258 /* Opcode VEX.66.0F38 0x7e - invalid. */ 259 /* Opcode VEX.66.0F38 0x7f - invalid. */ 260 261 /* Opcode VEX.66.0F38 0x80 - invalid (legacy only). */ 262 /* Opcode VEX.66.0F38 0x81 - invalid (legacy only). */ 263 /* Opcode VEX.66.0F38 0x82 - invalid (legacy only). */ 264 /* Opcode VEX.66.0F38 0x83 - invalid. */ 265 /* Opcode VEX.66.0F38 0x84 - invalid. */ 266 /* Opcode VEX.66.0F38 0x85 - invalid. */ 267 /* Opcode VEX.66.0F38 0x86 - invalid. */ 268 /* Opcode VEX.66.0F38 0x87 - invalid. */ 269 /* Opcode VEX.66.0F38 0x88 - invalid. */ 270 /* Opcode VEX.66.0F38 0x89 - invalid. */ 271 /* Opcode VEX.66.0F38 0x8a - invalid. */ 272 /* Opcode VEX.66.0F38 0x8b - invalid. */ 273 /** Opcode VEX.66.0F38 0x8c. */ 274 FNIEMOP_STUB(iemOp_vpmaskmovd_q_Vx_Hx_Mx); 275 /* Opcode VEX.66.0F38 0x8d - invalid. */ 276 /** Opcode VEX.66.0F38 0x8e. */ 277 FNIEMOP_STUB(iemOp_vpmaskmovd_q_Mx_Vx_Hx); 278 /* Opcode VEX.66.0F38 0x8f - invalid. */ 279 280 /** Opcode VEX.66.0F38 0x90 (vex only). */ 281 FNIEMOP_STUB(iemOp_vgatherdd_q_Vx_Hx_Wx); 282 /** Opcode VEX.66.0F38 0x91 (vex only). */ 283 FNIEMOP_STUB(iemOp_vgatherqd_q_Vx_Hx_Wx); 284 /** Opcode VEX.66.0F38 0x92 (vex only). */ 285 FNIEMOP_STUB(iemOp_vgatherdps_d_Vx_Hx_Wx); 286 /** Opcode VEX.66.0F38 0x93 (vex only). */ 287 FNIEMOP_STUB(iemOp_vgatherqps_d_Vx_Hx_Wx); 288 /* Opcode VEX.66.0F38 0x94 - invalid. */ 289 /* Opcode VEX.66.0F38 0x95 - invalid. */ 290 /** Opcode VEX.66.0F38 0x96 (vex only). */ 291 FNIEMOP_STUB(iemOp_vfmaddsub132ps_q_Vx_Hx_Wx); 292 /** Opcode VEX.66.0F38 0x97 (vex only). */ 293 FNIEMOP_STUB(iemOp_vfmsubadd132ps_d_Vx_Hx_Wx); 294 /** Opcode VEX.66.0F38 0x98 (vex only). */ 295 FNIEMOP_STUB(iemOp_vfmadd132ps_d_Vx_Hx_Wx); 296 /** Opcode VEX.66.0F38 0x99 (vex only). */ 297 FNIEMOP_STUB(iemOp_vfmadd132ss_d_Vx_Hx_Wx); 298 /** Opcode VEX.66.0F38 0x9a (vex only). */ 299 FNIEMOP_STUB(iemOp_vfmsub132ps_d_Vx_Hx_Wx); 300 /** Opcode VEX.66.0F38 0x9b (vex only). */ 301 FNIEMOP_STUB(iemOp_vfmsub132ss_d_Vx_Hx_Wx); 302 /** Opcode VEX.66.0F38 0x9c (vex only). */ 303 FNIEMOP_STUB(iemOp_vfnmadd132ps_d_Vx_Hx_Wx); 304 /** Opcode VEX.66.0F38 0x9d (vex only). */ 305 FNIEMOP_STUB(iemOp_vfnmadd132ss_d_Vx_Hx_Wx); 306 /** Opcode VEX.66.0F38 0x9e (vex only). */ 307 FNIEMOP_STUB(iemOp_vfnmsub132ps_d_Vx_Hx_Wx); 308 /** Opcode VEX.66.0F38 0x9f (vex only). */ 309 FNIEMOP_STUB(iemOp_vfnmsub132ss_d_Vx_Hx_Wx); 310 311 /* Opcode VEX.66.0F38 0xa0 - invalid. */ 312 /* Opcode VEX.66.0F38 0xa1 - invalid. */ 313 /* Opcode VEX.66.0F38 0xa2 - invalid. */ 314 /* Opcode VEX.66.0F38 0xa3 - invalid. */ 315 /* Opcode VEX.66.0F38 0xa4 - invalid. */ 316 /* Opcode VEX.66.0F38 0xa5 - invalid. */ 317 /** Opcode VEX.66.0F38 0xa6 (vex only). */ 318 FNIEMOP_STUB(iemOp_vfmaddsub213ps_d_Vx_Hx_Wx); 319 /** Opcode VEX.66.0F38 0xa7 (vex only). */ 320 FNIEMOP_STUB(iemOp_vfmsubadd213ps_d_Vx_Hx_Wx); 321 /** Opcode VEX.66.0F38 0xa8 (vex only). */ 322 FNIEMOP_STUB(iemOp_vfmadd213ps_d_Vx_Hx_Wx); 323 /** Opcode VEX.66.0F38 0xa9 (vex only). */ 324 FNIEMOP_STUB(iemOp_vfmadd213ss_d_Vx_Hx_Wx); 325 /** Opcode VEX.66.0F38 0xaa (vex only). */ 326 FNIEMOP_STUB(iemOp_vfmsub213ps_d_Vx_Hx_Wx); 327 /** Opcode VEX.66.0F38 0xab (vex only). */ 328 FNIEMOP_STUB(iemOp_vfmsub213ss_d_Vx_Hx_Wx); 329 /** Opcode VEX.66.0F38 0xac (vex only). */ 330 FNIEMOP_STUB(iemOp_vfnmadd213ps_d_Vx_Hx_Wx); 331 /** Opcode VEX.66.0F38 0xad (vex only). */ 332 FNIEMOP_STUB(iemOp_vfnmadd213ss_d_Vx_Hx_Wx); 333 /** Opcode VEX.66.0F38 0xae (vex only). */ 334 FNIEMOP_STUB(iemOp_vfnmsub213ps_d_Vx_Hx_Wx); 335 /** Opcode VEX.66.0F38 0xaf (vex only). */ 336 FNIEMOP_STUB(iemOp_vfnmsub213ss_d_Vx_Hx_Wx); 337 338 /* Opcode VEX.66.0F38 0xb0 - invalid. */ 339 /* Opcode VEX.66.0F38 0xb1 - invalid. */ 340 /* Opcode VEX.66.0F38 0xb2 - invalid. */ 341 /* Opcode VEX.66.0F38 0xb3 - invalid. */ 342 /* Opcode VEX.66.0F38 0xb4 - invalid. */ 343 /* Opcode VEX.66.0F38 0xb5 - invalid. */ 344 /** Opcode VEX.66.0F38 0xb6 (vex only). */ 345 FNIEMOP_STUB(iemOp_vfmaddsub231ps_d_Vx_Hx_Wx); 346 /** Opcode VEX.66.0F38 0xb7 (vex only). */ 347 FNIEMOP_STUB(iemOp_vfmsubadd231ps_d_Vx_Hx_Wx); 348 /** Opcode VEX.66.0F38 0xb8 (vex only). */ 349 FNIEMOP_STUB(iemOp_vfmadd231ps_d_Vx_Hx_Wx); 350 /** Opcode VEX.66.0F38 0xb9 (vex only). */ 351 FNIEMOP_STUB(iemOp_vfmadd231ss_d_Vx_Hx_Wx); 352 /** Opcode VEX.66.0F38 0xba (vex only). */ 353 FNIEMOP_STUB(iemOp_vfmsub231ps_d_Vx_Hx_Wx); 354 /** Opcode VEX.66.0F38 0xbb (vex only). */ 355 FNIEMOP_STUB(iemOp_vfmsub231ss_d_Vx_Hx_Wx); 356 /** Opcode VEX.66.0F38 0xbc (vex only). */ 357 FNIEMOP_STUB(iemOp_vfnmadd231ps_d_Vx_Hx_Wx); 358 /** Opcode VEX.66.0F38 0xbd (vex only). */ 359 FNIEMOP_STUB(iemOp_vfnmadd231ss_d_Vx_Hx_Wx); 360 /** Opcode VEX.66.0F38 0xbe (vex only). */ 361 FNIEMOP_STUB(iemOp_vfnmsub231ps_d_Vx_Hx_Wx); 362 /** Opcode VEX.66.0F38 0xbf (vex only). */ 363 FNIEMOP_STUB(iemOp_vfnmsub231ss_d_Vx_Hx_Wx); 364 365 /* Opcode VEX.0F38 0xc0 - invalid. */ 366 /* Opcode VEX.66.0F38 0xc0 - invalid. */ 367 /* Opcode VEX.0F38 0xc1 - invalid. */ 368 /* Opcode VEX.66.0F38 0xc1 - invalid. */ 369 /* Opcode VEX.0F38 0xc2 - invalid. */ 370 /* Opcode VEX.66.0F38 0xc2 - invalid. */ 371 /* Opcode VEX.0F38 0xc3 - invalid. */ 372 /* Opcode VEX.66.0F38 0xc3 - invalid. */ 373 /* Opcode VEX.0F38 0xc4 - invalid. */ 374 /* Opcode VEX.66.0F38 0xc4 - invalid. */ 375 /* Opcode VEX.0F38 0xc5 - invalid. */ 376 /* Opcode VEX.66.0F38 0xc5 - invalid. */ 377 /* Opcode VEX.0F38 0xc6 - invalid. */ 378 /* Opcode VEX.66.0F38 0xc6 - invalid. */ 379 /* Opcode VEX.0F38 0xc7 - invalid. */ 380 /* Opcode VEX.66.0F38 0xc7 - invalid. */ 381 /** Opcode VEX.0F38 0xc8. */ 382 FNIEMOP_STUB(iemOp_vsha1nexte_Vdq_Wdq); 383 /* Opcode VEX.66.0F38 0xc8 - invalid. */ 384 /** Opcode VEX.0F38 0xc9. */ 385 FNIEMOP_STUB(iemOp_vsha1msg1_Vdq_Wdq); 386 /* Opcode VEX.66.0F38 0xc9 - invalid. */ 387 /** Opcode VEX.0F38 0xca. */ 388 FNIEMOP_STUB(iemOp_vsha1msg2_Vdq_Wdq); 389 /* Opcode VEX.66.0F38 0xca - invalid. */ 390 /** Opcode VEX.0F38 0xcb. */ 391 FNIEMOP_STUB(iemOp_vsha256rnds2_Vdq_Wdq); 392 /* Opcode VEX.66.0F38 0xcb - invalid. */ 393 /** Opcode VEX.0F38 0xcc. */ 394 FNIEMOP_STUB(iemOp_vsha256msg1_Vdq_Wdq); 395 /* Opcode VEX.66.0F38 0xcc - invalid. */ 396 /** Opcode VEX.0F38 0xcd. */ 397 FNIEMOP_STUB(iemOp_vsha256msg2_Vdq_Wdq); 398 /* Opcode VEX.66.0F38 0xcd - invalid. */ 399 /* Opcode VEX.0F38 0xce - invalid. */ 400 /* Opcode VEX.66.0F38 0xce - invalid. */ 401 /* Opcode VEX.0F38 0xcf - invalid. */ 402 /* Opcode VEX.66.0F38 0xcf - invalid. */ 403 404 /* Opcode VEX.66.0F38 0xd0 - invalid. */ 405 /* Opcode VEX.66.0F38 0xd1 - invalid. */ 406 /* Opcode VEX.66.0F38 0xd2 - invalid. */ 407 /* Opcode VEX.66.0F38 0xd3 - invalid. */ 408 /* Opcode VEX.66.0F38 0xd4 - invalid. */ 409 /* Opcode VEX.66.0F38 0xd5 - invalid. */ 410 /* Opcode VEX.66.0F38 0xd6 - invalid. */ 411 /* Opcode VEX.66.0F38 0xd7 - invalid. */ 412 /* Opcode VEX.66.0F38 0xd8 - invalid. */ 413 /* Opcode VEX.66.0F38 0xd9 - invalid. */ 414 /* Opcode VEX.66.0F38 0xda - invalid. */ 415 /** Opcode VEX.66.0F38 0xdb. */ 416 FNIEMOP_STUB(iemOp_vaesimc_Vdq_Wdq); 417 /** Opcode VEX.66.0F38 0xdc. */ 418 FNIEMOP_STUB(iemOp_vaesenc_Vdq_Wdq); 419 /** Opcode VEX.66.0F38 0xdd. */ 420 FNIEMOP_STUB(iemOp_vaesenclast_Vdq_Wdq); 421 /** Opcode VEX.66.0F38 0xde. */ 422 FNIEMOP_STUB(iemOp_vaesdec_Vdq_Wdq); 423 /** Opcode VEX.66.0F38 0xdf. */ 424 FNIEMOP_STUB(iemOp_vaesdeclast_Vdq_Wdq); 425 426 /* Opcode VEX.66.0F38 0xe0 - invalid. */ 427 /* Opcode VEX.66.0F38 0xe1 - invalid. */ 428 /* Opcode VEX.66.0F38 0xe2 - invalid. */ 429 /* Opcode VEX.66.0F38 0xe3 - invalid. */ 430 /* Opcode VEX.66.0F38 0xe4 - invalid. */ 431 /* Opcode VEX.66.0F38 0xe5 - invalid. */ 432 /* Opcode VEX.66.0F38 0xe6 - invalid. */ 433 /* Opcode VEX.66.0F38 0xe7 - invalid. */ 434 /* Opcode VEX.66.0F38 0xe8 - invalid. */ 435 /* Opcode VEX.66.0F38 0xe9 - invalid. */ 436 /* Opcode VEX.66.0F38 0xea - invalid. */ 437 /* Opcode VEX.66.0F38 0xeb - invalid. */ 438 /* Opcode VEX.66.0F38 0xec - invalid. */ 439 /* Opcode VEX.66.0F38 0xed - invalid. */ 440 /* Opcode VEX.66.0F38 0xee - invalid. */ 441 /* Opcode VEX.66.0F38 0xef - invalid. */ 442 443 444 /* Opcode VEX.0F38 0xf0 - invalid (legacy only). */ 445 /* Opcode VEX.66.0F38 0xf0 - invalid (legacy only). */ 446 /* Opcode VEX.F3.0F38 0xf0 - invalid. */ 447 /* Opcode VEX.F2.0F38 0xf0 - invalid (legacy only). */ 448 449 /* Opcode VEX.0F38 0xf1 - invalid (legacy only). */ 450 /* Opcode VEX.66.0F38 0xf1 - invalid (legacy only). */ 451 /* Opcode VEX.F3.0F38 0xf1 - invalid. */ 452 /* Opcode VEX.F2.0F38 0xf1 - invalid (legacy only). */ 453 454 /* Opcode VEX.0F38 0xf2 - invalid (vex only). */ 455 FNIEMOP_STUB(iemOp_andn_Gy_By_Ey); 456 /* Opcode VEX.66.0F38 0xf2 - invalid. */ 457 /* Opcode VEX.F3.0F38 0xf2 - invalid. */ 458 /* Opcode VEX.F2.0F38 0xf2 - invalid. */ 459 460 461 /* Opcode VEX.0F38 0xf3 - invalid. */ 462 /* Opcode VEX.66.0F38 0xf3 - invalid. */ 463 464 /* Opcode VEX.F3.0F38 0xf3 /0 - invalid). */ 465 /* Opcode VEX.F3.0F38 0xf3 /1). */ 466 FNIEMOP_STUB_1(iemOp_VGrp17_blsr_By_Ey, uint8_t, bRm); 467 /* Opcode VEX.F3.0F38 0xf3 /2). */ 468 FNIEMOP_STUB_1(iemOp_VGrp17_blsmsk_By_Ey, uint8_t, bRm); 469 /* Opcode VEX.F3.0F38 0xf3 /3). */ 470 FNIEMOP_STUB_1(iemOp_VGrp17_blsi_By_Ey, uint8_t, bRm); 471 /* Opcode VEX.F3.0F38 0xf3 /4 - invalid). */ 472 /* Opcode VEX.F3.0F38 0xf3 /5 - invalid). */ 473 /* Opcode VEX.F3.0F38 0xf3 /6 - invalid). */ 474 /* Opcode VEX.F3.0F38 0xf3 /7 - invalid). */ 496 475 497 476 /** 498 * Three byte opcode map, first two bytes are 0x0f 0x38. 499 * @sa g_apfnVexMap2 477 * Group 17 jump table for the VEX.F3 variant.. 500 478 */ 501 IEM_STATIC const PFNIEMOP g_apfnThreeByte0f38[] = 479 IEM_STATIC const PFNIEMOPRM g_apfnVexGroup17_f3[] = 480 { 481 /* /0 */ iemOp_InvalidWithRM, 482 /* /1 */ iemOp_VGrp17_blsr_By_Ey, 483 /* /2 */ iemOp_VGrp17_blsmsk_By_Ey, 484 /* /3 */ iemOp_VGrp17_blsi_By_Ey, 485 /* /4 */ iemOp_InvalidWithRM, 486 /* /5 */ iemOp_InvalidWithRM, 487 /* /6 */ iemOp_InvalidWithRM, 488 /* /7 */ iemOp_InvalidWithRM 489 }; 490 AssertCompile(RT_ELEMENTS(g_apfnVexGroup17_f3) == 8); 491 492 /** Opcode VEX.F3.0F38 0xf3 - invalid (vex only - group 17). */ 493 FNIEMOP_DEF(iemOp_VGrp17_f3) 494 { 495 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 496 return FNIEMOP_CALL_1(g_apfnVexGroup17_f3[((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK)], bRm); 497 498 } 499 500 /* Opcode VEX.F2.0F38 0xf3 - invalid (vex only - group 17). */ 501 502 503 /* Opcode VEX.0F38 0xf4 - invalid. */ 504 /* Opcode VEX.66.0F38 0xf4 - invalid. */ 505 /* Opcode VEX.F3.0F38 0xf4 - invalid. */ 506 /* Opcode VEX.F2.0F38 0xf4 - invalid. */ 507 508 /** Opcode VEX.0F38 0xf5 (vex only). */ 509 FNIEMOP_STUB(iemOp_bzhi_Gy_Ey_By); 510 /* Opcode VEX.66.0F38 0xf5 - invalid. */ 511 /** Opcode VEX.F3.0F38 0xf5 (vex only). */ 512 FNIEMOP_STUB(iemOp_pext_Gy_By_Ey); 513 /** Opcode VEX.F2.0F38 0xf5 (vex only). */ 514 FNIEMOP_STUB(iemOp_pdep_Gy_By_Ey); 515 516 /* Opcode VEX.0F38 0xf6 - invalid. */ 517 /* Opcode VEX.66.0F38 0xf6 - invalid (legacy only). */ 518 /* Opcode VEX.F3.0F38 0xf6 - invalid (legacy only). */ 519 /* Opcode VEX.F2.0F38 0xf6 - invalid (vex only). */ 520 FNIEMOP_STUB(iemOp_mulx_By_Gy_rDX_Ey); 521 522 /** Opcode VEX.0F38 0xf7 (vex only). */ 523 FNIEMOP_STUB(iemOp_bextr_Gy_Ey_By); 524 /** Opcode VEX.66.0F38 0xf7 (vex only). */ 525 FNIEMOP_STUB(iemOp_shlx_Gy_Ey_By); 526 /** Opcode VEX.F3.0F38 0xf7 (vex only). */ 527 FNIEMOP_STUB(iemOp_sarx_Gy_Ey_By); 528 /** Opcode VEX.F2.0F38 0xf7 (vex only). */ 529 FNIEMOP_STUB(iemOp_shrx_Gy_Ey_By); 530 531 /* Opcode VEX.0F38 0xf8 - invalid. */ 532 /* Opcode VEX.66.0F38 0xf8 - invalid. */ 533 /* Opcode VEX.F3.0F38 0xf8 - invalid. */ 534 /* Opcode VEX.F2.0F38 0xf8 - invalid. */ 535 536 /* Opcode VEX.0F38 0xf9 - invalid. */ 537 /* Opcode VEX.66.0F38 0xf9 - invalid. */ 538 /* Opcode VEX.F3.0F38 0xf9 - invalid. */ 539 /* Opcode VEX.F2.0F38 0xf9 - invalid. */ 540 541 /* Opcode VEX.0F38 0xfa - invalid. */ 542 /* Opcode VEX.66.0F38 0xfa - invalid. */ 543 /* Opcode VEX.F3.0F38 0xfa - invalid. */ 544 /* Opcode VEX.F2.0F38 0xfa - invalid. */ 545 546 /* Opcode VEX.0F38 0xfb - invalid. */ 547 /* Opcode VEX.66.0F38 0xfb - invalid. */ 548 /* Opcode VEX.F3.0F38 0xfb - invalid. */ 549 /* Opcode VEX.F2.0F38 0xfb - invalid. */ 550 551 /* Opcode VEX.0F38 0xfc - invalid. */ 552 /* Opcode VEX.66.0F38 0xfc - invalid. */ 553 /* Opcode VEX.F3.0F38 0xfc - invalid. */ 554 /* Opcode VEX.F2.0F38 0xfc - invalid. */ 555 556 /* Opcode VEX.0F38 0xfd - invalid. */ 557 /* Opcode VEX.66.0F38 0xfd - invalid. */ 558 /* Opcode VEX.F3.0F38 0xfd - invalid. */ 559 /* Opcode VEX.F2.0F38 0xfd - invalid. */ 560 561 /* Opcode VEX.0F38 0xfe - invalid. */ 562 /* Opcode VEX.66.0F38 0xfe - invalid. */ 563 /* Opcode VEX.F3.0F38 0xfe - invalid. */ 564 /* Opcode VEX.F2.0F38 0xfe - invalid. */ 565 566 /* Opcode VEX.0F38 0xff - invalid. */ 567 /* Opcode VEX.66.0F38 0xff - invalid. */ 568 /* Opcode VEX.F3.0F38 0xff - invalid. */ 569 /* Opcode VEX.F2.0F38 0xff - invalid. */ 570 571 572 /** 573 * VEX opcode map \#2. 574 * 575 * @sa g_apfnThreeByte0f38 576 */ 577 IEM_STATIC const PFNIEMOP g_apfnVexMap2[] = 502 578 { 503 579 /* no prefix, 066h prefix f3h prefix, f2h prefix */ 504 /* 0x00 */ iemOp_ pshufb_Pq_Qq, iemOp_pshufb_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,505 /* 0x01 */ iemOp_ phaddw_Pq_Qq, iemOp_phaddw_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,506 /* 0x02 */ iemOp_ phaddd_Pq_Qq, iemOp_phaddd_vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,507 /* 0x03 */ iemOp_ phaddsw_Pq_Qq, iemOp_phaddsw_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,508 /* 0x04 */ iemOp_ pmaddubsw_Pq_Qq, iemOp_pmaddubsw_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,509 /* 0x05 */ iemOp_ phsubw_Pq_Qq, iemOp_phsubw_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,510 /* 0x06 */ iemOp_ phsubd_Pq_Qq, iemOp_phsubdq_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,511 /* 0x07 */ iemOp_ phsubsw_Pq_Qq, iemOp_phsubsw_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,512 /* 0x08 */ iemOp_ psignb_Pq_Qq, iemOp_psignb_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,513 /* 0x09 */ iemOp_ psignw_Pq_Qq, iemOp_psignw_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,514 /* 0x0a */ iemOp_ psignd_Pq_Qq, iemOp_psignd_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,515 /* 0x0b */ iemOp_ pmulhrsw_Pq_Qq, iemOp_pmulhrsw_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,516 /* 0x0c */ IEMOP_X4(iemOp_InvalidNeedRM),517 /* 0x0d */ IEMOP_X4(iemOp_InvalidNeedRM),518 /* 0x0e */ IEMOP_X4(iemOp_InvalidNeedRM),519 /* 0x0f */ IEMOP_X4(iemOp_InvalidNeedRM),520 521 /* 0x10 */ iemOp_InvalidNeedRM, iemOp_pblendvb_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,580 /* 0x00 */ iemOp_InvalidNeedRM, iemOp_vpshufb_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 581 /* 0x01 */ iemOp_InvalidNeedRM, iemOp_vphaddw_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 582 /* 0x02 */ iemOp_InvalidNeedRM, iemOp_vphaddd_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 583 /* 0x03 */ iemOp_InvalidNeedRM, iemOp_vphaddsw_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 584 /* 0x04 */ iemOp_InvalidNeedRM, iemOp_vpmaddubsw_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 585 /* 0x05 */ iemOp_InvalidNeedRM, iemOp_vphsubw_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 586 /* 0x06 */ iemOp_InvalidNeedRM, iemOp_vphsubdq_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 587 /* 0x07 */ iemOp_InvalidNeedRM, iemOp_vphsubsw_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 588 /* 0x08 */ iemOp_InvalidNeedRM, iemOp_vpsignb_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 589 /* 0x09 */ iemOp_InvalidNeedRM, iemOp_vpsignw_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 590 /* 0x0a */ iemOp_InvalidNeedRM, iemOp_vpsignd_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 591 /* 0x0b */ iemOp_InvalidNeedRM, iemOp_vpmulhrsw_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 592 /* 0x0c */ iemOp_InvalidNeedRM, iemOp_vpermilps_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 593 /* 0x0d */ iemOp_InvalidNeedRM, iemOp_vpermilpd_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 594 /* 0x0e */ iemOp_InvalidNeedRM, iemOp_vtestps_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 595 /* 0x0f */ iemOp_InvalidNeedRM, iemOp_vtestpd_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 596 597 /* 0x10 */ IEMOP_X4(iemOp_InvalidNeedRM), 522 598 /* 0x11 */ IEMOP_X4(iemOp_InvalidNeedRM), 523 599 /* 0x12 */ IEMOP_X4(iemOp_InvalidNeedRM), 524 600 /* 0x13 */ IEMOP_X4(iemOp_InvalidNeedRM), 525 /* 0x14 */ iemOp_InvalidNeedRM, iemOp_blendvps_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,526 /* 0x15 */ iemOp_InvalidNeedRM, iemOp_blendvpd_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,527 /* 0x16 */ IEMOP_X4(iemOp_InvalidNeedRM),601 /* 0x14 */ IEMOP_X4(iemOp_InvalidNeedRM), 602 /* 0x15 */ IEMOP_X4(iemOp_InvalidNeedRM), 603 /* 0x16 */ iemOp_InvalidNeedRM, iemOp_vpermps_Vqq_Hqq_Wqq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 528 604 /* 0x17 */ iemOp_InvalidNeedRM, iemOp_ptest_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 529 /* 0x18 */ IEMOP_X4(iemOp_InvalidNeedRM),530 /* 0x19 */ IEMOP_X4(iemOp_InvalidNeedRM),531 /* 0x1a */ IEMOP_X4(iemOp_InvalidNeedRM),605 /* 0x18 */ iemOp_InvalidNeedRM, iemOp_vbroadcastss_Vx_Wd, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 606 /* 0x19 */ iemOp_InvalidNeedRM, iemOp_vbroadcastsd_Vqq_Wq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 607 /* 0x1a */ iemOp_InvalidNeedRM, iemOp_vbroadcastf128_Vqq_Mdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 532 608 /* 0x1b */ IEMOP_X4(iemOp_InvalidNeedRM), 533 /* 0x1c */ iemOp_ pabsb_Pq_Qq, iemOp_pabsb_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,534 /* 0x1d */ iemOp_ pabsw_Pq_Qq, iemOp_pabsw_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,535 /* 0x1e */ iemOp_ pabsd_Pq_Qq, iemOp_pabsd_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,609 /* 0x1c */ iemOp_InvalidNeedRM, iemOp_vpabsb_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 610 /* 0x1d */ iemOp_InvalidNeedRM, iemOp_vpabsw_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 611 /* 0x1e */ iemOp_InvalidNeedRM, iemOp_vpabsd_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 536 612 /* 0x1f */ IEMOP_X4(iemOp_InvalidNeedRM), 537 613 538 /* 0x20 */ iemOp_InvalidNeedRM, iemOp_ pmovsxbw_Vx_UxMq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,539 /* 0x21 */ iemOp_InvalidNeedRM, iemOp_ pmovsxbd_Vx_UxMd,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,540 /* 0x22 */ iemOp_InvalidNeedRM, iemOp_ pmovsxbq_Vx_UxMw,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,541 /* 0x23 */ iemOp_InvalidNeedRM, iemOp_ pmovsxwd_Vx_UxMq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,542 /* 0x24 */ iemOp_InvalidNeedRM, iemOp_ pmovsxwq_Vx_UxMd,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,543 /* 0x25 */ iemOp_InvalidNeedRM, iemOp_ pmovsxdq_Vx_UxMq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,614 /* 0x20 */ iemOp_InvalidNeedRM, iemOp_vpmovsxbw_Vx_UxMq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 615 /* 0x21 */ iemOp_InvalidNeedRM, iemOp_vpmovsxbd_Vx_UxMd, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 616 /* 0x22 */ iemOp_InvalidNeedRM, iemOp_vpmovsxbq_Vx_UxMw, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 617 /* 0x23 */ iemOp_InvalidNeedRM, iemOp_vpmovsxwd_Vx_UxMq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 618 /* 0x24 */ iemOp_InvalidNeedRM, iemOp_vpmovsxwq_Vx_UxMd, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 619 /* 0x25 */ iemOp_InvalidNeedRM, iemOp_vpmovsxdq_Vx_UxMq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 544 620 /* 0x26 */ IEMOP_X4(iemOp_InvalidNeedRM), 545 621 /* 0x27 */ IEMOP_X4(iemOp_InvalidNeedRM), 546 /* 0x28 */ iemOp_InvalidNeedRM, iemOp_ pmuldq_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,547 /* 0x29 */ iemOp_InvalidNeedRM, iemOp_ pcmpeqq_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,548 /* 0x2a */ iemOp_InvalidNeedRM, iemOp_ movntdqa_Vx_Mx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,549 /* 0x2b */ iemOp_InvalidNeedRM, iemOp_ packusdw_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,550 /* 0x2c */ IEMOP_X4(iemOp_InvalidNeedRM),551 /* 0x2d */ IEMOP_X4(iemOp_InvalidNeedRM),552 /* 0x2e */ IEMOP_X4(iemOp_InvalidNeedRM),553 /* 0x2f */ IEMOP_X4(iemOp_InvalidNeedRM),554 555 /* 0x30 */ iemOp_InvalidNeedRM, iemOp_ pmovzxbw_Vx_UxMq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,556 /* 0x31 */ iemOp_InvalidNeedRM, iemOp_ pmovzxbd_Vx_UxMd,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,557 /* 0x32 */ iemOp_InvalidNeedRM, iemOp_ pmovzxbq_Vx_UxMw,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,558 /* 0x33 */ iemOp_InvalidNeedRM, iemOp_ pmovzxwd_Vx_UxMq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,559 /* 0x34 */ iemOp_InvalidNeedRM, iemOp_ pmovzxwq_Vx_UxMd,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,560 /* 0x35 */ iemOp_InvalidNeedRM, iemOp_ pmovzxdq_Vx_UxMq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,561 /* 0x36 */ IEMOP_X4(iemOp_InvalidNeedRM),562 /* 0x37 */ iemOp_InvalidNeedRM, iemOp_ pcmpgtq_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,563 /* 0x38 */ iemOp_InvalidNeedRM, iemOp_ pminsb_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,564 /* 0x39 */ iemOp_InvalidNeedRM, iemOp_ pminsd_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,565 /* 0x3a */ iemOp_InvalidNeedRM, iemOp_ pminuw_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,566 /* 0x3b */ iemOp_InvalidNeedRM, iemOp_ pminud_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,567 /* 0x3c */ iemOp_InvalidNeedRM, iemOp_ pmaxsb_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,568 /* 0x3d */ iemOp_InvalidNeedRM, iemOp_ pmaxsd_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,569 /* 0x3e */ iemOp_InvalidNeedRM, iemOp_ pmaxuw_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,570 /* 0x3f */ iemOp_InvalidNeedRM, iemOp_ pmaxud_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,571 572 /* 0x40 */ iemOp_InvalidNeedRM, iemOp_ pmulld_Vx_Wx,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,573 /* 0x41 */ iemOp_InvalidNeedRM, iemOp_ phminposuw_Vdq_Wdq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,622 /* 0x28 */ iemOp_InvalidNeedRM, iemOp_vpmuldq_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 623 /* 0x29 */ iemOp_InvalidNeedRM, iemOp_vpcmpeqq_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 624 /* 0x2a */ iemOp_InvalidNeedRM, iemOp_vmovntdqa_Vx_Hx_Mx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 625 /* 0x2b */ iemOp_InvalidNeedRM, iemOp_vpackusdw_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 626 /* 0x2c */ iemOp_InvalidNeedRM, iemOp_vmaskmovps_Vx_Hx_Mx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 627 /* 0x2d */ iemOp_InvalidNeedRM, iemOp_vmaskmovpd_Vx_Hx_Mx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 628 /* 0x2e */ iemOp_InvalidNeedRM, iemOp_vmaskmovps_Mx_Hx_Vx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 629 /* 0x2f */ iemOp_InvalidNeedRM, iemOp_vmaskmovpd_Mx_Hx_Vx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 630 631 /* 0x30 */ iemOp_InvalidNeedRM, iemOp_vpmovzxbw_Vx_UxMq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 632 /* 0x31 */ iemOp_InvalidNeedRM, iemOp_vpmovzxbd_Vx_UxMd, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 633 /* 0x32 */ iemOp_InvalidNeedRM, iemOp_vpmovzxbq_Vx_UxMw, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 634 /* 0x33 */ iemOp_InvalidNeedRM, iemOp_vpmovzxwd_Vx_UxMq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 635 /* 0x34 */ iemOp_InvalidNeedRM, iemOp_vpmovzxwq_Vx_UxMd, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 636 /* 0x35 */ iemOp_InvalidNeedRM, iemOp_vpmovzxdq_Vx_UxMq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 637 /* 0x36 */ iemOp_InvalidNeedRM, iemOp_vpermd_Vqq_Hqq_Wqq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 638 /* 0x37 */ iemOp_InvalidNeedRM, iemOp_vpcmpgtq_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 639 /* 0x38 */ iemOp_InvalidNeedRM, iemOp_vpminsb_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 640 /* 0x39 */ iemOp_InvalidNeedRM, iemOp_vpminsd_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 641 /* 0x3a */ iemOp_InvalidNeedRM, iemOp_vpminuw_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 642 /* 0x3b */ iemOp_InvalidNeedRM, iemOp_vpminud_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 643 /* 0x3c */ iemOp_InvalidNeedRM, iemOp_vpmaxsb_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 644 /* 0x3d */ iemOp_InvalidNeedRM, iemOp_vpmaxsd_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 645 /* 0x3e */ iemOp_InvalidNeedRM, iemOp_vpmaxuw_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 646 /* 0x3f */ iemOp_InvalidNeedRM, iemOp_vpmaxud_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 647 648 /* 0x40 */ iemOp_InvalidNeedRM, iemOp_vpmulld_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 649 /* 0x41 */ iemOp_InvalidNeedRM, iemOp_vphminposuw_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 574 650 /* 0x42 */ IEMOP_X4(iemOp_InvalidNeedRM), 575 651 /* 0x43 */ IEMOP_X4(iemOp_InvalidNeedRM), 576 652 /* 0x44 */ IEMOP_X4(iemOp_InvalidNeedRM), 577 /* 0x45 */ IEMOP_X4(iemOp_InvalidNeedRM),578 /* 0x46 */ IEMOP_X4(iemOp_InvalidNeedRM),579 /* 0x47 */ IEMOP_X4(iemOp_InvalidNeedRM),653 /* 0x45 */ iemOp_InvalidNeedRM, iemOp_vpsrlvd_q_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 654 /* 0x46 */ iemOp_InvalidNeedRM, iemOp_vsravd_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 655 /* 0x47 */ iemOp_InvalidNeedRM, iemOp_vpsllvd_q_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 580 656 /* 0x48 */ IEMOP_X4(iemOp_InvalidNeedRM), 581 657 /* 0x49 */ IEMOP_X4(iemOp_InvalidNeedRM), … … 595 671 /* 0x56 */ IEMOP_X4(iemOp_InvalidNeedRM), 596 672 /* 0x57 */ IEMOP_X4(iemOp_InvalidNeedRM), 597 /* 0x58 */ IEMOP_X4(iemOp_InvalidNeedRM),598 /* 0x59 */ IEMOP_X4(iemOp_InvalidNeedRM),599 /* 0x5a */ IEMOP_X4(iemOp_InvalidNeedRM),673 /* 0x58 */ iemOp_InvalidNeedRM, iemOp_vpbroadcastd_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 674 /* 0x59 */ iemOp_InvalidNeedRM, iemOp_vpbroadcastq_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 675 /* 0x5a */ iemOp_InvalidNeedRM, iemOp_vbroadcasti128_Vqq_Mdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 600 676 /* 0x5b */ IEMOP_X4(iemOp_InvalidNeedRM), 601 677 /* 0x5c */ IEMOP_X4(iemOp_InvalidNeedRM), … … 629 705 /* 0x76 */ IEMOP_X4(iemOp_InvalidNeedRM), 630 706 /* 0x77 */ IEMOP_X4(iemOp_InvalidNeedRM), 631 /* 0x78 */ IEMOP_X4(iemOp_InvalidNeedRM),632 /* 0x79 */ IEMOP_X4(iemOp_InvalidNeedRM),707 /* 0x78 */ iemOp_InvalidNeedRM, iemOp_vpboardcastb_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 708 /* 0x79 */ iemOp_InvalidNeedRM, iemOp_vpboardcastw_Vx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 633 709 /* 0x7a */ IEMOP_X4(iemOp_InvalidNeedRM), 634 710 /* 0x7b */ IEMOP_X4(iemOp_InvalidNeedRM), … … 638 714 /* 0x7f */ IEMOP_X4(iemOp_InvalidNeedRM), 639 715 640 /* 0x80 */ iemOp_InvalidNeedRM, iemOp_invept_Gy_Mdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,641 /* 0x81 */ iemOp_InvalidNeedRM, iemOp_invvpid_Gy_Mdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,642 /* 0x82 */ iemOp_InvalidNeedRM, iemOp_invpcid_Gy_Mdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,716 /* 0x80 */ IEMOP_X4(iemOp_InvalidNeedRM), 717 /* 0x81 */ IEMOP_X4(iemOp_InvalidNeedRM), 718 /* 0x82 */ IEMOP_X4(iemOp_InvalidNeedRM), 643 719 /* 0x83 */ IEMOP_X4(iemOp_InvalidNeedRM), 644 720 /* 0x84 */ IEMOP_X4(iemOp_InvalidNeedRM), … … 650 726 /* 0x8a */ IEMOP_X4(iemOp_InvalidNeedRM), 651 727 /* 0x8b */ IEMOP_X4(iemOp_InvalidNeedRM), 652 /* 0x8c */ IEMOP_X4(iemOp_InvalidNeedRM),728 /* 0x8c */ iemOp_InvalidNeedRM, iemOp_vpmaskmovd_q_Vx_Hx_Mx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 653 729 /* 0x8d */ IEMOP_X4(iemOp_InvalidNeedRM), 654 /* 0x8e */ IEMOP_X4(iemOp_InvalidNeedRM),730 /* 0x8e */ iemOp_InvalidNeedRM, iemOp_vpmaskmovd_q_Mx_Vx_Hx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 655 731 /* 0x8f */ IEMOP_X4(iemOp_InvalidNeedRM), 656 732 657 /* 0x90 */ IEMOP_X4(iemOp_InvalidNeedRM),658 /* 0x91 */ IEMOP_X4(iemOp_InvalidNeedRM),659 /* 0x92 */ IEMOP_X4(iemOp_InvalidNeedRM),660 /* 0x93 */ IEMOP_X4(iemOp_InvalidNeedRM),733 /* 0x90 */ iemOp_InvalidNeedRM, iemOp_vgatherdd_q_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 734 /* 0x91 */ iemOp_InvalidNeedRM, iemOp_vgatherqd_q_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 735 /* 0x92 */ iemOp_InvalidNeedRM, iemOp_vgatherdps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 736 /* 0x93 */ iemOp_InvalidNeedRM, iemOp_vgatherqps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 661 737 /* 0x94 */ IEMOP_X4(iemOp_InvalidNeedRM), 662 738 /* 0x95 */ IEMOP_X4(iemOp_InvalidNeedRM), 663 /* 0x96 */ IEMOP_X4(iemOp_InvalidNeedRM),664 /* 0x97 */ IEMOP_X4(iemOp_InvalidNeedRM),665 /* 0x98 */ IEMOP_X4(iemOp_InvalidNeedRM),666 /* 0x99 */ IEMOP_X4(iemOp_InvalidNeedRM),667 /* 0x9a */ IEMOP_X4(iemOp_InvalidNeedRM),668 /* 0x9b */ IEMOP_X4(iemOp_InvalidNeedRM),669 /* 0x9c */ IEMOP_X4(iemOp_InvalidNeedRM),670 /* 0x9d */ IEMOP_X4(iemOp_InvalidNeedRM),671 /* 0x9e */ IEMOP_X4(iemOp_InvalidNeedRM),672 /* 0x9f */ IEMOP_X4(iemOp_InvalidNeedRM),739 /* 0x96 */ iemOp_InvalidNeedRM, iemOp_vfmaddsub132ps_q_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 740 /* 0x97 */ iemOp_InvalidNeedRM, iemOp_vfmsubadd132ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 741 /* 0x98 */ iemOp_InvalidNeedRM, iemOp_vfmadd132ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 742 /* 0x99 */ iemOp_InvalidNeedRM, iemOp_vfmadd132ss_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 743 /* 0x9a */ iemOp_InvalidNeedRM, iemOp_vfmsub132ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 744 /* 0x9b */ iemOp_InvalidNeedRM, iemOp_vfmsub132ss_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 745 /* 0x9c */ iemOp_InvalidNeedRM, iemOp_vfnmadd132ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 746 /* 0x9d */ iemOp_InvalidNeedRM, iemOp_vfnmadd132ss_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 747 /* 0x9e */ iemOp_InvalidNeedRM, iemOp_vfnmsub132ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 748 /* 0x9f */ iemOp_InvalidNeedRM, iemOp_vfnmsub132ss_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 673 749 674 750 /* 0xa0 */ IEMOP_X4(iemOp_InvalidNeedRM), … … 678 754 /* 0xa4 */ IEMOP_X4(iemOp_InvalidNeedRM), 679 755 /* 0xa5 */ IEMOP_X4(iemOp_InvalidNeedRM), 680 /* 0xa6 */ IEMOP_X4(iemOp_InvalidNeedRM),681 /* 0xa7 */ IEMOP_X4(iemOp_InvalidNeedRM),682 /* 0xa8 */ IEMOP_X4(iemOp_InvalidNeedRM),683 /* 0xa9 */ IEMOP_X4(iemOp_InvalidNeedRM),684 /* 0xaa */ IEMOP_X4(iemOp_InvalidNeedRM),685 /* 0xab */ IEMOP_X4(iemOp_InvalidNeedRM),686 /* 0xac */ IEMOP_X4(iemOp_InvalidNeedRM),687 /* 0xad */ IEMOP_X4(iemOp_InvalidNeedRM),688 /* 0xae */ IEMOP_X4(iemOp_InvalidNeedRM),689 /* 0xaf */ IEMOP_X4(iemOp_InvalidNeedRM),756 /* 0xa6 */ iemOp_InvalidNeedRM, iemOp_vfmaddsub213ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 757 /* 0xa7 */ iemOp_InvalidNeedRM, iemOp_vfmsubadd213ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 758 /* 0xa8 */ iemOp_InvalidNeedRM, iemOp_vfmadd213ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 759 /* 0xa9 */ iemOp_InvalidNeedRM, iemOp_vfmadd213ss_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 760 /* 0xaa */ iemOp_InvalidNeedRM, iemOp_vfmsub213ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 761 /* 0xab */ iemOp_InvalidNeedRM, iemOp_vfmsub213ss_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 762 /* 0xac */ iemOp_InvalidNeedRM, iemOp_vfnmadd213ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 763 /* 0xad */ iemOp_InvalidNeedRM, iemOp_vfnmadd213ss_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 764 /* 0xae */ iemOp_InvalidNeedRM, iemOp_vfnmsub213ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 765 /* 0xaf */ iemOp_InvalidNeedRM, iemOp_vfnmsub213ss_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 690 766 691 767 /* 0xb0 */ IEMOP_X4(iemOp_InvalidNeedRM), … … 695 771 /* 0xb4 */ IEMOP_X4(iemOp_InvalidNeedRM), 696 772 /* 0xb5 */ IEMOP_X4(iemOp_InvalidNeedRM), 697 /* 0xb6 */ IEMOP_X4(iemOp_InvalidNeedRM),698 /* 0xb7 */ IEMOP_X4(iemOp_InvalidNeedRM),699 /* 0xb8 */ IEMOP_X4(iemOp_InvalidNeedRM),700 /* 0xb9 */ IEMOP_X4(iemOp_InvalidNeedRM),701 /* 0xba */ IEMOP_X4(iemOp_InvalidNeedRM),702 /* 0xbb */ IEMOP_X4(iemOp_InvalidNeedRM),703 /* 0xbc */ IEMOP_X4(iemOp_InvalidNeedRM),704 /* 0xbd */ IEMOP_X4(iemOp_InvalidNeedRM),705 /* 0xbe */ IEMOP_X4(iemOp_InvalidNeedRM),706 /* 0xbf */ IEMOP_X4(iemOp_InvalidNeedRM),773 /* 0xb6 */ iemOp_InvalidNeedRM, iemOp_vfmaddsub231ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 774 /* 0xb7 */ iemOp_InvalidNeedRM, iemOp_vfmsubadd231ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 775 /* 0xb8 */ iemOp_InvalidNeedRM, iemOp_vfmadd231ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 776 /* 0xb9 */ iemOp_InvalidNeedRM, iemOp_vfmadd231ss_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 777 /* 0xba */ iemOp_InvalidNeedRM, iemOp_vfmsub231ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 778 /* 0xbb */ iemOp_InvalidNeedRM, iemOp_vfmsub231ss_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 779 /* 0xbc */ iemOp_InvalidNeedRM, iemOp_vfnmadd231ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 780 /* 0xbd */ iemOp_InvalidNeedRM, iemOp_vfnmadd231ss_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 781 /* 0xbe */ iemOp_InvalidNeedRM, iemOp_vfnmsub231ps_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 782 /* 0xbf */ iemOp_InvalidNeedRM, iemOp_vfnmsub231ss_d_Vx_Hx_Wx, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 707 783 708 784 /* 0xc0 */ IEMOP_X4(iemOp_InvalidNeedRM), … … 714 790 /* 0xc6 */ IEMOP_X4(iemOp_InvalidNeedRM), 715 791 /* 0xc7 */ IEMOP_X4(iemOp_InvalidNeedRM), 716 /* 0xc8 */ iemOp_ sha1nexte_Vdq_Wdq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,717 /* 0xc9 */ iemOp_ sha1msg1_Vdq_Wdq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,718 /* 0xca */ iemOp_ sha1msg2_Vdq_Wdq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,719 /* 0xcb */ iemOp_ sha256rnds2_Vdq_Wdq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,720 /* 0xcc */ iemOp_ sha256msg1_Vdq_Wdq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,721 /* 0xcd */ iemOp_ sha256msg2_Vdq_Wdq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,792 /* 0xc8 */ iemOp_vsha1nexte_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 793 /* 0xc9 */ iemOp_vsha1msg1_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 794 /* 0xca */ iemOp_vsha1msg2_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 795 /* 0xcb */ iemOp_vsha256rnds2_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 796 /* 0xcc */ iemOp_vsha256msg1_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 797 /* 0xcd */ iemOp_vsha256msg2_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 722 798 /* 0xce */ IEMOP_X4(iemOp_InvalidNeedRM), 723 799 /* 0xcf */ IEMOP_X4(iemOp_InvalidNeedRM), … … 734 810 /* 0xd9 */ IEMOP_X4(iemOp_InvalidNeedRM), 735 811 /* 0xda */ IEMOP_X4(iemOp_InvalidNeedRM), 736 /* 0xdb */ iemOp_InvalidNeedRM, iemOp_ aesimc_Vdq_Wdq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,737 /* 0xdc */ iemOp_InvalidNeedRM, iemOp_ aesenc_Vdq_Wdq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,738 /* 0xdd */ iemOp_InvalidNeedRM, iemOp_ aesenclast_Vdq_Wdq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,739 /* 0xde */ iemOp_InvalidNeedRM, iemOp_ aesdec_Vdq_Wdq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,740 /* 0xdf */ iemOp_InvalidNeedRM, iemOp_ aesdeclast_Vdq_Wdq,iemOp_InvalidNeedRM, iemOp_InvalidNeedRM,812 /* 0xdb */ iemOp_InvalidNeedRM, iemOp_vaesimc_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 813 /* 0xdc */ iemOp_InvalidNeedRM, iemOp_vaesenc_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 814 /* 0xdd */ iemOp_InvalidNeedRM, iemOp_vaesenclast_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 815 /* 0xde */ iemOp_InvalidNeedRM, iemOp_vaesdec_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 816 /* 0xdf */ iemOp_InvalidNeedRM, iemOp_vaesdeclast_Vdq_Wdq, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 741 817 742 818 /* 0xe0 */ IEMOP_X4(iemOp_InvalidNeedRM), … … 757 833 /* 0xef */ IEMOP_X4(iemOp_InvalidNeedRM), 758 834 759 /* 0xf0 */ iemOp_movbe_Gy_My, iemOp_movbe_Gw_Mw, iemOp_InvalidNeedRM, iemOp_crc32_Gb_Eb,760 /* 0xf1 */ iemOp_movbe_My_Gy, iemOp_movbe_Mw_Gw, iemOp_InvalidNeedRM, iemOp_crc32_Gv_Ev,761 /* 0xf2 */ IEMOP_X4(iemOp_InvalidNeedRM),762 /* 0xf3 */ IEMOP_X4(iemOp_InvalidNeedRM),835 /* 0xf0 */ IEMOP_X4(iemOp_InvalidNeedRM), 836 /* 0xf1 */ IEMOP_X4(iemOp_InvalidNeedRM), 837 /* 0xf2 */ iemOp_andn_Gy_By_Ey, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, 838 /* 0xf3 */ iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_VGrp17_f3, iemOp_InvalidNeedRM, 763 839 /* 0xf4 */ IEMOP_X4(iemOp_InvalidNeedRM), 764 /* 0xf5 */ IEMOP_X4(iemOp_InvalidNeedRM),765 /* 0xf6 */ iemOp_InvalidNeedRM, iemOp_ adcx_Gy_Ey, iemOp_adox_Gy_Ey, iemOp_InvalidNeedRM,766 /* 0xf7 */ IEMOP_X4(iemOp_InvalidNeedRM),840 /* 0xf5 */ iemOp_bzhi_Gy_Ey_By, iemOp_InvalidNeedRM, iemOp_pext_Gy_By_Ey, iemOp_pdep_Gy_By_Ey, 841 /* 0xf6 */ iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_InvalidNeedRM, iemOp_mulx_By_Gy_rDX_Ey, 842 /* 0xf7 */ iemOp_bextr_Gy_Ey_By, iemOp_shlx_Gy_Ey_By, iemOp_sarx_Gy_Ey_By, iemOp_shrx_Gy_Ey_By, 767 843 /* 0xf8 */ IEMOP_X4(iemOp_InvalidNeedRM), 768 844 /* 0xf9 */ IEMOP_X4(iemOp_InvalidNeedRM), … … 774 850 /* 0xff */ IEMOP_X4(iemOp_InvalidNeedRM), 775 851 }; 776 AssertCompile(RT_ELEMENTS(g_apfn ThreeByte0f38) == 1024);852 AssertCompile(RT_ELEMENTS(g_apfnVexMap2) == 1024); 777 853 778 854 /** @} */ -
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsVexMap3.cpp.h
r66474 r66479 3 3 * IEM - Instruction Decoding and Emulation, 0x0f 0x3a map. 4 4 * 5 * @remarks IEMAllInstructions VexMap3.cpp.h is a VEX mirror of this file.5 * @remarks IEMAllInstructionsThree0f3a.cpp.h is a VEX mirror of this file. 6 6 * Any update here is likely needed in that file too. 7 7 */ … … 20 20 21 21 22 /** @name Three byte opcodes with first two bytes 0x0f 0x3a22 /** @name VEX Opcode Map 3 23 23 * @{ 24 24 */ 25 25 26 /** Opcode 0x66 0x0f 0x00. */ 27 FNIEMOP_STUB(iemOp_permq_Vqq_Wqq_Ib); 28 /** Opcode 0x66 0x0f 0x01. */ 29 FNIEMOP_STUB(iemOp_permqd_Vqq_Wqq_Ib); 30 /** Opcode 0x66 0x0f 0x02. */ 31 FNIEMOP_STUB(iemOp_pblendd_Vx_Wx_Ib); 32 /* Opcode 0x66 0x0f 0x03 - invalid */ 33 /** Opcode 0x66 0x0f 0x04. */ 34 FNIEMOP_STUB(iemOp_permilps_Vx_Wx_Ib); 35 /** Opcode 0x66 0x0f 0x05. */ 36 FNIEMOP_STUB(iemOp_permilpd_Vx_Wx_Ib); 37 /* Opcode 0x66 0x0f 0x06 - invalid (vex only) */ 38 /* Opcode 0x66 0x0f 0x07 - invalid */ 39 /** Opcode 0x66 0x0f 0x08. */ 40 FNIEMOP_STUB(iemOp_roundps_Vx_Wx_Ib); 41 /** Opcode 0x66 0x0f 0x09. */ 42 FNIEMOP_STUB(iemOp_roundpd_Vx_Wx_Ib); 43 /** Opcode 0x66 0x0f 0x0a. */ 44 FNIEMOP_STUB(iemOp_roundss_Vss_Wss_Ib); 45 /** Opcode 0x66 0x0f 0x0b. */ 46 FNIEMOP_STUB(iemOp_roundsd_Vsd_Wsd_Ib); 47 /** Opcode 0x66 0x0f 0x0c. */ 48 FNIEMOP_STUB(iemOp_blendps_Vx_Wx_Ib); 49 /** Opcode 0x66 0x0f 0x0d. */ 50 FNIEMOP_STUB(iemOp_blendpd_Vx_Wx_Ib); 51 /** Opcode 0x66 0x0f 0x0e. */ 52 FNIEMOP_STUB(iemOp_blendw_Vx_Wx_Ib); 53 /** Opcode 0x0f 0x0f. */ 54 FNIEMOP_STUB(iemOp_palignr_Pq_Qq_Ib); 55 /** Opcode 0x66 0x0f 0x0f. */ 56 FNIEMOP_STUB(iemOp_palignr_Vx_Wx_Ib); 57 58 59 /* Opcode 0x66 0x0f 0x10 - invalid */ 60 /* Opcode 0x66 0x0f 0x11 - invalid */ 61 /* Opcode 0x66 0x0f 0x12 - invalid */ 62 /* Opcode 0x66 0x0f 0x13 - invalid */ 63 /** Opcode 0x66 0x0f 0x14. */ 64 FNIEMOP_STUB(iemOp_pextrb_RdMb_Vdq_Ib); 65 /** Opcode 0x66 0x0f 0x15. */ 66 FNIEMOP_STUB(iemOp_pextrw_RdMw_Vdq_Ib); 67 /** Opcode 0x66 0x0f 0x16. */ 68 FNIEMOP_STUB(iemOp_pextrd_q_RdMw_Vdq_Ib); 69 /** Opcode 0x66 0x0f 0x17. */ 70 FNIEMOP_STUB(iemOp_extractps_Ed_Vdq_Ib); 71 /* Opcode 0x66 0x0f 0x18 - invalid (vex only). */ 72 /* Opcode 0x66 0x0f 0x19 - invalid (vex only). */ 73 /* Opcode 0x66 0x0f 0x1a - invalid */ 74 /* Opcode 0x66 0x0f 0x1b - invalid */ 75 /* Opcode 0x66 0x0f 0x1c - invalid */ 76 /* Opcode 0x66 0x0f 0x1d - invalid (vex only). */ 77 /* Opcode 0x66 0x0f 0x1e - invalid */ 78 /* Opcode 0x66 0x0f 0x1f - invalid */ 79 80 81 /** Opcode 0x66 0x0f 0x20. */ 82 FNIEMOP_STUB(iemOp_pinsrb_Vdq_RyMb_Ib); 83 /** Opcode 0x66 0x0f 0x21, */ 84 FNIEMOP_STUB(iemOp_insertps_Vdq_UdqMd_Ib); 85 /** Opcode 0x66 0x0f 0x22. */ 86 FNIEMOP_STUB(iemOp_pinsrd_q_Vdq_Ey_Ib); 87 /* Opcode 0x66 0x0f 0x23 - invalid */ 88 /* Opcode 0x66 0x0f 0x24 - invalid */ 89 /* Opcode 0x66 0x0f 0x25 - invalid */ 90 /* Opcode 0x66 0x0f 0x26 - invalid */ 91 /* Opcode 0x66 0x0f 0x27 - invalid */ 92 /* Opcode 0x66 0x0f 0x28 - invalid */ 93 /* Opcode 0x66 0x0f 0x29 - invalid */ 94 /* Opcode 0x66 0x0f 0x2a - invalid */ 95 /* Opcode 0x66 0x0f 0x2b - invalid */ 96 /* Opcode 0x66 0x0f 0x2c - invalid */ 97 /* Opcode 0x66 0x0f 0x2d - invalid */ 98 /* Opcode 0x66 0x0f 0x2e - invalid */ 99 /* Opcode 0x66 0x0f 0x2f - invalid */ 100 101 102 /* Opcode 0x66 0x0f 0x30 - invalid */ 103 /* Opcode 0x66 0x0f 0x31 - invalid */ 104 /* Opcode 0x66 0x0f 0x32 - invalid */ 105 /* Opcode 0x66 0x0f 0x33 - invalid */ 106 /* Opcode 0x66 0x0f 0x34 - invalid */ 107 /* Opcode 0x66 0x0f 0x35 - invalid */ 108 /* Opcode 0x66 0x0f 0x36 - invalid */ 109 /* Opcode 0x66 0x0f 0x37 - invalid */ 110 /* Opcode 0x66 0x0f 0x38 - invalid (vex only). */ 111 /* Opcode 0x66 0x0f 0x39 - invalid (vex only). */ 112 /* Opcode 0x66 0x0f 0x3a - invalid */ 113 /* Opcode 0x66 0x0f 0x3b - invalid */ 114 /* Opcode 0x66 0x0f 0x3c - invalid */ 115 /* Opcode 0x66 0x0f 0x3d - invalid */ 116 /* Opcode 0x66 0x0f 0x3e - invalid */ 117 /* Opcode 0x66 0x0f 0x3f - invalid */ 118 119 120 /** Opcode 0x66 0x0f 0x40. */ 121 FNIEMOP_STUB(iemOp_dpps_Vx_Wx_Ib); 122 /** Opcode 0x66 0x0f 0x41, */ 123 FNIEMOP_STUB(iemOp_dppd_Vdq_Wdq_Ib); 124 /** Opcode 0x66 0x0f 0x42. */ 125 FNIEMOP_STUB(iemOp_mpsadbw_Vx_Wx_Ib); 126 /* Opcode 0x66 0x0f 0x43 - invalid */ 127 /** Opcode 0x66 0x0f 0x44. */ 128 FNIEMOP_STUB(iemOp_pclmulqdq_Vdq_Wdq_Ib); 129 /* Opcode 0x66 0x0f 0x45 - invalid */ 130 /* Opcode 0x66 0x0f 0x46 - invalid (vex only) */ 131 /* Opcode 0x66 0x0f 0x47 - invalid */ 132 /* Opcode 0x66 0x0f 0x48 - invalid */ 133 /* Opcode 0x66 0x0f 0x49 - invalid */ 134 /* Opcode 0x66 0x0f 0x4a - invalid (vex only). */ 135 /* Opcode 0x66 0x0f 0x4b - invalid (vex only). */ 136 /* Opcode 0x66 0x0f 0x4c - invalid (vex only). */ 137 /* Opcode 0x66 0x0f 0x4d - invalid */ 138 /* Opcode 0x66 0x0f 0x4e - invalid */ 139 /* Opcode 0x66 0x0f 0x4f - invalid */ 140 141 142 /* Opcode 0x66 0x0f 0x50 - invalid */ 143 /* Opcode 0x66 0x0f 0x51 - invalid */ 144 /* Opcode 0x66 0x0f 0x52 - invalid */ 145 /* Opcode 0x66 0x0f 0x53 - invalid */ 146 /* Opcode 0x66 0x0f 0x54 - invalid */ 147 /* Opcode 0x66 0x0f 0x55 - invalid */ 148 /* Opcode 0x66 0x0f 0x56 - invalid */ 149 /* Opcode 0x66 0x0f 0x57 - invalid */ 150 /* Opcode 0x66 0x0f 0x58 - invalid */ 151 /* Opcode 0x66 0x0f 0x59 - invalid */ 152 /* Opcode 0x66 0x0f 0x5a - invalid */ 153 /* Opcode 0x66 0x0f 0x5b - invalid */ 154 /* Opcode 0x66 0x0f 0x5c - invalid */ 155 /* Opcode 0x66 0x0f 0x5d - invalid */ 156 /* Opcode 0x66 0x0f 0x5e - invalid */ 157 /* Opcode 0x66 0x0f 0x5f - invalid */ 158 159 160 /** Opcode 0x66 0x0f 0x60. */ 161 FNIEMOP_STUB(iemOp_pcmpestrm_Vdq_Wdq_Ib); 162 /** Opcode 0x66 0x0f 0x61, */ 163 FNIEMOP_STUB(iemOp_pcmpestri_Vdq_Wdq_Ib); 164 /** Opcode 0x66 0x0f 0x62. */ 165 FNIEMOP_STUB(iemOp_pcmpistrm_Vdq_Wdq_Ib); 166 /** Opcode 0x66 0x0f 0x63*/ 167 FNIEMOP_STUB(iemOp_pcmpistri_Vdq_Wdq_Ib); 168 /* Opcode 0x66 0x0f 0x64 - invalid */ 169 /* Opcode 0x66 0x0f 0x65 - invalid */ 170 /* Opcode 0x66 0x0f 0x66 - invalid */ 171 /* Opcode 0x66 0x0f 0x67 - invalid */ 172 /* Opcode 0x66 0x0f 0x68 - invalid */ 173 /* Opcode 0x66 0x0f 0x69 - invalid */ 174 /* Opcode 0x66 0x0f 0x6a - invalid */ 175 /* Opcode 0x66 0x0f 0x6b - invalid */ 176 /* Opcode 0x66 0x0f 0x6c - invalid */ 177 /* Opcode 0x66 0x0f 0x6d - invalid */ 178 /* Opcode 0x66 0x0f 0x6e - invalid */ 179 /* Opcode 0x66 0x0f 0x6f - invalid */ 180 181 /* Opcodes 0x0f 0x70 thru 0x0f 0xb0 are unused. */ 26 /** Opcode VEX.66.0F3A 0x00. */ 27 FNIEMOP_STUB(iemOp_vpermq_Vqq_Wqq_Ib); 28 /** Opcode VEX.66.0F3A 0x01. */ 29 FNIEMOP_STUB(iemOp_vpermqd_Vqq_Wqq_Ib); 30 /** Opcode VEX.66.0F3A 0x02. */ 31 FNIEMOP_STUB(iemOp_vpblendd_Vx_Wx_Ib); 32 /* Opcode VEX.66.0F3A 0x03 - invalid */ 33 /** Opcode VEX.66.0F3A 0x04. */ 34 FNIEMOP_STUB(iemOp_vpermilps_Vx_Wx_Ib); 35 /** Opcode VEX.66.0F3A 0x05. */ 36 FNIEMOP_STUB(iemOp_vpermilpd_Vx_Wx_Ib); 37 /** Opcode VEX.66.0F3A 0x06 (vex only) */ 38 FNIEMOP_STUB(iemOp_vperm2f128_Vqq_Hqq_Wqq_Ib); 39 /* Opcode VEX.66.0F3A 0x07 - invalid */ 40 /** Opcode VEX.66.0F3A 0x08. */ 41 FNIEMOP_STUB(iemOp_vroundps_Vx_Wx_Ib); 42 /** Opcode VEX.66.0F3A 0x09. */ 43 FNIEMOP_STUB(iemOp_vroundpd_Vx_Wx_Ib); 44 /** Opcode VEX.66.0F3A 0x0a. */ 45 FNIEMOP_STUB(iemOp_vroundss_Vss_Wss_Ib); 46 /** Opcode VEX.66.0F3A 0x0b. */ 47 FNIEMOP_STUB(iemOp_vroundsd_Vsd_Wsd_Ib); 48 /** Opcode VEX.66.0F3A 0x0c. */ 49 FNIEMOP_STUB(iemOp_vblendps_Vx_Hx_Wx_Ib); 50 /** Opcode VEX.66.0F3A 0x0d. */ 51 FNIEMOP_STUB(iemOp_vblendpd_Vx_Hx_Wx_Ib); 52 /** Opcode VEX.66.0F3A 0x0e. */ 53 FNIEMOP_STUB(iemOp_vblendw_Vx_Hx_Wx_Ib); 54 /** Opcode VEX.0F3A 0x0f - invalid. */ 55 /** Opcode VEX.66.0F3A 0x0f. */ 56 FNIEMOP_STUB(iemOp_vpalignr_Vx_Hx_Wx_Ib); 57 58 59 /* Opcode VEX.66.0F3A 0x10 - invalid */ 60 /* Opcode VEX.66.0F3A 0x11 - invalid */ 61 /* Opcode VEX.66.0F3A 0x12 - invalid */ 62 /* Opcode VEX.66.0F3A 0x13 - invalid */ 63 /** Opcode VEX.66.0F3A 0x14. */ 64 FNIEMOP_STUB(iemOp_vpextrb_RdMb_Vdq_Ib); 65 /** Opcode VEX.66.0F3A 0x15. */ 66 FNIEMOP_STUB(iemOp_vpextrw_RdMw_Vdq_Ib); 67 /** Opcode VEX.66.0F3A 0x16. */ 68 FNIEMOP_STUB(iemOp_vpextrd_q_RdMw_Vdq_Ib); 69 /** Opcode VEX.66.0F3A 0x17. */ 70 FNIEMOP_STUB(iemOp_vextractps_Ed_Vdq_Ib); 71 /** Opcode VEX.66.0F3A 0x18 (vex only). */ 72 FNIEMOP_STUB(iemOp_vinsertf128_Vqq_Hqq_Wqq_Ib); 73 /** Opcode VEX.66.0F3A 0x19 (vex only). */ 74 FNIEMOP_STUB(iemOp_vextractf128_Wdq_Vqq_Ib); 75 /* Opcode VEX.66.0F3A 0x1a - invalid */ 76 /* Opcode VEX.66.0F3A 0x1b - invalid */ 77 /* Opcode VEX.66.0F3A 0x1c - invalid */ 78 /** Opcode VEX.66.0F3A 0x1d (vex only). */ 79 FNIEMOP_STUB(iemOp_vcvtps2ph_Wx_Vx_Ib); 80 /* Opcode VEX.66.0F3A 0x1e - invalid */ 81 /* Opcode VEX.66.0F3A 0x1f - invalid */ 82 83 84 /** Opcode VEX.66.0F3A 0x20. */ 85 FNIEMOP_STUB(iemOp_vpinsrb_Vdq_Hdq_RyMb_Ib); 86 /** Opcode VEX.66.0F3A 0x21, */ 87 FNIEMOP_STUB(iemOp_vinsertps_Vdq_Hdq_UdqMd_Ib); 88 /** Opcode VEX.66.0F3A 0x22. */ 89 FNIEMOP_STUB(iemOp_vpinsrd_q_Vdq_Hdq_Ey_Ib); 90 /* Opcode VEX.66.0F3A 0x23 - invalid */ 91 /* Opcode VEX.66.0F3A 0x24 - invalid */ 92 /* Opcode VEX.66.0F3A 0x25 - invalid */ 93 /* Opcode VEX.66.0F3A 0x26 - invalid */ 94 /* Opcode VEX.66.0F3A 0x27 - invalid */ 95 /* Opcode VEX.66.0F3A 0x28 - invalid */ 96 /* Opcode VEX.66.0F3A 0x29 - invalid */ 97 /* Opcode VEX.66.0F3A 0x2a - invalid */ 98 /* Opcode VEX.66.0F3A 0x2b - invalid */ 99 /* Opcode VEX.66.0F3A 0x2c - invalid */ 100 /* Opcode VEX.66.0F3A 0x2d - invalid */ 101 /* Opcode VEX.66.0F3A 0x2e - invalid */ 102 /* Opcode VEX.66.0F3A 0x2f - invalid */ 103 104 105 /* Opcode VEX.66.0F3A 0x30 - invalid */ 106 /* Opcode VEX.66.0F3A 0x31 - invalid */ 107 /* Opcode VEX.66.0F3A 0x32 - invalid */ 108 /* Opcode VEX.66.0F3A 0x33 - invalid */ 109 /* Opcode VEX.66.0F3A 0x34 - invalid */ 110 /* Opcode VEX.66.0F3A 0x35 - invalid */ 111 /* Opcode VEX.66.0F3A 0x36 - invalid */ 112 /* Opcode VEX.66.0F3A 0x37 - invalid */ 113 /** Opcode VEX.66.0F3A 0x38 (vex only). */ 114 FNIEMOP_STUB(iemOp_vinserti128_Vqq_Hqq_Wqq_Ib); 115 /** Opcode VEX.66.0F3A 0x39 (vex only). */ 116 FNIEMOP_STUB(iemOp_vextracti128_Wdq_Vqq_Ib); 117 /* Opcode VEX.66.0F3A 0x3a - invalid */ 118 /* Opcode VEX.66.0F3A 0x3b - invalid */ 119 /* Opcode VEX.66.0F3A 0x3c - invalid */ 120 /* Opcode VEX.66.0F3A 0x3d - invalid */ 121 /* Opcode VEX.66.0F3A 0x3e - invalid */ 122 /* Opcode VEX.66.0F3A 0x3f - invalid */ 123 124 125 /** Opcode VEX.66.0F3A 0x40. */ 126 FNIEMOP_STUB(iemOp_vdpps_Vx_Hx_Wx_Ib); 127 /** Opcode VEX.66.0F3A 0x41, */ 128 FNIEMOP_STUB(iemOp_vdppd_Vdq_Hdq_Wdq_Ib); 129 /** Opcode VEX.66.0F3A 0x42. */ 130 FNIEMOP_STUB(iemOp_vmpsadbw_Vx_Hx_Wx_Ib); 131 /* Opcode VEX.66.0F3A 0x43 - invalid */ 132 /** Opcode VEX.66.0F3A 0x44. */ 133 FNIEMOP_STUB(iemOp_vpclmulqdq_Vdq_Hdq_Wdq_Ib); 134 /* Opcode VEX.66.0F3A 0x45 - invalid */ 135 /** Opcode VEX.66.0F3A 0x46 (vex only) */ 136 FNIEMOP_STUB(iemOp_vperm2i128_Vqq_Hqq_Wqq_Ib); 137 /* Opcode VEX.66.0F3A 0x47 - invalid */ 138 /** Opcode VEX.66.0F3A 0x48 (AMD tables only). */ 139 FNIEMOP_STUB(iemOp_vperlmilzz2ps_Vx_Hx_Wp_Lx); 140 /** Opcode VEX.66.0F3A 0x49 (AMD tables only). */ 141 FNIEMOP_STUB(iemOp_vperlmilzz2pd_Vx_Hx_Wp_Lx); 142 /** Opcode VEX.66.0F3A 0x4a (vex only). */ 143 FNIEMOP_STUB(iemOp_vblendvps_Vx_Hx_Wx_Lx); 144 /** Opcode VEX.66.0F3A 0x4b (vex only). */ 145 FNIEMOP_STUB(iemOp_vblendvpd_Vx_Hx_Wx_Lx); 146 /** Opcode VEX.66.0F3A 0x4c (vex only). */ 147 FNIEMOP_STUB(iemOp_vpblendvb_Vx_Hx_Wx_Lx); 148 /* Opcode VEX.66.0F3A 0x4d - invalid */ 149 /* Opcode VEX.66.0F3A 0x4e - invalid */ 150 /* Opcode VEX.66.0F3A 0x4f - invalid */ 151 152 153 /* Opcode VEX.66.0F3A 0x50 - invalid */ 154 /* Opcode VEX.66.0F3A 0x51 - invalid */ 155 /* Opcode VEX.66.0F3A 0x52 - invalid */ 156 /* Opcode VEX.66.0F3A 0x53 - invalid */ 157 /* Opcode VEX.66.0F3A 0x54 - invalid */ 158 /* Opcode VEX.66.0F3A 0x55 - invalid */ 159 /* Opcode VEX.66.0F3A 0x56 - invalid */ 160 /* Opcode VEX.66.0F3A 0x57 - invalid */ 161 /* Opcode VEX.66.0F3A 0x58 - invalid */ 162 /* Opcode VEX.66.0F3A 0x59 - invalid */ 163 /* Opcode VEX.66.0F3A 0x5a - invalid */ 164 /* Opcode VEX.66.0F3A 0x5b - invalid */ 165 /** Opcode VEX.66.0F3A 0x5c (AMD tables only). */ 166 FNIEMOP_STUB(iemOp_vfmaddsubps_Vx_Lx_Wx_Hx); 167 /** Opcode VEX.66.0F3A 0x5d (AMD tables only). */ 168 FNIEMOP_STUB(iemOp_vfmaddsubpd_Vx_Lx_Wx_Hx); 169 /** Opcode VEX.66.0F3A 0x5e (AMD tables only). */ 170 FNIEMOP_STUB(iemOp_vfmsubaddps_Vx_Lx_Wx_Hx); 171 /** Opcode VEX.66.0F3A 0x5f (AMD tables only). */ 172 FNIEMOP_STUB(iemOp_vfmsubaddpd_Vx_Lx_Wx_Hx); 173 174 175 /** Opcode VEX.66.0F3A 0x60. */ 176 FNIEMOP_STUB(iemOp_vpcmpestrm_Vdq_Wdq_Ib); 177 /** Opcode VEX.66.0F3A 0x61, */ 178 FNIEMOP_STUB(iemOp_vpcmpestri_Vdq_Wdq_Ib); 179 /** Opcode VEX.66.0F3A 0x62. */ 180 FNIEMOP_STUB(iemOp_vpcmpistrm_Vdq_Wdq_Ib); 181 /** Opcode VEX.66.0F3A 0x63*/ 182 FNIEMOP_STUB(iemOp_vpcmpistri_Vdq_Wdq_Ib); 183 /* Opcode VEX.66.0F3A 0x64 - invalid */ 184 /* Opcode VEX.66.0F3A 0x65 - invalid */ 185 /* Opcode VEX.66.0F3A 0x66 - invalid */ 186 /* Opcode VEX.66.0F3A 0x67 - invalid */ 187 /** Opcode VEX.66.0F3A 0x68 (AMD tables only). */ 188 FNIEMOP_STUB(iemOp_vfmaddps_Vx_Lx_Wx_Hx); 189 /** Opcode VEX.66.0F3A 0x69 (AMD tables only). */ 190 FNIEMOP_STUB(iemOp_vfmaddpd_Vx_Lx_Wx_Hx); 191 /** Opcode VEX.66.0F3A 0x6a (AMD tables only). */ 192 FNIEMOP_STUB(iemOp_vfmaddss_Vx_Lx_Wx_Hx); 193 /** Opcode VEX.66.0F3A 0x6b (AMD tables only). */ 194 FNIEMOP_STUB(iemOp_vfmaddsd_Vx_Lx_Wx_Hx); 195 /** Opcode VEX.66.0F3A 0x6c (AMD tables only). */ 196 FNIEMOP_STUB(iemOp_vfmsubps_Vx_Lx_Wx_Hx); 197 /** Opcode VEX.66.0F3A 0x6d (AMD tables only). */ 198 FNIEMOP_STUB(iemOp_vfmsubpd_Vx_Lx_Wx_Hx); 199 /** Opcode VEX.66.0F3A 0x6e (AMD tables only). */ 200 FNIEMOP_STUB(iemOp_vfmsubss_Vx_Lx_Wx_Hx); 201 /** Opcode VEX.66.0F3A 0x6f (AMD tables only). */ 202 FNIEMOP_STUB(iemOp_vfmsubsd_Vx_Lx_Wx_Hx); 203 204 /* Opcode VEX.66.0F3A 0x70 - invalid */ 205 /* Opcode VEX.66.0F3A 0x71 - invalid */ 206 /* Opcode VEX.66.0F3A 0x72 - invalid */ 207 /* Opcode VEX.66.0F3A 0x73 - invalid */ 208 /* Opcode VEX.66.0F3A 0x74 - invalid */ 209 /* Opcode VEX.66.0F3A 0x75 - invalid */ 210 /* Opcode VEX.66.0F3A 0x76 - invalid */ 211 /* Opcode VEX.66.0F3A 0x77 - invalid */ 212 /** Opcode VEX.66.0F3A 0x78 (AMD tables only). */ 213 FNIEMOP_STUB(iemOp_vfnmaddps_Vx_Lx_Wx_Hx); 214 /** Opcode VEX.66.0F3A 0x79 (AMD tables only). */ 215 FNIEMOP_STUB(iemOp_vfnmaddpd_Vx_Lx_Wx_Hx); 216 /** Opcode VEX.66.0F3A 0x7a (AMD tables only). */ 217 FNIEMOP_STUB(iemOp_vfnmaddss_Vx_Lx_Wx_Hx); 218 /** Opcode VEX.66.0F3A 0x7b (AMD tables only). */ 219 FNIEMOP_STUB(iemOp_vfnmaddsd_Vx_Lx_Wx_Hx); 220 /** Opcode VEX.66.0F3A 0x7c (AMD tables only). */ 221 FNIEMOP_STUB(iemOp_vfnmsubps_Vx_Lx_Wx_Hx); 222 /** Opcode VEX.66.0F3A 0x7d (AMD tables only). */ 223 FNIEMOP_STUB(iemOp_vfnmsubpd_Vx_Lx_Wx_Hx); 224 /** Opcode VEX.66.0F3A 0x7e (AMD tables only). */ 225 FNIEMOP_STUB(iemOp_vfnmsubss_Vx_Lx_Wx_Hx); 226 /** Opcode VEX.66.0F3A 0x7f (AMD tables only). */ 227 FNIEMOP_STUB(iemOp_vfnmsubsd_Vx_Lx_Wx_Hx); 228 229 /* Opcodes 0x0f 0x80 thru 0x0f 0xb0 are unused. */ 182 230 183 231 … … 195 243 /* Opcode 0x0f 0xcb - invalid */ 196 244 /* Opcode 0x0f 0xcc */ 197 FNIEMOP_STUB(iemOp_ sha1rnds4_Vdq_Wdq_Ib);245 FNIEMOP_STUB(iemOp_vsha1rnds4_Vdq_Wdq_Ib); 198 246 /* Opcode 0x0f 0xcd - invalid */ 199 247 /* Opcode 0x0f 0xce - invalid */ … … 201 249 202 250 203 /* Opcode 0x66 0x0f 0xd0 - invalid */ 204 /* Opcode 0x66 0x0f 0xd1 - invalid */ 205 /* Opcode 0x66 0x0f 0xd2 - invalid */ 206 /* Opcode 0x66 0x0f 0xd3 - invalid */ 207 /* Opcode 0x66 0x0f 0xd4 - invalid */ 208 /* Opcode 0x66 0x0f 0xd5 - invalid */ 209 /* Opcode 0x66 0x0f 0xd6 - invalid */ 210 /* Opcode 0x66 0x0f 0xd7 - invalid */ 211 /* Opcode 0x66 0x0f 0xd8 - invalid */ 212 /* Opcode 0x66 0x0f 0xd9 - invalid */ 213 /* Opcode 0x66 0x0f 0xda - invalid */ 214 /* Opcode 0x66 0x0f 0xdb - invalid */ 215 /* Opcode 0x66 0x0f 0xdc - invalid */ 216 /* Opcode 0x66 0x0f 0xdd - invalid */ 217 /* Opcode 0x66 0x0f 0xde - invalid */ 218 /* Opcode 0x66 0x0f 0xdf - (aeskeygenassist). */ 219 FNIEMOP_STUB(iemOp_aeskeygen_Vdq_Wdq_Ib); 220 221 222 /* Opcode 0xf2 0x0f 0xf0 - invalid (vex only) */ 251 /* Opcode VEX.66.0F3A 0xd0 - invalid */ 252 /* Opcode VEX.66.0F3A 0xd1 - invalid */ 253 /* Opcode VEX.66.0F3A 0xd2 - invalid */ 254 /* Opcode VEX.66.0F3A 0xd3 - invalid */ 255 /* Opcode VEX.66.0F3A 0xd4 - invalid */ 256 /* Opcode VEX.66.0F3A 0xd5 - invalid */ 257 /* Opcode VEX.66.0F3A 0xd6 - invalid */ 258 /* Opcode VEX.66.0F3A 0xd7 - invalid */ 259 /* Opcode VEX.66.0F3A 0xd8 - invalid */ 260 /* Opcode VEX.66.0F3A 0xd9 - invalid */ 261 /* Opcode VEX.66.0F3A 0xda - invalid */ 262 /* Opcode VEX.66.0F3A 0xdb - invalid */ 263 /* Opcode VEX.66.0F3A 0xdc - invalid */ 264 /* Opcode VEX.66.0F3A 0xdd - invalid */ 265 /* Opcode VEX.66.0F3A 0xde - invalid */ 266 /* Opcode VEX.66.0F3A 0xdf - (aeskeygenassist). */ 267 FNIEMOP_STUB(iemOp_vaeskeygen_Vdq_Wdq_Ib); 268 269 270 /* Opcode VEX.F2.0F3A (vex only) */ 271 FNIEMOP_STUB(iemOp_rorx_Gy_Ey_Ib); 223 272 224 273 225 274 /** 226 * Three byte opcode map, first two bytes are 0x0f 0x3a. 227 * @sa g_apfnVexMap2 275 * VEX opcode map \#3. 276 * 277 * @sa g_apfnThreeByte0f3a 228 278 */ 229 IEM_STATIC const PFNIEMOP g_apfn ThreeByte0f3a[] =279 IEM_STATIC const PFNIEMOP g_apfnVexMap3[] = 230 280 { 231 281 /* no prefix, 066h prefix f3h prefix, f2h prefix */ 232 /* 0x00 */ iemOp_InvalidNeedRMImm8, iemOp_ permq_Vqq_Wqq_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,233 /* 0x01 */ iemOp_InvalidNeedRMImm8, iemOp_ permqd_Vqq_Wqq_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,234 /* 0x02 */ iemOp_InvalidNeedRMImm8, iemOp_ pblendd_Vx_Wx_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,282 /* 0x00 */ iemOp_InvalidNeedRMImm8, iemOp_vpermq_Vqq_Wqq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 283 /* 0x01 */ iemOp_InvalidNeedRMImm8, iemOp_vpermqd_Vqq_Wqq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 284 /* 0x02 */ iemOp_InvalidNeedRMImm8, iemOp_vpblendd_Vx_Wx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 235 285 /* 0x03 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 236 /* 0x04 */ iemOp_InvalidNeedRMImm8, iemOp_ permilps_Vx_Wx_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,237 /* 0x05 */ iemOp_InvalidNeedRMImm8, iemOp_ permilpd_Vx_Wx_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,238 /* 0x06 */ IEMOP_X4(iemOp_InvalidNeedRMImm8),286 /* 0x04 */ iemOp_InvalidNeedRMImm8, iemOp_vpermilps_Vx_Wx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 287 /* 0x05 */ iemOp_InvalidNeedRMImm8, iemOp_vpermilpd_Vx_Wx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 288 /* 0x06 */ iemOp_InvalidNeedRMImm8, iemOp_vperm2f128_Vqq_Hqq_Wqq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 239 289 /* 0x07 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 240 /* 0x08 */ iemOp_InvalidNeedRMImm8, iemOp_ roundps_Vx_Wx_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,241 /* 0x09 */ iemOp_InvalidNeedRMImm8, iemOp_ roundpd_Vx_Wx_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,242 /* 0x0a */ iemOp_InvalidNeedRMImm8, iemOp_ roundss_Vss_Wss_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,243 /* 0x0b */ iemOp_InvalidNeedRMImm8, iemOp_ roundsd_Vsd_Wsd_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,244 /* 0x0c */ iemOp_InvalidNeedRMImm8, iemOp_ blendps_Vx_Wx_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,245 /* 0x0d */ iemOp_InvalidNeedRMImm8, iemOp_ blendpd_Vx_Wx_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,246 /* 0x0e */ iemOp_InvalidNeedRMImm8, iemOp_ blendw_Vx_Wx_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,247 /* 0x0f */ iemOp_ palignr_Pq_Qq_Ib, iemOp_palignr_Vx_Wx_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,290 /* 0x08 */ iemOp_InvalidNeedRMImm8, iemOp_vroundps_Vx_Wx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 291 /* 0x09 */ iemOp_InvalidNeedRMImm8, iemOp_vroundpd_Vx_Wx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 292 /* 0x0a */ iemOp_InvalidNeedRMImm8, iemOp_vroundss_Vss_Wss_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 293 /* 0x0b */ iemOp_InvalidNeedRMImm8, iemOp_vroundsd_Vsd_Wsd_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 294 /* 0x0c */ iemOp_InvalidNeedRMImm8, iemOp_vblendps_Vx_Hx_Wx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 295 /* 0x0d */ iemOp_InvalidNeedRMImm8, iemOp_vblendpd_Vx_Hx_Wx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 296 /* 0x0e */ iemOp_InvalidNeedRMImm8, iemOp_vblendw_Vx_Hx_Wx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 297 /* 0x0f */ iemOp_InvalidNeedRMImm8, iemOp_vpalignr_Vx_Hx_Wx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 248 298 249 299 /* 0x10 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), … … 251 301 /* 0x12 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 252 302 /* 0x13 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 253 /* 0x14 */ iemOp_InvalidNeedRMImm8, iemOp_ pextrb_RdMb_Vdq_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,254 /* 0x15 */ iemOp_InvalidNeedRMImm8, iemOp_ pextrw_RdMw_Vdq_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,255 /* 0x16 */ iemOp_InvalidNeedRMImm8, iemOp_ pextrd_q_RdMw_Vdq_Ib, iemOp_InvalidNeedRMImm8,iemOp_InvalidNeedRMImm8,256 /* 0x17 */ iemOp_InvalidNeedRMImm8, iemOp_ extractps_Ed_Vdq_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,257 /* 0x18 */ IEMOP_X4(iemOp_InvalidNeedRMImm8),258 /* 0x19 */ IEMOP_X4(iemOp_InvalidNeedRMImm8),303 /* 0x14 */ iemOp_InvalidNeedRMImm8, iemOp_vpextrb_RdMb_Vdq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 304 /* 0x15 */ iemOp_InvalidNeedRMImm8, iemOp_vpextrw_RdMw_Vdq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 305 /* 0x16 */ iemOp_InvalidNeedRMImm8, iemOp_vpextrd_q_RdMw_Vdq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 306 /* 0x17 */ iemOp_InvalidNeedRMImm8, iemOp_vextractps_Ed_Vdq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 307 /* 0x18 */ iemOp_InvalidNeedRMImm8, iemOp_vinsertf128_Vqq_Hqq_Wqq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 308 /* 0x19 */ iemOp_InvalidNeedRMImm8, iemOp_vextractf128_Wdq_Vqq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 259 309 /* 0x1a */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 260 310 /* 0x1b */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 261 311 /* 0x1c */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 262 /* 0x1d */ IEMOP_X4(iemOp_InvalidNeedRMImm8),312 /* 0x1d */ iemOp_InvalidNeedRMImm8, iemOp_vcvtps2ph_Wx_Vx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 263 313 /* 0x1e */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 264 314 /* 0x1f */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 265 315 266 /* 0x20 */ iemOp_InvalidNeedRMImm8, iemOp_ pinsrb_Vdq_RyMb_Ib, iemOp_InvalidNeedRMImm8,iemOp_InvalidNeedRMImm8,267 /* 0x21 */ iemOp_InvalidNeedRMImm8, iemOp_ insertps_Vdq_UdqMd_Ib,iemOp_InvalidNeedRMImm8,iemOp_InvalidNeedRMImm8,268 /* 0x22 */ iemOp_InvalidNeedRMImm8, iemOp_ pinsrd_q_Vdq_Ey_Ib, iemOp_InvalidNeedRMImm8,iemOp_InvalidNeedRMImm8,316 /* 0x20 */ iemOp_InvalidNeedRMImm8, iemOp_vpinsrb_Vdq_Hdq_RyMb_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 317 /* 0x21 */ iemOp_InvalidNeedRMImm8, iemOp_vinsertps_Vdq_Hdq_UdqMd_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 318 /* 0x22 */ iemOp_InvalidNeedRMImm8, iemOp_vpinsrd_q_Vdq_Hdq_Ey_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 269 319 /* 0x23 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 270 320 /* 0x24 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), … … 289 339 /* 0x36 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 290 340 /* 0x37 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 291 /* 0x38 */ IEMOP_X4(iemOp_InvalidNeedRMImm8),292 /* 0x39 */ IEMOP_X4(iemOp_InvalidNeedRMImm8),341 /* 0x38 */ iemOp_InvalidNeedRMImm8, iemOp_vinserti128_Vqq_Hqq_Wqq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 342 /* 0x39 */ iemOp_InvalidNeedRMImm8, iemOp_vextracti128_Wdq_Vqq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 293 343 /* 0x3a */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 294 344 /* 0x3b */ IEMOP_X4(iemOp_InvalidNeedRMImm8), … … 298 348 /* 0x3f */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 299 349 300 /* 0x40 */ iemOp_InvalidNeedRMImm8, iemOp_ dpps_Vx_Wx_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,301 /* 0x41 */ iemOp_InvalidNeedRMImm8, iemOp_ dppd_Vdq_Wdq_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,302 /* 0x42 */ iemOp_InvalidNeedRMImm8, iemOp_ mpsadbw_Vx_Wx_Ib,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,350 /* 0x40 */ iemOp_InvalidNeedRMImm8, iemOp_vdpps_Vx_Hx_Wx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 351 /* 0x41 */ iemOp_InvalidNeedRMImm8, iemOp_vdppd_Vdq_Hdq_Wdq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 352 /* 0x42 */ iemOp_InvalidNeedRMImm8, iemOp_vmpsadbw_Vx_Hx_Wx_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 303 353 /* 0x43 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 304 /* 0x44 */ iemOp_InvalidNeedRMImm8, iemOp_ pclmulqdq_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8,iemOp_InvalidNeedRMImm8,354 /* 0x44 */ iemOp_InvalidNeedRMImm8, iemOp_vpclmulqdq_Vdq_Hdq_Wdq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 305 355 /* 0x45 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 306 /* 0x46 */ IEMOP_X4(iemOp_InvalidNeedRMImm8),356 /* 0x46 */ iemOp_InvalidNeedRMImm8, iemOp_vperm2i128_Vqq_Hqq_Wqq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 307 357 /* 0x47 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 308 /* 0x48 */ IEMOP_X4(iemOp_InvalidNeedRMImm8),309 /* 0x49 */ IEMOP_X4(iemOp_InvalidNeedRMImm8),310 /* 0x4a */ IEMOP_X4(iemOp_InvalidNeedRMImm8),311 /* 0x4b */ IEMOP_X4(iemOp_InvalidNeedRMImm8),312 /* 0x4c */ IEMOP_X4(iemOp_InvalidNeedRMImm8),358 /* 0x48 */ iemOp_InvalidNeedRMImm8, iemOp_vperlmilzz2ps_Vx_Hx_Wp_Lx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 359 /* 0x49 */ iemOp_InvalidNeedRMImm8, iemOp_vperlmilzz2pd_Vx_Hx_Wp_Lx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 360 /* 0x4a */ iemOp_InvalidNeedRMImm8, iemOp_vblendvps_Vx_Hx_Wx_Lx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 361 /* 0x4b */ iemOp_InvalidNeedRMImm8, iemOp_vblendvpd_Vx_Hx_Wx_Lx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 362 /* 0x4c */ iemOp_InvalidNeedRMImm8, iemOp_vpblendvb_Vx_Hx_Wx_Lx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 313 363 /* 0x4d */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 314 364 /* 0x4e */ IEMOP_X4(iemOp_InvalidNeedRMImm8), … … 327 377 /* 0x5a */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 328 378 /* 0x5b */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 329 /* 0x5c */ IEMOP_X4(iemOp_InvalidNeedRMImm8),330 /* 0x5d */ IEMOP_X4(iemOp_InvalidNeedRMImm8),331 /* 0x5e */ IEMOP_X4(iemOp_InvalidNeedRMImm8),332 /* 0x5f */ IEMOP_X4(iemOp_InvalidNeedRMImm8),333 334 /* 0x60 */ iemOp_InvalidNeedRMImm8, iemOp_ pcmpestrm_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8,iemOp_InvalidNeedRMImm8,335 /* 0x61 */ iemOp_InvalidNeedRMImm8, iemOp_ pcmpestri_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8,iemOp_InvalidNeedRMImm8,336 /* 0x62 */ iemOp_InvalidNeedRMImm8, iemOp_ pcmpistrm_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8,iemOp_InvalidNeedRMImm8,337 /* 0x63 */ iemOp_InvalidNeedRMImm8, iemOp_ pcmpistri_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8,iemOp_InvalidNeedRMImm8,379 /* 0x5c */ iemOp_InvalidNeedRMImm8, iemOp_vfmaddsubps_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 380 /* 0x5d */ iemOp_InvalidNeedRMImm8, iemOp_vfmaddsubpd_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 381 /* 0x5e */ iemOp_InvalidNeedRMImm8, iemOp_vfmsubaddps_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 382 /* 0x5f */ iemOp_InvalidNeedRMImm8, iemOp_vfmsubaddpd_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 383 384 /* 0x60 */ iemOp_InvalidNeedRMImm8, iemOp_vpcmpestrm_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 385 /* 0x61 */ iemOp_InvalidNeedRMImm8, iemOp_vpcmpestri_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 386 /* 0x62 */ iemOp_InvalidNeedRMImm8, iemOp_vpcmpistrm_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 387 /* 0x63 */ iemOp_InvalidNeedRMImm8, iemOp_vpcmpistri_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 338 388 /* 0x64 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 339 389 /* 0x65 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 340 390 /* 0x66 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 341 391 /* 0x67 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 342 /* 0x68 */ IEMOP_X4(iemOp_InvalidNeedRMImm8),343 /* 0x69 */ IEMOP_X4(iemOp_InvalidNeedRMImm8),344 /* 0x6a */ IEMOP_X4(iemOp_InvalidNeedRMImm8),345 /* 0x6b */ IEMOP_X4(iemOp_InvalidNeedRMImm8),346 /* 0x6c */ IEMOP_X4(iemOp_InvalidNeedRMImm8),347 /* 0x6d */ IEMOP_X4(iemOp_InvalidNeedRMImm8),348 /* 0x6e */ IEMOP_X4(iemOp_InvalidNeedRMImm8),349 /* 0x6f */ IEMOP_X4(iemOp_InvalidNeedRMImm8),392 /* 0x68 */ iemOp_InvalidNeedRMImm8, iemOp_vfmaddps_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 393 /* 0x69 */ iemOp_InvalidNeedRMImm8, iemOp_vfmaddpd_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 394 /* 0x6a */ iemOp_InvalidNeedRMImm8, iemOp_vfmaddss_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 395 /* 0x6b */ iemOp_InvalidNeedRMImm8, iemOp_vfmaddsd_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 396 /* 0x6c */ iemOp_InvalidNeedRMImm8, iemOp_vfmsubps_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 397 /* 0x6d */ iemOp_InvalidNeedRMImm8, iemOp_vfmsubpd_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 398 /* 0x6e */ iemOp_InvalidNeedRMImm8, iemOp_vfmsubss_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 399 /* 0x6f */ iemOp_InvalidNeedRMImm8, iemOp_vfmsubsd_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 350 400 351 401 /* 0x70 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), … … 357 407 /* 0x76 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 358 408 /* 0x77 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 359 /* 0x78 */ IEMOP_X4(iemOp_InvalidNeedRMImm8),360 /* 0x79 */ IEMOP_X4(iemOp_InvalidNeedRMImm8),361 /* 0x7a */ IEMOP_X4(iemOp_InvalidNeedRMImm8),362 /* 0x7b */ IEMOP_X4(iemOp_InvalidNeedRMImm8),363 /* 0x7c */ IEMOP_X4(iemOp_InvalidNeedRMImm8),364 /* 0x7d */ IEMOP_X4(iemOp_InvalidNeedRMImm8),365 /* 0x7e */ IEMOP_X4(iemOp_InvalidNeedRMImm8),366 /* 0x7f */ IEMOP_X4(iemOp_InvalidNeedRMImm8),409 /* 0x78 */ iemOp_InvalidNeedRMImm8, iemOp_vfnmaddps_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 410 /* 0x79 */ iemOp_InvalidNeedRMImm8, iemOp_vfnmaddpd_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 411 /* 0x7a */ iemOp_InvalidNeedRMImm8, iemOp_vfnmaddss_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 412 /* 0x7b */ iemOp_InvalidNeedRMImm8, iemOp_vfnmaddsd_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 413 /* 0x7c */ iemOp_InvalidNeedRMImm8, iemOp_vfnmsubps_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 414 /* 0x7d */ iemOp_InvalidNeedRMImm8, iemOp_vfnmsubpd_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 415 /* 0x7e */ iemOp_InvalidNeedRMImm8, iemOp_vfnmsubss_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 416 /* 0x7f */ iemOp_InvalidNeedRMImm8, iemOp_vfnmsubsd_Vx_Lx_Wx_Hx, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 367 417 368 418 /* 0x80 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), … … 446 496 /* 0xca */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 447 497 /* 0xcb */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 448 /* 0xcc */ iemOp_ sha1rnds4_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,498 /* 0xcc */ iemOp_vsha1rnds4_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 449 499 /* 0xcd */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 450 500 /* 0xce */ IEMOP_X4(iemOp_InvalidNeedRMImm8), … … 466 516 /* 0xdd */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 467 517 /* 0xde */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 468 /* 0xdf */ iemOp_ aeskeygen_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8,iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8,518 /* 0xdf */ iemOp_vaeskeygen_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, 469 519 470 520 /* 0xe0 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), … … 485 535 /* 0xef */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 486 536 487 /* 0xf0 */ IEMOP_X4(iemOp_InvalidNeedRMImm8),537 /* 0xf0 */ iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, iemOp_InvalidNeedRMImm8, iemOp_rorx_Gy_Ey_Ib, 488 538 /* 0xf1 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 489 539 /* 0xf2 */ IEMOP_X4(iemOp_InvalidNeedRMImm8), … … 502 552 /* 0xff */ IEMOP_X4(iemOp_InvalidNeedRMImm8), 503 553 }; 504 AssertCompile(RT_ELEMENTS(g_apfn ThreeByte0f3a) == 1024);554 AssertCompile(RT_ELEMENTS(g_apfnVexMap3) == 1024); 505 555 506 556 /** @} */
Note:
See TracChangeset
for help on using the changeset viewer.