Index: /trunk/src/VBox/VMM/Makefile.kmk
===================================================================
--- /trunk/src/VBox/VMM/Makefile.kmk	(revision 66473)
+++ /trunk/src/VBox/VMM/Makefile.kmk	(revision 66474)
@@ -1014,4 +1014,6 @@
 IEMAllInstructionsOneByte.cpp.o    IEMAllInstructionsOneByte.cpp.obj \
 IEMAllInstructionsTwoByte0f.cpp.o  IEMAllInstructionsTwoByte0f.cpp.obj \
+IEMAllInstructionsThree0f38.cpp.o  IEMAllInstructionsThree0f38.cpp.obj \
+IEMAllInstructionsThree0f3a.cpp.o  IEMAllInstructionsThree0f3a.cpp.obj \
 IEMAllInstructionsVexMap1.cpp.o    IEMAllInstructionsVexMap1.cpp.obj \
 IEMAllInstructions3DNow.cpp.o      IEMAllInstructions3DNow.cpp.obj \
Index: /trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h	(revision 66473)
+++ /trunk/src/VBox/VMM/VMMAll/IEMAllInstructions.cpp.h	(revision 66474)
@@ -734,4 +734,10 @@
 # include "IEMAllInstructions3DNow.cpp.h"
 #endif
+#ifdef IEM_WITH_THREE_0F_38
+# include "IEMAllInstructionsThree0f38.cpp.h"
+#endif
+#ifdef IEM_WITH_THREE_0F_3A
+# include "IEMAllInstructionsThree0f3a.cpp.h"
+#endif
 #include "IEMAllInstructionsTwoByte0f.cpp.h"
 #ifdef IEM_WITH_VEX
Index: /trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsPython.py
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsPython.py	(revision 66473)
+++ /trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsPython.py	(revision 66474)
@@ -3073,5 +3073,5 @@
         Raises exception on fatal trouble.
         """
-        self.debug('Parsing %s' % (self.sSrcFile,));
+        #self.debug('Parsing %s' % (self.sSrcFile,));
 
         while self.iLine < len(self.asLines):
@@ -3130,6 +3130,5 @@
 
         self.doneInstructions();
-        self.debug('%s instructions in %s' % (self.cTotalInstr, self.sSrcFile,));
-        self.debug('%s instruction stubs' % (self.cTotalStubs,));
+        self.debug('%3s stubs out of %3s instructions in %s' % (self.cTotalStubs, self.cTotalInstr, os.path.basename(self.sSrcFile),));
         return self.printErrors();
 
@@ -3217,8 +3216,10 @@
     cErrors = 0;
     for sDefaultMap, sName in [
-        ( 'one',     'IEMAllInstructionsOneByte.cpp.h'),
-        ( 'two0f',   'IEMAllInstructionsTwoByte0f.cpp.h'),
-        ( 'vexmap1', 'IEMAllInstructionsVexMap1.cpp.h'),
-        ( '3dnow',   'IEMAllInstructions3DNow.cpp.h'),
+        ( 'one',        'IEMAllInstructionsOneByte.cpp.h'),
+        ( 'two0f',      'IEMAllInstructionsTwoByte0f.cpp.h'),
+        ( 'three0f38',  'IEMAllInstructionsThree0f38.cpp.h'),
+        ( 'three0f3a',  'IEMAllInstructionsThree0f3a.cpp.h'),
+        ( 'vexmap1',    'IEMAllInstructionsVexMap1.cpp.h'),
+        ( '3dnow',      'IEMAllInstructions3DNow.cpp.h'),
     ]:
         cErrors += __parseFileByName(os.path.join(sSrcDir, sName), sDefaultMap);
Index: /trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f38.cpp.h
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f38.cpp.h	(revision 66474)
+++ /trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f38.cpp.h	(revision 66474)
@@ -0,0 +1,779 @@
+/* $Id$ */
+/** @file
+ * IEM - Instruction Decoding and Emulation.
+ *
+ * @remarks IEMAllInstructionsVexMap1.cpp.h is a VEX mirror of this file.
+ *          Any update here is likely needed in that file too.
+ */
+
+/*
+ * Copyright (C) 2011-2017 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+
+/** @name Three byte opcodes with first two bytes 0x0f 0x38
+ * @{
+ */
+
+/*  Opcode      0x0f 0x38 0x00. */
+FNIEMOP_STUB(iemOp_pshufb_Pq_Qq);
+/*  Opcode 0x66 0x0f 0x38 0x00. */
+FNIEMOP_STUB(iemOp_pshufb_Vx_Wx);
+/*  Opcode      0x0f 0x38 0x01. */
+FNIEMOP_STUB(iemOp_phaddw_Pq_Qq);
+/** Opcode 0x66 0x0f 0x38 0x01. */
+FNIEMOP_STUB(iemOp_phaddw_Vx_Wx);
+/** Opcode      0x0f 0x38 0x02. */
+FNIEMOP_STUB(iemOp_phaddd_Pq_Qq);
+/** Opcode 0x66 0x0f 0x38 0x02. */
+FNIEMOP_STUB(iemOp_phaddd_vx_Wx);
+/** Opcode      0x0f 0x38 0x03. */
+FNIEMOP_STUB(iemOp_phaddsw_Pq_Qq);
+/** Opcode 0x66 0x0f 0x38 0x03. */
+FNIEMOP_STUB(iemOp_phaddsw_Vx_Wx);
+/** Opcode      0x0f 0x38 0x04. */
+FNIEMOP_STUB(iemOp_pmaddubsw_Pq_Qq);
+/** Opcode 0x66 0x0f 0x38 0x04. */
+FNIEMOP_STUB(iemOp_pmaddubsw_Vx_Wx);
+/** Opcode      0x0f 0x38 0x05. */
+FNIEMOP_STUB(iemOp_phsubw_Pq_Qq);
+/** Opcode 0x66 0x0f 0x38 0x05. */
+FNIEMOP_STUB(iemOp_phsubw_Vx_Wx);
+/** Opcode      0x0f 0x38 0x06. */
+FNIEMOP_STUB(iemOp_phsubd_Pq_Qq);
+/** Opcode 0x66 0x0f 0x38 0x06. */
+FNIEMOP_STUB(iemOp_phsubdq_Vx_Wx);
+/** Opcode      0x0f 0x38 0x07. */
+FNIEMOP_STUB(iemOp_phsubsw_Pq_Qq);
+/** Opcode 0x66 0x0f 0x38 0x07. */
+FNIEMOP_STUB(iemOp_phsubsw_Vx_Wx);
+/** Opcode      0x0f 0x38 0x08. */
+FNIEMOP_STUB(iemOp_psignb_Pq_Qq);
+/** Opcode 0x66 0x0f 0x38 0x08. */
+FNIEMOP_STUB(iemOp_psignb_Vx_Wx);
+/** Opcode      0x0f 0x38 0x09. */
+FNIEMOP_STUB(iemOp_psignw_Pq_Qq);
+/** Opcode 0x66 0x0f 0x38 0x09. */
+FNIEMOP_STUB(iemOp_psignw_Vx_Wx);
+/** Opcode      0x0f 0x38 0x0a. */
+FNIEMOP_STUB(iemOp_psignd_Pq_Qq);
+/** Opcode 0x66 0x0f 0x38 0x0a. */
+FNIEMOP_STUB(iemOp_psignd_Vx_Wx);
+/** Opcode      0x0f 0x38 0x0b. */
+FNIEMOP_STUB(iemOp_pmulhrsw_Pq_Qq);
+/** Opcode 0x66 0x0f 0x38 0x0b. */
+FNIEMOP_STUB(iemOp_pmulhrsw_Vx_Wx);
+/*  Opcode      0x0f 0x38 0x0c - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x0c - invalid (vex only). */
+/*  Opcode      0x0f 0x38 0x0d - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x0d - invalid (vex only). */
+/*  Opcode      0x0f 0x38 0x0e - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x0e - invalid (vex only). */
+/*  Opcode      0x0f 0x38 0x0f - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x0f - invalid (vex only). */
+
+
+/*  Opcode      0x0f 0x38 0x10 - invalid */
+/** Opcode 0x66 0x0f 0x38 0x10. */
+FNIEMOP_STUB(iemOp_pblendvb_Vdq_Wdq);
+/*  Opcode      0x0f 0x38 0x11 - invalid */
+/*  Opcode 0x66 0x0f 0x38 0x11 - invalid */
+/*  Opcode      0x0f 0x38 0x12 - invalid */
+/*  Opcode 0x66 0x0f 0x38 0x12 - invalid */
+/*  Opcode      0x0f 0x38 0x13 - invalid */
+/*  Opcode 0x66 0x0f 0x38 0x13 - invalid (vex only). */
+/*  Opcode      0x0f 0x38 0x14 - invalid */
+/** Opcode 0x66 0x0f 0x38 0x14. */
+FNIEMOP_STUB(iemOp_blendvps_Vdq_Wdq);
+/*  Opcode      0x0f 0x38 0x15 - invalid */
+/** Opcode 0x66 0x0f 0x38 0x15. */
+FNIEMOP_STUB(iemOp_blendvpd_Vdq_Wdq);
+/*  Opcode      0x0f 0x38 0x16 - invalid */
+/*  Opcode 0x66 0x0f 0x38 0x16 - invalid (vex only). */
+/*  Opcode      0x0f 0x38 0x17 - invalid */
+/** Opcode 0x66 0x0f 0x38 0x17 - invalid */
+FNIEMOP_STUB(iemOp_ptest_Vx_Wx);
+/*  Opcode      0x0f 0x38 0x18 - invalid */
+/*  Opcode 0x66 0x0f 0x38 0x18 - invalid (vex only). */
+/*  Opcode      0x0f 0x38 0x19 - invalid */
+/*  Opcode 0x66 0x0f 0x38 0x19 - invalid (vex only). */
+/*  Opcode      0x0f 0x38 0x1a - invalid */
+/*  Opcode 0x66 0x0f 0x38 0x1a - invalid (vex only). */
+/*  Opcode      0x0f 0x38 0x1b - invalid */
+/*  Opcode 0x66 0x0f 0x38 0x1b - invalid */
+/** Opcode      0x0f 0x38 0x1c. */
+FNIEMOP_STUB(iemOp_pabsb_Pq_Qq);
+/** Opcode 0x66 0x0f 0x38 0x1c. */
+FNIEMOP_STUB(iemOp_pabsb_Vx_Wx);
+/** Opcode      0x0f 0x38 0x1d. */
+FNIEMOP_STUB(iemOp_pabsw_Pq_Qq);
+/** Opcode 0x66 0x0f 0x38 0x1d. */
+FNIEMOP_STUB(iemOp_pabsw_Vx_Wx);
+/** Opcode      0x0f 0x38 0x1e. */
+FNIEMOP_STUB(iemOp_pabsd_Pq_Qq);
+/** Opcode 0x66 0x0f 0x38 0x1e. */
+FNIEMOP_STUB(iemOp_pabsd_Vx_Wx);
+/*  Opcode      0x0f 0x38 0x1f - invalid */
+/*  Opcode 0x66 0x0f 0x38 0x1f - invalid */
+
+
+/** Opcode 0x66 0x0f 0x38 0x20. */
+FNIEMOP_STUB(iemOp_pmovsxbw_Vx_UxMq);
+/** Opcode 0x66 0x0f 0x38 0x21. */
+FNIEMOP_STUB(iemOp_pmovsxbd_Vx_UxMd);
+/** Opcode 0x66 0x0f 0x38 0x22. */
+FNIEMOP_STUB(iemOp_pmovsxbq_Vx_UxMw);
+/** Opcode 0x66 0x0f 0x38 0x23. */
+FNIEMOP_STUB(iemOp_pmovsxwd_Vx_UxMq);
+/** Opcode 0x66 0x0f 0x38 0x24. */
+FNIEMOP_STUB(iemOp_pmovsxwq_Vx_UxMd);
+/** Opcode 0x66 0x0f 0x38 0x25. */
+FNIEMOP_STUB(iemOp_pmovsxdq_Vx_UxMq);
+/*  Opcode 0x66 0x0f 0x38 0x26 - invalid */
+/*  Opcode 0x66 0x0f 0x38 0x27 - invalid */
+/** Opcode 0x66 0x0f 0x38 0x28. */
+FNIEMOP_STUB(iemOp_pmuldq_Vx_Wx);
+/** Opcode 0x66 0x0f 0x38 0x29. */
+FNIEMOP_STUB(iemOp_pcmpeqq_Vx_Wx);
+/** Opcode 0x66 0x0f 0x38 0x2a. */
+FNIEMOP_STUB(iemOp_movntdqa_Vx_Mx);
+/** Opcode 0x66 0x0f 0x38 0x2b. */
+FNIEMOP_STUB(iemOp_packusdw_Vx_Wx);
+/*  Opcode 0x66 0x0f 0x38 0x2c - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x2d - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x2e - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x2f - invalid (vex only). */
+
+/** Opcode 0x66 0x0f 0x38 0x30. */
+FNIEMOP_STUB(iemOp_pmovzxbw_Vx_UxMq);
+/** Opcode 0x66 0x0f 0x38 0x31. */
+FNIEMOP_STUB(iemOp_pmovzxbd_Vx_UxMd);
+/** Opcode 0x66 0x0f 0x38 0x32. */
+FNIEMOP_STUB(iemOp_pmovzxbq_Vx_UxMw);
+/** Opcode 0x66 0x0f 0x38 0x33. */
+FNIEMOP_STUB(iemOp_pmovzxwd_Vx_UxMq);
+/** Opcode 0x66 0x0f 0x38 0x34. */
+FNIEMOP_STUB(iemOp_pmovzxwq_Vx_UxMd);
+/** Opcode 0x66 0x0f 0x38 0x35. */
+FNIEMOP_STUB(iemOp_pmovzxdq_Vx_UxMq);
+/*  Opcode 0x66 0x0f 0x38 0x36 - invalid (vex only). */
+/** Opcode 0x66 0x0f 0x38 0x37. */
+FNIEMOP_STUB(iemOp_pcmpgtq_Vx_Wx);
+/** Opcode 0x66 0x0f 0x38 0x38. */
+FNIEMOP_STUB(iemOp_pminsb_Vx_Wx);
+/** Opcode 0x66 0x0f 0x38 0x39. */
+FNIEMOP_STUB(iemOp_pminsd_Vx_Wx);
+/** Opcode 0x66 0x0f 0x38 0x3a. */
+FNIEMOP_STUB(iemOp_pminuw_Vx_Wx);
+/** Opcode 0x66 0x0f 0x38 0x3b. */
+FNIEMOP_STUB(iemOp_pminud_Vx_Wx);
+/** Opcode 0x66 0x0f 0x38 0x3c. */
+FNIEMOP_STUB(iemOp_pmaxsb_Vx_Wx);
+/** Opcode 0x66 0x0f 0x38 0x3d. */
+FNIEMOP_STUB(iemOp_pmaxsd_Vx_Wx);
+/** Opcode 0x66 0x0f 0x38 0x3e. */
+FNIEMOP_STUB(iemOp_pmaxuw_Vx_Wx);
+/** Opcode 0x66 0x0f 0x38 0x3f. */
+FNIEMOP_STUB(iemOp_pmaxud_Vx_Wx);
+
+
+/** Opcode 0x66 0x0f 0x38 0x40. */
+FNIEMOP_STUB(iemOp_pmulld_Vx_Wx);
+/** Opcode 0x66 0x0f 0x38 0x41. */
+FNIEMOP_STUB(iemOp_phminposuw_Vdq_Wdq);
+/*  Opcode 0x66 0x0f 0x38 0x42 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x43 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x44 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x45 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x46 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x47 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x48 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x49 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x4a - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x4b - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x4c - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x4d - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x4e - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x4f - invalid. */
+
+/*  Opcode 0x66 0x0f 0x38 0x50 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x51 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x52 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x53 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x54 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x55 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x56 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x57 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x58 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x59 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x5a - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x5b - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x5c - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x5d - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x5e - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x5f - invalid. */
+
+/*  Opcode 0x66 0x0f 0x38 0x60 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x61 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x62 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x63 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x64 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x65 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x66 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x67 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x68 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x69 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x6a - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x6b - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x6c - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x6d - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x6e - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x6f - invalid. */
+
+/*  Opcode 0x66 0x0f 0x38 0x70 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x71 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x72 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x73 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x74 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x75 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x76 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x77 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x78 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x79 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x7a - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x7b - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x7c - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x7d - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x7e - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x7f - invalid. */
+
+/** Opcode 0x66 0x0f 0x38 0x80. */
+FNIEMOP_STUB(iemOp_invept_Gy_Mdq);
+/** Opcode 0x66 0x0f 0x38 0x81. */
+FNIEMOP_STUB(iemOp_invvpid_Gy_Mdq);
+/** Opcode 0x66 0x0f 0x38 0x82. */
+FNIEMOP_STUB(iemOp_invpcid_Gy_Mdq);
+/*  Opcode 0x66 0x0f 0x38 0x83 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x84 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x85 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x86 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x87 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x88 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x89 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x8a - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x8b - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x8c - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x8d - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x8e - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x8f - invalid. */
+
+/*  Opcode 0x66 0x0f 0x38 0x90 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x91 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x92 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x93 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x94 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x95 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0x96 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x97 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x98 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x99 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x9a - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x9b - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x9c - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x9d - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x9e - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0x9f - invalid (vex only). */
+
+/*  Opcode 0x66 0x0f 0x38 0xa0 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xa1 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xa2 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xa3 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xa4 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xa5 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xa6 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xa7 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xa8 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xa9 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xaa - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xab - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xac - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xad - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xae - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xaf - invalid (vex only). */
+
+/*  Opcode 0x66 0x0f 0x38 0xb0 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb1 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb2 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb3 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb4 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb5 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb6 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xb7 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xb8 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xb9 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xba - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xbb - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xbc - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xbd - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xbe - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xbf - invalid (vex only). */
+
+/*  Opcode      0x0f 0x38 0xc0 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xc0 - invalid. */
+/*  Opcode      0x0f 0x38 0xc1 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xc1 - invalid. */
+/*  Opcode      0x0f 0x38 0xc2 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xc2 - invalid. */
+/*  Opcode      0x0f 0x38 0xc3 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xc3 - invalid. */
+/*  Opcode      0x0f 0x38 0xc4 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xc4 - invalid. */
+/*  Opcode      0x0f 0x38 0xc5 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xc5 - invalid. */
+/*  Opcode      0x0f 0x38 0xc6 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xc6 - invalid. */
+/*  Opcode      0x0f 0x38 0xc7 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xc7 - invalid. */
+/** Opcode      0x0f 0x38 0xc8. */
+FNIEMOP_STUB(iemOp_sha1nexte_Vdq_Wdq);
+/*  Opcode 0x66 0x0f 0x38 0xc8 - invalid. */
+/** Opcode      0x0f 0x38 0xc9. */
+FNIEMOP_STUB(iemOp_sha1msg1_Vdq_Wdq);
+/*  Opcode 0x66 0x0f 0x38 0xc9 - invalid. */
+/** Opcode      0x0f 0x38 0xca. */
+FNIEMOP_STUB(iemOp_sha1msg2_Vdq_Wdq);
+/*  Opcode 0x66 0x0f 0x38 0xca - invalid. */
+/** Opcode      0x0f 0x38 0xcb. */
+FNIEMOP_STUB(iemOp_sha256rnds2_Vdq_Wdq);
+/*  Opcode 0x66 0x0f 0x38 0xcb - invalid. */
+/** Opcode      0x0f 0x38 0xcc. */
+FNIEMOP_STUB(iemOp_sha256msg1_Vdq_Wdq);
+/*  Opcode 0x66 0x0f 0x38 0xcc - invalid. */
+/** Opcode      0x0f 0x38 0xcd. */
+FNIEMOP_STUB(iemOp_sha256msg2_Vdq_Wdq);
+/*  Opcode 0x66 0x0f 0x38 0xcd - invalid. */
+/*  Opcode      0x0f 0x38 0xce - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xce - invalid. */
+/*  Opcode      0x0f 0x38 0xcf - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xcf - invalid. */
+
+/*  Opcode 0x66 0x0f 0x38 0xd0 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xd1 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xd2 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xd3 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xd4 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xd5 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xd6 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xd7 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xd8 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xd9 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xda - invalid. */
+/** Opcode 0x66 0x0f 0x38 0xdb. */
+FNIEMOP_STUB(iemOp_aesimc_Vdq_Wdq);
+/** Opcode 0x66 0x0f 0x38 0xdc. */
+FNIEMOP_STUB(iemOp_aesenc_Vdq_Wdq);
+/** Opcode 0x66 0x0f 0x38 0xdd. */
+FNIEMOP_STUB(iemOp_aesenclast_Vdq_Wdq);
+/** Opcode 0x66 0x0f 0x38 0xde. */
+FNIEMOP_STUB(iemOp_aesdec_Vdq_Wdq);
+/** Opcode 0x66 0x0f 0x38 0xdf. */
+FNIEMOP_STUB(iemOp_aesdeclast_Vdq_Wdq);
+
+/*  Opcode 0x66 0x0f 0x38 0xb0 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb1 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb2 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb3 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb4 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb5 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb6 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb7 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb8 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xb9 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xba - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xbb - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xbc - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xbd - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xbe - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xbf - invalid. */
+
+
+/** Opcode      0x0f 0x38 0xf0. */
+FNIEMOP_STUB(iemOp_movbe_Gy_My);
+/** Opcode 0x66 0x0f 0x38 0xf0. */
+FNIEMOP_STUB(iemOp_movbe_Gw_Mw);
+/*  Opcode 0xf3 0x0f 0x38 0xf0 - invalid. */
+/** Opcode 0xf2 0x0f 0x38 0xf0. */
+FNIEMOP_STUB(iemOp_crc32_Gb_Eb);
+
+/** Opcode      0x0f 0x38 0xf1. */
+FNIEMOP_STUB(iemOp_movbe_My_Gy);
+/** Opcode 0x66 0x0f 0x38 0xf1. */
+FNIEMOP_STUB(iemOp_movbe_Mw_Gw);
+/*  Opcode 0xf3 0x0f 0x38 0xf1 - invalid. */
+/** Opcode 0xf2 0x0f 0x38 0xf1. */
+FNIEMOP_STUB(iemOp_crc32_Gv_Ev);
+
+/*  Opcode      0x0f 0x38 0xf2 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xf2 - invalid. */
+/*  Opcode 0xf3 0x0f 0x38 0xf2 - invalid. */
+/*  Opcode 0xf2 0x0f 0x38 0xf2 - invalid. */
+
+/*  Opcode      0x0f 0x38 0xf3 - invalid (vex only - group 17). */
+/*  Opcode 0x66 0x0f 0x38 0xf3 - invalid (vex only - group 17). */
+/*  Opcode 0xf3 0x0f 0x38 0xf3 - invalid (vex only - group 17). */
+/*  Opcode 0xf2 0x0f 0x38 0xf3 - invalid (vex only - group 17). */
+
+/*  Opcode      0x0f 0x38 0xf4 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xf4 - invalid. */
+/*  Opcode 0xf3 0x0f 0x38 0xf4 - invalid. */
+/*  Opcode 0xf2 0x0f 0x38 0xf4 - invalid. */
+
+/*  Opcode      0x0f 0x38 0xf5 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xf5 - invalid. */
+/*  Opcode 0xf3 0x0f 0x38 0xf5 - invalid (vex only). */
+/*  Opcode 0xf2 0x0f 0x38 0xf5 - invalid (vex only). */
+
+/*  Opcode      0x0f 0x38 0xf6 - invalid. */
+/** Opcode 0x66 0x0f 0x38 0xf6. */
+FNIEMOP_STUB(iemOp_adcx_Gy_Ey);
+/** Opcode 0xf3 0x0f 0x38 0xf6. */
+FNIEMOP_STUB(iemOp_adox_Gy_Ey);
+/*  Opcode 0xf2 0x0f 0x38 0xf6 - invalid (vex only). */
+
+/*  Opcode      0x0f 0x38 0xf7 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x38 0xf7 - invalid (vex only). */
+/*  Opcode 0xf3 0x0f 0x38 0xf7 - invalid (vex only). */
+/*  Opcode 0xf2 0x0f 0x38 0xf7 - invalid (vex only). */
+
+/*  Opcode      0x0f 0x38 0xf8 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xf8 - invalid. */
+/*  Opcode 0xf3 0x0f 0x38 0xf8 - invalid. */
+/*  Opcode 0xf2 0x0f 0x38 0xf8 - invalid. */
+
+/*  Opcode      0x0f 0x38 0xf9 - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xf9 - invalid. */
+/*  Opcode 0xf3 0x0f 0x38 0xf9 - invalid. */
+/*  Opcode 0xf2 0x0f 0x38 0xf9 - invalid. */
+
+/*  Opcode      0x0f 0x38 0xfa - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xfa - invalid. */
+/*  Opcode 0xf3 0x0f 0x38 0xfa - invalid. */
+/*  Opcode 0xf2 0x0f 0x38 0xfa - invalid. */
+
+/*  Opcode      0x0f 0x38 0xfb - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xfb - invalid. */
+/*  Opcode 0xf3 0x0f 0x38 0xfb - invalid. */
+/*  Opcode 0xf2 0x0f 0x38 0xfb - invalid. */
+
+/*  Opcode      0x0f 0x38 0xfc - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xfc - invalid. */
+/*  Opcode 0xf3 0x0f 0x38 0xfc - invalid. */
+/*  Opcode 0xf2 0x0f 0x38 0xfc - invalid. */
+
+/*  Opcode      0x0f 0x38 0xfd - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xfd - invalid. */
+/*  Opcode 0xf3 0x0f 0x38 0xfd - invalid. */
+/*  Opcode 0xf2 0x0f 0x38 0xfd - invalid. */
+
+/*  Opcode      0x0f 0x38 0xfe - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xfe - invalid. */
+/*  Opcode 0xf3 0x0f 0x38 0xfe - invalid. */
+/*  Opcode 0xf2 0x0f 0x38 0xfe - invalid. */
+
+/*  Opcode      0x0f 0x38 0xff - invalid. */
+/*  Opcode 0x66 0x0f 0x38 0xff - invalid. */
+/*  Opcode 0xf3 0x0f 0x38 0xff - invalid. */
+/*  Opcode 0xf2 0x0f 0x38 0xff - invalid. */
+
+
+/**
+ * Three byte opcode map, first two bytes are 0x0f 0x38.
+ * @sa      g_apfnVexMap2
+ */
+IEM_STATIC const PFNIEMOP g_apfnThreeByte0f38[] =
+{
+    /*          no prefix,                  066h prefix                 f3h prefix,                 f2h prefix */
+    /* 0x00 */  iemOp_pshufb_Pq_Qq,         iemOp_pshufb_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x01 */  iemOp_phaddw_Pq_Qq,         iemOp_phaddw_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x02 */  iemOp_phaddd_Pq_Qq,         iemOp_phaddd_vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x03 */  iemOp_phaddsw_Pq_Qq,        iemOp_phaddsw_Vx_Wx,        iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x04 */  iemOp_pmaddubsw_Pq_Qq,      iemOp_pmaddubsw_Vx_Wx,      iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x05 */  iemOp_phsubw_Pq_Qq,         iemOp_phsubw_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x06 */  iemOp_phsubd_Pq_Qq,         iemOp_phsubdq_Vx_Wx,        iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x07 */  iemOp_phsubsw_Pq_Qq,        iemOp_phsubsw_Vx_Wx,        iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x08 */  iemOp_psignb_Pq_Qq,         iemOp_psignb_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x09 */  iemOp_psignw_Pq_Qq,         iemOp_psignw_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x0a */  iemOp_psignd_Pq_Qq,         iemOp_psignd_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x0b */  iemOp_pmulhrsw_Pq_Qq,       iemOp_pmulhrsw_Vx_Wx,       iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x0c */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x0d */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x0e */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x0f */  IEMOP_X4(iemOp_InvalidNeedRM),
+
+    /* 0x10 */  iemOp_InvalidNeedRM,        iemOp_pblendvb_Vdq_Wdq,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x11 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x12 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x13 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x14 */  iemOp_InvalidNeedRM,        iemOp_blendvps_Vdq_Wdq,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x15 */  iemOp_InvalidNeedRM,        iemOp_blendvpd_Vdq_Wdq,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x16 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x17 */  iemOp_InvalidNeedRM,        iemOp_ptest_Vx_Wx,          iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x18 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x19 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x1a */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x1b */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x1c */  iemOp_pabsb_Pq_Qq,          iemOp_pabsb_Vx_Wx,          iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x1d */  iemOp_pabsw_Pq_Qq,          iemOp_pabsw_Vx_Wx,          iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x1e */  iemOp_pabsd_Pq_Qq,          iemOp_pabsd_Vx_Wx,          iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x1f */  IEMOP_X4(iemOp_InvalidNeedRM),
+
+    /* 0x20 */  iemOp_InvalidNeedRM,        iemOp_pmovsxbw_Vx_UxMq,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x21 */  iemOp_InvalidNeedRM,        iemOp_pmovsxbd_Vx_UxMd,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x22 */  iemOp_InvalidNeedRM,        iemOp_pmovsxbq_Vx_UxMw,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x23 */  iemOp_InvalidNeedRM,        iemOp_pmovsxwd_Vx_UxMq,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x24 */  iemOp_InvalidNeedRM,        iemOp_pmovsxwq_Vx_UxMd,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x25 */  iemOp_InvalidNeedRM,        iemOp_pmovsxdq_Vx_UxMq,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x26 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x27 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x28 */  iemOp_InvalidNeedRM,        iemOp_pmuldq_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x29 */  iemOp_InvalidNeedRM,        iemOp_pcmpeqq_Vx_Wx,        iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x2a */  iemOp_InvalidNeedRM,        iemOp_movntdqa_Vx_Mx,       iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x2b */  iemOp_InvalidNeedRM,        iemOp_packusdw_Vx_Wx,       iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x2c */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x2d */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x2e */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x2f */  IEMOP_X4(iemOp_InvalidNeedRM),
+
+    /* 0x30 */  iemOp_InvalidNeedRM,        iemOp_pmovzxbw_Vx_UxMq,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x31 */  iemOp_InvalidNeedRM,        iemOp_pmovzxbd_Vx_UxMd,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x32 */  iemOp_InvalidNeedRM,        iemOp_pmovzxbq_Vx_UxMw,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x33 */  iemOp_InvalidNeedRM,        iemOp_pmovzxwd_Vx_UxMq,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x34 */  iemOp_InvalidNeedRM,        iemOp_pmovzxwq_Vx_UxMd,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x35 */  iemOp_InvalidNeedRM,        iemOp_pmovzxdq_Vx_UxMq,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x36 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x37 */  iemOp_InvalidNeedRM,        iemOp_pcmpgtq_Vx_Wx,        iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x38 */  iemOp_InvalidNeedRM,        iemOp_pminsb_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x39 */  iemOp_InvalidNeedRM,        iemOp_pminsd_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x3a */  iemOp_InvalidNeedRM,        iemOp_pminuw_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x3b */  iemOp_InvalidNeedRM,        iemOp_pminud_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x3c */  iemOp_InvalidNeedRM,        iemOp_pmaxsb_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x3d */  iemOp_InvalidNeedRM,        iemOp_pmaxsd_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x3e */  iemOp_InvalidNeedRM,        iemOp_pmaxuw_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x3f */  iemOp_InvalidNeedRM,        iemOp_pmaxud_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+
+    /* 0x40 */  iemOp_InvalidNeedRM,        iemOp_pmulld_Vx_Wx,         iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x41 */  iemOp_InvalidNeedRM,        iemOp_phminposuw_Vdq_Wdq,   iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x42 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x43 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x44 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x45 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x46 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x47 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x48 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x49 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x4a */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x4b */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x4c */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x4d */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x4e */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x4f */  IEMOP_X4(iemOp_InvalidNeedRM),
+
+    /* 0x50 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x51 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x52 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x53 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x54 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x55 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x56 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x57 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x58 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x59 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x5a */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x5b */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x5c */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x5d */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x5e */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x5f */  IEMOP_X4(iemOp_InvalidNeedRM),
+
+    /* 0x60 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x61 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x62 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x63 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x64 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x65 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x66 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x67 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x68 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x69 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x6a */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x6b */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x6c */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x6d */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x6e */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x6f */  IEMOP_X4(iemOp_InvalidNeedRM),
+
+    /* 0x70 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x71 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x72 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x73 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x74 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x75 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x76 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x77 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x78 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x79 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x7a */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x7b */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x7c */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x7d */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x7e */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x7f */  IEMOP_X4(iemOp_InvalidNeedRM),
+
+    /* 0x80 */  iemOp_InvalidNeedRM,        iemOp_invept_Gy_Mdq,        iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x81 */  iemOp_InvalidNeedRM,        iemOp_invvpid_Gy_Mdq,       iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x82 */  iemOp_InvalidNeedRM,        iemOp_invpcid_Gy_Mdq,       iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0x83 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x84 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x85 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x86 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x87 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x88 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x89 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x8a */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x8b */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x8c */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x8d */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x8e */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x8f */  IEMOP_X4(iemOp_InvalidNeedRM),
+
+    /* 0x90 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x91 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x92 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x93 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x94 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x95 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x96 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x97 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x98 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x99 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x9a */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x9b */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x9c */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x9d */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x9e */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0x9f */  IEMOP_X4(iemOp_InvalidNeedRM),
+
+    /* 0xa0 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xa1 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xa2 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xa3 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xa4 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xa5 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xa6 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xa7 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xa8 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xa9 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xaa */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xab */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xac */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xad */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xae */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xaf */  IEMOP_X4(iemOp_InvalidNeedRM),
+
+    /* 0xb0 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xb1 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xb2 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xb3 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xb4 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xb5 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xb6 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xb7 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xb8 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xb9 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xba */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xbb */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xbc */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xbd */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xbe */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xbf */  IEMOP_X4(iemOp_InvalidNeedRM),
+
+    /* 0xc0 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xc1 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xc2 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xc3 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xc4 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xc5 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xc6 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xc7 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xc8 */  iemOp_sha1nexte_Vdq_Wdq,    iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0xc9 */  iemOp_sha1msg1_Vdq_Wdq,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0xca */  iemOp_sha1msg2_Vdq_Wdq,     iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0xcb */  iemOp_sha256rnds2_Vdq_Wdq,  iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0xcc */  iemOp_sha256msg1_Vdq_Wdq,   iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0xcd */  iemOp_sha256msg2_Vdq_Wdq,   iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0xce */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xcf */  IEMOP_X4(iemOp_InvalidNeedRM),
+
+    /* 0xd0 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xd1 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xd2 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xd3 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xd4 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xd5 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xd6 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xd7 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xd8 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xd9 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xda */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xdb */  iemOp_InvalidNeedRM,        iemOp_aesimc_Vdq_Wdq,       iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0xdc */  iemOp_InvalidNeedRM,        iemOp_aesenc_Vdq_Wdq,       iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0xdd */  iemOp_InvalidNeedRM,        iemOp_aesenclast_Vdq_Wdq,   iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0xde */  iemOp_InvalidNeedRM,        iemOp_aesdec_Vdq_Wdq,       iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+    /* 0xdf */  iemOp_InvalidNeedRM,        iemOp_aesdeclast_Vdq_Wdq,   iemOp_InvalidNeedRM,        iemOp_InvalidNeedRM,
+
+    /* 0xe0 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xe1 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xe2 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xe3 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xe4 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xe5 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xe6 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xe7 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xe8 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xe9 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xea */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xeb */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xec */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xed */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xee */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xef */  IEMOP_X4(iemOp_InvalidNeedRM),
+
+    /* 0xf0 */  iemOp_movbe_Gy_My,          iemOp_movbe_Gw_Mw,          iemOp_InvalidNeedRM,        iemOp_crc32_Gb_Eb,
+    /* 0xf1 */  iemOp_movbe_My_Gy,          iemOp_movbe_Mw_Gw,          iemOp_InvalidNeedRM,        iemOp_crc32_Gv_Ev,
+    /* 0xf2 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xf3 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xf4 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xf5 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xf6 */  iemOp_InvalidNeedRM,        iemOp_adcx_Gy_Ey,           iemOp_adox_Gy_Ey,           iemOp_InvalidNeedRM,
+    /* 0xf7 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xf8 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xf9 */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xfa */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xfb */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xfc */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xfd */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xfe */  IEMOP_X4(iemOp_InvalidNeedRM),
+    /* 0xff */  IEMOP_X4(iemOp_InvalidNeedRM),
+};
+AssertCompile(RT_ELEMENTS(g_apfnThreeByte0f38) == 1024);
+
+/** @} */
+
Index: /trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f3a.cpp.h
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f3a.cpp.h	(revision 66474)
+++ /trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f3a.cpp.h	(revision 66474)
@@ -0,0 +1,507 @@
+/* $Id$ */
+/** @file
+ * IEM - Instruction Decoding and Emulation, 0x0f 0x3a map.
+ *
+ * @remarks IEMAllInstructionsVexMap3.cpp.h is a VEX mirror of this file.
+ *          Any update here is likely needed in that file too.
+ */
+
+/*
+ * Copyright (C) 2011-2017 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ */
+
+
+/** @name Three byte opcodes with first two bytes 0x0f 0x3a
+ * @{
+ */
+
+/** Opcode 0x66 0x0f 0x00. */
+FNIEMOP_STUB(iemOp_permq_Vqq_Wqq_Ib);
+/** Opcode 0x66 0x0f 0x01. */
+FNIEMOP_STUB(iemOp_permqd_Vqq_Wqq_Ib);
+/** Opcode 0x66 0x0f 0x02. */
+FNIEMOP_STUB(iemOp_pblendd_Vx_Wx_Ib);
+/*  Opcode 0x66 0x0f 0x03 - invalid */
+/** Opcode 0x66 0x0f 0x04. */
+FNIEMOP_STUB(iemOp_permilps_Vx_Wx_Ib);
+/** Opcode 0x66 0x0f 0x05. */
+FNIEMOP_STUB(iemOp_permilpd_Vx_Wx_Ib);
+/*  Opcode 0x66 0x0f 0x06 - invalid (vex only) */
+/*  Opcode 0x66 0x0f 0x07 - invalid */
+/** Opcode 0x66 0x0f 0x08. */
+FNIEMOP_STUB(iemOp_roundps_Vx_Wx_Ib);
+/** Opcode 0x66 0x0f 0x09. */
+FNIEMOP_STUB(iemOp_roundpd_Vx_Wx_Ib);
+/** Opcode 0x66 0x0f 0x0a. */
+FNIEMOP_STUB(iemOp_roundss_Vss_Wss_Ib);
+/** Opcode 0x66 0x0f 0x0b. */
+FNIEMOP_STUB(iemOp_roundsd_Vsd_Wsd_Ib);
+/** Opcode 0x66 0x0f 0x0c. */
+FNIEMOP_STUB(iemOp_blendps_Vx_Wx_Ib);
+/** Opcode 0x66 0x0f 0x0d. */
+FNIEMOP_STUB(iemOp_blendpd_Vx_Wx_Ib);
+/** Opcode 0x66 0x0f 0x0e. */
+FNIEMOP_STUB(iemOp_blendw_Vx_Wx_Ib);
+/** Opcode      0x0f 0x0f. */
+FNIEMOP_STUB(iemOp_palignr_Pq_Qq_Ib);
+/** Opcode 0x66 0x0f 0x0f. */
+FNIEMOP_STUB(iemOp_palignr_Vx_Wx_Ib);
+
+
+/*  Opcode 0x66 0x0f 0x10 - invalid */
+/*  Opcode 0x66 0x0f 0x11 - invalid */
+/*  Opcode 0x66 0x0f 0x12 - invalid */
+/*  Opcode 0x66 0x0f 0x13 - invalid */
+/** Opcode 0x66 0x0f 0x14. */
+FNIEMOP_STUB(iemOp_pextrb_RdMb_Vdq_Ib);
+/** Opcode 0x66 0x0f 0x15. */
+FNIEMOP_STUB(iemOp_pextrw_RdMw_Vdq_Ib);
+/** Opcode 0x66 0x0f 0x16. */
+FNIEMOP_STUB(iemOp_pextrd_q_RdMw_Vdq_Ib);
+/** Opcode 0x66 0x0f 0x17. */
+FNIEMOP_STUB(iemOp_extractps_Ed_Vdq_Ib);
+/*  Opcode 0x66 0x0f 0x18 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x19 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x1a - invalid */
+/*  Opcode 0x66 0x0f 0x1b - invalid */
+/*  Opcode 0x66 0x0f 0x1c - invalid */
+/*  Opcode 0x66 0x0f 0x1d - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x1e - invalid */
+/*  Opcode 0x66 0x0f 0x1f - invalid */
+
+
+/** Opcode 0x66 0x0f 0x20. */
+FNIEMOP_STUB(iemOp_pinsrb_Vdq_RyMb_Ib);
+/** Opcode 0x66 0x0f 0x21, */
+FNIEMOP_STUB(iemOp_insertps_Vdq_UdqMd_Ib);
+/** Opcode 0x66 0x0f 0x22. */
+FNIEMOP_STUB(iemOp_pinsrd_q_Vdq_Ey_Ib);
+/*  Opcode 0x66 0x0f 0x23 - invalid */
+/*  Opcode 0x66 0x0f 0x24 - invalid */
+/*  Opcode 0x66 0x0f 0x25 - invalid */
+/*  Opcode 0x66 0x0f 0x26 - invalid */
+/*  Opcode 0x66 0x0f 0x27 - invalid */
+/*  Opcode 0x66 0x0f 0x28 - invalid */
+/*  Opcode 0x66 0x0f 0x29 - invalid */
+/*  Opcode 0x66 0x0f 0x2a - invalid */
+/*  Opcode 0x66 0x0f 0x2b - invalid */
+/*  Opcode 0x66 0x0f 0x2c - invalid */
+/*  Opcode 0x66 0x0f 0x2d - invalid */
+/*  Opcode 0x66 0x0f 0x2e - invalid */
+/*  Opcode 0x66 0x0f 0x2f - invalid */
+
+
+/*  Opcode 0x66 0x0f 0x30 - invalid */
+/*  Opcode 0x66 0x0f 0x31 - invalid */
+/*  Opcode 0x66 0x0f 0x32 - invalid */
+/*  Opcode 0x66 0x0f 0x33 - invalid */
+/*  Opcode 0x66 0x0f 0x34 - invalid */
+/*  Opcode 0x66 0x0f 0x35 - invalid */
+/*  Opcode 0x66 0x0f 0x36 - invalid */
+/*  Opcode 0x66 0x0f 0x37 - invalid */
+/*  Opcode 0x66 0x0f 0x38 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x39 - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x3a - invalid */
+/*  Opcode 0x66 0x0f 0x3b - invalid */
+/*  Opcode 0x66 0x0f 0x3c - invalid */
+/*  Opcode 0x66 0x0f 0x3d - invalid */
+/*  Opcode 0x66 0x0f 0x3e - invalid */
+/*  Opcode 0x66 0x0f 0x3f - invalid */
+
+
+/** Opcode 0x66 0x0f 0x40. */
+FNIEMOP_STUB(iemOp_dpps_Vx_Wx_Ib);
+/** Opcode 0x66 0x0f 0x41, */
+FNIEMOP_STUB(iemOp_dppd_Vdq_Wdq_Ib);
+/** Opcode 0x66 0x0f 0x42. */
+FNIEMOP_STUB(iemOp_mpsadbw_Vx_Wx_Ib);
+/*  Opcode 0x66 0x0f 0x43 - invalid */
+/** Opcode 0x66 0x0f 0x44. */
+FNIEMOP_STUB(iemOp_pclmulqdq_Vdq_Wdq_Ib);
+/*  Opcode 0x66 0x0f 0x45 - invalid */
+/*  Opcode 0x66 0x0f 0x46 - invalid (vex only)  */
+/*  Opcode 0x66 0x0f 0x47 - invalid */
+/*  Opcode 0x66 0x0f 0x48 - invalid */
+/*  Opcode 0x66 0x0f 0x49 - invalid */
+/*  Opcode 0x66 0x0f 0x4a - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x4b - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x4c - invalid (vex only). */
+/*  Opcode 0x66 0x0f 0x4d - invalid */
+/*  Opcode 0x66 0x0f 0x4e - invalid */
+/*  Opcode 0x66 0x0f 0x4f - invalid */
+
+
+/*  Opcode 0x66 0x0f 0x50 - invalid */
+/*  Opcode 0x66 0x0f 0x51 - invalid */
+/*  Opcode 0x66 0x0f 0x52 - invalid */
+/*  Opcode 0x66 0x0f 0x53 - invalid */
+/*  Opcode 0x66 0x0f 0x54 - invalid */
+/*  Opcode 0x66 0x0f 0x55 - invalid */
+/*  Opcode 0x66 0x0f 0x56 - invalid */
+/*  Opcode 0x66 0x0f 0x57 - invalid */
+/*  Opcode 0x66 0x0f 0x58 - invalid */
+/*  Opcode 0x66 0x0f 0x59 - invalid */
+/*  Opcode 0x66 0x0f 0x5a - invalid */
+/*  Opcode 0x66 0x0f 0x5b - invalid */
+/*  Opcode 0x66 0x0f 0x5c - invalid */
+/*  Opcode 0x66 0x0f 0x5d - invalid */
+/*  Opcode 0x66 0x0f 0x5e - invalid */
+/*  Opcode 0x66 0x0f 0x5f - invalid */
+
+
+/** Opcode 0x66 0x0f 0x60. */
+FNIEMOP_STUB(iemOp_pcmpestrm_Vdq_Wdq_Ib);
+/** Opcode 0x66 0x0f 0x61, */
+FNIEMOP_STUB(iemOp_pcmpestri_Vdq_Wdq_Ib);
+/** Opcode 0x66 0x0f 0x62. */
+FNIEMOP_STUB(iemOp_pcmpistrm_Vdq_Wdq_Ib);
+/** Opcode 0x66 0x0f 0x63*/
+FNIEMOP_STUB(iemOp_pcmpistri_Vdq_Wdq_Ib);
+/*  Opcode 0x66 0x0f 0x64 - invalid */
+/*  Opcode 0x66 0x0f 0x65 - invalid */
+/*  Opcode 0x66 0x0f 0x66 - invalid */
+/*  Opcode 0x66 0x0f 0x67 - invalid */
+/*  Opcode 0x66 0x0f 0x68 - invalid */
+/*  Opcode 0x66 0x0f 0x69 - invalid */
+/*  Opcode 0x66 0x0f 0x6a - invalid */
+/*  Opcode 0x66 0x0f 0x6b - invalid */
+/*  Opcode 0x66 0x0f 0x6c - invalid */
+/*  Opcode 0x66 0x0f 0x6d - invalid */
+/*  Opcode 0x66 0x0f 0x6e - invalid */
+/*  Opcode 0x66 0x0f 0x6f - invalid */
+
+/*  Opcodes 0x0f 0x70 thru 0x0f 0xb0 are unused.  */
+
+
+/*  Opcode      0x0f 0xc0 - invalid */
+/*  Opcode      0x0f 0xc1 - invalid */
+/*  Opcode      0x0f 0xc2 - invalid */
+/*  Opcode      0x0f 0xc3 - invalid */
+/*  Opcode      0x0f 0xc4 - invalid */
+/*  Opcode      0x0f 0xc5 - invalid */
+/*  Opcode      0x0f 0xc6 - invalid */
+/*  Opcode      0x0f 0xc7 - invalid */
+/*  Opcode      0x0f 0xc8 - invalid */
+/*  Opcode      0x0f 0xc9 - invalid */
+/*  Opcode      0x0f 0xca - invalid */
+/*  Opcode      0x0f 0xcb - invalid */
+/*  Opcode      0x0f 0xcc */
+FNIEMOP_STUB(iemOp_sha1rnds4_Vdq_Wdq_Ib);
+/*  Opcode      0x0f 0xcd - invalid */
+/*  Opcode      0x0f 0xce - invalid */
+/*  Opcode      0x0f 0xcf - invalid */
+
+
+/*  Opcode 0x66 0x0f 0xd0 - invalid */
+/*  Opcode 0x66 0x0f 0xd1 - invalid */
+/*  Opcode 0x66 0x0f 0xd2 - invalid */
+/*  Opcode 0x66 0x0f 0xd3 - invalid */
+/*  Opcode 0x66 0x0f 0xd4 - invalid */
+/*  Opcode 0x66 0x0f 0xd5 - invalid */
+/*  Opcode 0x66 0x0f 0xd6 - invalid */
+/*  Opcode 0x66 0x0f 0xd7 - invalid */
+/*  Opcode 0x66 0x0f 0xd8 - invalid */
+/*  Opcode 0x66 0x0f 0xd9 - invalid */
+/*  Opcode 0x66 0x0f 0xda - invalid */
+/*  Opcode 0x66 0x0f 0xdb - invalid */
+/*  Opcode 0x66 0x0f 0xdc - invalid */
+/*  Opcode 0x66 0x0f 0xdd - invalid */
+/*  Opcode 0x66 0x0f 0xde - invalid */
+/*  Opcode 0x66 0x0f 0xdf - (aeskeygenassist). */
+FNIEMOP_STUB(iemOp_aeskeygen_Vdq_Wdq_Ib);
+
+
+/*  Opcode 0xf2 0x0f 0xf0 - invalid (vex only) */
+
+
+/**
+ * Three byte opcode map, first two bytes are 0x0f 0x3a.
+ * @sa      g_apfnVexMap2
+ */
+IEM_STATIC const PFNIEMOP g_apfnThreeByte0f3a[] =
+{
+    /*          no prefix,                  066h prefix                 f3h prefix,                 f2h prefix */
+    /* 0x00 */  iemOp_InvalidNeedRMImm8,    iemOp_permq_Vqq_Wqq_Ib,     iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x01 */  iemOp_InvalidNeedRMImm8,    iemOp_permqd_Vqq_Wqq_Ib,    iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x02 */  iemOp_InvalidNeedRMImm8,    iemOp_pblendd_Vx_Wx_Ib,     iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x03 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x04 */  iemOp_InvalidNeedRMImm8,    iemOp_permilps_Vx_Wx_Ib,    iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x05 */  iemOp_InvalidNeedRMImm8,    iemOp_permilpd_Vx_Wx_Ib,    iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x06 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x07 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x08 */  iemOp_InvalidNeedRMImm8,    iemOp_roundps_Vx_Wx_Ib,     iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x09 */  iemOp_InvalidNeedRMImm8,    iemOp_roundpd_Vx_Wx_Ib,     iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x0a */  iemOp_InvalidNeedRMImm8,    iemOp_roundss_Vss_Wss_Ib,   iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x0b */  iemOp_InvalidNeedRMImm8,    iemOp_roundsd_Vsd_Wsd_Ib,   iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x0c */  iemOp_InvalidNeedRMImm8,    iemOp_blendps_Vx_Wx_Ib,     iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x0d */  iemOp_InvalidNeedRMImm8,    iemOp_blendpd_Vx_Wx_Ib,     iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x0e */  iemOp_InvalidNeedRMImm8,    iemOp_blendw_Vx_Wx_Ib,      iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x0f */  iemOp_palignr_Pq_Qq_Ib,     iemOp_palignr_Vx_Wx_Ib,     iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+
+    /* 0x10 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x11 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x12 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x13 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x14 */  iemOp_InvalidNeedRMImm8,    iemOp_pextrb_RdMb_Vdq_Ib,   iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x15 */  iemOp_InvalidNeedRMImm8,    iemOp_pextrw_RdMw_Vdq_Ib,   iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x16 */  iemOp_InvalidNeedRMImm8,    iemOp_pextrd_q_RdMw_Vdq_Ib, iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x17 */  iemOp_InvalidNeedRMImm8,    iemOp_extractps_Ed_Vdq_Ib,  iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x18 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x19 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x1a */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x1b */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x1c */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x1d */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x1e */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x1f */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+
+    /* 0x20 */  iemOp_InvalidNeedRMImm8,    iemOp_pinsrb_Vdq_RyMb_Ib,   iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x21 */  iemOp_InvalidNeedRMImm8,    iemOp_insertps_Vdq_UdqMd_Ib,iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x22 */  iemOp_InvalidNeedRMImm8,    iemOp_pinsrd_q_Vdq_Ey_Ib,   iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x23 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x24 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x25 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x26 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x27 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x28 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x29 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x2a */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x2b */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x2c */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x2d */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x2e */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x2f */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+
+    /* 0x30 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x31 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x32 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x33 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x34 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x35 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x36 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x37 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x38 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x39 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x3a */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x3b */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x3c */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x3d */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x3e */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x3f */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+
+    /* 0x40 */  iemOp_InvalidNeedRMImm8,    iemOp_dpps_Vx_Wx_Ib,        iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x41 */  iemOp_InvalidNeedRMImm8,    iemOp_dppd_Vdq_Wdq_Ib,      iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x42 */  iemOp_InvalidNeedRMImm8,    iemOp_mpsadbw_Vx_Wx_Ib,     iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x43 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x44 */  iemOp_InvalidNeedRMImm8,    iemOp_pclmulqdq_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x45 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x46 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x47 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x48 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x49 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x4a */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x4b */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x4c */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x4d */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x4e */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x4f */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+
+    /* 0x50 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x51 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x52 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x53 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x54 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x55 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x56 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x57 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x58 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x59 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x5a */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x5b */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x5c */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x5d */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x5e */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x5f */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+
+    /* 0x60 */  iemOp_InvalidNeedRMImm8,    iemOp_pcmpestrm_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x61 */  iemOp_InvalidNeedRMImm8,    iemOp_pcmpestri_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x62 */  iemOp_InvalidNeedRMImm8,    iemOp_pcmpistrm_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x63 */  iemOp_InvalidNeedRMImm8,    iemOp_pcmpistri_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0x64 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x65 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x66 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x67 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x68 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x69 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x6a */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x6b */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x6c */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x6d */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x6e */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x6f */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+
+    /* 0x70 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x71 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x72 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x73 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x74 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x75 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x76 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x77 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x78 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x79 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x7a */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x7b */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x7c */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x7d */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x7e */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x7f */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+
+    /* 0x80 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x81 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x82 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x83 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x84 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x85 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x86 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x87 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x88 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x89 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x8a */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x8b */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x8c */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x8d */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x8e */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x8f */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+
+    /* 0x90 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x91 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x92 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x93 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x94 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x95 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x96 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x97 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x98 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x99 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x9a */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x9b */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x9c */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x9d */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x9e */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0x9f */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+
+    /* 0xa0 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xa1 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xa2 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xa3 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xa4 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xa5 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xa6 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xa7 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xa8 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xa9 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xaa */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xab */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xac */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xad */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xae */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xaf */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+
+    /* 0xb0 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xb1 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xb2 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xb3 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xb4 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xb5 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xb6 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xb7 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xb8 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xb9 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xba */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xbb */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xbc */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xbd */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xbe */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xbf */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+
+    /* 0xc0 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xc1 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xc2 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xc3 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xc4 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xc5 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xc6 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xc7 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xc8 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xc9 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xca */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xcb */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xcc */  iemOp_sha1rnds4_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8,   iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+    /* 0xcd */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xce */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xcf */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+
+    /* 0xd0 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xd1 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xd2 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xd3 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xd4 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xd5 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xd6 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xd7 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xd8 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xd9 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xda */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xdb */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xdc */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xdd */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xde */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xdf */  iemOp_aeskeygen_Vdq_Wdq_Ib, iemOp_InvalidNeedRMImm8,   iemOp_InvalidNeedRMImm8,    iemOp_InvalidNeedRMImm8,
+
+    /* 0xe0 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xe1 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xe2 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xe3 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xe4 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xe5 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xe6 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xe7 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xe8 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xe9 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xea */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xeb */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xec */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xed */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xee */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xef */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+
+    /* 0xf0 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xf1 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xf2 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xf3 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xf4 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xf5 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xf6 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xf7 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xf8 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xf9 */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xfa */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xfb */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xfc */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xfd */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xfe */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+    /* 0xff */  IEMOP_X4(iemOp_InvalidNeedRMImm8),
+};
+AssertCompile(RT_ELEMENTS(g_apfnThreeByte0f3a) == 1024);
+
+/** @} */
+
Index: /trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h	(revision 66473)
+++ /trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h	(revision 66474)
@@ -2038,8 +2038,30 @@
 /** Opcode 0x0f 0x37. */
 FNIEMOP_STUB(iemOp_getsec);
+
+
 /** Opcode 0x0f 0x38. */
-FNIEMOP_STUB(iemOp_3byte_Esc_0f_38);
+FNIEMOP_DEF(iemOp_3byte_Esc_0f_38)
+{
+#ifdef IEM_WITH_THREE_0F_38
+    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
+    return FNIEMOP_CALL(g_apfnThreeByte0f38[(uintptr_t)b * 4 + pVCpu->iem.s.idxPrefix]);
+#else
+    IEMOP_BITCH_ABOUT_STUB();
+    return VERR_IEM_INSTR_NOT_IMPLEMENTED;
+#endif
+}
+
+
 /** Opcode 0x0f 0x3a. */
-FNIEMOP_STUB(iemOp_3byte_Esc_0f_3a);
+FNIEMOP_DEF(iemOp_3byte_Esc_0f_3a)
+{
+#ifdef IEM_WITH_THREE_0F_3A
+    uint8_t b; IEM_OPCODE_GET_NEXT_U8(&b);
+    return FNIEMOP_CALL(g_apfnThreeByte0f3a[(uintptr_t)b * 4 + pVCpu->iem.s.idxPrefix]);
+#else
+    IEMOP_BITCH_ABOUT_STUB();
+    return VERR_IEM_INSTR_NOT_IMPLEMENTED;
+#endif
+}
 
 
@@ -8466,2 +8488,4 @@
 AssertCompile(RT_ELEMENTS(g_apfnTwoByteMap) == 1024);
 
+/** @} */
+
Index: /trunk/src/VBox/VMM/include/IEMInternal.h
===================================================================
--- /trunk/src/VBox/VMM/include/IEMInternal.h	(revision 66473)
+++ /trunk/src/VBox/VMM/include/IEMInternal.h	(revision 66474)
@@ -42,11 +42,19 @@
 #endif
 
+/** @def IEM_WITH_3DNOW
+ * Includes the 3DNow decoding.  */
+#define IEM_WITH_3DNOW
+
+/** @def IEM_WITH_THREE_0F_38
+ * Includes the three byte opcode map for instrs starting with 0x0f 0x38. */
+#define IEM_WITH_THREE_0F_38
+
+/** @def IEM_WITH_THREE_0F_3A
+ * Includes the three byte opcode map for instrs starting with 0x0f 0x38. */
+#define IEM_WITH_THREE_0F_3A
+
 /** @def IEM_WITH_VEX
- * Enables the VEX decoding. */
+ * Includes the VEX decoding. */
 #define IEM_WITH_VEX
-
-/** @def IEM_WITH_3DNOW
- * Enables the 3DNow decoding.  */
-#define IEM_WITH_3DNOW
 
 
