Index: /trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 101368)
+++ /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 101369)
@@ -284,4 +284,20 @@
   </cpp>
 </if>
+
+<!--
+  Macros for helping with constructing guest OS type ID strings for the
+  different architectures.
+-->
+<cpp line="#define GUEST_OS_ID_STR_X86(a_szOSid)     a_szOSid"/>
+<cpp line="#if 0 /** @todo r=bird: revert to legacy naming: */"/>
+<cpp line="#define GUEST_OS_ID_STR_X64(a_szOSid)     a_szOSid  &quot;_64&quot;"/>
+<cpp line="#else"/>
+<cpp line="#define GUEST_OS_ID_STR_X64(a_szOSid)     a_szOSid  &quot;_x64&quot;"/>
+<cpp line="#endif"/>
+<cpp line="#define GUEST_OS_ID_STR_A32(a_szOSid)     a_szOSid  &quot;_arm32&quot;"/>
+<cpp line="#define GUEST_OS_ID_STR_A64(a_szOSid)     a_szOSid  &quot;_arm64&quot;"/>
+<cpp line="#define GUEST_OS_ID_STR_AMD64(a_szOSid)   GUEST_OS_ID_STR_X64(a_szOSid)"/>
+<cpp line="#define GUEST_OS_ID_STR_ARM32(a_szOSid)   GUEST_OS_ID_STR_A32(a_szOSid)"/>
+<cpp line="#define GUEST_OS_ID_STR_ARM64(a_szOSid)   GUEST_OS_ID_STR_A64(a_szOSid)"/>
 
 <!--
Index: /trunk/src/VBox/Main/src-all/Global.cpp
===================================================================
--- /trunk/src/VBox/Main/src-all/Global.cpp	(revision 101368)
+++ /trunk/src/VBox/Main/src-all/Global.cpp	(revision 101369)
@@ -44,18 +44,4 @@
 #define VBOX_OSTYPE_ARM32(a_OStype)     VBOXOSTYPE_ ## a_OStype ## _arm32
 #define VBOX_OSTYPE_ARM64(a_OStype)     VBOXOSTYPE_ ## a_OStype ## _arm64
-
-/** @todo r=bird: These macros should move to VBox/cdefs.h or a similarly easily
- *        accessible file, so that the GUI can make use of them too. */
-/* Note: Keep this naming for legacy reasons. Always meant x86 (32-bit). */
-#define GUEST_OS_ID_STR_X86(a_szOSid)     a_szOSid
-#if 0 /** @todo r=bird: revert to legacy naming: */
-#define GUEST_OS_ID_STR_X64(a_szOSid)     a_szOSid  "_64"
-#else
-#define GUEST_OS_ID_STR_X64(a_szOSid)     a_szOSid  "_x64"
-#endif
-/* New since VBox 7.1. */
-#define GUEST_OS_ID_STR_A32(a_szOSid)     a_szOSid  "_arm32"
-/* New since VBox 7.1. */
-#define GUEST_OS_ID_STR_A64(a_szOSid)     a_szOSid  "_arm64"
 
 /* static */
Index: /trunk/src/VBox/VMM/VMMAll/IEMAllInstPython.py
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IEMAllInstPython.py	(revision 101368)
+++ /trunk/src/VBox/VMM/VMMAll/IEMAllInstPython.py	(revision 101369)
@@ -2601,6 +2601,8 @@
 ## IEM_MC_XXX -> parser + info dictionary.
 #
-# The info is currently a single boolean entry indicating whether the
-# statement modifies state and must not be used before IEMOP_HL_DONE_*.
+# The info columns:
+#   - col 0: boolean entry indicating whether the statement modifies state and
+#            must not be used before IEMOP_HL_DONE_*.
+#   - col 1: boolean entry indicating native recompiler support.
 #
 # The raw table was generated via the following command
@@ -2608,399 +2610,399 @@
 #       | sort | uniq | gawk "{printf """    %%-60s (%%s,        True)\n""", $1, $2}"
 g_dMcStmtParsers = {
-    'IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE':                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_ACTUALIZE_AVX_STATE_FOR_READ':                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_ACTUALIZE_FPU_STATE_FOR_CHANGE':                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_ACTUALIZE_FPU_STATE_FOR_READ':                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE':                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_ACTUALIZE_SSE_STATE_FOR_READ':                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_ADD_GREG_U16':                                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_ADD_GREG_U16_TO_LOCAL':                              (McBlock.parseMcGeneric,           False),
-    'IEM_MC_ADD_GREG_U32':                                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_ADD_GREG_U32_TO_LOCAL':                              (McBlock.parseMcGeneric,           False),
-    'IEM_MC_ADD_GREG_U64':                                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_ADD_GREG_U64_TO_LOCAL':                              (McBlock.parseMcGeneric,           False),
-    'IEM_MC_ADD_GREG_U8':                                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_ADD_GREG_U8_TO_LOCAL':                               (McBlock.parseMcGeneric,           False),
-    'IEM_MC_ADD_LOCAL_S16_TO_EFF_ADDR':                          (McBlock.parseMcGeneric,           True),
-    'IEM_MC_ADD_LOCAL_S32_TO_EFF_ADDR':                          (McBlock.parseMcGeneric,           True),
-    'IEM_MC_ADD_LOCAL_S64_TO_EFF_ADDR':                          (McBlock.parseMcGeneric,           True),
-    'IEM_MC_ADVANCE_RIP_AND_FINISH':                             (McBlock.parseMcGeneric,           True),
-    'IEM_MC_AND_2LOCS_U32':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_AND_ARG_U16':                                        (McBlock.parseMcGeneric,           False),
-    'IEM_MC_AND_ARG_U32':                                        (McBlock.parseMcGeneric,           False),
-    'IEM_MC_AND_ARG_U64':                                        (McBlock.parseMcGeneric,           False),
-    'IEM_MC_AND_GREG_U16':                                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_AND_GREG_U32':                                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_AND_GREG_U64':                                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_AND_GREG_U8':                                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_AND_LOCAL_U16':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_AND_LOCAL_U32':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_AND_LOCAL_U64':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_AND_LOCAL_U8':                                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_ARG':                                                (McBlock.parseMcArg,               False),
-    'IEM_MC_ARG_CONST':                                          (McBlock.parseMcArgConst,          False),
-    'IEM_MC_ARG_LOCAL_EFLAGS':                                   (McBlock.parseMcArgLocalEFlags,    False),
-    'IEM_MC_ARG_LOCAL_REF':                                      (McBlock.parseMcArgLocalRef,       False),
-    'IEM_MC_ASSIGN':                                             (McBlock.parseMcGeneric,           False),
-    'IEM_MC_ASSIGN_TO_SMALLER':                                  (McBlock.parseMcGeneric,           False),
-    'IEM_MC_ASSIGN_U8_SX_U64':                                   (McBlock.parseMcGeneric,           False),
-    'IEM_MC_ASSIGN_U32_SX_U64':                                  (McBlock.parseMcGeneric,           False),
-    'IEM_MC_BEGIN':                                              (McBlock.parseMcBegin,             False),
-    'IEM_MC_BROADCAST_XREG_U16_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_BROADCAST_XREG_U32_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_BROADCAST_XREG_U64_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_BROADCAST_XREG_U8_ZX_VLMAX':                         (McBlock.parseMcGeneric,           True),
-    'IEM_MC_BROADCAST_YREG_U128_ZX_VLMAX':                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_BROADCAST_YREG_U16_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_BROADCAST_YREG_U32_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_BROADCAST_YREG_U64_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_BROADCAST_YREG_U8_ZX_VLMAX':                         (McBlock.parseMcGeneric,           True),
-    'IEM_MC_BSWAP_LOCAL_U16':                                    (McBlock.parseMcGeneric,           False),
-    'IEM_MC_BSWAP_LOCAL_U32':                                    (McBlock.parseMcGeneric,           False),
-    'IEM_MC_BSWAP_LOCAL_U64':                                    (McBlock.parseMcGeneric,           False),
-    'IEM_MC_CALC_RM_EFF_ADDR':                                   (McBlock.parseMcGeneric,           False),
-    'IEM_MC_CALL_AIMPL_3':                                       (McBlock.parseMcCallAImpl,         True),
-    'IEM_MC_CALL_AIMPL_4':                                       (McBlock.parseMcCallAImpl,         True),
-    'IEM_MC_CALL_AVX_AIMPL_2':                                   (McBlock.parseMcCallAvxAImpl,      True),
-    'IEM_MC_CALL_AVX_AIMPL_3':                                   (McBlock.parseMcCallAvxAImpl,      True),
-    'IEM_MC_CALL_CIMPL_0':                                       (McBlock.parseMcCallCImpl,         True),
-    'IEM_MC_CALL_CIMPL_1':                                       (McBlock.parseMcCallCImpl,         True),
-    'IEM_MC_CALL_CIMPL_2':                                       (McBlock.parseMcCallCImpl,         True),
-    'IEM_MC_CALL_CIMPL_3':                                       (McBlock.parseMcCallCImpl,         True),
-    'IEM_MC_CALL_CIMPL_4':                                       (McBlock.parseMcCallCImpl,         True),
-    'IEM_MC_CALL_CIMPL_5':                                       (McBlock.parseMcCallCImpl,         True),
-    'IEM_MC_CALL_FPU_AIMPL_1':                                   (McBlock.parseMcCallFpuAImpl,      True),
-    'IEM_MC_CALL_FPU_AIMPL_2':                                   (McBlock.parseMcCallFpuAImpl,      True),
-    'IEM_MC_CALL_FPU_AIMPL_3':                                   (McBlock.parseMcCallFpuAImpl,      True),
-    'IEM_MC_CALL_MMX_AIMPL_2':                                   (McBlock.parseMcCallMmxAImpl,      True),
-    'IEM_MC_CALL_MMX_AIMPL_3':                                   (McBlock.parseMcCallMmxAImpl,      True),
-    'IEM_MC_CALL_SSE_AIMPL_2':                                   (McBlock.parseMcCallSseAImpl,      True),
-    'IEM_MC_CALL_SSE_AIMPL_3':                                   (McBlock.parseMcCallSseAImpl,      True),
-    'IEM_MC_CALL_VOID_AIMPL_0':                                  (McBlock.parseMcCallVoidAImpl,     True),
-    'IEM_MC_CALL_VOID_AIMPL_1':                                  (McBlock.parseMcCallVoidAImpl,     True),
-    'IEM_MC_CALL_VOID_AIMPL_2':                                  (McBlock.parseMcCallVoidAImpl,     True),
-    'IEM_MC_CALL_VOID_AIMPL_3':                                  (McBlock.parseMcCallVoidAImpl,     True),
-    'IEM_MC_CALL_VOID_AIMPL_4':                                  (McBlock.parseMcCallVoidAImpl,     True),
-    'IEM_MC_CLEAR_EFL_BIT':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_CLEAR_FSW_EX':                                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_CLEAR_HIGH_GREG_U64':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF':                         (McBlock.parseMcGeneric,           True),
-    'IEM_MC_CLEAR_XREG_U32_MASK':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_CLEAR_YREG_128_UP':                                  (McBlock.parseMcGeneric,           True),
-    'IEM_MC_COMMIT_EFLAGS':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_COPY_XREG_U128':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_COPY_YREG_U128_ZX_VLMAX':                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_COPY_YREG_U256_ZX_VLMAX':                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_COPY_YREG_U64_ZX_VLMAX':                             (McBlock.parseMcGeneric,           True),
-    'IEM_MC_DEFER_TO_CIMPL_0_RET':                               (McBlock.parseMcGeneric,           False),
-    'IEM_MC_DEFER_TO_CIMPL_1_RET':                               (McBlock.parseMcGeneric,           False),
-    'IEM_MC_DEFER_TO_CIMPL_2_RET':                               (McBlock.parseMcGeneric,           False),
-    'IEM_MC_DEFER_TO_CIMPL_3_RET':                               (McBlock.parseMcGeneric,           False),
-    'IEM_MC_END':                                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_EFLAGS':                                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_EFLAGS_U8':                                    (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_FCW':                                          (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_FSW':                                          (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U16':                                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U16_SX_U32':                              (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U16_SX_U64':                              (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U16_ZX_U32':                              (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U16_ZX_U64':                              (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U32':                                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U32_SX_U64':                              (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U32_ZX_U64':                              (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U64':                                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U64_ZX_U64':                              (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U8':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U8_SX_U16':                               (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U8_SX_U32':                               (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U8_SX_U64':                               (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U8_ZX_U16':                               (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U8_ZX_U32':                               (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_GREG_U8_ZX_U64':                               (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_MEM_D80':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_I16':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_I32':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_I64':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_R32':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_R64':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_R80':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_S32_SX_U64':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U128':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U128_ALIGN_SSE':                           (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U128_NO_AC':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U16':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U16_DISP':                                 (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U16_SX_U32':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U16_SX_U64':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U16_ZX_U32':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U16_ZX_U64':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U256':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U256_ALIGN_AVX':                           (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U256_NO_AC':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U32':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U32_DISP':                                 (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U32_SX_U64':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U32_ZX_U64':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U64':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U64_ALIGN_U128':                           (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U64_DISP':                                 (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U8':                                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U8_SX_U16':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U8_SX_U32':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U8_SX_U64':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U8_ZX_U16':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U8_ZX_U32':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_U8_ZX_U64':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_XMM':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_XMM_ALIGN_SSE':                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_XMM_NO_AC':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_XMM_U32':                                  (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_XMM_U64':                                  (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_YMM':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_YMM_ALIGN_AVX':                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM_YMM_NO_AC':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM16_U8':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MEM32_U8':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FETCH_MREG_U32':                                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_MREG_U64':                                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_SREG_BASE_U32':                                (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_SREG_BASE_U64':                                (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_SREG_U16':                                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_SREG_ZX_U32':                                  (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_SREG_ZX_U64':                                  (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_XREG_U128':                                    (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_XREG_U16':                                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_XREG_U32':                                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_XREG_U64':                                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_XREG_U8':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_XREG_XMM':                                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_YREG_2ND_U64':                                 (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_YREG_U128':                                    (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_YREG_U256':                                    (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_YREG_U32':                                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FETCH_YREG_U64':                                     (McBlock.parseMcGeneric,           False),
-    'IEM_MC_FLIP_EFL_BIT':                                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FPU_FROM_MMX_MODE':                                  (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FPU_STACK_DEC_TOP':                                  (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FPU_STACK_FREE':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FPU_STACK_INC_TOP':                                  (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FPU_STACK_PUSH_OVERFLOW':                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FPU_STACK_PUSH_OVERFLOW_MEM_OP':                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FPU_STACK_PUSH_UNDERFLOW':                           (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FPU_STACK_PUSH_UNDERFLOW_TWO':                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FPU_STACK_UNDERFLOW':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP':                         (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP':                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FPU_STACK_UNDERFLOW_THEN_POP':                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FPU_STACK_UNDERFLOW_THEN_POP_POP':                   (McBlock.parseMcGeneric,           True),
-    'IEM_MC_FPU_TO_MMX_MODE':                                    (McBlock.parseMcGeneric,           True),
-    'IEM_MC_IF_CX_IS_NZ':                                        (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_CX_IS_NZ_AND_EFL_BIT_NOT_SET':                    (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_CX_IS_NZ_AND_EFL_BIT_SET':                        (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_ECX_IS_NZ':                                       (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_ECX_IS_NZ_AND_EFL_BIT_NOT_SET':                   (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_ECX_IS_NZ_AND_EFL_BIT_SET':                       (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_EFL_ANY_BITS_SET':                                (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_EFL_BIT_NOT_SET':                                 (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_EFL_BIT_NOT_SET_AND_BITS_EQ':                     (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_EFL_BIT_SET':                                     (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE':                          (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_EFL_BITS_EQ':                                     (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_EFL_BITS_NE':                                     (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_EFL_NO_BITS_SET':                                 (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_FCW_IM':                                          (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_FPUREG_IS_EMPTY':                                 (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_FPUREG_NOT_EMPTY':                                (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_FPUREG_NOT_EMPTY_REF_R80':                        (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_GREG_BIT_SET':                                    (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_LOCAL_IS_Z':                                      (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_MXCSR_XCPT_PENDING':                              (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_RCX_IS_NZ':                                       (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_RCX_IS_NZ_AND_EFL_BIT_NOT_SET':                   (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_RCX_IS_NZ_AND_EFL_BIT_SET':                       (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_TWO_FPUREGS_NOT_EMPTY_REF_R80':                   (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IF_TWO_FPUREGS_NOT_EMPTY_REF_R80_FIRST':             (McBlock.parseMcGenericCond,       True),
-    'IEM_MC_IMPLICIT_AVX_AIMPL_ARGS':                            (McBlock.parseMcGeneric,           False),
-    'IEM_MC_INT_CLEAR_ZMM_256_UP':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_LOCAL':                                              (McBlock.parseMcLocal,             False),
-    'IEM_MC_LOCAL_CONST':                                        (McBlock.parseMcLocalConst,        False),
-    'IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT':                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE':                   (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MAYBE_RAISE_FPU_XCPT':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MAYBE_RAISE_FSGSBASE_XCPT':                          (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT':                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MAYBE_RAISE_NON_CANONICAL_ADDR_GP0':                 (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT':             (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT':                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MAYBE_RAISE_WAIT_DEVICE_NOT_AVAILABLE':              (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_COMMIT_AND_UNMAP':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_COMMIT_AND_UNMAP_RW':                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_COMMIT_AND_UNMAP_RO':                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_COMMIT_AND_UNMAP_WO':                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_COMMIT_AND_UNMAP_FOR_FPU_STORE':                 (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_MAP':                                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_MAP_EX':                                         (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_MAP_U8_RW':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_MAP_U8_RO':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_MAP_U8_WO':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_MAP_U16_RW':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_MAP_U16_RO':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_MAP_U16_WO':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_MAP_U32_RW':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_MAP_U32_RO':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_MAP_U32_WO':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_MAP_U64_RW':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_MAP_U64_RO':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MEM_MAP_U64_WO':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MERGE_YREG_U32_U96_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MERGE_YREG_U64_U64_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MERGE_YREG_U64HI_U64HI_ZX_VLMAX':                    (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MERGE_YREG_U64LO_U64LO_ZX_VLMAX':                    (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MERGE_YREG_U64LO_U64LOCAL_ZX_VLMAX':                 (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MERGE_YREG_U64LOCAL_U64HI_ZX_VLMAX':                 (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MODIFIED_MREG':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_MODIFIED_MREG_BY_REF':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_OR_2LOCS_U32':                                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_OR_GREG_U16':                                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_OR_GREG_U32':                                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_OR_GREG_U64':                                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_OR_GREG_U8':                                         (McBlock.parseMcGeneric,           True),
-    'IEM_MC_OR_LOCAL_U16':                                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_OR_LOCAL_U32':                                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_OR_LOCAL_U8':                                        (McBlock.parseMcGeneric,           False),
-    'IEM_MC_POP_U16':                                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_POP_U32':                                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_POP_U64':                                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_PREPARE_AVX_USAGE':                                  (McBlock.parseMcGeneric,           False),
-    'IEM_MC_PREPARE_FPU_USAGE':                                  (McBlock.parseMcGeneric,           False),
-    'IEM_MC_PREPARE_SSE_USAGE':                                  (McBlock.parseMcGeneric,           False),
-    'IEM_MC_PUSH_FPU_RESULT':                                    (McBlock.parseMcGeneric,           True),
-    'IEM_MC_PUSH_FPU_RESULT_MEM_OP':                             (McBlock.parseMcGeneric,           True),
-    'IEM_MC_PUSH_FPU_RESULT_TWO':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_PUSH_U16':                                           (McBlock.parseMcGeneric,           True),
-    'IEM_MC_PUSH_U32':                                           (McBlock.parseMcGeneric,           True),
-    'IEM_MC_PUSH_U32_SREG':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_PUSH_U64':                                           (McBlock.parseMcGeneric,           True),
-    'IEM_MC_RAISE_DIVIDE_ERROR':                                 (McBlock.parseMcGeneric,           True),
-    'IEM_MC_RAISE_GP0_IF_CPL_NOT_ZERO':                          (McBlock.parseMcGeneric,           True),
-    'IEM_MC_RAISE_GP0_IF_EFF_ADDR_UNALIGNED':                    (McBlock.parseMcGeneric,           True),
-    'IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT':                   (McBlock.parseMcGeneric,           True),
-    'IEM_MC_REF_EFLAGS':                                         (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_FPUREG':                                         (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_GREG_I32':                                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_GREG_I32_CONST':                                 (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_GREG_I64':                                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_GREG_I64_CONST':                                 (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_GREG_U16':                                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_GREG_U16_CONST':                                 (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_GREG_U32':                                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_GREG_U32_CONST':                                 (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_GREG_U64':                                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_GREG_U64_CONST':                                 (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_GREG_U8':                                        (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_GREG_U8_CONST':                                  (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_LOCAL':                                          (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_MREG_U32_CONST':                                 (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_MREG_U64':                                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_MREG_U64_CONST':                                 (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_MXCSR':                                          (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_XREG_R32_CONST':                                 (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_XREG_R64_CONST':                                 (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_XREG_U128':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_XREG_U128_CONST':                                (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_XREG_U32_CONST':                                 (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_XREG_U64_CONST':                                 (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_XREG_XMM_CONST':                                 (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_YREG_U128':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_YREG_U128_CONST':                                (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REF_YREG_U64_CONST':                                 (McBlock.parseMcGeneric,           False),
-    'IEM_MC_REL_JMP_S16_AND_FINISH':                             (McBlock.parseMcGeneric,           True),
-    'IEM_MC_REL_JMP_S32_AND_FINISH':                             (McBlock.parseMcGeneric,           True),
-    'IEM_MC_REL_JMP_S8_AND_FINISH':                              (McBlock.parseMcGeneric,           True),
-    'IEM_MC_RETURN_ON_FAILURE':                                  (McBlock.parseMcGeneric,           False),
-    'IEM_MC_SAR_LOCAL_S16':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_SAR_LOCAL_S32':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_SAR_LOCAL_S64':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_SET_EFL_BIT':                                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_SET_FPU_RESULT':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_SET_RIP_U16_AND_FINISH':                             (McBlock.parseMcGeneric,           True),
-    'IEM_MC_SET_RIP_U32_AND_FINISH':                             (McBlock.parseMcGeneric,           True),
-    'IEM_MC_SET_RIP_U64_AND_FINISH':                             (McBlock.parseMcGeneric,           True),
-    'IEM_MC_SHL_LOCAL_S16':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_SHL_LOCAL_S32':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_SHL_LOCAL_S64':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_SHR_LOCAL_U8':                                       (McBlock.parseMcGeneric,           False),
-    'IEM_MC_SSE_UPDATE_MXCSR':                                   (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_FPU_RESULT':                                   (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_FPU_RESULT_MEM_OP':                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_FPU_RESULT_THEN_POP':                          (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_FPU_RESULT_WITH_MEM_OP_THEN_POP':              (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_FPUREG_R80_SRC_REF':                           (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_GREG_I64':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_GREG_U16':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_GREG_U16_CONST':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_GREG_U32':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_GREG_U32_CONST':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_GREG_U64':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_GREG_U64_CONST':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_GREG_U8':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_GREG_U8_CONST':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_I16_CONST_BY_REF':                         (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_I32_CONST_BY_REF':                         (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_I64_CONST_BY_REF':                         (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_I8_CONST_BY_REF':                          (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_INDEF_D80_BY_REF':                         (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_NEG_QNAN_R32_BY_REF':                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_NEG_QNAN_R64_BY_REF':                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_NEG_QNAN_R80_BY_REF':                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_U128':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_U128_ALIGN_SSE':                           (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_U16':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_U16_CONST':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_U256':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_U256_ALIGN_AVX':                           (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_U32':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_U32_CONST':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_U64':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_U64_CONST':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_U8':                                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MEM_U8_CONST':                                 (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MREG_U32_ZX_U64':                              (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_MREG_U64':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_SREG_BASE_U32':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_SREG_BASE_U64':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_SSE_RESULT':                                   (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_XREG_HI_U64':                                  (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_XREG_R32':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_XREG_R64':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_XREG_U128':                                    (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_XREG_U16':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_XREG_U32':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_XREG_U32_U128':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_XREG_U32_ZX_U128':                             (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_XREG_U64':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_XREG_U64_ZX_U128':                             (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_XREG_U8':                                      (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_XREG_XMM':                                     (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_XREG_XMM_U32':                                 (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_XREG_XMM_U64':                                 (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_YREG_U128':                                    (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_YREG_U128_ZX_VLMAX':                           (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_YREG_U256_ZX_VLMAX':                           (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_YREG_U32_ZX_VLMAX':                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_STORE_YREG_U64_ZX_VLMAX':                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_SUB_GREG_U16':                                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_SUB_GREG_U32':                                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_SUB_GREG_U64':                                       (McBlock.parseMcGeneric,           True),
-    'IEM_MC_SUB_GREG_U8':                                        (McBlock.parseMcGeneric,           True),
-    'IEM_MC_SUB_LOCAL_U16':                                      (McBlock.parseMcGeneric,           False),
-    'IEM_MC_UPDATE_FPU_OPCODE_IP':                               (McBlock.parseMcGeneric,           True),
-    'IEM_MC_UPDATE_FSW':                                         (McBlock.parseMcGeneric,           True),
-    'IEM_MC_UPDATE_FSW_CONST':                                   (McBlock.parseMcGeneric,           True),
-    'IEM_MC_UPDATE_FSW_THEN_POP':                                (McBlock.parseMcGeneric,           True),
-    'IEM_MC_UPDATE_FSW_THEN_POP_POP':                            (McBlock.parseMcGeneric,           True),
-    'IEM_MC_UPDATE_FSW_WITH_MEM_OP':                             (McBlock.parseMcGeneric,           True),
-    'IEM_MC_UPDATE_FSW_WITH_MEM_OP_THEN_POP':                    (McBlock.parseMcGeneric,           True),
+    'IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE':                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_ACTUALIZE_AVX_STATE_FOR_READ':                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_ACTUALIZE_FPU_STATE_FOR_CHANGE':                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_ACTUALIZE_FPU_STATE_FOR_READ':                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE':                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_ACTUALIZE_SSE_STATE_FOR_READ':                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_ADD_GREG_U16':                                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_ADD_GREG_U16_TO_LOCAL':                              (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_ADD_GREG_U32':                                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_ADD_GREG_U32_TO_LOCAL':                              (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_ADD_GREG_U64':                                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_ADD_GREG_U64_TO_LOCAL':                              (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_ADD_GREG_U8':                                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_ADD_GREG_U8_TO_LOCAL':                               (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_ADD_LOCAL_S16_TO_EFF_ADDR':                          (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_ADD_LOCAL_S32_TO_EFF_ADDR':                          (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_ADD_LOCAL_S64_TO_EFF_ADDR':                          (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_ADVANCE_RIP_AND_FINISH':                             (McBlock.parseMcGeneric,           True,  True,  ),
+    'IEM_MC_AND_2LOCS_U32':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_AND_ARG_U16':                                        (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_AND_ARG_U32':                                        (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_AND_ARG_U64':                                        (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_AND_GREG_U16':                                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_AND_GREG_U32':                                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_AND_GREG_U64':                                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_AND_GREG_U8':                                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_AND_LOCAL_U16':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_AND_LOCAL_U32':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_AND_LOCAL_U64':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_AND_LOCAL_U8':                                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_ARG':                                                (McBlock.parseMcArg,               False, False, ),
+    'IEM_MC_ARG_CONST':                                          (McBlock.parseMcArgConst,          False, False, ),
+    'IEM_MC_ARG_LOCAL_EFLAGS':                                   (McBlock.parseMcArgLocalEFlags,    False, False, ),
+    'IEM_MC_ARG_LOCAL_REF':                                      (McBlock.parseMcArgLocalRef,       False, False, ),
+    'IEM_MC_ASSIGN':                                             (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_ASSIGN_TO_SMALLER':                                  (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_ASSIGN_U8_SX_U64':                                   (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_ASSIGN_U32_SX_U64':                                  (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_BEGIN':                                              (McBlock.parseMcBegin,             False, True,  ),
+    'IEM_MC_BROADCAST_XREG_U16_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_BROADCAST_XREG_U32_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_BROADCAST_XREG_U64_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_BROADCAST_XREG_U8_ZX_VLMAX':                         (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_BROADCAST_YREG_U128_ZX_VLMAX':                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_BROADCAST_YREG_U16_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_BROADCAST_YREG_U32_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_BROADCAST_YREG_U64_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_BROADCAST_YREG_U8_ZX_VLMAX':                         (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_BSWAP_LOCAL_U16':                                    (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_BSWAP_LOCAL_U32':                                    (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_BSWAP_LOCAL_U64':                                    (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_CALC_RM_EFF_ADDR':                                   (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_CALL_AIMPL_3':                                       (McBlock.parseMcCallAImpl,         True,  False, ),
+    'IEM_MC_CALL_AIMPL_4':                                       (McBlock.parseMcCallAImpl,         True,  False, ),
+    'IEM_MC_CALL_AVX_AIMPL_2':                                   (McBlock.parseMcCallAvxAImpl,      True,  False, ),
+    'IEM_MC_CALL_AVX_AIMPL_3':                                   (McBlock.parseMcCallAvxAImpl,      True,  False, ),
+    'IEM_MC_CALL_CIMPL_0':                                       (McBlock.parseMcCallCImpl,         True,  False, ),
+    'IEM_MC_CALL_CIMPL_1':                                       (McBlock.parseMcCallCImpl,         True,  False, ),
+    'IEM_MC_CALL_CIMPL_2':                                       (McBlock.parseMcCallCImpl,         True,  False, ),
+    'IEM_MC_CALL_CIMPL_3':                                       (McBlock.parseMcCallCImpl,         True,  False, ),
+    'IEM_MC_CALL_CIMPL_4':                                       (McBlock.parseMcCallCImpl,         True,  False, ),
+    'IEM_MC_CALL_CIMPL_5':                                       (McBlock.parseMcCallCImpl,         True,  False, ),
+    'IEM_MC_CALL_FPU_AIMPL_1':                                   (McBlock.parseMcCallFpuAImpl,      True,  False, ),
+    'IEM_MC_CALL_FPU_AIMPL_2':                                   (McBlock.parseMcCallFpuAImpl,      True,  False, ),
+    'IEM_MC_CALL_FPU_AIMPL_3':                                   (McBlock.parseMcCallFpuAImpl,      True,  False, ),
+    'IEM_MC_CALL_MMX_AIMPL_2':                                   (McBlock.parseMcCallMmxAImpl,      True,  False, ),
+    'IEM_MC_CALL_MMX_AIMPL_3':                                   (McBlock.parseMcCallMmxAImpl,      True,  False, ),
+    'IEM_MC_CALL_SSE_AIMPL_2':                                   (McBlock.parseMcCallSseAImpl,      True,  False, ),
+    'IEM_MC_CALL_SSE_AIMPL_3':                                   (McBlock.parseMcCallSseAImpl,      True,  False, ),
+    'IEM_MC_CALL_VOID_AIMPL_0':                                  (McBlock.parseMcCallVoidAImpl,     True,  False, ),
+    'IEM_MC_CALL_VOID_AIMPL_1':                                  (McBlock.parseMcCallVoidAImpl,     True,  False, ),
+    'IEM_MC_CALL_VOID_AIMPL_2':                                  (McBlock.parseMcCallVoidAImpl,     True,  False, ),
+    'IEM_MC_CALL_VOID_AIMPL_3':                                  (McBlock.parseMcCallVoidAImpl,     True,  False, ),
+    'IEM_MC_CALL_VOID_AIMPL_4':                                  (McBlock.parseMcCallVoidAImpl,     True,  False, ),
+    'IEM_MC_CLEAR_EFL_BIT':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_CLEAR_FSW_EX':                                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_CLEAR_HIGH_GREG_U64':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF':                         (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_CLEAR_XREG_U32_MASK':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_CLEAR_YREG_128_UP':                                  (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_COMMIT_EFLAGS':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_COPY_XREG_U128':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_COPY_YREG_U128_ZX_VLMAX':                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_COPY_YREG_U256_ZX_VLMAX':                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_COPY_YREG_U64_ZX_VLMAX':                             (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_DEFER_TO_CIMPL_0_RET':                               (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_DEFER_TO_CIMPL_1_RET':                               (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_DEFER_TO_CIMPL_2_RET':                               (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_DEFER_TO_CIMPL_3_RET':                               (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_END':                                                (McBlock.parseMcGeneric,           True,  True,  ),
+    'IEM_MC_FETCH_EFLAGS':                                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_EFLAGS_U8':                                    (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_FCW':                                          (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_FSW':                                          (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U16':                                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U16_SX_U32':                              (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U16_SX_U64':                              (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U16_ZX_U32':                              (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U16_ZX_U64':                              (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U32':                                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U32_SX_U64':                              (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U32_ZX_U64':                              (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U64':                                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U64_ZX_U64':                              (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U8':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U8_SX_U16':                               (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U8_SX_U32':                               (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U8_SX_U64':                               (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U8_ZX_U16':                               (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U8_ZX_U32':                               (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_GREG_U8_ZX_U64':                               (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_MEM_D80':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_I16':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_I32':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_I64':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_R32':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_R64':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_R80':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_S32_SX_U64':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U128':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U128_ALIGN_SSE':                           (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U128_NO_AC':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U16':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U16_DISP':                                 (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U16_SX_U32':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U16_SX_U64':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U16_ZX_U32':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U16_ZX_U64':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U256':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U256_ALIGN_AVX':                           (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U256_NO_AC':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U32':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U32_DISP':                                 (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U32_SX_U64':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U32_ZX_U64':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U64':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U64_ALIGN_U128':                           (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U64_DISP':                                 (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U8':                                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U8_SX_U16':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U8_SX_U32':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U8_SX_U64':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U8_ZX_U16':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U8_ZX_U32':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_U8_ZX_U64':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_XMM':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_XMM_ALIGN_SSE':                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_XMM_NO_AC':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_XMM_U32':                                  (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_XMM_U64':                                  (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_YMM':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_YMM_ALIGN_AVX':                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM_YMM_NO_AC':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM16_U8':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MEM32_U8':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FETCH_MREG_U32':                                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_MREG_U64':                                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_SREG_BASE_U32':                                (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_SREG_BASE_U64':                                (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_SREG_U16':                                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_SREG_ZX_U32':                                  (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_SREG_ZX_U64':                                  (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_XREG_U128':                                    (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_XREG_U16':                                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_XREG_U32':                                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_XREG_U64':                                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_XREG_U8':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_XREG_XMM':                                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_YREG_2ND_U64':                                 (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_YREG_U128':                                    (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_YREG_U256':                                    (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_YREG_U32':                                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FETCH_YREG_U64':                                     (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_FLIP_EFL_BIT':                                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FPU_FROM_MMX_MODE':                                  (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FPU_STACK_DEC_TOP':                                  (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FPU_STACK_FREE':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FPU_STACK_INC_TOP':                                  (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FPU_STACK_PUSH_OVERFLOW':                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FPU_STACK_PUSH_OVERFLOW_MEM_OP':                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FPU_STACK_PUSH_UNDERFLOW':                           (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FPU_STACK_PUSH_UNDERFLOW_TWO':                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FPU_STACK_UNDERFLOW':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP':                         (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP':                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FPU_STACK_UNDERFLOW_THEN_POP':                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FPU_STACK_UNDERFLOW_THEN_POP_POP':                   (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_FPU_TO_MMX_MODE':                                    (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_IF_CX_IS_NZ':                                        (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_CX_IS_NZ_AND_EFL_BIT_NOT_SET':                    (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_CX_IS_NZ_AND_EFL_BIT_SET':                        (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_ECX_IS_NZ':                                       (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_ECX_IS_NZ_AND_EFL_BIT_NOT_SET':                   (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_ECX_IS_NZ_AND_EFL_BIT_SET':                       (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_EFL_ANY_BITS_SET':                                (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_EFL_BIT_NOT_SET':                                 (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_EFL_BIT_NOT_SET_AND_BITS_EQ':                     (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_EFL_BIT_SET':                                     (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE':                          (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_EFL_BITS_EQ':                                     (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_EFL_BITS_NE':                                     (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_EFL_NO_BITS_SET':                                 (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_FCW_IM':                                          (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_FPUREG_IS_EMPTY':                                 (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_FPUREG_NOT_EMPTY':                                (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_FPUREG_NOT_EMPTY_REF_R80':                        (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_GREG_BIT_SET':                                    (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_LOCAL_IS_Z':                                      (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_MXCSR_XCPT_PENDING':                              (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_RCX_IS_NZ':                                       (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_RCX_IS_NZ_AND_EFL_BIT_NOT_SET':                   (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_RCX_IS_NZ_AND_EFL_BIT_SET':                       (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_TWO_FPUREGS_NOT_EMPTY_REF_R80':                   (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IF_TWO_FPUREGS_NOT_EMPTY_REF_R80_FIRST':             (McBlock.parseMcGenericCond,       True,  False, ),
+    'IEM_MC_IMPLICIT_AVX_AIMPL_ARGS':                            (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_INT_CLEAR_ZMM_256_UP':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_LOCAL':                                              (McBlock.parseMcLocal,             False, False, ),
+    'IEM_MC_LOCAL_CONST':                                        (McBlock.parseMcLocalConst,        False, False, ),
+    'IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT':                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE':                   (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MAYBE_RAISE_FPU_XCPT':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MAYBE_RAISE_FSGSBASE_XCPT':                          (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT':                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MAYBE_RAISE_NON_CANONICAL_ADDR_GP0':                 (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT':             (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT':                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MAYBE_RAISE_WAIT_DEVICE_NOT_AVAILABLE':              (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_COMMIT_AND_UNMAP':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_COMMIT_AND_UNMAP_RW':                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_COMMIT_AND_UNMAP_RO':                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_COMMIT_AND_UNMAP_WO':                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_COMMIT_AND_UNMAP_FOR_FPU_STORE':                 (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_MAP':                                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_MAP_EX':                                         (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_MAP_U8_RW':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_MAP_U8_RO':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_MAP_U8_WO':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_MAP_U16_RW':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_MAP_U16_RO':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_MAP_U16_WO':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_MAP_U32_RW':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_MAP_U32_RO':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_MAP_U32_WO':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_MAP_U64_RW':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_MAP_U64_RO':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MEM_MAP_U64_WO':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MERGE_YREG_U32_U96_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MERGE_YREG_U64_U64_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MERGE_YREG_U64HI_U64HI_ZX_VLMAX':                    (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MERGE_YREG_U64LO_U64LO_ZX_VLMAX':                    (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MERGE_YREG_U64LO_U64LOCAL_ZX_VLMAX':                 (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MERGE_YREG_U64LOCAL_U64HI_ZX_VLMAX':                 (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MODIFIED_MREG':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_MODIFIED_MREG_BY_REF':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_OR_2LOCS_U32':                                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_OR_GREG_U16':                                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_OR_GREG_U32':                                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_OR_GREG_U64':                                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_OR_GREG_U8':                                         (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_OR_LOCAL_U16':                                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_OR_LOCAL_U32':                                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_OR_LOCAL_U8':                                        (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_POP_U16':                                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_POP_U32':                                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_POP_U64':                                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_PREPARE_AVX_USAGE':                                  (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_PREPARE_FPU_USAGE':                                  (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_PREPARE_SSE_USAGE':                                  (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_PUSH_FPU_RESULT':                                    (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_PUSH_FPU_RESULT_MEM_OP':                             (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_PUSH_FPU_RESULT_TWO':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_PUSH_U16':                                           (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_PUSH_U32':                                           (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_PUSH_U32_SREG':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_PUSH_U64':                                           (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_RAISE_DIVIDE_ERROR':                                 (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_RAISE_GP0_IF_CPL_NOT_ZERO':                          (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_RAISE_GP0_IF_EFF_ADDR_UNALIGNED':                    (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT':                   (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_REF_EFLAGS':                                         (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_FPUREG':                                         (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_GREG_I32':                                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_GREG_I32_CONST':                                 (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_GREG_I64':                                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_GREG_I64_CONST':                                 (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_GREG_U16':                                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_GREG_U16_CONST':                                 (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_GREG_U32':                                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_GREG_U32_CONST':                                 (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_GREG_U64':                                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_GREG_U64_CONST':                                 (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_GREG_U8':                                        (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_GREG_U8_CONST':                                  (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_LOCAL':                                          (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_MREG_U32_CONST':                                 (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_MREG_U64':                                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_MREG_U64_CONST':                                 (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_MXCSR':                                          (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_XREG_R32_CONST':                                 (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_XREG_R64_CONST':                                 (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_XREG_U128':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_XREG_U128_CONST':                                (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_XREG_U32_CONST':                                 (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_XREG_U64_CONST':                                 (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_XREG_XMM_CONST':                                 (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_YREG_U128':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_YREG_U128_CONST':                                (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REF_YREG_U64_CONST':                                 (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_REL_JMP_S16_AND_FINISH':                             (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_REL_JMP_S32_AND_FINISH':                             (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_REL_JMP_S8_AND_FINISH':                              (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_RETURN_ON_FAILURE':                                  (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_SAR_LOCAL_S16':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_SAR_LOCAL_S32':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_SAR_LOCAL_S64':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_SET_EFL_BIT':                                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_SET_FPU_RESULT':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_SET_RIP_U16_AND_FINISH':                             (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_SET_RIP_U32_AND_FINISH':                             (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_SET_RIP_U64_AND_FINISH':                             (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_SHL_LOCAL_S16':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_SHL_LOCAL_S32':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_SHL_LOCAL_S64':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_SHR_LOCAL_U8':                                       (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_SSE_UPDATE_MXCSR':                                   (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_FPU_RESULT':                                   (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_FPU_RESULT_MEM_OP':                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_FPU_RESULT_THEN_POP':                          (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_FPU_RESULT_WITH_MEM_OP_THEN_POP':              (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_FPUREG_R80_SRC_REF':                           (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_GREG_I64':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_GREG_U16':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_GREG_U16_CONST':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_GREG_U32':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_GREG_U32_CONST':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_GREG_U64':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_GREG_U64_CONST':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_GREG_U8':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_GREG_U8_CONST':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_I16_CONST_BY_REF':                         (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_I32_CONST_BY_REF':                         (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_I64_CONST_BY_REF':                         (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_I8_CONST_BY_REF':                          (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_INDEF_D80_BY_REF':                         (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_NEG_QNAN_R32_BY_REF':                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_NEG_QNAN_R64_BY_REF':                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_NEG_QNAN_R80_BY_REF':                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_U128':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_U128_ALIGN_SSE':                           (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_U16':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_U16_CONST':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_U256':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_U256_ALIGN_AVX':                           (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_U32':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_U32_CONST':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_U64':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_U64_CONST':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_U8':                                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MEM_U8_CONST':                                 (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MREG_U32_ZX_U64':                              (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_MREG_U64':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_SREG_BASE_U32':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_SREG_BASE_U64':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_SSE_RESULT':                                   (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_XREG_HI_U64':                                  (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_XREG_R32':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_XREG_R64':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_XREG_U128':                                    (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_XREG_U16':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_XREG_U32':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_XREG_U32_U128':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_XREG_U32_ZX_U128':                             (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_XREG_U64':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_XREG_U64_ZX_U128':                             (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_XREG_U8':                                      (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_XREG_XMM':                                     (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_XREG_XMM_U32':                                 (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_XREG_XMM_U64':                                 (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_YREG_U128':                                    (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_YREG_U128_ZX_VLMAX':                           (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_YREG_U256_ZX_VLMAX':                           (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_YREG_U32_ZX_VLMAX':                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_STORE_YREG_U64_ZX_VLMAX':                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_SUB_GREG_U16':                                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_SUB_GREG_U32':                                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_SUB_GREG_U64':                                       (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_SUB_GREG_U8':                                        (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_SUB_LOCAL_U16':                                      (McBlock.parseMcGeneric,           False, False, ),
+    'IEM_MC_UPDATE_FPU_OPCODE_IP':                               (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_UPDATE_FSW':                                         (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_UPDATE_FSW_CONST':                                   (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_UPDATE_FSW_THEN_POP':                                (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_UPDATE_FSW_THEN_POP_POP':                            (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_UPDATE_FSW_WITH_MEM_OP':                             (McBlock.parseMcGeneric,           True,  False, ),
+    'IEM_MC_UPDATE_FSW_WITH_MEM_OP_THEN_POP':                    (McBlock.parseMcGeneric,           True,  False, ),
 };
 
Index: /trunk/src/VBox/VMM/VMMAll/IEMAllN8vePython.py
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IEMAllN8vePython.py	(revision 101368)
+++ /trunk/src/VBox/VMM/VMMAll/IEMAllN8vePython.py	(revision 101369)
@@ -44,4 +44,127 @@
 
 
+## Supplememnts g_dMcStmtParsers.
+g_dMcStmtThreaded = {
+    'IEM_MC_DEFER_TO_CIMPL_0_RET_THREADED':                      (None, True,  True,  ),
+    'IEM_MC_DEFER_TO_CIMPL_1_RET_THREADED':                      (None, True,  True,  ),
+    'IEM_MC_DEFER_TO_CIMPL_2_RET_THREADED':                      (None, True,  True,  ),
+    'IEM_MC_DEFER_TO_CIMPL_3_RET_THREADED':                      (None, True,  True,  ),
+
+    'IEM_MC_ADVANCE_RIP_AND_FINISH_THREADED_PC16':               (None, True,  False, ),
+    'IEM_MC_ADVANCE_RIP_AND_FINISH_THREADED_PC32':               (None, True,  True,  ),
+    'IEM_MC_ADVANCE_RIP_AND_FINISH_THREADED_PC64':               (None, True,  False, ),
+
+    'IEM_MC_CALC_RM_EFF_ADDR_THREADED_16_ADDR32':                (None, False, False, ),
+    'IEM_MC_CALC_RM_EFF_ADDR_THREADED_16_PRE386':                (None, False, False, ),
+    'IEM_MC_CALC_RM_EFF_ADDR_THREADED_16':                       (None, False, False, ),
+    'IEM_MC_CALC_RM_EFF_ADDR_THREADED_32_ADDR16':                (None, False, False, ),
+    'IEM_MC_CALC_RM_EFF_ADDR_THREADED_32_FLAT':                  (None, False, False, ),
+    'IEM_MC_CALC_RM_EFF_ADDR_THREADED_32':                       (None, False, False, ),
+    'IEM_MC_CALC_RM_EFF_ADDR_THREADED_64_ADDR32':                (None, False, False, ),
+    'IEM_MC_CALC_RM_EFF_ADDR_THREADED_64_FSGS':                  (None, False, False, ),
+    'IEM_MC_CALC_RM_EFF_ADDR_THREADED_64':                       (None, False, False, ),
+
+    'IEM_MC_CALL_CIMPL_1_THREADED':                              (None, True,  False, ),
+    'IEM_MC_CALL_CIMPL_2_THREADED':                              (None, True,  False, ),
+    'IEM_MC_CALL_CIMPL_3_THREADED':                              (None, True,  False, ),
+    'IEM_MC_CALL_CIMPL_4_THREADED':                              (None, True,  False, ),
+    'IEM_MC_CALL_CIMPL_5_THREADED':                              (None, True,  False, ),
+
+    'IEM_MC_REL_JMP_S8_AND_FINISH_THREADED_PC16':                (None, True,  False, ),
+    'IEM_MC_REL_JMP_S8_AND_FINISH_THREADED_PC32':                (None, True,  False, ),
+    'IEM_MC_REL_JMP_S8_AND_FINISH_THREADED_PC64':                (None, True,  False, ),
+    'IEM_MC_REL_JMP_S16_AND_FINISH_THREADED_PC16':               (None, True,  False, ),
+    'IEM_MC_REL_JMP_S16_AND_FINISH_THREADED_PC32':               (None, True,  False, ),
+    'IEM_MC_REL_JMP_S16_AND_FINISH_THREADED_PC64':               (None, True,  False, ),
+    'IEM_MC_REL_JMP_S32_AND_FINISH_THREADED_PC32':               (None, True,  False, ),
+    'IEM_MC_REL_JMP_S32_AND_FINISH_THREADED_PC64':               (None, True,  False, ),
+
+    'IEM_MC_STORE_GREG_U8_THREADED':                             (None, True,  False, ),
+    'IEM_MC_STORE_GREG_U8_CONST_THREADED':                       (None, True,  False, ),
+    'IEM_MC_FETCH_GREG_U8_THREADED':                             (None, False, False, ),
+    'IEM_MC_FETCH_GREG_U8_SX_U16_THREADED':                      (None, False, False, ),
+    'IEM_MC_FETCH_GREG_U8_SX_U32_THREADED':                      (None, False, False, ),
+    'IEM_MC_FETCH_GREG_U8_SX_U64_THREADED':                      (None, False, False, ),
+    'IEM_MC_FETCH_GREG_U8_ZX_U16_THREADED':                      (None, False, False, ),
+    'IEM_MC_FETCH_GREG_U8_ZX_U32_THREADED':                      (None, False, False, ),
+    'IEM_MC_FETCH_GREG_U8_ZX_U64_THREADED':                      (None, False, False, ),
+    'IEM_MC_REF_GREG_U8_THREADED':                               (None, True,  False, ),
+
+    # Flat Mem:
+    'IEM_MC_FETCH_MEM16_FLAT_U8':                                (None, True,  False, ),
+    'IEM_MC_FETCH_MEM32_FLAT_U8':                                (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_D80':                                 (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_I16':                                 (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_I32':                                 (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_I64':                                 (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_R32':                                 (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_R64':                                 (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_R80':                                 (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U128_ALIGN_SSE':                      (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U128_NO_AC':                          (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U128':                                (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U16_DISP':                            (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U16_SX_U32':                          (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U16_SX_U64':                          (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U16':                                 (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U16_ZX_U32':                          (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U16_ZX_U64':                          (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U256_ALIGN_AVX':                      (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U256_NO_AC':                          (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U256':                                (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U32_DISP':                            (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U32_SX_U64':                          (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U32':                                 (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U32_ZX_U64':                          (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U64':                                 (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U8_SX_U16':                           (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U8_SX_U32':                           (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U8_SX_U64':                           (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U8':                                  (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U8_ZX_U16':                           (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U8_ZX_U32':                           (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_U8_ZX_U64':                           (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_XMM_ALIGN_SSE':                       (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_XMM_U32':                             (None, True,  False, ),
+    'IEM_MC_FETCH_MEM_FLAT_XMM_U64':                             (None, True,  False, ),
+    'IEM_MC_MEM_FLAT_MAP_EX':                                    (None, True,  False, ),
+    'IEM_MC_MEM_FLAT_MAP':                                       (None, True,  False, ),
+    'IEM_MC_MEM_FLAT_MAP_U16_RO':                                (None, True,  False, ),
+    'IEM_MC_MEM_FLAT_MAP_U16_RW':                                (None, True,  False, ),
+    'IEM_MC_MEM_FLAT_MAP_U32_RO':                                (None, True,  False, ),
+    'IEM_MC_MEM_FLAT_MAP_U32_RW':                                (None, True,  False, ),
+    'IEM_MC_MEM_FLAT_MAP_U64_RO':                                (None, True,  False, ),
+    'IEM_MC_MEM_FLAT_MAP_U64_RW':                                (None, True,  False, ),
+    'IEM_MC_MEM_FLAT_MAP_U8_RO':                                 (None, True,  False, ),
+    'IEM_MC_MEM_FLAT_MAP_U8_RW':                                 (None, True,  False, ),
+    'IEM_MC_STORE_MEM_FLAT_U128_ALIGN_SSE':                      (None, True,  False, ),
+    'IEM_MC_STORE_MEM_FLAT_U128':                                (None, True,  False, ),
+    'IEM_MC_STORE_MEM_FLAT_U16':                                 (None, True,  False, ),
+    'IEM_MC_STORE_MEM_FLAT_U256_ALIGN_AVX':                      (None, True,  False, ),
+    'IEM_MC_STORE_MEM_FLAT_U256':                                (None, True,  False, ),
+    'IEM_MC_STORE_MEM_FLAT_U32':                                 (None, True,  False, ),
+    'IEM_MC_STORE_MEM_FLAT_U64':                                 (None, True,  False, ),
+    'IEM_MC_STORE_MEM_FLAT_U8_CONST':                            (None, True,  False, ),
+    'IEM_MC_STORE_MEM_FLAT_U8':                                  (None, True,  False, ),
+
+    # Flat Stack:
+    'IEM_MC_FLAT64_PUSH_U16':                                    (None, True,  False, ),
+    'IEM_MC_FLAT64_PUSH_U64':                                    (None, True,  False, ),
+    'IEM_MC_FLAT64_PUSH_U16':                                    (None, True,  False, ),
+    'IEM_MC_FLAT64_PUSH_U64':                                    (None, True,  False, ),
+    'IEM_MC_FLAT64_POP_U16':                                     (None, True,  False, ),
+    'IEM_MC_FLAT64_POP_U64':                                     (None, True,  False, ),
+    'IEM_MC_FLAT64_POP_U16':                                     (None, True,  False, ),
+    'IEM_MC_FLAT64_POP_U64':                                     (None, True,  False, ),
+    'IEM_MC_FLAT64_PUSH_U16':                                    (None, True,  False, ),
+    'IEM_MC_FLAT64_PUSH_U64':                                    (None, True,  False, ),
+    'IEM_MC_FLAT64_PUSH_U16':                                    (None, True,  False, ),
+    'IEM_MC_FLAT64_PUSH_U64':                                    (None, True,  False, ),
+    'IEM_MC_FLAT32_PUSH_U16':                                    (None, True,  False, ),
+    'IEM_MC_FLAT64_PUSH_U16':                                    (None, True,  False, ),
+    'IEM_MC_FLAT32_PUSH_U32':                                    (None, True,  False, ),
+    'IEM_MC_FLAT64_PUSH_U64':                                    (None, True,  False, ),
+};
+
 class NativeRecompFunctionVariation(object):
     """
@@ -70,4 +193,34 @@
         aoStmts = self.oVariation.aoStmtsForThreadedFunction # type: list(McStmt)
         return iai.McStmt.renderCodeForList(aoStmts, cchIndent);
+
+    @staticmethod
+    def checkStatements(aoStmts, sHostArch):
+        """
+        Checks that all the given statements are supported by the native recompiler.
+        """
+        _ = sHostArch;
+        for oStmt in aoStmts:   # type: McStmt
+            if not oStmt.isCppStmt():
+                aInfo = iai.g_dMcStmtParsers.get(oStmt.sName);
+                if not aInfo:
+                    aInfo = g_dMcStmtThreaded.get(oStmt.sName);
+                    if not aInfo:
+                        raise Exception('Unknown statement: %s' % (oStmt.sName, ));
+                if aInfo[2] is False:
+                    return False;
+                if aInfo[2] is not True:
+                    if isinstance(aInfo[2], str):
+                        if aInfo[2] != sHostArch:
+                            return False;
+                    elif sHostArch not in aInfo[2]:
+                        return False;
+            #elif not self.fDecode:
+
+            if isinstance(oStmt, iai.McStmtCond):
+                if not NativeRecompFunctionVariation.checkStatements(oStmt.aoIfBranch, sHostArch):
+                    return False;
+                if not NativeRecompFunctionVariation.checkStatements(oStmt.aoElseBranch, sHostArch):
+                    return False;
+        return True;
 
 
@@ -87,10 +240,16 @@
     #
     aoStmts = oVariation.aoStmtsForThreadedFunction # type: list(McStmt)
+    if NativeRecompFunctionVariation.checkStatements(aoStmts, sHostArch):
+        return NativeRecompFunctionVariation(oVariation, sHostArch);
 
     # The simplest case are the IEM_MC_DEFER_TO_CIMPL_*_RET_THREADED ones, just pass them thru:
-    if (    len(aoStmts) == 1
-        and aoStmts[0].sName.startswith('IEM_MC_DEFER_TO_CIMPL_')
-        and aoStmts[0].sName.endswith('_RET_THREADED')):
-        return NativeRecompFunctionVariation(oVariation, sHostArch);
+    #if (    len(aoStmts) == 1
+    #    and aoStmts[0].sName.startswith('IEM_MC_DEFER_TO_CIMPL_')
+    #    and aoStmts[0].sName.endswith('_RET_THREADED')):
+    #    return NativeRecompFunctionVariation(oVariation, sHostArch);
+
+
+    # g_dMcStmtParsers
+
 
     return None;
Index: /trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompiler.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompiler.cpp	(revision 101368)
+++ /trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompiler.cpp	(revision 101369)
@@ -48,4 +48,5 @@
 #define IEM_WITH_OPAQUE_DECODER_STATE
 #define VMCPU_INCL_CPUM_GST_CTX
+#define VMM_INCLUDED_SRC_include_IEMMc_h /* block IEMMc.h inclusion. */
 #include <VBox/vmm/iem.h>
 #include <VBox/vmm/cpum.h>
@@ -1126,8 +1127,9 @@
  * Called before starting a new recompile job.
  */
-static PIEMRECOMPILERSTATE iemNativeReInit(PIEMRECOMPILERSTATE pReNative)
+static PIEMRECOMPILERSTATE iemNativeReInit(PIEMRECOMPILERSTATE pReNative, PCIEMTB pTb)
 {
     pReNative->cLabels   = 0;
     pReNative->cFixups   = 0;
+    pReNative->pTbOrg    = pTb;
     return pReNative;
 }
@@ -1142,7 +1144,8 @@
  * @param   pVCpu   The cross context virtual CPU structure of the calling
  *                  thread.
+ * @param   pTb     The TB that's about to be recompiled.
  * @thread  EMT(pVCpu)
  */
-static PIEMRECOMPILERSTATE iemNativeInit(PVMCPUCC pVCpu)
+static PIEMRECOMPILERSTATE iemNativeInit(PVMCPUCC pVCpu, PCIEMTB pTb)
 {
     VMCPU_ASSERT_EMT(pVCpu);
@@ -1172,5 +1175,5 @@
          */
         pVCpu->iem.s.pNativeRecompilerStateR3 = pReNative;
-        return iemNativeReInit(pReNative);
+        return iemNativeReInit(pReNative, pTb);
     }
 
@@ -1906,4 +1909,32 @@
 
 
+/** Same as iemRegFinishClearingRF. */
+DECLINLINE(uint32_t) iemNativeEmitFinishClearingRF(PIEMRECOMPILERSTATE pReNative, uint32_t off)
+{
+    uint32_t const fFlags = pReNative->pTbOrg->fFlags;
+    if (fFlags & IEMTB_F_INHIBIT_SHADOW)
+    {
+    }
+    IEMTB_F_IEM_F_MASK
+
+    //
+        if (RT_LIKELY(!(  pVCpu->cpum.GstCtx.eflags.uBoth
+                        & (X86_EFL_TF | X86_EFL_RF | CPUMCTX_INHIBIT_SHADOW | CPUMCTX_DBG_HIT_DRX_MASK | CPUMCTX_DBG_DBGF_MASK)) ))
+            return VINF_SUCCESS;
+        return iemFinishInstructionWithFlagsSet(pVCpu);
+}
+
+
+/** Same as iemRegAddToEip32AndFinishingClearingRF. */
+DECLINLINE(uint32_t) iemNativeEmitAddToEip32AndFinishingClearingRF(PIEMRECOMPILERSTATE pReNative, uint32_t off, uint8_t cbInstr)
+{
+    /* Increment RIP. */
+    pVCpu->cpum.GstCtx.rip = (uint32_t)(pVCpu->cpum.GstCtx.eip + cbInstr);
+
+    /* Consider flags. */
+    return iemNativeEmitFinishClearingRF(pReNative, off);
+}
+
+
 /*
  * MC definitions for the native recompiler.
@@ -1921,4 +1952,19 @@
 #define IEM_MC_DEFER_TO_CIMPL_3_RET_THREADED(a_cbInstr, a_fFlags, a_pfnCImpl, a0, a1, a2) \
     return iemNativeEmitCImplCall3(pReNative, off, pCallEntry->idxInstr, (uintptr_t)a_pfnCImpl, a_cbInstr, a0, a1, a2)
+
+
+#define IEM_MC_BEGIN(a_cArgs, a_cLocals, a_fFlags)      {
+
+#define IEM_MC_END()                                    } AssertFailedReturn(UINT32_MAX /* shouldn't be reached! */)
+
+#define IEM_MC_ADVANCE_RIP_AND_FINISH_THREADED_PC16(a_cbInstr) \
+    return iemNativeEmitAddToIp16AndFinishingClearingRF(pReNative, off, a_cbInstr)
+
+#define IEM_MC_ADVANCE_RIP_AND_FINISH_THREADED_PC32(a_cbInstr) \
+    return iemNativeEmitAddToEip32AndFinishingClearingRF(pReNative, off, a_cbInstr)
+
+#define IEM_MC_ADVANCE_RIP_AND_FINISH_THREADED_PC64(a_cbInstr) \
+    return iemNativeEmitAddToRip64AndFinishingClearingRF(pReNative, off, a_cbInstr)
+
 
 /*
@@ -1965,8 +2011,8 @@
     PIEMRECOMPILERSTATE pReNative = pVCpu->iem.s.pNativeRecompilerStateR3;
     if (RT_LIKELY(pReNative))
-        iemNativeReInit(pReNative);
+        iemNativeReInit(pReNative, pTb);
     else
     {
-        pReNative = iemNativeInit(pVCpu);
+        pReNative = iemNativeInit(pVCpu, pTb);
         AssertReturn(pReNative, pTb);
     }
Index: /trunk/src/VBox/VMM/include/IEMN8veRecompiler.h
===================================================================
--- /trunk/src/VBox/VMM/include/IEMN8veRecompiler.h	(revision 101368)
+++ /trunk/src/VBox/VMM/include/IEMN8veRecompiler.h	(revision 101369)
@@ -257,4 +257,7 @@
     /** Buffer used by the recompiler for recording fixups when generating code. */
     PIEMNATIVEFIXUP             paFixups;
+
+    /** The translation block being recompiled. */
+    PCIEMTB                     pTbOrg;
 } IEMRECOMPILERSTATE;
 /** Pointer to a native recompiler state. */
