Changeset 101369 in vbox
- Timestamp:
- Oct 6, 2023 1:22:15 AM (16 months ago)
- Location:
- trunk/src/VBox
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/idl/VirtualBox.xidl
r101318 r101369 284 284 </cpp> 285 285 </if> 286 287 <!-- 288 Macros for helping with constructing guest OS type ID strings for the 289 different architectures. 290 --> 291 <cpp line="#define GUEST_OS_ID_STR_X86(a_szOSid) a_szOSid"/> 292 <cpp line="#if 0 /** @todo r=bird: revert to legacy naming: */"/> 293 <cpp line="#define GUEST_OS_ID_STR_X64(a_szOSid) a_szOSid "_64""/> 294 <cpp line="#else"/> 295 <cpp line="#define GUEST_OS_ID_STR_X64(a_szOSid) a_szOSid "_x64""/> 296 <cpp line="#endif"/> 297 <cpp line="#define GUEST_OS_ID_STR_A32(a_szOSid) a_szOSid "_arm32""/> 298 <cpp line="#define GUEST_OS_ID_STR_A64(a_szOSid) a_szOSid "_arm64""/> 299 <cpp line="#define GUEST_OS_ID_STR_AMD64(a_szOSid) GUEST_OS_ID_STR_X64(a_szOSid)"/> 300 <cpp line="#define GUEST_OS_ID_STR_ARM32(a_szOSid) GUEST_OS_ID_STR_A32(a_szOSid)"/> 301 <cpp line="#define GUEST_OS_ID_STR_ARM64(a_szOSid) GUEST_OS_ID_STR_A64(a_szOSid)"/> 286 302 287 303 <!-- -
trunk/src/VBox/Main/src-all/Global.cpp
r101367 r101369 44 44 #define VBOX_OSTYPE_ARM32(a_OStype) VBOXOSTYPE_ ## a_OStype ## _arm32 45 45 #define VBOX_OSTYPE_ARM64(a_OStype) VBOXOSTYPE_ ## a_OStype ## _arm64 46 47 /** @todo r=bird: These macros should move to VBox/cdefs.h or a similarly easily48 * accessible file, so that the GUI can make use of them too. */49 /* Note: Keep this naming for legacy reasons. Always meant x86 (32-bit). */50 #define GUEST_OS_ID_STR_X86(a_szOSid) a_szOSid51 #if 0 /** @todo r=bird: revert to legacy naming: */52 #define GUEST_OS_ID_STR_X64(a_szOSid) a_szOSid "_64"53 #else54 #define GUEST_OS_ID_STR_X64(a_szOSid) a_szOSid "_x64"55 #endif56 /* New since VBox 7.1. */57 #define GUEST_OS_ID_STR_A32(a_szOSid) a_szOSid "_arm32"58 /* New since VBox 7.1. */59 #define GUEST_OS_ID_STR_A64(a_szOSid) a_szOSid "_arm64"60 46 61 47 /* static */ -
trunk/src/VBox/VMM/VMMAll/IEMAllInstPython.py
r100856 r101369 2601 2601 ## IEM_MC_XXX -> parser + info dictionary. 2602 2602 # 2603 # The info is currently a single boolean entry indicating whether the 2604 # statement modifies state and must not be used before IEMOP_HL_DONE_*. 2603 # The info columns: 2604 # - col 0: boolean entry indicating whether the statement modifies state and 2605 # must not be used before IEMOP_HL_DONE_*. 2606 # - col 1: boolean entry indicating native recompiler support. 2605 2607 # 2606 2608 # The raw table was generated via the following command … … 2608 2610 # | sort | uniq | gawk "{printf """ %%-60s (%%s, True)\n""", $1, $2}" 2609 2611 g_dMcStmtParsers = { 2610 'IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE': (McBlock.parseMcGeneric, False ),2611 'IEM_MC_ACTUALIZE_AVX_STATE_FOR_READ': (McBlock.parseMcGeneric, False ),2612 'IEM_MC_ACTUALIZE_FPU_STATE_FOR_CHANGE': (McBlock.parseMcGeneric, False ),2613 'IEM_MC_ACTUALIZE_FPU_STATE_FOR_READ': (McBlock.parseMcGeneric, False ),2614 'IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE': (McBlock.parseMcGeneric, False ),2615 'IEM_MC_ACTUALIZE_SSE_STATE_FOR_READ': (McBlock.parseMcGeneric, False ),2616 'IEM_MC_ADD_GREG_U16': (McBlock.parseMcGeneric, True ),2617 'IEM_MC_ADD_GREG_U16_TO_LOCAL': (McBlock.parseMcGeneric, False ),2618 'IEM_MC_ADD_GREG_U32': (McBlock.parseMcGeneric, True ),2619 'IEM_MC_ADD_GREG_U32_TO_LOCAL': (McBlock.parseMcGeneric, False ),2620 'IEM_MC_ADD_GREG_U64': (McBlock.parseMcGeneric, True ),2621 'IEM_MC_ADD_GREG_U64_TO_LOCAL': (McBlock.parseMcGeneric, False ),2622 'IEM_MC_ADD_GREG_U8': (McBlock.parseMcGeneric, True ),2623 'IEM_MC_ADD_GREG_U8_TO_LOCAL': (McBlock.parseMcGeneric, False ),2624 'IEM_MC_ADD_LOCAL_S16_TO_EFF_ADDR': (McBlock.parseMcGeneric, True ),2625 'IEM_MC_ADD_LOCAL_S32_TO_EFF_ADDR': (McBlock.parseMcGeneric, True ),2626 'IEM_MC_ADD_LOCAL_S64_TO_EFF_ADDR': (McBlock.parseMcGeneric, True ),2627 'IEM_MC_ADVANCE_RIP_AND_FINISH': (McBlock.parseMcGeneric, True ),2628 'IEM_MC_AND_2LOCS_U32': (McBlock.parseMcGeneric, False ),2629 'IEM_MC_AND_ARG_U16': (McBlock.parseMcGeneric, False ),2630 'IEM_MC_AND_ARG_U32': (McBlock.parseMcGeneric, False ),2631 'IEM_MC_AND_ARG_U64': (McBlock.parseMcGeneric, False ),2632 'IEM_MC_AND_GREG_U16': (McBlock.parseMcGeneric, True ),2633 'IEM_MC_AND_GREG_U32': (McBlock.parseMcGeneric, True ),2634 'IEM_MC_AND_GREG_U64': (McBlock.parseMcGeneric, True ),2635 'IEM_MC_AND_GREG_U8': (McBlock.parseMcGeneric, True ),2636 'IEM_MC_AND_LOCAL_U16': (McBlock.parseMcGeneric, False ),2637 'IEM_MC_AND_LOCAL_U32': (McBlock.parseMcGeneric, False ),2638 'IEM_MC_AND_LOCAL_U64': (McBlock.parseMcGeneric, False ),2639 'IEM_MC_AND_LOCAL_U8': (McBlock.parseMcGeneric, False ),2640 'IEM_MC_ARG': (McBlock.parseMcArg, False ),2641 'IEM_MC_ARG_CONST': (McBlock.parseMcArgConst, False ),2642 'IEM_MC_ARG_LOCAL_EFLAGS': (McBlock.parseMcArgLocalEFlags, False ),2643 'IEM_MC_ARG_LOCAL_REF': (McBlock.parseMcArgLocalRef, False ),2644 'IEM_MC_ASSIGN': (McBlock.parseMcGeneric, False ),2645 'IEM_MC_ASSIGN_TO_SMALLER': (McBlock.parseMcGeneric, False ),2646 'IEM_MC_ASSIGN_U8_SX_U64': (McBlock.parseMcGeneric, False ),2647 'IEM_MC_ASSIGN_U32_SX_U64': (McBlock.parseMcGeneric, False ),2648 'IEM_MC_BEGIN': (McBlock.parseMcBegin, False ),2649 'IEM_MC_BROADCAST_XREG_U16_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2650 'IEM_MC_BROADCAST_XREG_U32_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2651 'IEM_MC_BROADCAST_XREG_U64_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2652 'IEM_MC_BROADCAST_XREG_U8_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2653 'IEM_MC_BROADCAST_YREG_U128_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2654 'IEM_MC_BROADCAST_YREG_U16_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2655 'IEM_MC_BROADCAST_YREG_U32_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2656 'IEM_MC_BROADCAST_YREG_U64_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2657 'IEM_MC_BROADCAST_YREG_U8_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2658 'IEM_MC_BSWAP_LOCAL_U16': (McBlock.parseMcGeneric, False ),2659 'IEM_MC_BSWAP_LOCAL_U32': (McBlock.parseMcGeneric, False ),2660 'IEM_MC_BSWAP_LOCAL_U64': (McBlock.parseMcGeneric, False ),2661 'IEM_MC_CALC_RM_EFF_ADDR': (McBlock.parseMcGeneric, False ),2662 'IEM_MC_CALL_AIMPL_3': (McBlock.parseMcCallAImpl, True ),2663 'IEM_MC_CALL_AIMPL_4': (McBlock.parseMcCallAImpl, True ),2664 'IEM_MC_CALL_AVX_AIMPL_2': (McBlock.parseMcCallAvxAImpl, True ),2665 'IEM_MC_CALL_AVX_AIMPL_3': (McBlock.parseMcCallAvxAImpl, True ),2666 'IEM_MC_CALL_CIMPL_0': (McBlock.parseMcCallCImpl, True ),2667 'IEM_MC_CALL_CIMPL_1': (McBlock.parseMcCallCImpl, True ),2668 'IEM_MC_CALL_CIMPL_2': (McBlock.parseMcCallCImpl, True ),2669 'IEM_MC_CALL_CIMPL_3': (McBlock.parseMcCallCImpl, True ),2670 'IEM_MC_CALL_CIMPL_4': (McBlock.parseMcCallCImpl, True ),2671 'IEM_MC_CALL_CIMPL_5': (McBlock.parseMcCallCImpl, True ),2672 'IEM_MC_CALL_FPU_AIMPL_1': (McBlock.parseMcCallFpuAImpl, True ),2673 'IEM_MC_CALL_FPU_AIMPL_2': (McBlock.parseMcCallFpuAImpl, True ),2674 'IEM_MC_CALL_FPU_AIMPL_3': (McBlock.parseMcCallFpuAImpl, True ),2675 'IEM_MC_CALL_MMX_AIMPL_2': (McBlock.parseMcCallMmxAImpl, True ),2676 'IEM_MC_CALL_MMX_AIMPL_3': (McBlock.parseMcCallMmxAImpl, True ),2677 'IEM_MC_CALL_SSE_AIMPL_2': (McBlock.parseMcCallSseAImpl, True ),2678 'IEM_MC_CALL_SSE_AIMPL_3': (McBlock.parseMcCallSseAImpl, True ),2679 'IEM_MC_CALL_VOID_AIMPL_0': (McBlock.parseMcCallVoidAImpl, True ),2680 'IEM_MC_CALL_VOID_AIMPL_1': (McBlock.parseMcCallVoidAImpl, True ),2681 'IEM_MC_CALL_VOID_AIMPL_2': (McBlock.parseMcCallVoidAImpl, True ),2682 'IEM_MC_CALL_VOID_AIMPL_3': (McBlock.parseMcCallVoidAImpl, True ),2683 'IEM_MC_CALL_VOID_AIMPL_4': (McBlock.parseMcCallVoidAImpl, True ),2684 'IEM_MC_CLEAR_EFL_BIT': (McBlock.parseMcGeneric, True ),2685 'IEM_MC_CLEAR_FSW_EX': (McBlock.parseMcGeneric, True ),2686 'IEM_MC_CLEAR_HIGH_GREG_U64': (McBlock.parseMcGeneric, True ),2687 'IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF': (McBlock.parseMcGeneric, True ),2688 'IEM_MC_CLEAR_XREG_U32_MASK': (McBlock.parseMcGeneric, True ),2689 'IEM_MC_CLEAR_YREG_128_UP': (McBlock.parseMcGeneric, True ),2690 'IEM_MC_COMMIT_EFLAGS': (McBlock.parseMcGeneric, True ),2691 'IEM_MC_COPY_XREG_U128': (McBlock.parseMcGeneric, True ),2692 'IEM_MC_COPY_YREG_U128_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2693 'IEM_MC_COPY_YREG_U256_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2694 'IEM_MC_COPY_YREG_U64_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2695 'IEM_MC_DEFER_TO_CIMPL_0_RET': (McBlock.parseMcGeneric, False ),2696 'IEM_MC_DEFER_TO_CIMPL_1_RET': (McBlock.parseMcGeneric, False ),2697 'IEM_MC_DEFER_TO_CIMPL_2_RET': (McBlock.parseMcGeneric, False ),2698 'IEM_MC_DEFER_TO_CIMPL_3_RET': (McBlock.parseMcGeneric, False ),2699 'IEM_MC_END': (McBlock.parseMcGeneric, True ),2700 'IEM_MC_FETCH_EFLAGS': (McBlock.parseMcGeneric, False ),2701 'IEM_MC_FETCH_EFLAGS_U8': (McBlock.parseMcGeneric, False ),2702 'IEM_MC_FETCH_FCW': (McBlock.parseMcGeneric, False ),2703 'IEM_MC_FETCH_FSW': (McBlock.parseMcGeneric, False ),2704 'IEM_MC_FETCH_GREG_U16': (McBlock.parseMcGeneric, False ),2705 'IEM_MC_FETCH_GREG_U16_SX_U32': (McBlock.parseMcGeneric, False ),2706 'IEM_MC_FETCH_GREG_U16_SX_U64': (McBlock.parseMcGeneric, False ),2707 'IEM_MC_FETCH_GREG_U16_ZX_U32': (McBlock.parseMcGeneric, False ),2708 'IEM_MC_FETCH_GREG_U16_ZX_U64': (McBlock.parseMcGeneric, False ),2709 'IEM_MC_FETCH_GREG_U32': (McBlock.parseMcGeneric, False ),2710 'IEM_MC_FETCH_GREG_U32_SX_U64': (McBlock.parseMcGeneric, False ),2711 'IEM_MC_FETCH_GREG_U32_ZX_U64': (McBlock.parseMcGeneric, False ),2712 'IEM_MC_FETCH_GREG_U64': (McBlock.parseMcGeneric, False ),2713 'IEM_MC_FETCH_GREG_U64_ZX_U64': (McBlock.parseMcGeneric, False ),2714 'IEM_MC_FETCH_GREG_U8': (McBlock.parseMcGeneric, False ),2715 'IEM_MC_FETCH_GREG_U8_SX_U16': (McBlock.parseMcGeneric, False ),2716 'IEM_MC_FETCH_GREG_U8_SX_U32': (McBlock.parseMcGeneric, False ),2717 'IEM_MC_FETCH_GREG_U8_SX_U64': (McBlock.parseMcGeneric, False ),2718 'IEM_MC_FETCH_GREG_U8_ZX_U16': (McBlock.parseMcGeneric, False ),2719 'IEM_MC_FETCH_GREG_U8_ZX_U32': (McBlock.parseMcGeneric, False ),2720 'IEM_MC_FETCH_GREG_U8_ZX_U64': (McBlock.parseMcGeneric, False ),2721 'IEM_MC_FETCH_MEM_D80': (McBlock.parseMcGeneric, True ),2722 'IEM_MC_FETCH_MEM_I16': (McBlock.parseMcGeneric, True ),2723 'IEM_MC_FETCH_MEM_I32': (McBlock.parseMcGeneric, True ),2724 'IEM_MC_FETCH_MEM_I64': (McBlock.parseMcGeneric, True ),2725 'IEM_MC_FETCH_MEM_R32': (McBlock.parseMcGeneric, True ),2726 'IEM_MC_FETCH_MEM_R64': (McBlock.parseMcGeneric, True ),2727 'IEM_MC_FETCH_MEM_R80': (McBlock.parseMcGeneric, True ),2728 'IEM_MC_FETCH_MEM_S32_SX_U64': (McBlock.parseMcGeneric, True ),2729 'IEM_MC_FETCH_MEM_U128': (McBlock.parseMcGeneric, True ),2730 'IEM_MC_FETCH_MEM_U128_ALIGN_SSE': (McBlock.parseMcGeneric, True ),2731 'IEM_MC_FETCH_MEM_U128_NO_AC': (McBlock.parseMcGeneric, True ),2732 'IEM_MC_FETCH_MEM_U16': (McBlock.parseMcGeneric, True ),2733 'IEM_MC_FETCH_MEM_U16_DISP': (McBlock.parseMcGeneric, True ),2734 'IEM_MC_FETCH_MEM_U16_SX_U32': (McBlock.parseMcGeneric, True ),2735 'IEM_MC_FETCH_MEM_U16_SX_U64': (McBlock.parseMcGeneric, True ),2736 'IEM_MC_FETCH_MEM_U16_ZX_U32': (McBlock.parseMcGeneric, True ),2737 'IEM_MC_FETCH_MEM_U16_ZX_U64': (McBlock.parseMcGeneric, True ),2738 'IEM_MC_FETCH_MEM_U256': (McBlock.parseMcGeneric, True ),2739 'IEM_MC_FETCH_MEM_U256_ALIGN_AVX': (McBlock.parseMcGeneric, True ),2740 'IEM_MC_FETCH_MEM_U256_NO_AC': (McBlock.parseMcGeneric, True ),2741 'IEM_MC_FETCH_MEM_U32': (McBlock.parseMcGeneric, True ),2742 'IEM_MC_FETCH_MEM_U32_DISP': (McBlock.parseMcGeneric, True ),2743 'IEM_MC_FETCH_MEM_U32_SX_U64': (McBlock.parseMcGeneric, True ),2744 'IEM_MC_FETCH_MEM_U32_ZX_U64': (McBlock.parseMcGeneric, True ),2745 'IEM_MC_FETCH_MEM_U64': (McBlock.parseMcGeneric, True ),2746 'IEM_MC_FETCH_MEM_U64_ALIGN_U128': (McBlock.parseMcGeneric, True ),2747 'IEM_MC_FETCH_MEM_U64_DISP': (McBlock.parseMcGeneric, True ),2748 'IEM_MC_FETCH_MEM_U8': (McBlock.parseMcGeneric, True ),2749 'IEM_MC_FETCH_MEM_U8_SX_U16': (McBlock.parseMcGeneric, True ),2750 'IEM_MC_FETCH_MEM_U8_SX_U32': (McBlock.parseMcGeneric, True ),2751 'IEM_MC_FETCH_MEM_U8_SX_U64': (McBlock.parseMcGeneric, True ),2752 'IEM_MC_FETCH_MEM_U8_ZX_U16': (McBlock.parseMcGeneric, True ),2753 'IEM_MC_FETCH_MEM_U8_ZX_U32': (McBlock.parseMcGeneric, True ),2754 'IEM_MC_FETCH_MEM_U8_ZX_U64': (McBlock.parseMcGeneric, True ),2755 'IEM_MC_FETCH_MEM_XMM': (McBlock.parseMcGeneric, True ),2756 'IEM_MC_FETCH_MEM_XMM_ALIGN_SSE': (McBlock.parseMcGeneric, True ),2757 'IEM_MC_FETCH_MEM_XMM_NO_AC': (McBlock.parseMcGeneric, True ),2758 'IEM_MC_FETCH_MEM_XMM_U32': (McBlock.parseMcGeneric, True ),2759 'IEM_MC_FETCH_MEM_XMM_U64': (McBlock.parseMcGeneric, True ),2760 'IEM_MC_FETCH_MEM_YMM': (McBlock.parseMcGeneric, True ),2761 'IEM_MC_FETCH_MEM_YMM_ALIGN_AVX': (McBlock.parseMcGeneric, True ),2762 'IEM_MC_FETCH_MEM_YMM_NO_AC': (McBlock.parseMcGeneric, True ),2763 'IEM_MC_FETCH_MEM16_U8': (McBlock.parseMcGeneric, True ),2764 'IEM_MC_FETCH_MEM32_U8': (McBlock.parseMcGeneric, True ),2765 'IEM_MC_FETCH_MREG_U32': (McBlock.parseMcGeneric, False ),2766 'IEM_MC_FETCH_MREG_U64': (McBlock.parseMcGeneric, False ),2767 'IEM_MC_FETCH_SREG_BASE_U32': (McBlock.parseMcGeneric, False ),2768 'IEM_MC_FETCH_SREG_BASE_U64': (McBlock.parseMcGeneric, False ),2769 'IEM_MC_FETCH_SREG_U16': (McBlock.parseMcGeneric, False ),2770 'IEM_MC_FETCH_SREG_ZX_U32': (McBlock.parseMcGeneric, False ),2771 'IEM_MC_FETCH_SREG_ZX_U64': (McBlock.parseMcGeneric, False ),2772 'IEM_MC_FETCH_XREG_U128': (McBlock.parseMcGeneric, False ),2773 'IEM_MC_FETCH_XREG_U16': (McBlock.parseMcGeneric, False ),2774 'IEM_MC_FETCH_XREG_U32': (McBlock.parseMcGeneric, False ),2775 'IEM_MC_FETCH_XREG_U64': (McBlock.parseMcGeneric, False ),2776 'IEM_MC_FETCH_XREG_U8': (McBlock.parseMcGeneric, False ),2777 'IEM_MC_FETCH_XREG_XMM': (McBlock.parseMcGeneric, False ),2778 'IEM_MC_FETCH_YREG_2ND_U64': (McBlock.parseMcGeneric, False ),2779 'IEM_MC_FETCH_YREG_U128': (McBlock.parseMcGeneric, False ),2780 'IEM_MC_FETCH_YREG_U256': (McBlock.parseMcGeneric, False ),2781 'IEM_MC_FETCH_YREG_U32': (McBlock.parseMcGeneric, False ),2782 'IEM_MC_FETCH_YREG_U64': (McBlock.parseMcGeneric, False ),2783 'IEM_MC_FLIP_EFL_BIT': (McBlock.parseMcGeneric, True ),2784 'IEM_MC_FPU_FROM_MMX_MODE': (McBlock.parseMcGeneric, True ),2785 'IEM_MC_FPU_STACK_DEC_TOP': (McBlock.parseMcGeneric, True ),2786 'IEM_MC_FPU_STACK_FREE': (McBlock.parseMcGeneric, True ),2787 'IEM_MC_FPU_STACK_INC_TOP': (McBlock.parseMcGeneric, True ),2788 'IEM_MC_FPU_STACK_PUSH_OVERFLOW': (McBlock.parseMcGeneric, True ),2789 'IEM_MC_FPU_STACK_PUSH_OVERFLOW_MEM_OP': (McBlock.parseMcGeneric, True ),2790 'IEM_MC_FPU_STACK_PUSH_UNDERFLOW': (McBlock.parseMcGeneric, True ),2791 'IEM_MC_FPU_STACK_PUSH_UNDERFLOW_TWO': (McBlock.parseMcGeneric, True ),2792 'IEM_MC_FPU_STACK_UNDERFLOW': (McBlock.parseMcGeneric, True ),2793 'IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP': (McBlock.parseMcGeneric, True ),2794 'IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP': (McBlock.parseMcGeneric, True ),2795 'IEM_MC_FPU_STACK_UNDERFLOW_THEN_POP': (McBlock.parseMcGeneric, True ),2796 'IEM_MC_FPU_STACK_UNDERFLOW_THEN_POP_POP': (McBlock.parseMcGeneric, True ),2797 'IEM_MC_FPU_TO_MMX_MODE': (McBlock.parseMcGeneric, True ),2798 'IEM_MC_IF_CX_IS_NZ': (McBlock.parseMcGenericCond, True ),2799 'IEM_MC_IF_CX_IS_NZ_AND_EFL_BIT_NOT_SET': (McBlock.parseMcGenericCond, True ),2800 'IEM_MC_IF_CX_IS_NZ_AND_EFL_BIT_SET': (McBlock.parseMcGenericCond, True ),2801 'IEM_MC_IF_ECX_IS_NZ': (McBlock.parseMcGenericCond, True ),2802 'IEM_MC_IF_ECX_IS_NZ_AND_EFL_BIT_NOT_SET': (McBlock.parseMcGenericCond, True ),2803 'IEM_MC_IF_ECX_IS_NZ_AND_EFL_BIT_SET': (McBlock.parseMcGenericCond, True ),2804 'IEM_MC_IF_EFL_ANY_BITS_SET': (McBlock.parseMcGenericCond, True ),2805 'IEM_MC_IF_EFL_BIT_NOT_SET': (McBlock.parseMcGenericCond, True ),2806 'IEM_MC_IF_EFL_BIT_NOT_SET_AND_BITS_EQ': (McBlock.parseMcGenericCond, True ),2807 'IEM_MC_IF_EFL_BIT_SET': (McBlock.parseMcGenericCond, True ),2808 'IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE': (McBlock.parseMcGenericCond, True ),2809 'IEM_MC_IF_EFL_BITS_EQ': (McBlock.parseMcGenericCond, True ),2810 'IEM_MC_IF_EFL_BITS_NE': (McBlock.parseMcGenericCond, True ),2811 'IEM_MC_IF_EFL_NO_BITS_SET': (McBlock.parseMcGenericCond, True ),2812 'IEM_MC_IF_FCW_IM': (McBlock.parseMcGenericCond, True ),2813 'IEM_MC_IF_FPUREG_IS_EMPTY': (McBlock.parseMcGenericCond, True ),2814 'IEM_MC_IF_FPUREG_NOT_EMPTY': (McBlock.parseMcGenericCond, True ),2815 'IEM_MC_IF_FPUREG_NOT_EMPTY_REF_R80': (McBlock.parseMcGenericCond, True ),2816 'IEM_MC_IF_GREG_BIT_SET': (McBlock.parseMcGenericCond, True ),2817 'IEM_MC_IF_LOCAL_IS_Z': (McBlock.parseMcGenericCond, True ),2818 'IEM_MC_IF_MXCSR_XCPT_PENDING': (McBlock.parseMcGenericCond, True ),2819 'IEM_MC_IF_RCX_IS_NZ': (McBlock.parseMcGenericCond, True ),2820 'IEM_MC_IF_RCX_IS_NZ_AND_EFL_BIT_NOT_SET': (McBlock.parseMcGenericCond, True ),2821 'IEM_MC_IF_RCX_IS_NZ_AND_EFL_BIT_SET': (McBlock.parseMcGenericCond, True ),2822 'IEM_MC_IF_TWO_FPUREGS_NOT_EMPTY_REF_R80': (McBlock.parseMcGenericCond, True ),2823 'IEM_MC_IF_TWO_FPUREGS_NOT_EMPTY_REF_R80_FIRST': (McBlock.parseMcGenericCond, True ),2824 'IEM_MC_IMPLICIT_AVX_AIMPL_ARGS': (McBlock.parseMcGeneric, False ),2825 'IEM_MC_INT_CLEAR_ZMM_256_UP': (McBlock.parseMcGeneric, True ),2826 'IEM_MC_LOCAL': (McBlock.parseMcLocal, False ),2827 'IEM_MC_LOCAL_CONST': (McBlock.parseMcLocalConst, False ),2828 'IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT': (McBlock.parseMcGeneric, True ),2829 'IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE': (McBlock.parseMcGeneric, True ),2830 'IEM_MC_MAYBE_RAISE_FPU_XCPT': (McBlock.parseMcGeneric, True ),2831 'IEM_MC_MAYBE_RAISE_FSGSBASE_XCPT': (McBlock.parseMcGeneric, True ),2832 'IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT': (McBlock.parseMcGeneric, True ),2833 'IEM_MC_MAYBE_RAISE_NON_CANONICAL_ADDR_GP0': (McBlock.parseMcGeneric, True ),2834 'IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT': (McBlock.parseMcGeneric, True ),2835 'IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT': (McBlock.parseMcGeneric, True ),2836 'IEM_MC_MAYBE_RAISE_WAIT_DEVICE_NOT_AVAILABLE': (McBlock.parseMcGeneric, True ),2837 'IEM_MC_MEM_COMMIT_AND_UNMAP': (McBlock.parseMcGeneric, True ),2838 'IEM_MC_MEM_COMMIT_AND_UNMAP_RW': (McBlock.parseMcGeneric, True ),2839 'IEM_MC_MEM_COMMIT_AND_UNMAP_RO': (McBlock.parseMcGeneric, True ),2840 'IEM_MC_MEM_COMMIT_AND_UNMAP_WO': (McBlock.parseMcGeneric, True ),2841 'IEM_MC_MEM_COMMIT_AND_UNMAP_FOR_FPU_STORE': (McBlock.parseMcGeneric, True ),2842 'IEM_MC_MEM_MAP': (McBlock.parseMcGeneric, True ),2843 'IEM_MC_MEM_MAP_EX': (McBlock.parseMcGeneric, True ),2844 'IEM_MC_MEM_MAP_U8_RW': (McBlock.parseMcGeneric, True ),2845 'IEM_MC_MEM_MAP_U8_RO': (McBlock.parseMcGeneric, True ),2846 'IEM_MC_MEM_MAP_U8_WO': (McBlock.parseMcGeneric, True ),2847 'IEM_MC_MEM_MAP_U16_RW': (McBlock.parseMcGeneric, True ),2848 'IEM_MC_MEM_MAP_U16_RO': (McBlock.parseMcGeneric, True ),2849 'IEM_MC_MEM_MAP_U16_WO': (McBlock.parseMcGeneric, True ),2850 'IEM_MC_MEM_MAP_U32_RW': (McBlock.parseMcGeneric, True ),2851 'IEM_MC_MEM_MAP_U32_RO': (McBlock.parseMcGeneric, True ),2852 'IEM_MC_MEM_MAP_U32_WO': (McBlock.parseMcGeneric, True ),2853 'IEM_MC_MEM_MAP_U64_RW': (McBlock.parseMcGeneric, True ),2854 'IEM_MC_MEM_MAP_U64_RO': (McBlock.parseMcGeneric, True ),2855 'IEM_MC_MEM_MAP_U64_WO': (McBlock.parseMcGeneric, True ),2856 'IEM_MC_MERGE_YREG_U32_U96_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2857 'IEM_MC_MERGE_YREG_U64_U64_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2858 'IEM_MC_MERGE_YREG_U64HI_U64HI_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2859 'IEM_MC_MERGE_YREG_U64LO_U64LO_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2860 'IEM_MC_MERGE_YREG_U64LO_U64LOCAL_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2861 'IEM_MC_MERGE_YREG_U64LOCAL_U64HI_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2862 'IEM_MC_MODIFIED_MREG': (McBlock.parseMcGeneric, True ),2863 'IEM_MC_MODIFIED_MREG_BY_REF': (McBlock.parseMcGeneric, True ),2864 'IEM_MC_OR_2LOCS_U32': (McBlock.parseMcGeneric, False ),2865 'IEM_MC_OR_GREG_U16': (McBlock.parseMcGeneric, True ),2866 'IEM_MC_OR_GREG_U32': (McBlock.parseMcGeneric, True ),2867 'IEM_MC_OR_GREG_U64': (McBlock.parseMcGeneric, True ),2868 'IEM_MC_OR_GREG_U8': (McBlock.parseMcGeneric, True ),2869 'IEM_MC_OR_LOCAL_U16': (McBlock.parseMcGeneric, False ),2870 'IEM_MC_OR_LOCAL_U32': (McBlock.parseMcGeneric, False ),2871 'IEM_MC_OR_LOCAL_U8': (McBlock.parseMcGeneric, False ),2872 'IEM_MC_POP_U16': (McBlock.parseMcGeneric, True ),2873 'IEM_MC_POP_U32': (McBlock.parseMcGeneric, True ),2874 'IEM_MC_POP_U64': (McBlock.parseMcGeneric, True ),2875 'IEM_MC_PREPARE_AVX_USAGE': (McBlock.parseMcGeneric, False ),2876 'IEM_MC_PREPARE_FPU_USAGE': (McBlock.parseMcGeneric, False ),2877 'IEM_MC_PREPARE_SSE_USAGE': (McBlock.parseMcGeneric, False ),2878 'IEM_MC_PUSH_FPU_RESULT': (McBlock.parseMcGeneric, True ),2879 'IEM_MC_PUSH_FPU_RESULT_MEM_OP': (McBlock.parseMcGeneric, True ),2880 'IEM_MC_PUSH_FPU_RESULT_TWO': (McBlock.parseMcGeneric, True ),2881 'IEM_MC_PUSH_U16': (McBlock.parseMcGeneric, True ),2882 'IEM_MC_PUSH_U32': (McBlock.parseMcGeneric, True ),2883 'IEM_MC_PUSH_U32_SREG': (McBlock.parseMcGeneric, True ),2884 'IEM_MC_PUSH_U64': (McBlock.parseMcGeneric, True ),2885 'IEM_MC_RAISE_DIVIDE_ERROR': (McBlock.parseMcGeneric, True ),2886 'IEM_MC_RAISE_GP0_IF_CPL_NOT_ZERO': (McBlock.parseMcGeneric, True ),2887 'IEM_MC_RAISE_GP0_IF_EFF_ADDR_UNALIGNED': (McBlock.parseMcGeneric, True ),2888 'IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT': (McBlock.parseMcGeneric, True ),2889 'IEM_MC_REF_EFLAGS': (McBlock.parseMcGeneric, False ),2890 'IEM_MC_REF_FPUREG': (McBlock.parseMcGeneric, False ),2891 'IEM_MC_REF_GREG_I32': (McBlock.parseMcGeneric, False ),2892 'IEM_MC_REF_GREG_I32_CONST': (McBlock.parseMcGeneric, False ),2893 'IEM_MC_REF_GREG_I64': (McBlock.parseMcGeneric, False ),2894 'IEM_MC_REF_GREG_I64_CONST': (McBlock.parseMcGeneric, False ),2895 'IEM_MC_REF_GREG_U16': (McBlock.parseMcGeneric, False ),2896 'IEM_MC_REF_GREG_U16_CONST': (McBlock.parseMcGeneric, False ),2897 'IEM_MC_REF_GREG_U32': (McBlock.parseMcGeneric, False ),2898 'IEM_MC_REF_GREG_U32_CONST': (McBlock.parseMcGeneric, False ),2899 'IEM_MC_REF_GREG_U64': (McBlock.parseMcGeneric, False ),2900 'IEM_MC_REF_GREG_U64_CONST': (McBlock.parseMcGeneric, False ),2901 'IEM_MC_REF_GREG_U8': (McBlock.parseMcGeneric, False ),2902 'IEM_MC_REF_GREG_U8_CONST': (McBlock.parseMcGeneric, False ),2903 'IEM_MC_REF_LOCAL': (McBlock.parseMcGeneric, False ),2904 'IEM_MC_REF_MREG_U32_CONST': (McBlock.parseMcGeneric, False ),2905 'IEM_MC_REF_MREG_U64': (McBlock.parseMcGeneric, False ),2906 'IEM_MC_REF_MREG_U64_CONST': (McBlock.parseMcGeneric, False ),2907 'IEM_MC_REF_MXCSR': (McBlock.parseMcGeneric, False ),2908 'IEM_MC_REF_XREG_R32_CONST': (McBlock.parseMcGeneric, False ),2909 'IEM_MC_REF_XREG_R64_CONST': (McBlock.parseMcGeneric, False ),2910 'IEM_MC_REF_XREG_U128': (McBlock.parseMcGeneric, False ),2911 'IEM_MC_REF_XREG_U128_CONST': (McBlock.parseMcGeneric, False ),2912 'IEM_MC_REF_XREG_U32_CONST': (McBlock.parseMcGeneric, False ),2913 'IEM_MC_REF_XREG_U64_CONST': (McBlock.parseMcGeneric, False ),2914 'IEM_MC_REF_XREG_XMM_CONST': (McBlock.parseMcGeneric, False ),2915 'IEM_MC_REF_YREG_U128': (McBlock.parseMcGeneric, False ),2916 'IEM_MC_REF_YREG_U128_CONST': (McBlock.parseMcGeneric, False ),2917 'IEM_MC_REF_YREG_U64_CONST': (McBlock.parseMcGeneric, False ),2918 'IEM_MC_REL_JMP_S16_AND_FINISH': (McBlock.parseMcGeneric, True ),2919 'IEM_MC_REL_JMP_S32_AND_FINISH': (McBlock.parseMcGeneric, True ),2920 'IEM_MC_REL_JMP_S8_AND_FINISH': (McBlock.parseMcGeneric, True ),2921 'IEM_MC_RETURN_ON_FAILURE': (McBlock.parseMcGeneric, False ),2922 'IEM_MC_SAR_LOCAL_S16': (McBlock.parseMcGeneric, False ),2923 'IEM_MC_SAR_LOCAL_S32': (McBlock.parseMcGeneric, False ),2924 'IEM_MC_SAR_LOCAL_S64': (McBlock.parseMcGeneric, False ),2925 'IEM_MC_SET_EFL_BIT': (McBlock.parseMcGeneric, True ),2926 'IEM_MC_SET_FPU_RESULT': (McBlock.parseMcGeneric, True ),2927 'IEM_MC_SET_RIP_U16_AND_FINISH': (McBlock.parseMcGeneric, True ),2928 'IEM_MC_SET_RIP_U32_AND_FINISH': (McBlock.parseMcGeneric, True ),2929 'IEM_MC_SET_RIP_U64_AND_FINISH': (McBlock.parseMcGeneric, True ),2930 'IEM_MC_SHL_LOCAL_S16': (McBlock.parseMcGeneric, False ),2931 'IEM_MC_SHL_LOCAL_S32': (McBlock.parseMcGeneric, False ),2932 'IEM_MC_SHL_LOCAL_S64': (McBlock.parseMcGeneric, False ),2933 'IEM_MC_SHR_LOCAL_U8': (McBlock.parseMcGeneric, False ),2934 'IEM_MC_SSE_UPDATE_MXCSR': (McBlock.parseMcGeneric, True ),2935 'IEM_MC_STORE_FPU_RESULT': (McBlock.parseMcGeneric, True ),2936 'IEM_MC_STORE_FPU_RESULT_MEM_OP': (McBlock.parseMcGeneric, True ),2937 'IEM_MC_STORE_FPU_RESULT_THEN_POP': (McBlock.parseMcGeneric, True ),2938 'IEM_MC_STORE_FPU_RESULT_WITH_MEM_OP_THEN_POP': (McBlock.parseMcGeneric, True ),2939 'IEM_MC_STORE_FPUREG_R80_SRC_REF': (McBlock.parseMcGeneric, True ),2940 'IEM_MC_STORE_GREG_I64': (McBlock.parseMcGeneric, True ),2941 'IEM_MC_STORE_GREG_U16': (McBlock.parseMcGeneric, True ),2942 'IEM_MC_STORE_GREG_U16_CONST': (McBlock.parseMcGeneric, True ),2943 'IEM_MC_STORE_GREG_U32': (McBlock.parseMcGeneric, True ),2944 'IEM_MC_STORE_GREG_U32_CONST': (McBlock.parseMcGeneric, True ),2945 'IEM_MC_STORE_GREG_U64': (McBlock.parseMcGeneric, True ),2946 'IEM_MC_STORE_GREG_U64_CONST': (McBlock.parseMcGeneric, True ),2947 'IEM_MC_STORE_GREG_U8': (McBlock.parseMcGeneric, True ),2948 'IEM_MC_STORE_GREG_U8_CONST': (McBlock.parseMcGeneric, True ),2949 'IEM_MC_STORE_MEM_I16_CONST_BY_REF': (McBlock.parseMcGeneric, True ),2950 'IEM_MC_STORE_MEM_I32_CONST_BY_REF': (McBlock.parseMcGeneric, True ),2951 'IEM_MC_STORE_MEM_I64_CONST_BY_REF': (McBlock.parseMcGeneric, True ),2952 'IEM_MC_STORE_MEM_I8_CONST_BY_REF': (McBlock.parseMcGeneric, True ),2953 'IEM_MC_STORE_MEM_INDEF_D80_BY_REF': (McBlock.parseMcGeneric, True ),2954 'IEM_MC_STORE_MEM_NEG_QNAN_R32_BY_REF': (McBlock.parseMcGeneric, True ),2955 'IEM_MC_STORE_MEM_NEG_QNAN_R64_BY_REF': (McBlock.parseMcGeneric, True ),2956 'IEM_MC_STORE_MEM_NEG_QNAN_R80_BY_REF': (McBlock.parseMcGeneric, True ),2957 'IEM_MC_STORE_MEM_U128': (McBlock.parseMcGeneric, True ),2958 'IEM_MC_STORE_MEM_U128_ALIGN_SSE': (McBlock.parseMcGeneric, True ),2959 'IEM_MC_STORE_MEM_U16': (McBlock.parseMcGeneric, True ),2960 'IEM_MC_STORE_MEM_U16_CONST': (McBlock.parseMcGeneric, True ),2961 'IEM_MC_STORE_MEM_U256': (McBlock.parseMcGeneric, True ),2962 'IEM_MC_STORE_MEM_U256_ALIGN_AVX': (McBlock.parseMcGeneric, True ),2963 'IEM_MC_STORE_MEM_U32': (McBlock.parseMcGeneric, True ),2964 'IEM_MC_STORE_MEM_U32_CONST': (McBlock.parseMcGeneric, True ),2965 'IEM_MC_STORE_MEM_U64': (McBlock.parseMcGeneric, True ),2966 'IEM_MC_STORE_MEM_U64_CONST': (McBlock.parseMcGeneric, True ),2967 'IEM_MC_STORE_MEM_U8': (McBlock.parseMcGeneric, True ),2968 'IEM_MC_STORE_MEM_U8_CONST': (McBlock.parseMcGeneric, True ),2969 'IEM_MC_STORE_MREG_U32_ZX_U64': (McBlock.parseMcGeneric, True ),2970 'IEM_MC_STORE_MREG_U64': (McBlock.parseMcGeneric, True ),2971 'IEM_MC_STORE_SREG_BASE_U32': (McBlock.parseMcGeneric, True ),2972 'IEM_MC_STORE_SREG_BASE_U64': (McBlock.parseMcGeneric, True ),2973 'IEM_MC_STORE_SSE_RESULT': (McBlock.parseMcGeneric, True ),2974 'IEM_MC_STORE_XREG_HI_U64': (McBlock.parseMcGeneric, True ),2975 'IEM_MC_STORE_XREG_R32': (McBlock.parseMcGeneric, True ),2976 'IEM_MC_STORE_XREG_R64': (McBlock.parseMcGeneric, True ),2977 'IEM_MC_STORE_XREG_U128': (McBlock.parseMcGeneric, True ),2978 'IEM_MC_STORE_XREG_U16': (McBlock.parseMcGeneric, True ),2979 'IEM_MC_STORE_XREG_U32': (McBlock.parseMcGeneric, True ),2980 'IEM_MC_STORE_XREG_U32_U128': (McBlock.parseMcGeneric, True ),2981 'IEM_MC_STORE_XREG_U32_ZX_U128': (McBlock.parseMcGeneric, True ),2982 'IEM_MC_STORE_XREG_U64': (McBlock.parseMcGeneric, True ),2983 'IEM_MC_STORE_XREG_U64_ZX_U128': (McBlock.parseMcGeneric, True ),2984 'IEM_MC_STORE_XREG_U8': (McBlock.parseMcGeneric, True ),2985 'IEM_MC_STORE_XREG_XMM': (McBlock.parseMcGeneric, True ),2986 'IEM_MC_STORE_XREG_XMM_U32': (McBlock.parseMcGeneric, True ),2987 'IEM_MC_STORE_XREG_XMM_U64': (McBlock.parseMcGeneric, True ),2988 'IEM_MC_STORE_YREG_U128': (McBlock.parseMcGeneric, True ),2989 'IEM_MC_STORE_YREG_U128_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2990 'IEM_MC_STORE_YREG_U256_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2991 'IEM_MC_STORE_YREG_U32_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2992 'IEM_MC_STORE_YREG_U64_ZX_VLMAX': (McBlock.parseMcGeneric, True ),2993 'IEM_MC_SUB_GREG_U16': (McBlock.parseMcGeneric, True ),2994 'IEM_MC_SUB_GREG_U32': (McBlock.parseMcGeneric, True ),2995 'IEM_MC_SUB_GREG_U64': (McBlock.parseMcGeneric, True ),2996 'IEM_MC_SUB_GREG_U8': (McBlock.parseMcGeneric, True ),2997 'IEM_MC_SUB_LOCAL_U16': (McBlock.parseMcGeneric, False ),2998 'IEM_MC_UPDATE_FPU_OPCODE_IP': (McBlock.parseMcGeneric, True ),2999 'IEM_MC_UPDATE_FSW': (McBlock.parseMcGeneric, True ),3000 'IEM_MC_UPDATE_FSW_CONST': (McBlock.parseMcGeneric, True ),3001 'IEM_MC_UPDATE_FSW_THEN_POP': (McBlock.parseMcGeneric, True ),3002 'IEM_MC_UPDATE_FSW_THEN_POP_POP': (McBlock.parseMcGeneric, True ),3003 'IEM_MC_UPDATE_FSW_WITH_MEM_OP': (McBlock.parseMcGeneric, True ),3004 'IEM_MC_UPDATE_FSW_WITH_MEM_OP_THEN_POP': (McBlock.parseMcGeneric, True ),2612 'IEM_MC_ACTUALIZE_AVX_STATE_FOR_CHANGE': (McBlock.parseMcGeneric, False, False, ), 2613 'IEM_MC_ACTUALIZE_AVX_STATE_FOR_READ': (McBlock.parseMcGeneric, False, False, ), 2614 'IEM_MC_ACTUALIZE_FPU_STATE_FOR_CHANGE': (McBlock.parseMcGeneric, False, False, ), 2615 'IEM_MC_ACTUALIZE_FPU_STATE_FOR_READ': (McBlock.parseMcGeneric, False, False, ), 2616 'IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE': (McBlock.parseMcGeneric, False, False, ), 2617 'IEM_MC_ACTUALIZE_SSE_STATE_FOR_READ': (McBlock.parseMcGeneric, False, False, ), 2618 'IEM_MC_ADD_GREG_U16': (McBlock.parseMcGeneric, True, False, ), 2619 'IEM_MC_ADD_GREG_U16_TO_LOCAL': (McBlock.parseMcGeneric, False, False, ), 2620 'IEM_MC_ADD_GREG_U32': (McBlock.parseMcGeneric, True, False, ), 2621 'IEM_MC_ADD_GREG_U32_TO_LOCAL': (McBlock.parseMcGeneric, False, False, ), 2622 'IEM_MC_ADD_GREG_U64': (McBlock.parseMcGeneric, True, False, ), 2623 'IEM_MC_ADD_GREG_U64_TO_LOCAL': (McBlock.parseMcGeneric, False, False, ), 2624 'IEM_MC_ADD_GREG_U8': (McBlock.parseMcGeneric, True, False, ), 2625 'IEM_MC_ADD_GREG_U8_TO_LOCAL': (McBlock.parseMcGeneric, False, False, ), 2626 'IEM_MC_ADD_LOCAL_S16_TO_EFF_ADDR': (McBlock.parseMcGeneric, True, False, ), 2627 'IEM_MC_ADD_LOCAL_S32_TO_EFF_ADDR': (McBlock.parseMcGeneric, True, False, ), 2628 'IEM_MC_ADD_LOCAL_S64_TO_EFF_ADDR': (McBlock.parseMcGeneric, True, False, ), 2629 'IEM_MC_ADVANCE_RIP_AND_FINISH': (McBlock.parseMcGeneric, True, True, ), 2630 'IEM_MC_AND_2LOCS_U32': (McBlock.parseMcGeneric, False, False, ), 2631 'IEM_MC_AND_ARG_U16': (McBlock.parseMcGeneric, False, False, ), 2632 'IEM_MC_AND_ARG_U32': (McBlock.parseMcGeneric, False, False, ), 2633 'IEM_MC_AND_ARG_U64': (McBlock.parseMcGeneric, False, False, ), 2634 'IEM_MC_AND_GREG_U16': (McBlock.parseMcGeneric, True, False, ), 2635 'IEM_MC_AND_GREG_U32': (McBlock.parseMcGeneric, True, False, ), 2636 'IEM_MC_AND_GREG_U64': (McBlock.parseMcGeneric, True, False, ), 2637 'IEM_MC_AND_GREG_U8': (McBlock.parseMcGeneric, True, False, ), 2638 'IEM_MC_AND_LOCAL_U16': (McBlock.parseMcGeneric, False, False, ), 2639 'IEM_MC_AND_LOCAL_U32': (McBlock.parseMcGeneric, False, False, ), 2640 'IEM_MC_AND_LOCAL_U64': (McBlock.parseMcGeneric, False, False, ), 2641 'IEM_MC_AND_LOCAL_U8': (McBlock.parseMcGeneric, False, False, ), 2642 'IEM_MC_ARG': (McBlock.parseMcArg, False, False, ), 2643 'IEM_MC_ARG_CONST': (McBlock.parseMcArgConst, False, False, ), 2644 'IEM_MC_ARG_LOCAL_EFLAGS': (McBlock.parseMcArgLocalEFlags, False, False, ), 2645 'IEM_MC_ARG_LOCAL_REF': (McBlock.parseMcArgLocalRef, False, False, ), 2646 'IEM_MC_ASSIGN': (McBlock.parseMcGeneric, False, False, ), 2647 'IEM_MC_ASSIGN_TO_SMALLER': (McBlock.parseMcGeneric, False, False, ), 2648 'IEM_MC_ASSIGN_U8_SX_U64': (McBlock.parseMcGeneric, False, False, ), 2649 'IEM_MC_ASSIGN_U32_SX_U64': (McBlock.parseMcGeneric, False, False, ), 2650 'IEM_MC_BEGIN': (McBlock.parseMcBegin, False, True, ), 2651 'IEM_MC_BROADCAST_XREG_U16_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2652 'IEM_MC_BROADCAST_XREG_U32_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2653 'IEM_MC_BROADCAST_XREG_U64_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2654 'IEM_MC_BROADCAST_XREG_U8_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2655 'IEM_MC_BROADCAST_YREG_U128_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2656 'IEM_MC_BROADCAST_YREG_U16_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2657 'IEM_MC_BROADCAST_YREG_U32_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2658 'IEM_MC_BROADCAST_YREG_U64_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2659 'IEM_MC_BROADCAST_YREG_U8_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2660 'IEM_MC_BSWAP_LOCAL_U16': (McBlock.parseMcGeneric, False, False, ), 2661 'IEM_MC_BSWAP_LOCAL_U32': (McBlock.parseMcGeneric, False, False, ), 2662 'IEM_MC_BSWAP_LOCAL_U64': (McBlock.parseMcGeneric, False, False, ), 2663 'IEM_MC_CALC_RM_EFF_ADDR': (McBlock.parseMcGeneric, False, False, ), 2664 'IEM_MC_CALL_AIMPL_3': (McBlock.parseMcCallAImpl, True, False, ), 2665 'IEM_MC_CALL_AIMPL_4': (McBlock.parseMcCallAImpl, True, False, ), 2666 'IEM_MC_CALL_AVX_AIMPL_2': (McBlock.parseMcCallAvxAImpl, True, False, ), 2667 'IEM_MC_CALL_AVX_AIMPL_3': (McBlock.parseMcCallAvxAImpl, True, False, ), 2668 'IEM_MC_CALL_CIMPL_0': (McBlock.parseMcCallCImpl, True, False, ), 2669 'IEM_MC_CALL_CIMPL_1': (McBlock.parseMcCallCImpl, True, False, ), 2670 'IEM_MC_CALL_CIMPL_2': (McBlock.parseMcCallCImpl, True, False, ), 2671 'IEM_MC_CALL_CIMPL_3': (McBlock.parseMcCallCImpl, True, False, ), 2672 'IEM_MC_CALL_CIMPL_4': (McBlock.parseMcCallCImpl, True, False, ), 2673 'IEM_MC_CALL_CIMPL_5': (McBlock.parseMcCallCImpl, True, False, ), 2674 'IEM_MC_CALL_FPU_AIMPL_1': (McBlock.parseMcCallFpuAImpl, True, False, ), 2675 'IEM_MC_CALL_FPU_AIMPL_2': (McBlock.parseMcCallFpuAImpl, True, False, ), 2676 'IEM_MC_CALL_FPU_AIMPL_3': (McBlock.parseMcCallFpuAImpl, True, False, ), 2677 'IEM_MC_CALL_MMX_AIMPL_2': (McBlock.parseMcCallMmxAImpl, True, False, ), 2678 'IEM_MC_CALL_MMX_AIMPL_3': (McBlock.parseMcCallMmxAImpl, True, False, ), 2679 'IEM_MC_CALL_SSE_AIMPL_2': (McBlock.parseMcCallSseAImpl, True, False, ), 2680 'IEM_MC_CALL_SSE_AIMPL_3': (McBlock.parseMcCallSseAImpl, True, False, ), 2681 'IEM_MC_CALL_VOID_AIMPL_0': (McBlock.parseMcCallVoidAImpl, True, False, ), 2682 'IEM_MC_CALL_VOID_AIMPL_1': (McBlock.parseMcCallVoidAImpl, True, False, ), 2683 'IEM_MC_CALL_VOID_AIMPL_2': (McBlock.parseMcCallVoidAImpl, True, False, ), 2684 'IEM_MC_CALL_VOID_AIMPL_3': (McBlock.parseMcCallVoidAImpl, True, False, ), 2685 'IEM_MC_CALL_VOID_AIMPL_4': (McBlock.parseMcCallVoidAImpl, True, False, ), 2686 'IEM_MC_CLEAR_EFL_BIT': (McBlock.parseMcGeneric, True, False, ), 2687 'IEM_MC_CLEAR_FSW_EX': (McBlock.parseMcGeneric, True, False, ), 2688 'IEM_MC_CLEAR_HIGH_GREG_U64': (McBlock.parseMcGeneric, True, False, ), 2689 'IEM_MC_CLEAR_HIGH_GREG_U64_BY_REF': (McBlock.parseMcGeneric, True, False, ), 2690 'IEM_MC_CLEAR_XREG_U32_MASK': (McBlock.parseMcGeneric, True, False, ), 2691 'IEM_MC_CLEAR_YREG_128_UP': (McBlock.parseMcGeneric, True, False, ), 2692 'IEM_MC_COMMIT_EFLAGS': (McBlock.parseMcGeneric, True, False, ), 2693 'IEM_MC_COPY_XREG_U128': (McBlock.parseMcGeneric, True, False, ), 2694 'IEM_MC_COPY_YREG_U128_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2695 'IEM_MC_COPY_YREG_U256_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2696 'IEM_MC_COPY_YREG_U64_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2697 'IEM_MC_DEFER_TO_CIMPL_0_RET': (McBlock.parseMcGeneric, False, False, ), 2698 'IEM_MC_DEFER_TO_CIMPL_1_RET': (McBlock.parseMcGeneric, False, False, ), 2699 'IEM_MC_DEFER_TO_CIMPL_2_RET': (McBlock.parseMcGeneric, False, False, ), 2700 'IEM_MC_DEFER_TO_CIMPL_3_RET': (McBlock.parseMcGeneric, False, False, ), 2701 'IEM_MC_END': (McBlock.parseMcGeneric, True, True, ), 2702 'IEM_MC_FETCH_EFLAGS': (McBlock.parseMcGeneric, False, False, ), 2703 'IEM_MC_FETCH_EFLAGS_U8': (McBlock.parseMcGeneric, False, False, ), 2704 'IEM_MC_FETCH_FCW': (McBlock.parseMcGeneric, False, False, ), 2705 'IEM_MC_FETCH_FSW': (McBlock.parseMcGeneric, False, False, ), 2706 'IEM_MC_FETCH_GREG_U16': (McBlock.parseMcGeneric, False, False, ), 2707 'IEM_MC_FETCH_GREG_U16_SX_U32': (McBlock.parseMcGeneric, False, False, ), 2708 'IEM_MC_FETCH_GREG_U16_SX_U64': (McBlock.parseMcGeneric, False, False, ), 2709 'IEM_MC_FETCH_GREG_U16_ZX_U32': (McBlock.parseMcGeneric, False, False, ), 2710 'IEM_MC_FETCH_GREG_U16_ZX_U64': (McBlock.parseMcGeneric, False, False, ), 2711 'IEM_MC_FETCH_GREG_U32': (McBlock.parseMcGeneric, False, False, ), 2712 'IEM_MC_FETCH_GREG_U32_SX_U64': (McBlock.parseMcGeneric, False, False, ), 2713 'IEM_MC_FETCH_GREG_U32_ZX_U64': (McBlock.parseMcGeneric, False, False, ), 2714 'IEM_MC_FETCH_GREG_U64': (McBlock.parseMcGeneric, False, False, ), 2715 'IEM_MC_FETCH_GREG_U64_ZX_U64': (McBlock.parseMcGeneric, False, False, ), 2716 'IEM_MC_FETCH_GREG_U8': (McBlock.parseMcGeneric, False, False, ), 2717 'IEM_MC_FETCH_GREG_U8_SX_U16': (McBlock.parseMcGeneric, False, False, ), 2718 'IEM_MC_FETCH_GREG_U8_SX_U32': (McBlock.parseMcGeneric, False, False, ), 2719 'IEM_MC_FETCH_GREG_U8_SX_U64': (McBlock.parseMcGeneric, False, False, ), 2720 'IEM_MC_FETCH_GREG_U8_ZX_U16': (McBlock.parseMcGeneric, False, False, ), 2721 'IEM_MC_FETCH_GREG_U8_ZX_U32': (McBlock.parseMcGeneric, False, False, ), 2722 'IEM_MC_FETCH_GREG_U8_ZX_U64': (McBlock.parseMcGeneric, False, False, ), 2723 'IEM_MC_FETCH_MEM_D80': (McBlock.parseMcGeneric, True, False, ), 2724 'IEM_MC_FETCH_MEM_I16': (McBlock.parseMcGeneric, True, False, ), 2725 'IEM_MC_FETCH_MEM_I32': (McBlock.parseMcGeneric, True, False, ), 2726 'IEM_MC_FETCH_MEM_I64': (McBlock.parseMcGeneric, True, False, ), 2727 'IEM_MC_FETCH_MEM_R32': (McBlock.parseMcGeneric, True, False, ), 2728 'IEM_MC_FETCH_MEM_R64': (McBlock.parseMcGeneric, True, False, ), 2729 'IEM_MC_FETCH_MEM_R80': (McBlock.parseMcGeneric, True, False, ), 2730 'IEM_MC_FETCH_MEM_S32_SX_U64': (McBlock.parseMcGeneric, True, False, ), 2731 'IEM_MC_FETCH_MEM_U128': (McBlock.parseMcGeneric, True, False, ), 2732 'IEM_MC_FETCH_MEM_U128_ALIGN_SSE': (McBlock.parseMcGeneric, True, False, ), 2733 'IEM_MC_FETCH_MEM_U128_NO_AC': (McBlock.parseMcGeneric, True, False, ), 2734 'IEM_MC_FETCH_MEM_U16': (McBlock.parseMcGeneric, True, False, ), 2735 'IEM_MC_FETCH_MEM_U16_DISP': (McBlock.parseMcGeneric, True, False, ), 2736 'IEM_MC_FETCH_MEM_U16_SX_U32': (McBlock.parseMcGeneric, True, False, ), 2737 'IEM_MC_FETCH_MEM_U16_SX_U64': (McBlock.parseMcGeneric, True, False, ), 2738 'IEM_MC_FETCH_MEM_U16_ZX_U32': (McBlock.parseMcGeneric, True, False, ), 2739 'IEM_MC_FETCH_MEM_U16_ZX_U64': (McBlock.parseMcGeneric, True, False, ), 2740 'IEM_MC_FETCH_MEM_U256': (McBlock.parseMcGeneric, True, False, ), 2741 'IEM_MC_FETCH_MEM_U256_ALIGN_AVX': (McBlock.parseMcGeneric, True, False, ), 2742 'IEM_MC_FETCH_MEM_U256_NO_AC': (McBlock.parseMcGeneric, True, False, ), 2743 'IEM_MC_FETCH_MEM_U32': (McBlock.parseMcGeneric, True, False, ), 2744 'IEM_MC_FETCH_MEM_U32_DISP': (McBlock.parseMcGeneric, True, False, ), 2745 'IEM_MC_FETCH_MEM_U32_SX_U64': (McBlock.parseMcGeneric, True, False, ), 2746 'IEM_MC_FETCH_MEM_U32_ZX_U64': (McBlock.parseMcGeneric, True, False, ), 2747 'IEM_MC_FETCH_MEM_U64': (McBlock.parseMcGeneric, True, False, ), 2748 'IEM_MC_FETCH_MEM_U64_ALIGN_U128': (McBlock.parseMcGeneric, True, False, ), 2749 'IEM_MC_FETCH_MEM_U64_DISP': (McBlock.parseMcGeneric, True, False, ), 2750 'IEM_MC_FETCH_MEM_U8': (McBlock.parseMcGeneric, True, False, ), 2751 'IEM_MC_FETCH_MEM_U8_SX_U16': (McBlock.parseMcGeneric, True, False, ), 2752 'IEM_MC_FETCH_MEM_U8_SX_U32': (McBlock.parseMcGeneric, True, False, ), 2753 'IEM_MC_FETCH_MEM_U8_SX_U64': (McBlock.parseMcGeneric, True, False, ), 2754 'IEM_MC_FETCH_MEM_U8_ZX_U16': (McBlock.parseMcGeneric, True, False, ), 2755 'IEM_MC_FETCH_MEM_U8_ZX_U32': (McBlock.parseMcGeneric, True, False, ), 2756 'IEM_MC_FETCH_MEM_U8_ZX_U64': (McBlock.parseMcGeneric, True, False, ), 2757 'IEM_MC_FETCH_MEM_XMM': (McBlock.parseMcGeneric, True, False, ), 2758 'IEM_MC_FETCH_MEM_XMM_ALIGN_SSE': (McBlock.parseMcGeneric, True, False, ), 2759 'IEM_MC_FETCH_MEM_XMM_NO_AC': (McBlock.parseMcGeneric, True, False, ), 2760 'IEM_MC_FETCH_MEM_XMM_U32': (McBlock.parseMcGeneric, True, False, ), 2761 'IEM_MC_FETCH_MEM_XMM_U64': (McBlock.parseMcGeneric, True, False, ), 2762 'IEM_MC_FETCH_MEM_YMM': (McBlock.parseMcGeneric, True, False, ), 2763 'IEM_MC_FETCH_MEM_YMM_ALIGN_AVX': (McBlock.parseMcGeneric, True, False, ), 2764 'IEM_MC_FETCH_MEM_YMM_NO_AC': (McBlock.parseMcGeneric, True, False, ), 2765 'IEM_MC_FETCH_MEM16_U8': (McBlock.parseMcGeneric, True, False, ), 2766 'IEM_MC_FETCH_MEM32_U8': (McBlock.parseMcGeneric, True, False, ), 2767 'IEM_MC_FETCH_MREG_U32': (McBlock.parseMcGeneric, False, False, ), 2768 'IEM_MC_FETCH_MREG_U64': (McBlock.parseMcGeneric, False, False, ), 2769 'IEM_MC_FETCH_SREG_BASE_U32': (McBlock.parseMcGeneric, False, False, ), 2770 'IEM_MC_FETCH_SREG_BASE_U64': (McBlock.parseMcGeneric, False, False, ), 2771 'IEM_MC_FETCH_SREG_U16': (McBlock.parseMcGeneric, False, False, ), 2772 'IEM_MC_FETCH_SREG_ZX_U32': (McBlock.parseMcGeneric, False, False, ), 2773 'IEM_MC_FETCH_SREG_ZX_U64': (McBlock.parseMcGeneric, False, False, ), 2774 'IEM_MC_FETCH_XREG_U128': (McBlock.parseMcGeneric, False, False, ), 2775 'IEM_MC_FETCH_XREG_U16': (McBlock.parseMcGeneric, False, False, ), 2776 'IEM_MC_FETCH_XREG_U32': (McBlock.parseMcGeneric, False, False, ), 2777 'IEM_MC_FETCH_XREG_U64': (McBlock.parseMcGeneric, False, False, ), 2778 'IEM_MC_FETCH_XREG_U8': (McBlock.parseMcGeneric, False, False, ), 2779 'IEM_MC_FETCH_XREG_XMM': (McBlock.parseMcGeneric, False, False, ), 2780 'IEM_MC_FETCH_YREG_2ND_U64': (McBlock.parseMcGeneric, False, False, ), 2781 'IEM_MC_FETCH_YREG_U128': (McBlock.parseMcGeneric, False, False, ), 2782 'IEM_MC_FETCH_YREG_U256': (McBlock.parseMcGeneric, False, False, ), 2783 'IEM_MC_FETCH_YREG_U32': (McBlock.parseMcGeneric, False, False, ), 2784 'IEM_MC_FETCH_YREG_U64': (McBlock.parseMcGeneric, False, False, ), 2785 'IEM_MC_FLIP_EFL_BIT': (McBlock.parseMcGeneric, True, False, ), 2786 'IEM_MC_FPU_FROM_MMX_MODE': (McBlock.parseMcGeneric, True, False, ), 2787 'IEM_MC_FPU_STACK_DEC_TOP': (McBlock.parseMcGeneric, True, False, ), 2788 'IEM_MC_FPU_STACK_FREE': (McBlock.parseMcGeneric, True, False, ), 2789 'IEM_MC_FPU_STACK_INC_TOP': (McBlock.parseMcGeneric, True, False, ), 2790 'IEM_MC_FPU_STACK_PUSH_OVERFLOW': (McBlock.parseMcGeneric, True, False, ), 2791 'IEM_MC_FPU_STACK_PUSH_OVERFLOW_MEM_OP': (McBlock.parseMcGeneric, True, False, ), 2792 'IEM_MC_FPU_STACK_PUSH_UNDERFLOW': (McBlock.parseMcGeneric, True, False, ), 2793 'IEM_MC_FPU_STACK_PUSH_UNDERFLOW_TWO': (McBlock.parseMcGeneric, True, False, ), 2794 'IEM_MC_FPU_STACK_UNDERFLOW': (McBlock.parseMcGeneric, True, False, ), 2795 'IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP': (McBlock.parseMcGeneric, True, False, ), 2796 'IEM_MC_FPU_STACK_UNDERFLOW_MEM_OP_THEN_POP': (McBlock.parseMcGeneric, True, False, ), 2797 'IEM_MC_FPU_STACK_UNDERFLOW_THEN_POP': (McBlock.parseMcGeneric, True, False, ), 2798 'IEM_MC_FPU_STACK_UNDERFLOW_THEN_POP_POP': (McBlock.parseMcGeneric, True, False, ), 2799 'IEM_MC_FPU_TO_MMX_MODE': (McBlock.parseMcGeneric, True, False, ), 2800 'IEM_MC_IF_CX_IS_NZ': (McBlock.parseMcGenericCond, True, False, ), 2801 'IEM_MC_IF_CX_IS_NZ_AND_EFL_BIT_NOT_SET': (McBlock.parseMcGenericCond, True, False, ), 2802 'IEM_MC_IF_CX_IS_NZ_AND_EFL_BIT_SET': (McBlock.parseMcGenericCond, True, False, ), 2803 'IEM_MC_IF_ECX_IS_NZ': (McBlock.parseMcGenericCond, True, False, ), 2804 'IEM_MC_IF_ECX_IS_NZ_AND_EFL_BIT_NOT_SET': (McBlock.parseMcGenericCond, True, False, ), 2805 'IEM_MC_IF_ECX_IS_NZ_AND_EFL_BIT_SET': (McBlock.parseMcGenericCond, True, False, ), 2806 'IEM_MC_IF_EFL_ANY_BITS_SET': (McBlock.parseMcGenericCond, True, False, ), 2807 'IEM_MC_IF_EFL_BIT_NOT_SET': (McBlock.parseMcGenericCond, True, False, ), 2808 'IEM_MC_IF_EFL_BIT_NOT_SET_AND_BITS_EQ': (McBlock.parseMcGenericCond, True, False, ), 2809 'IEM_MC_IF_EFL_BIT_SET': (McBlock.parseMcGenericCond, True, False, ), 2810 'IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE': (McBlock.parseMcGenericCond, True, False, ), 2811 'IEM_MC_IF_EFL_BITS_EQ': (McBlock.parseMcGenericCond, True, False, ), 2812 'IEM_MC_IF_EFL_BITS_NE': (McBlock.parseMcGenericCond, True, False, ), 2813 'IEM_MC_IF_EFL_NO_BITS_SET': (McBlock.parseMcGenericCond, True, False, ), 2814 'IEM_MC_IF_FCW_IM': (McBlock.parseMcGenericCond, True, False, ), 2815 'IEM_MC_IF_FPUREG_IS_EMPTY': (McBlock.parseMcGenericCond, True, False, ), 2816 'IEM_MC_IF_FPUREG_NOT_EMPTY': (McBlock.parseMcGenericCond, True, False, ), 2817 'IEM_MC_IF_FPUREG_NOT_EMPTY_REF_R80': (McBlock.parseMcGenericCond, True, False, ), 2818 'IEM_MC_IF_GREG_BIT_SET': (McBlock.parseMcGenericCond, True, False, ), 2819 'IEM_MC_IF_LOCAL_IS_Z': (McBlock.parseMcGenericCond, True, False, ), 2820 'IEM_MC_IF_MXCSR_XCPT_PENDING': (McBlock.parseMcGenericCond, True, False, ), 2821 'IEM_MC_IF_RCX_IS_NZ': (McBlock.parseMcGenericCond, True, False, ), 2822 'IEM_MC_IF_RCX_IS_NZ_AND_EFL_BIT_NOT_SET': (McBlock.parseMcGenericCond, True, False, ), 2823 'IEM_MC_IF_RCX_IS_NZ_AND_EFL_BIT_SET': (McBlock.parseMcGenericCond, True, False, ), 2824 'IEM_MC_IF_TWO_FPUREGS_NOT_EMPTY_REF_R80': (McBlock.parseMcGenericCond, True, False, ), 2825 'IEM_MC_IF_TWO_FPUREGS_NOT_EMPTY_REF_R80_FIRST': (McBlock.parseMcGenericCond, True, False, ), 2826 'IEM_MC_IMPLICIT_AVX_AIMPL_ARGS': (McBlock.parseMcGeneric, False, False, ), 2827 'IEM_MC_INT_CLEAR_ZMM_256_UP': (McBlock.parseMcGeneric, True, False, ), 2828 'IEM_MC_LOCAL': (McBlock.parseMcLocal, False, False, ), 2829 'IEM_MC_LOCAL_CONST': (McBlock.parseMcLocalConst, False, False, ), 2830 'IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT': (McBlock.parseMcGeneric, True, False, ), 2831 'IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE': (McBlock.parseMcGeneric, True, False, ), 2832 'IEM_MC_MAYBE_RAISE_FPU_XCPT': (McBlock.parseMcGeneric, True, False, ), 2833 'IEM_MC_MAYBE_RAISE_FSGSBASE_XCPT': (McBlock.parseMcGeneric, True, False, ), 2834 'IEM_MC_MAYBE_RAISE_MMX_RELATED_XCPT': (McBlock.parseMcGeneric, True, False, ), 2835 'IEM_MC_MAYBE_RAISE_NON_CANONICAL_ADDR_GP0': (McBlock.parseMcGeneric, True, False, ), 2836 'IEM_MC_MAYBE_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT': (McBlock.parseMcGeneric, True, False, ), 2837 'IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT': (McBlock.parseMcGeneric, True, False, ), 2838 'IEM_MC_MAYBE_RAISE_WAIT_DEVICE_NOT_AVAILABLE': (McBlock.parseMcGeneric, True, False, ), 2839 'IEM_MC_MEM_COMMIT_AND_UNMAP': (McBlock.parseMcGeneric, True, False, ), 2840 'IEM_MC_MEM_COMMIT_AND_UNMAP_RW': (McBlock.parseMcGeneric, True, False, ), 2841 'IEM_MC_MEM_COMMIT_AND_UNMAP_RO': (McBlock.parseMcGeneric, True, False, ), 2842 'IEM_MC_MEM_COMMIT_AND_UNMAP_WO': (McBlock.parseMcGeneric, True, False, ), 2843 'IEM_MC_MEM_COMMIT_AND_UNMAP_FOR_FPU_STORE': (McBlock.parseMcGeneric, True, False, ), 2844 'IEM_MC_MEM_MAP': (McBlock.parseMcGeneric, True, False, ), 2845 'IEM_MC_MEM_MAP_EX': (McBlock.parseMcGeneric, True, False, ), 2846 'IEM_MC_MEM_MAP_U8_RW': (McBlock.parseMcGeneric, True, False, ), 2847 'IEM_MC_MEM_MAP_U8_RO': (McBlock.parseMcGeneric, True, False, ), 2848 'IEM_MC_MEM_MAP_U8_WO': (McBlock.parseMcGeneric, True, False, ), 2849 'IEM_MC_MEM_MAP_U16_RW': (McBlock.parseMcGeneric, True, False, ), 2850 'IEM_MC_MEM_MAP_U16_RO': (McBlock.parseMcGeneric, True, False, ), 2851 'IEM_MC_MEM_MAP_U16_WO': (McBlock.parseMcGeneric, True, False, ), 2852 'IEM_MC_MEM_MAP_U32_RW': (McBlock.parseMcGeneric, True, False, ), 2853 'IEM_MC_MEM_MAP_U32_RO': (McBlock.parseMcGeneric, True, False, ), 2854 'IEM_MC_MEM_MAP_U32_WO': (McBlock.parseMcGeneric, True, False, ), 2855 'IEM_MC_MEM_MAP_U64_RW': (McBlock.parseMcGeneric, True, False, ), 2856 'IEM_MC_MEM_MAP_U64_RO': (McBlock.parseMcGeneric, True, False, ), 2857 'IEM_MC_MEM_MAP_U64_WO': (McBlock.parseMcGeneric, True, False, ), 2858 'IEM_MC_MERGE_YREG_U32_U96_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2859 'IEM_MC_MERGE_YREG_U64_U64_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2860 'IEM_MC_MERGE_YREG_U64HI_U64HI_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2861 'IEM_MC_MERGE_YREG_U64LO_U64LO_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2862 'IEM_MC_MERGE_YREG_U64LO_U64LOCAL_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2863 'IEM_MC_MERGE_YREG_U64LOCAL_U64HI_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2864 'IEM_MC_MODIFIED_MREG': (McBlock.parseMcGeneric, True, False, ), 2865 'IEM_MC_MODIFIED_MREG_BY_REF': (McBlock.parseMcGeneric, True, False, ), 2866 'IEM_MC_OR_2LOCS_U32': (McBlock.parseMcGeneric, False, False, ), 2867 'IEM_MC_OR_GREG_U16': (McBlock.parseMcGeneric, True, False, ), 2868 'IEM_MC_OR_GREG_U32': (McBlock.parseMcGeneric, True, False, ), 2869 'IEM_MC_OR_GREG_U64': (McBlock.parseMcGeneric, True, False, ), 2870 'IEM_MC_OR_GREG_U8': (McBlock.parseMcGeneric, True, False, ), 2871 'IEM_MC_OR_LOCAL_U16': (McBlock.parseMcGeneric, False, False, ), 2872 'IEM_MC_OR_LOCAL_U32': (McBlock.parseMcGeneric, False, False, ), 2873 'IEM_MC_OR_LOCAL_U8': (McBlock.parseMcGeneric, False, False, ), 2874 'IEM_MC_POP_U16': (McBlock.parseMcGeneric, True, False, ), 2875 'IEM_MC_POP_U32': (McBlock.parseMcGeneric, True, False, ), 2876 'IEM_MC_POP_U64': (McBlock.parseMcGeneric, True, False, ), 2877 'IEM_MC_PREPARE_AVX_USAGE': (McBlock.parseMcGeneric, False, False, ), 2878 'IEM_MC_PREPARE_FPU_USAGE': (McBlock.parseMcGeneric, False, False, ), 2879 'IEM_MC_PREPARE_SSE_USAGE': (McBlock.parseMcGeneric, False, False, ), 2880 'IEM_MC_PUSH_FPU_RESULT': (McBlock.parseMcGeneric, True, False, ), 2881 'IEM_MC_PUSH_FPU_RESULT_MEM_OP': (McBlock.parseMcGeneric, True, False, ), 2882 'IEM_MC_PUSH_FPU_RESULT_TWO': (McBlock.parseMcGeneric, True, False, ), 2883 'IEM_MC_PUSH_U16': (McBlock.parseMcGeneric, True, False, ), 2884 'IEM_MC_PUSH_U32': (McBlock.parseMcGeneric, True, False, ), 2885 'IEM_MC_PUSH_U32_SREG': (McBlock.parseMcGeneric, True, False, ), 2886 'IEM_MC_PUSH_U64': (McBlock.parseMcGeneric, True, False, ), 2887 'IEM_MC_RAISE_DIVIDE_ERROR': (McBlock.parseMcGeneric, True, False, ), 2888 'IEM_MC_RAISE_GP0_IF_CPL_NOT_ZERO': (McBlock.parseMcGeneric, True, False, ), 2889 'IEM_MC_RAISE_GP0_IF_EFF_ADDR_UNALIGNED': (McBlock.parseMcGeneric, True, False, ), 2890 'IEM_MC_RAISE_SSE_AVX_SIMD_FP_OR_UD_XCPT': (McBlock.parseMcGeneric, True, False, ), 2891 'IEM_MC_REF_EFLAGS': (McBlock.parseMcGeneric, False, False, ), 2892 'IEM_MC_REF_FPUREG': (McBlock.parseMcGeneric, False, False, ), 2893 'IEM_MC_REF_GREG_I32': (McBlock.parseMcGeneric, False, False, ), 2894 'IEM_MC_REF_GREG_I32_CONST': (McBlock.parseMcGeneric, False, False, ), 2895 'IEM_MC_REF_GREG_I64': (McBlock.parseMcGeneric, False, False, ), 2896 'IEM_MC_REF_GREG_I64_CONST': (McBlock.parseMcGeneric, False, False, ), 2897 'IEM_MC_REF_GREG_U16': (McBlock.parseMcGeneric, False, False, ), 2898 'IEM_MC_REF_GREG_U16_CONST': (McBlock.parseMcGeneric, False, False, ), 2899 'IEM_MC_REF_GREG_U32': (McBlock.parseMcGeneric, False, False, ), 2900 'IEM_MC_REF_GREG_U32_CONST': (McBlock.parseMcGeneric, False, False, ), 2901 'IEM_MC_REF_GREG_U64': (McBlock.parseMcGeneric, False, False, ), 2902 'IEM_MC_REF_GREG_U64_CONST': (McBlock.parseMcGeneric, False, False, ), 2903 'IEM_MC_REF_GREG_U8': (McBlock.parseMcGeneric, False, False, ), 2904 'IEM_MC_REF_GREG_U8_CONST': (McBlock.parseMcGeneric, False, False, ), 2905 'IEM_MC_REF_LOCAL': (McBlock.parseMcGeneric, False, False, ), 2906 'IEM_MC_REF_MREG_U32_CONST': (McBlock.parseMcGeneric, False, False, ), 2907 'IEM_MC_REF_MREG_U64': (McBlock.parseMcGeneric, False, False, ), 2908 'IEM_MC_REF_MREG_U64_CONST': (McBlock.parseMcGeneric, False, False, ), 2909 'IEM_MC_REF_MXCSR': (McBlock.parseMcGeneric, False, False, ), 2910 'IEM_MC_REF_XREG_R32_CONST': (McBlock.parseMcGeneric, False, False, ), 2911 'IEM_MC_REF_XREG_R64_CONST': (McBlock.parseMcGeneric, False, False, ), 2912 'IEM_MC_REF_XREG_U128': (McBlock.parseMcGeneric, False, False, ), 2913 'IEM_MC_REF_XREG_U128_CONST': (McBlock.parseMcGeneric, False, False, ), 2914 'IEM_MC_REF_XREG_U32_CONST': (McBlock.parseMcGeneric, False, False, ), 2915 'IEM_MC_REF_XREG_U64_CONST': (McBlock.parseMcGeneric, False, False, ), 2916 'IEM_MC_REF_XREG_XMM_CONST': (McBlock.parseMcGeneric, False, False, ), 2917 'IEM_MC_REF_YREG_U128': (McBlock.parseMcGeneric, False, False, ), 2918 'IEM_MC_REF_YREG_U128_CONST': (McBlock.parseMcGeneric, False, False, ), 2919 'IEM_MC_REF_YREG_U64_CONST': (McBlock.parseMcGeneric, False, False, ), 2920 'IEM_MC_REL_JMP_S16_AND_FINISH': (McBlock.parseMcGeneric, True, False, ), 2921 'IEM_MC_REL_JMP_S32_AND_FINISH': (McBlock.parseMcGeneric, True, False, ), 2922 'IEM_MC_REL_JMP_S8_AND_FINISH': (McBlock.parseMcGeneric, True, False, ), 2923 'IEM_MC_RETURN_ON_FAILURE': (McBlock.parseMcGeneric, False, False, ), 2924 'IEM_MC_SAR_LOCAL_S16': (McBlock.parseMcGeneric, False, False, ), 2925 'IEM_MC_SAR_LOCAL_S32': (McBlock.parseMcGeneric, False, False, ), 2926 'IEM_MC_SAR_LOCAL_S64': (McBlock.parseMcGeneric, False, False, ), 2927 'IEM_MC_SET_EFL_BIT': (McBlock.parseMcGeneric, True, False, ), 2928 'IEM_MC_SET_FPU_RESULT': (McBlock.parseMcGeneric, True, False, ), 2929 'IEM_MC_SET_RIP_U16_AND_FINISH': (McBlock.parseMcGeneric, True, False, ), 2930 'IEM_MC_SET_RIP_U32_AND_FINISH': (McBlock.parseMcGeneric, True, False, ), 2931 'IEM_MC_SET_RIP_U64_AND_FINISH': (McBlock.parseMcGeneric, True, False, ), 2932 'IEM_MC_SHL_LOCAL_S16': (McBlock.parseMcGeneric, False, False, ), 2933 'IEM_MC_SHL_LOCAL_S32': (McBlock.parseMcGeneric, False, False, ), 2934 'IEM_MC_SHL_LOCAL_S64': (McBlock.parseMcGeneric, False, False, ), 2935 'IEM_MC_SHR_LOCAL_U8': (McBlock.parseMcGeneric, False, False, ), 2936 'IEM_MC_SSE_UPDATE_MXCSR': (McBlock.parseMcGeneric, True, False, ), 2937 'IEM_MC_STORE_FPU_RESULT': (McBlock.parseMcGeneric, True, False, ), 2938 'IEM_MC_STORE_FPU_RESULT_MEM_OP': (McBlock.parseMcGeneric, True, False, ), 2939 'IEM_MC_STORE_FPU_RESULT_THEN_POP': (McBlock.parseMcGeneric, True, False, ), 2940 'IEM_MC_STORE_FPU_RESULT_WITH_MEM_OP_THEN_POP': (McBlock.parseMcGeneric, True, False, ), 2941 'IEM_MC_STORE_FPUREG_R80_SRC_REF': (McBlock.parseMcGeneric, True, False, ), 2942 'IEM_MC_STORE_GREG_I64': (McBlock.parseMcGeneric, True, False, ), 2943 'IEM_MC_STORE_GREG_U16': (McBlock.parseMcGeneric, True, False, ), 2944 'IEM_MC_STORE_GREG_U16_CONST': (McBlock.parseMcGeneric, True, False, ), 2945 'IEM_MC_STORE_GREG_U32': (McBlock.parseMcGeneric, True, False, ), 2946 'IEM_MC_STORE_GREG_U32_CONST': (McBlock.parseMcGeneric, True, False, ), 2947 'IEM_MC_STORE_GREG_U64': (McBlock.parseMcGeneric, True, False, ), 2948 'IEM_MC_STORE_GREG_U64_CONST': (McBlock.parseMcGeneric, True, False, ), 2949 'IEM_MC_STORE_GREG_U8': (McBlock.parseMcGeneric, True, False, ), 2950 'IEM_MC_STORE_GREG_U8_CONST': (McBlock.parseMcGeneric, True, False, ), 2951 'IEM_MC_STORE_MEM_I16_CONST_BY_REF': (McBlock.parseMcGeneric, True, False, ), 2952 'IEM_MC_STORE_MEM_I32_CONST_BY_REF': (McBlock.parseMcGeneric, True, False, ), 2953 'IEM_MC_STORE_MEM_I64_CONST_BY_REF': (McBlock.parseMcGeneric, True, False, ), 2954 'IEM_MC_STORE_MEM_I8_CONST_BY_REF': (McBlock.parseMcGeneric, True, False, ), 2955 'IEM_MC_STORE_MEM_INDEF_D80_BY_REF': (McBlock.parseMcGeneric, True, False, ), 2956 'IEM_MC_STORE_MEM_NEG_QNAN_R32_BY_REF': (McBlock.parseMcGeneric, True, False, ), 2957 'IEM_MC_STORE_MEM_NEG_QNAN_R64_BY_REF': (McBlock.parseMcGeneric, True, False, ), 2958 'IEM_MC_STORE_MEM_NEG_QNAN_R80_BY_REF': (McBlock.parseMcGeneric, True, False, ), 2959 'IEM_MC_STORE_MEM_U128': (McBlock.parseMcGeneric, True, False, ), 2960 'IEM_MC_STORE_MEM_U128_ALIGN_SSE': (McBlock.parseMcGeneric, True, False, ), 2961 'IEM_MC_STORE_MEM_U16': (McBlock.parseMcGeneric, True, False, ), 2962 'IEM_MC_STORE_MEM_U16_CONST': (McBlock.parseMcGeneric, True, False, ), 2963 'IEM_MC_STORE_MEM_U256': (McBlock.parseMcGeneric, True, False, ), 2964 'IEM_MC_STORE_MEM_U256_ALIGN_AVX': (McBlock.parseMcGeneric, True, False, ), 2965 'IEM_MC_STORE_MEM_U32': (McBlock.parseMcGeneric, True, False, ), 2966 'IEM_MC_STORE_MEM_U32_CONST': (McBlock.parseMcGeneric, True, False, ), 2967 'IEM_MC_STORE_MEM_U64': (McBlock.parseMcGeneric, True, False, ), 2968 'IEM_MC_STORE_MEM_U64_CONST': (McBlock.parseMcGeneric, True, False, ), 2969 'IEM_MC_STORE_MEM_U8': (McBlock.parseMcGeneric, True, False, ), 2970 'IEM_MC_STORE_MEM_U8_CONST': (McBlock.parseMcGeneric, True, False, ), 2971 'IEM_MC_STORE_MREG_U32_ZX_U64': (McBlock.parseMcGeneric, True, False, ), 2972 'IEM_MC_STORE_MREG_U64': (McBlock.parseMcGeneric, True, False, ), 2973 'IEM_MC_STORE_SREG_BASE_U32': (McBlock.parseMcGeneric, True, False, ), 2974 'IEM_MC_STORE_SREG_BASE_U64': (McBlock.parseMcGeneric, True, False, ), 2975 'IEM_MC_STORE_SSE_RESULT': (McBlock.parseMcGeneric, True, False, ), 2976 'IEM_MC_STORE_XREG_HI_U64': (McBlock.parseMcGeneric, True, False, ), 2977 'IEM_MC_STORE_XREG_R32': (McBlock.parseMcGeneric, True, False, ), 2978 'IEM_MC_STORE_XREG_R64': (McBlock.parseMcGeneric, True, False, ), 2979 'IEM_MC_STORE_XREG_U128': (McBlock.parseMcGeneric, True, False, ), 2980 'IEM_MC_STORE_XREG_U16': (McBlock.parseMcGeneric, True, False, ), 2981 'IEM_MC_STORE_XREG_U32': (McBlock.parseMcGeneric, True, False, ), 2982 'IEM_MC_STORE_XREG_U32_U128': (McBlock.parseMcGeneric, True, False, ), 2983 'IEM_MC_STORE_XREG_U32_ZX_U128': (McBlock.parseMcGeneric, True, False, ), 2984 'IEM_MC_STORE_XREG_U64': (McBlock.parseMcGeneric, True, False, ), 2985 'IEM_MC_STORE_XREG_U64_ZX_U128': (McBlock.parseMcGeneric, True, False, ), 2986 'IEM_MC_STORE_XREG_U8': (McBlock.parseMcGeneric, True, False, ), 2987 'IEM_MC_STORE_XREG_XMM': (McBlock.parseMcGeneric, True, False, ), 2988 'IEM_MC_STORE_XREG_XMM_U32': (McBlock.parseMcGeneric, True, False, ), 2989 'IEM_MC_STORE_XREG_XMM_U64': (McBlock.parseMcGeneric, True, False, ), 2990 'IEM_MC_STORE_YREG_U128': (McBlock.parseMcGeneric, True, False, ), 2991 'IEM_MC_STORE_YREG_U128_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2992 'IEM_MC_STORE_YREG_U256_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2993 'IEM_MC_STORE_YREG_U32_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2994 'IEM_MC_STORE_YREG_U64_ZX_VLMAX': (McBlock.parseMcGeneric, True, False, ), 2995 'IEM_MC_SUB_GREG_U16': (McBlock.parseMcGeneric, True, False, ), 2996 'IEM_MC_SUB_GREG_U32': (McBlock.parseMcGeneric, True, False, ), 2997 'IEM_MC_SUB_GREG_U64': (McBlock.parseMcGeneric, True, False, ), 2998 'IEM_MC_SUB_GREG_U8': (McBlock.parseMcGeneric, True, False, ), 2999 'IEM_MC_SUB_LOCAL_U16': (McBlock.parseMcGeneric, False, False, ), 3000 'IEM_MC_UPDATE_FPU_OPCODE_IP': (McBlock.parseMcGeneric, True, False, ), 3001 'IEM_MC_UPDATE_FSW': (McBlock.parseMcGeneric, True, False, ), 3002 'IEM_MC_UPDATE_FSW_CONST': (McBlock.parseMcGeneric, True, False, ), 3003 'IEM_MC_UPDATE_FSW_THEN_POP': (McBlock.parseMcGeneric, True, False, ), 3004 'IEM_MC_UPDATE_FSW_THEN_POP_POP': (McBlock.parseMcGeneric, True, False, ), 3005 'IEM_MC_UPDATE_FSW_WITH_MEM_OP': (McBlock.parseMcGeneric, True, False, ), 3006 'IEM_MC_UPDATE_FSW_WITH_MEM_OP_THEN_POP': (McBlock.parseMcGeneric, True, False, ), 3005 3007 }; 3006 3008 -
trunk/src/VBox/VMM/VMMAll/IEMAllN8vePython.py
r101307 r101369 44 44 45 45 46 ## Supplememnts g_dMcStmtParsers. 47 g_dMcStmtThreaded = { 48 'IEM_MC_DEFER_TO_CIMPL_0_RET_THREADED': (None, True, True, ), 49 'IEM_MC_DEFER_TO_CIMPL_1_RET_THREADED': (None, True, True, ), 50 'IEM_MC_DEFER_TO_CIMPL_2_RET_THREADED': (None, True, True, ), 51 'IEM_MC_DEFER_TO_CIMPL_3_RET_THREADED': (None, True, True, ), 52 53 'IEM_MC_ADVANCE_RIP_AND_FINISH_THREADED_PC16': (None, True, False, ), 54 'IEM_MC_ADVANCE_RIP_AND_FINISH_THREADED_PC32': (None, True, True, ), 55 'IEM_MC_ADVANCE_RIP_AND_FINISH_THREADED_PC64': (None, True, False, ), 56 57 'IEM_MC_CALC_RM_EFF_ADDR_THREADED_16_ADDR32': (None, False, False, ), 58 'IEM_MC_CALC_RM_EFF_ADDR_THREADED_16_PRE386': (None, False, False, ), 59 'IEM_MC_CALC_RM_EFF_ADDR_THREADED_16': (None, False, False, ), 60 'IEM_MC_CALC_RM_EFF_ADDR_THREADED_32_ADDR16': (None, False, False, ), 61 'IEM_MC_CALC_RM_EFF_ADDR_THREADED_32_FLAT': (None, False, False, ), 62 'IEM_MC_CALC_RM_EFF_ADDR_THREADED_32': (None, False, False, ), 63 'IEM_MC_CALC_RM_EFF_ADDR_THREADED_64_ADDR32': (None, False, False, ), 64 'IEM_MC_CALC_RM_EFF_ADDR_THREADED_64_FSGS': (None, False, False, ), 65 'IEM_MC_CALC_RM_EFF_ADDR_THREADED_64': (None, False, False, ), 66 67 'IEM_MC_CALL_CIMPL_1_THREADED': (None, True, False, ), 68 'IEM_MC_CALL_CIMPL_2_THREADED': (None, True, False, ), 69 'IEM_MC_CALL_CIMPL_3_THREADED': (None, True, False, ), 70 'IEM_MC_CALL_CIMPL_4_THREADED': (None, True, False, ), 71 'IEM_MC_CALL_CIMPL_5_THREADED': (None, True, False, ), 72 73 'IEM_MC_REL_JMP_S8_AND_FINISH_THREADED_PC16': (None, True, False, ), 74 'IEM_MC_REL_JMP_S8_AND_FINISH_THREADED_PC32': (None, True, False, ), 75 'IEM_MC_REL_JMP_S8_AND_FINISH_THREADED_PC64': (None, True, False, ), 76 'IEM_MC_REL_JMP_S16_AND_FINISH_THREADED_PC16': (None, True, False, ), 77 'IEM_MC_REL_JMP_S16_AND_FINISH_THREADED_PC32': (None, True, False, ), 78 'IEM_MC_REL_JMP_S16_AND_FINISH_THREADED_PC64': (None, True, False, ), 79 'IEM_MC_REL_JMP_S32_AND_FINISH_THREADED_PC32': (None, True, False, ), 80 'IEM_MC_REL_JMP_S32_AND_FINISH_THREADED_PC64': (None, True, False, ), 81 82 'IEM_MC_STORE_GREG_U8_THREADED': (None, True, False, ), 83 'IEM_MC_STORE_GREG_U8_CONST_THREADED': (None, True, False, ), 84 'IEM_MC_FETCH_GREG_U8_THREADED': (None, False, False, ), 85 'IEM_MC_FETCH_GREG_U8_SX_U16_THREADED': (None, False, False, ), 86 'IEM_MC_FETCH_GREG_U8_SX_U32_THREADED': (None, False, False, ), 87 'IEM_MC_FETCH_GREG_U8_SX_U64_THREADED': (None, False, False, ), 88 'IEM_MC_FETCH_GREG_U8_ZX_U16_THREADED': (None, False, False, ), 89 'IEM_MC_FETCH_GREG_U8_ZX_U32_THREADED': (None, False, False, ), 90 'IEM_MC_FETCH_GREG_U8_ZX_U64_THREADED': (None, False, False, ), 91 'IEM_MC_REF_GREG_U8_THREADED': (None, True, False, ), 92 93 # Flat Mem: 94 'IEM_MC_FETCH_MEM16_FLAT_U8': (None, True, False, ), 95 'IEM_MC_FETCH_MEM32_FLAT_U8': (None, True, False, ), 96 'IEM_MC_FETCH_MEM_FLAT_D80': (None, True, False, ), 97 'IEM_MC_FETCH_MEM_FLAT_I16': (None, True, False, ), 98 'IEM_MC_FETCH_MEM_FLAT_I32': (None, True, False, ), 99 'IEM_MC_FETCH_MEM_FLAT_I64': (None, True, False, ), 100 'IEM_MC_FETCH_MEM_FLAT_R32': (None, True, False, ), 101 'IEM_MC_FETCH_MEM_FLAT_R64': (None, True, False, ), 102 'IEM_MC_FETCH_MEM_FLAT_R80': (None, True, False, ), 103 'IEM_MC_FETCH_MEM_FLAT_U128_ALIGN_SSE': (None, True, False, ), 104 'IEM_MC_FETCH_MEM_FLAT_U128_NO_AC': (None, True, False, ), 105 'IEM_MC_FETCH_MEM_FLAT_U128': (None, True, False, ), 106 'IEM_MC_FETCH_MEM_FLAT_U16_DISP': (None, True, False, ), 107 'IEM_MC_FETCH_MEM_FLAT_U16_SX_U32': (None, True, False, ), 108 'IEM_MC_FETCH_MEM_FLAT_U16_SX_U64': (None, True, False, ), 109 'IEM_MC_FETCH_MEM_FLAT_U16': (None, True, False, ), 110 'IEM_MC_FETCH_MEM_FLAT_U16_ZX_U32': (None, True, False, ), 111 'IEM_MC_FETCH_MEM_FLAT_U16_ZX_U64': (None, True, False, ), 112 'IEM_MC_FETCH_MEM_FLAT_U256_ALIGN_AVX': (None, True, False, ), 113 'IEM_MC_FETCH_MEM_FLAT_U256_NO_AC': (None, True, False, ), 114 'IEM_MC_FETCH_MEM_FLAT_U256': (None, True, False, ), 115 'IEM_MC_FETCH_MEM_FLAT_U32_DISP': (None, True, False, ), 116 'IEM_MC_FETCH_MEM_FLAT_U32_SX_U64': (None, True, False, ), 117 'IEM_MC_FETCH_MEM_FLAT_U32': (None, True, False, ), 118 'IEM_MC_FETCH_MEM_FLAT_U32_ZX_U64': (None, True, False, ), 119 'IEM_MC_FETCH_MEM_FLAT_U64': (None, True, False, ), 120 'IEM_MC_FETCH_MEM_FLAT_U8_SX_U16': (None, True, False, ), 121 'IEM_MC_FETCH_MEM_FLAT_U8_SX_U32': (None, True, False, ), 122 'IEM_MC_FETCH_MEM_FLAT_U8_SX_U64': (None, True, False, ), 123 'IEM_MC_FETCH_MEM_FLAT_U8': (None, True, False, ), 124 'IEM_MC_FETCH_MEM_FLAT_U8_ZX_U16': (None, True, False, ), 125 'IEM_MC_FETCH_MEM_FLAT_U8_ZX_U32': (None, True, False, ), 126 'IEM_MC_FETCH_MEM_FLAT_U8_ZX_U64': (None, True, False, ), 127 'IEM_MC_FETCH_MEM_FLAT_XMM_ALIGN_SSE': (None, True, False, ), 128 'IEM_MC_FETCH_MEM_FLAT_XMM_U32': (None, True, False, ), 129 'IEM_MC_FETCH_MEM_FLAT_XMM_U64': (None, True, False, ), 130 'IEM_MC_MEM_FLAT_MAP_EX': (None, True, False, ), 131 'IEM_MC_MEM_FLAT_MAP': (None, True, False, ), 132 'IEM_MC_MEM_FLAT_MAP_U16_RO': (None, True, False, ), 133 'IEM_MC_MEM_FLAT_MAP_U16_RW': (None, True, False, ), 134 'IEM_MC_MEM_FLAT_MAP_U32_RO': (None, True, False, ), 135 'IEM_MC_MEM_FLAT_MAP_U32_RW': (None, True, False, ), 136 'IEM_MC_MEM_FLAT_MAP_U64_RO': (None, True, False, ), 137 'IEM_MC_MEM_FLAT_MAP_U64_RW': (None, True, False, ), 138 'IEM_MC_MEM_FLAT_MAP_U8_RO': (None, True, False, ), 139 'IEM_MC_MEM_FLAT_MAP_U8_RW': (None, True, False, ), 140 'IEM_MC_STORE_MEM_FLAT_U128_ALIGN_SSE': (None, True, False, ), 141 'IEM_MC_STORE_MEM_FLAT_U128': (None, True, False, ), 142 'IEM_MC_STORE_MEM_FLAT_U16': (None, True, False, ), 143 'IEM_MC_STORE_MEM_FLAT_U256_ALIGN_AVX': (None, True, False, ), 144 'IEM_MC_STORE_MEM_FLAT_U256': (None, True, False, ), 145 'IEM_MC_STORE_MEM_FLAT_U32': (None, True, False, ), 146 'IEM_MC_STORE_MEM_FLAT_U64': (None, True, False, ), 147 'IEM_MC_STORE_MEM_FLAT_U8_CONST': (None, True, False, ), 148 'IEM_MC_STORE_MEM_FLAT_U8': (None, True, False, ), 149 150 # Flat Stack: 151 'IEM_MC_FLAT64_PUSH_U16': (None, True, False, ), 152 'IEM_MC_FLAT64_PUSH_U64': (None, True, False, ), 153 'IEM_MC_FLAT64_PUSH_U16': (None, True, False, ), 154 'IEM_MC_FLAT64_PUSH_U64': (None, True, False, ), 155 'IEM_MC_FLAT64_POP_U16': (None, True, False, ), 156 'IEM_MC_FLAT64_POP_U64': (None, True, False, ), 157 'IEM_MC_FLAT64_POP_U16': (None, True, False, ), 158 'IEM_MC_FLAT64_POP_U64': (None, True, False, ), 159 'IEM_MC_FLAT64_PUSH_U16': (None, True, False, ), 160 'IEM_MC_FLAT64_PUSH_U64': (None, True, False, ), 161 'IEM_MC_FLAT64_PUSH_U16': (None, True, False, ), 162 'IEM_MC_FLAT64_PUSH_U64': (None, True, False, ), 163 'IEM_MC_FLAT32_PUSH_U16': (None, True, False, ), 164 'IEM_MC_FLAT64_PUSH_U16': (None, True, False, ), 165 'IEM_MC_FLAT32_PUSH_U32': (None, True, False, ), 166 'IEM_MC_FLAT64_PUSH_U64': (None, True, False, ), 167 }; 168 46 169 class NativeRecompFunctionVariation(object): 47 170 """ … … 70 193 aoStmts = self.oVariation.aoStmtsForThreadedFunction # type: list(McStmt) 71 194 return iai.McStmt.renderCodeForList(aoStmts, cchIndent); 195 196 @staticmethod 197 def checkStatements(aoStmts, sHostArch): 198 """ 199 Checks that all the given statements are supported by the native recompiler. 200 """ 201 _ = sHostArch; 202 for oStmt in aoStmts: # type: McStmt 203 if not oStmt.isCppStmt(): 204 aInfo = iai.g_dMcStmtParsers.get(oStmt.sName); 205 if not aInfo: 206 aInfo = g_dMcStmtThreaded.get(oStmt.sName); 207 if not aInfo: 208 raise Exception('Unknown statement: %s' % (oStmt.sName, )); 209 if aInfo[2] is False: 210 return False; 211 if aInfo[2] is not True: 212 if isinstance(aInfo[2], str): 213 if aInfo[2] != sHostArch: 214 return False; 215 elif sHostArch not in aInfo[2]: 216 return False; 217 #elif not self.fDecode: 218 219 if isinstance(oStmt, iai.McStmtCond): 220 if not NativeRecompFunctionVariation.checkStatements(oStmt.aoIfBranch, sHostArch): 221 return False; 222 if not NativeRecompFunctionVariation.checkStatements(oStmt.aoElseBranch, sHostArch): 223 return False; 224 return True; 72 225 73 226 … … 87 240 # 88 241 aoStmts = oVariation.aoStmtsForThreadedFunction # type: list(McStmt) 242 if NativeRecompFunctionVariation.checkStatements(aoStmts, sHostArch): 243 return NativeRecompFunctionVariation(oVariation, sHostArch); 89 244 90 245 # The simplest case are the IEM_MC_DEFER_TO_CIMPL_*_RET_THREADED ones, just pass them thru: 91 if ( len(aoStmts) == 1 92 and aoStmts[0].sName.startswith('IEM_MC_DEFER_TO_CIMPL_') 93 and aoStmts[0].sName.endswith('_RET_THREADED')): 94 return NativeRecompFunctionVariation(oVariation, sHostArch); 246 #if ( len(aoStmts) == 1 247 # and aoStmts[0].sName.startswith('IEM_MC_DEFER_TO_CIMPL_') 248 # and aoStmts[0].sName.endswith('_RET_THREADED')): 249 # return NativeRecompFunctionVariation(oVariation, sHostArch); 250 251 252 # g_dMcStmtParsers 253 95 254 96 255 return None; -
trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompiler.cpp
r101305 r101369 48 48 #define IEM_WITH_OPAQUE_DECODER_STATE 49 49 #define VMCPU_INCL_CPUM_GST_CTX 50 #define VMM_INCLUDED_SRC_include_IEMMc_h /* block IEMMc.h inclusion. */ 50 51 #include <VBox/vmm/iem.h> 51 52 #include <VBox/vmm/cpum.h> … … 1126 1127 * Called before starting a new recompile job. 1127 1128 */ 1128 static PIEMRECOMPILERSTATE iemNativeReInit(PIEMRECOMPILERSTATE pReNative )1129 static PIEMRECOMPILERSTATE iemNativeReInit(PIEMRECOMPILERSTATE pReNative, PCIEMTB pTb) 1129 1130 { 1130 1131 pReNative->cLabels = 0; 1131 1132 pReNative->cFixups = 0; 1133 pReNative->pTbOrg = pTb; 1132 1134 return pReNative; 1133 1135 } … … 1142 1144 * @param pVCpu The cross context virtual CPU structure of the calling 1143 1145 * thread. 1146 * @param pTb The TB that's about to be recompiled. 1144 1147 * @thread EMT(pVCpu) 1145 1148 */ 1146 static PIEMRECOMPILERSTATE iemNativeInit(PVMCPUCC pVCpu )1149 static PIEMRECOMPILERSTATE iemNativeInit(PVMCPUCC pVCpu, PCIEMTB pTb) 1147 1150 { 1148 1151 VMCPU_ASSERT_EMT(pVCpu); … … 1172 1175 */ 1173 1176 pVCpu->iem.s.pNativeRecompilerStateR3 = pReNative; 1174 return iemNativeReInit(pReNative );1177 return iemNativeReInit(pReNative, pTb); 1175 1178 } 1176 1179 … … 1906 1909 1907 1910 1911 /** Same as iemRegFinishClearingRF. */ 1912 DECLINLINE(uint32_t) iemNativeEmitFinishClearingRF(PIEMRECOMPILERSTATE pReNative, uint32_t off) 1913 { 1914 uint32_t const fFlags = pReNative->pTbOrg->fFlags; 1915 if (fFlags & IEMTB_F_INHIBIT_SHADOW) 1916 { 1917 } 1918 IEMTB_F_IEM_F_MASK 1919 1920 // 1921 if (RT_LIKELY(!( pVCpu->cpum.GstCtx.eflags.uBoth 1922 & (X86_EFL_TF | X86_EFL_RF | CPUMCTX_INHIBIT_SHADOW | CPUMCTX_DBG_HIT_DRX_MASK | CPUMCTX_DBG_DBGF_MASK)) )) 1923 return VINF_SUCCESS; 1924 return iemFinishInstructionWithFlagsSet(pVCpu); 1925 } 1926 1927 1928 /** Same as iemRegAddToEip32AndFinishingClearingRF. */ 1929 DECLINLINE(uint32_t) iemNativeEmitAddToEip32AndFinishingClearingRF(PIEMRECOMPILERSTATE pReNative, uint32_t off, uint8_t cbInstr) 1930 { 1931 /* Increment RIP. */ 1932 pVCpu->cpum.GstCtx.rip = (uint32_t)(pVCpu->cpum.GstCtx.eip + cbInstr); 1933 1934 /* Consider flags. */ 1935 return iemNativeEmitFinishClearingRF(pReNative, off); 1936 } 1937 1938 1908 1939 /* 1909 1940 * MC definitions for the native recompiler. … … 1921 1952 #define IEM_MC_DEFER_TO_CIMPL_3_RET_THREADED(a_cbInstr, a_fFlags, a_pfnCImpl, a0, a1, a2) \ 1922 1953 return iemNativeEmitCImplCall3(pReNative, off, pCallEntry->idxInstr, (uintptr_t)a_pfnCImpl, a_cbInstr, a0, a1, a2) 1954 1955 1956 #define IEM_MC_BEGIN(a_cArgs, a_cLocals, a_fFlags) { 1957 1958 #define IEM_MC_END() } AssertFailedReturn(UINT32_MAX /* shouldn't be reached! */) 1959 1960 #define IEM_MC_ADVANCE_RIP_AND_FINISH_THREADED_PC16(a_cbInstr) \ 1961 return iemNativeEmitAddToIp16AndFinishingClearingRF(pReNative, off, a_cbInstr) 1962 1963 #define IEM_MC_ADVANCE_RIP_AND_FINISH_THREADED_PC32(a_cbInstr) \ 1964 return iemNativeEmitAddToEip32AndFinishingClearingRF(pReNative, off, a_cbInstr) 1965 1966 #define IEM_MC_ADVANCE_RIP_AND_FINISH_THREADED_PC64(a_cbInstr) \ 1967 return iemNativeEmitAddToRip64AndFinishingClearingRF(pReNative, off, a_cbInstr) 1968 1923 1969 1924 1970 /* … … 1965 2011 PIEMRECOMPILERSTATE pReNative = pVCpu->iem.s.pNativeRecompilerStateR3; 1966 2012 if (RT_LIKELY(pReNative)) 1967 iemNativeReInit(pReNative );2013 iemNativeReInit(pReNative, pTb); 1968 2014 else 1969 2015 { 1970 pReNative = iemNativeInit(pVCpu );2016 pReNative = iemNativeInit(pVCpu, pTb); 1971 2017 AssertReturn(pReNative, pTb); 1972 2018 } -
trunk/src/VBox/VMM/include/IEMN8veRecompiler.h
r101306 r101369 257 257 /** Buffer used by the recompiler for recording fixups when generating code. */ 258 258 PIEMNATIVEFIXUP paFixups; 259 260 /** The translation block being recompiled. */ 261 PCIEMTB pTbOrg; 259 262 } IEMRECOMPILERSTATE; 260 263 /** Pointer to a native recompiler state. */
Note:
See TracChangeset
for help on using the changeset viewer.