VirtualBox

Changeset 100854 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Aug 11, 2023 1:29:04 AM (18 months ago)
Author:
vboxsync
Message:

VMM/IEM: In order to get rid of most impossible threaded functions, an IEM_MC_F_XXX parameter is added to IEM_MC_BEGIN that allows specifying if a block is only for 64-bit mode or 386+ or not for 286 or older. It can be extended with more info later, as needed. bugref:10369

Location:
trunk/src/VBox/VMM
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/CPUMAllCpuId.cpp

    r99814 r100854  
    14481448        pFeatures->fHypervisorPresent   = RT_BOOL(pStd1Leaf->uEcx & X86_CPUID_FEATURE_ECX_HVP);
    14491449        pFeatures->fMonitorMWait        = RT_BOOL(pStd1Leaf->uEcx & X86_CPUID_FEATURE_ECX_MONITOR);
    1450         pFeatures->fMovCmpXchg16b       = RT_BOOL(pStd1Leaf->uEcx & X86_CPUID_FEATURE_ECX_CX16);
     1450        pFeatures->fCmpXchg8b           = RT_BOOL(pStd1Leaf->uEdx & X86_CPUID_FEATURE_EDX_CX8);
     1451        pFeatures->fCmpXchg16b          = RT_BOOL(pStd1Leaf->uEcx & X86_CPUID_FEATURE_ECX_CX16);
    14511452        pFeatures->fClFlush             = RT_BOOL(pStd1Leaf->uEdx & X86_CPUID_FEATURE_EDX_CLFSH);
    14521453        pFeatures->fPcid                = RT_BOOL(pStd1Leaf->uEcx & X86_CPUID_FEATURE_ECX_PCID);
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstCommon.cpp.h

    r100740 r100854  
    897897    {
    898898        case IEMMODE_16BIT:
    899             IEM_MC_BEGIN(0, 1);
     899            IEM_MC_BEGIN(0, 1, 0);
    900900            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    901901            IEM_MC_LOCAL(uint16_t, u16Value);
     
    907907
    908908        case IEMMODE_32BIT:
    909             IEM_MC_BEGIN(0, 1);
     909            IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    910910            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    911911            IEM_MC_LOCAL(uint32_t, u32Value);
     
    917917
    918918        case IEMMODE_64BIT:
    919             IEM_MC_BEGIN(0, 1);
     919            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    920920            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    921921            IEM_MC_LOCAL(uint64_t, u64Value);
     
    939939    {
    940940        case IEMMODE_16BIT:
    941             IEM_MC_BEGIN(5, 1);
     941            IEM_MC_BEGIN(5, 1, 0);
    942942            IEM_MC_ARG(uint16_t,        uSel,                                    0);
    943943            IEM_MC_ARG(uint16_t,        offSeg,                                  1);
     
    957957
    958958        case IEMMODE_32BIT:
    959             IEM_MC_BEGIN(5, 1);
     959            IEM_MC_BEGIN(5, 1, IEM_MC_F_MIN_386);
    960960            IEM_MC_ARG(uint16_t,        uSel,                                    0);
    961961            IEM_MC_ARG(uint32_t,        offSeg,                                  1);
     
    975975
    976976        case IEMMODE_64BIT:
    977             IEM_MC_BEGIN(5, 1);
     977            IEM_MC_BEGIN(5, 1, IEM_MC_F_64BIT);
    978978            IEM_MC_ARG(uint16_t,        uSel,                                    0);
    979979            IEM_MC_ARG(uint64_t,        offSeg,                                  1);
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstCommonBodyMacros.h

    r100733 r100854  
    5050        { \
    5151            case IEMMODE_16BIT: \
    52                 IEM_MC_BEGIN(3, 0); \
     52                IEM_MC_BEGIN(3, 0, 0); \
    5353                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    5454                IEM_MC_ARG(uint16_t *, pu16Dst, 0); \
     
    6666            \
    6767            case IEMMODE_32BIT: \
    68                 IEM_MC_BEGIN(3, 0); \
     68                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    6969                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    7070                IEM_MC_ARG(uint32_t *, pu32Dst, 0); \
     
    8484            \
    8585            case IEMMODE_64BIT: \
    86                 IEM_MC_BEGIN(3, 0); \
     86                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    8787                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    8888                IEM_MC_ARG(uint64_t *, pu64Dst, 0); \
     
    110110        { \
    111111            case IEMMODE_16BIT: \
    112                 IEM_MC_BEGIN(3, 1); \
     112                IEM_MC_BEGIN(3, 1, 0); \
    113113                IEM_MC_ARG(uint16_t *, pu16Dst, 0); \
    114114                IEM_MC_ARG(uint16_t,   u16Src,  1); \
     
    128128            \
    129129            case IEMMODE_32BIT: \
    130                 IEM_MC_BEGIN(3, 1); \
     130                IEM_MC_BEGIN(3, 1, IEM_MC_F_MIN_386); \
    131131                IEM_MC_ARG(uint32_t *, pu32Dst, 0); \
    132132                IEM_MC_ARG(uint32_t,   u32Src,  1); \
     
    148148            \
    149149            case IEMMODE_64BIT: \
    150                 IEM_MC_BEGIN(3, 1); \
     150                IEM_MC_BEGIN(3, 1, IEM_MC_F_64BIT); \
    151151                IEM_MC_ARG(uint64_t *, pu64Dst, 0); \
    152152                IEM_MC_ARG(uint64_t,   u64Src,  1); \
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstOneByte.cpp.h

    r100846 r100854  
    7171    if (IEM_IS_MODRM_REG_MODE(bRm)) \
    7272    { \
    73         IEM_MC_BEGIN(3, 0); \
     73        IEM_MC_BEGIN(3, 0, 0); \
    7474        IEM_MC_ARG(uint8_t *,  pu8Dst,  0); \
    7575        IEM_MC_ARG(uint8_t,    u8Src,   1); \
     
    9494        if (!(pVCpu->iem.s.fPrefixes & IEM_OP_PRF_LOCK)) \
    9595        { \
    96             IEM_MC_BEGIN(3, 3); \
     96            IEM_MC_BEGIN(3, 3, 0); \
    9797            IEM_MC_ARG(uint8_t *,  pu8Dst,           0); \
    9898            IEM_MC_ARG(uint8_t,    u8Src,            1); \
     
    131131    if (IEM_IS_MODRM_REG_MODE(bRm)) \
    132132    { \
    133         IEM_MC_BEGIN(3, 0); \
     133        IEM_MC_BEGIN(3, 0, 0); \
    134134        IEM_MC_ARG(uint8_t *,  pu8Dst,  0); \
    135135        IEM_MC_ARG(uint8_t,    u8Src,   1); \
     
    154154        if (!(pVCpu->iem.s.fPrefixes & IEM_OP_PRF_LOCK)) \
    155155        { \
    156             IEM_MC_BEGIN(3, 3); \
     156            IEM_MC_BEGIN(3, 3, 0); \
    157157            IEM_MC_ARG(uint8_t const *, pu8Dst,          0); \
    158158            IEM_MC_ARG(uint8_t,         u8Src,           1); \
     
    185185
    186186#define IEMOP_BODY_BINARY_rm_r8_LOCKED(a_fnLockedU8) \
    187             IEM_MC_BEGIN(3, 3); \
     187            IEM_MC_BEGIN(3, 3, 0); \
    188188            IEM_MC_ARG(uint8_t *,  pu8Dst,           0); \
    189189            IEM_MC_ARG(uint8_t,    u8Src,            1); \
     
    219219    if (IEM_IS_MODRM_REG_MODE(bRm)) \
    220220    { \
    221         IEM_MC_BEGIN(3, 0); \
     221        IEM_MC_BEGIN(3, 0, 0); \
    222222        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    223223        IEM_MC_ARG(uint8_t *,  pu8Dst,  0); \
     
    238238         * We're accessing memory. \
    239239         */ \
    240         IEM_MC_BEGIN(3, 1); \
     240        IEM_MC_BEGIN(3, 1, 0); \
    241241        IEM_MC_ARG(uint8_t *,  pu8Dst,  0); \
    242242        IEM_MC_ARG(uint8_t,    u8Src,   1); \
     
    272272        { \
    273273            case IEMMODE_16BIT: \
    274                 IEM_MC_BEGIN(3, 0); \
     274                IEM_MC_BEGIN(3, 0, 0); \
    275275                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    276276                IEM_MC_ARG(uint16_t *, pu16Dst, 0); \
     
    288288            \
    289289            case IEMMODE_32BIT: \
    290                 IEM_MC_BEGIN(3, 0); \
     290                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    291291                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    292292                IEM_MC_ARG(uint32_t *, pu32Dst, 0); \
     
    305305            \
    306306            case IEMMODE_64BIT: \
    307                 IEM_MC_BEGIN(3, 0); \
     307                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    308308                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    309309                IEM_MC_ARG(uint64_t *, pu64Dst, 0); \
     
    335335            { \
    336336                case IEMMODE_16BIT: \
    337                     IEM_MC_BEGIN(3, 3); \
     337                    IEM_MC_BEGIN(3, 3, 0); \
    338338                    IEM_MC_ARG(uint16_t *, pu16Dst,          0); \
    339339                    IEM_MC_ARG(uint16_t,   u16Src,           1); \
     
    356356                \
    357357                case IEMMODE_32BIT: \
    358                     IEM_MC_BEGIN(3, 3); \
     358                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    359359                    IEM_MC_ARG(uint32_t *, pu32Dst,          0); \
    360360                    IEM_MC_ARG(uint32_t,   u32Src,           1); \
     
    377377                \
    378378                case IEMMODE_64BIT: \
    379                     IEM_MC_BEGIN(3, 3); \
     379                    IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT); \
    380380                    IEM_MC_ARG(uint64_t *, pu64Dst,          0); \
    381381                    IEM_MC_ARG(uint64_t,   u64Src,           1); \
     
    408408            { \
    409409                case IEMMODE_16BIT: \
    410                     IEM_MC_BEGIN(3, 3); \
     410                    IEM_MC_BEGIN(3, 3, 0); \
    411411                    IEM_MC_ARG(uint16_t *, pu16Dst,          0); \
    412412                    IEM_MC_ARG(uint16_t,   u16Src,           1); \
     
    429429                \
    430430                case IEMMODE_32BIT: \
    431                     IEM_MC_BEGIN(3, 3); \
     431                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    432432                    IEM_MC_ARG(uint32_t *, pu32Dst,          0); \
    433433                    IEM_MC_ARG(uint32_t,   u32Src,           1); \
     
    450450                \
    451451                case IEMMODE_64BIT: \
    452                     IEM_MC_BEGIN(3, 3); \
     452                    IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT); \
    453453                    IEM_MC_ARG(uint64_t *, pu64Dst,          0); \
    454454                    IEM_MC_ARG(uint64_t,   u64Src,           1); \
     
    491491        { \
    492492            case IEMMODE_16BIT: \
    493                 IEM_MC_BEGIN(3, 0); \
     493                IEM_MC_BEGIN(3, 0, 0); \
    494494                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    495495                IEM_MC_ARG(uint16_t *, pu16Dst, 0); \
     
    507507            \
    508508            case IEMMODE_32BIT: \
    509                 IEM_MC_BEGIN(3, 0); \
     509                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    510510                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    511511                IEM_MC_ARG(uint32_t *, pu32Dst, 0); \
     
    523523            \
    524524            case IEMMODE_64BIT: \
    525                 IEM_MC_BEGIN(3, 0); \
     525                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    526526                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    527527                IEM_MC_ARG(uint64_t *, pu64Dst, 0); \
     
    553553            { \
    554554                case IEMMODE_16BIT: \
    555                     IEM_MC_BEGIN(3, 3); \
     555                    IEM_MC_BEGIN(3, 3, 0); \
    556556                    IEM_MC_ARG(uint16_t const *, pu16Dst,         0); \
    557557                    IEM_MC_ARG(uint16_t,         u16Src,          1); \
     
    574574                \
    575575                case IEMMODE_32BIT: \
    576                     IEM_MC_BEGIN(3, 3); \
     576                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    577577                    IEM_MC_ARG(uint32_t const *, pu32Dst,         0); \
    578578                    IEM_MC_ARG(uint32_t,         u32Src,          1); \
     
    595595                \
    596596                case IEMMODE_64BIT: \
    597                     IEM_MC_BEGIN(3, 3); \
     597                    IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT); \
    598598                    IEM_MC_ARG(uint64_t const *, pu64Dst,         0); \
    599599                    IEM_MC_ARG(uint64_t,         u64Src,          1); \
     
    634634    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm); \
    635635    \
    636     IEM_MC_BEGIN(3, 0); \
     636    IEM_MC_BEGIN(3, 0, 0); \
    637637    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    638638    IEM_MC_ARG(uint8_t *,       pu8Dst,             0); \
     
    658658            uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm); \
    659659            \
    660             IEM_MC_BEGIN(3, 0); \
     660            IEM_MC_BEGIN(3, 0, 0); \
    661661            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    662662            IEM_MC_ARG(uint16_t *,      pu16Dst,                0); \
     
    676676            uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm); \
    677677            \
    678             IEM_MC_BEGIN(3, 0); \
     678            IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    679679            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    680680            IEM_MC_ARG(uint32_t *,      pu32Dst,                0); \
     
    696696            uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm); \
    697697            \
    698             IEM_MC_BEGIN(3, 0); \
     698            IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    699699            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    700700            IEM_MC_ARG(uint64_t *,      pu64Dst,                0); \
     
    17681768    { \
    17691769        case IEMMODE_16BIT: \
    1770             IEM_MC_BEGIN(2, 0); \
     1770            IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_64BIT); \
    17711771            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    17721772            IEM_MC_ARG(uint16_t *,  pu16Dst, 0); \
     
    17801780            \
    17811781        case IEMMODE_32BIT: \
    1782             IEM_MC_BEGIN(2, 0); \
     1782            IEM_MC_BEGIN(2, 0, IEM_MC_F_MIN_386 | IEM_MC_F_NOT_64BIT); \
    17831783            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    17841784            IEM_MC_ARG(uint32_t *,  pu32Dst, 0); \
     
    21952195    {
    21962196        case IEMMODE_16BIT:
    2197             IEM_MC_BEGIN(0, 1);
     2197            IEM_MC_BEGIN(0, 1, 0);
    21982198            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    21992199            IEM_MC_LOCAL(uint16_t, u16Value);
     
    22052205
    22062206        case IEMMODE_32BIT:
    2207             IEM_MC_BEGIN(0, 1);
     2207            IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    22082208            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    22092209            IEM_MC_LOCAL(uint32_t, u32Value);
     
    22152215
    22162216        case IEMMODE_64BIT:
    2217             IEM_MC_BEGIN(0, 1);
     2217            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    22182218            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    22192219            IEM_MC_LOCAL(uint64_t, u64Value);
     
    22772277    if (IEM_GET_TARGET_CPU(pVCpu) == IEMTARGETCPU_8086)
    22782278    {
    2279         IEM_MC_BEGIN(0, 1);
     2279        IEM_MC_BEGIN(0, 1, IEM_MC_F_ONLY_8086);
    22802280        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    22812281        IEM_MC_LOCAL(uint16_t, u16Value);
     
    23352335    {
    23362336        case IEMMODE_16BIT:
    2337             IEM_MC_BEGIN(0, 1);
     2337            IEM_MC_BEGIN(0, 1, 0);
    23382338            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    23392339            IEM_MC_LOCAL(uint16_t *, pu16Dst);
     
    23452345
    23462346        case IEMMODE_32BIT:
    2347             IEM_MC_BEGIN(0, 1);
     2347            IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    23482348            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    23492349            IEM_MC_LOCAL(uint32_t *, pu32Dst);
     
    23562356
    23572357        case IEMMODE_64BIT:
    2358             IEM_MC_BEGIN(0, 1);
     2358            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    23592359            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    23602360            IEM_MC_LOCAL(uint64_t *, pu64Dst);
     
    24282428    {
    24292429        case IEMMODE_16BIT:
    2430             IEM_MC_BEGIN(0, 1);
     2430            IEM_MC_BEGIN(0, 1, 0);
    24312431            IEMOP_HLP_DECODED_NL_1(OP_POP, IEMOPFORM_FIXED, OP_PARM_REG_ESP,
    24322432                                   DISOPTYPE_HARMLESS | DISOPTYPE_X86_DEFAULT_64_OP_SIZE | DISOPTYPE_X86_REXB_EXTENDS_OPREG);
     
    24392439
    24402440        case IEMMODE_32BIT:
    2441             IEM_MC_BEGIN(0, 1);
     2441            IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    24422442            IEMOP_HLP_DECODED_NL_1(OP_POP, IEMOPFORM_FIXED, OP_PARM_REG_ESP,
    24432443                                   DISOPTYPE_HARMLESS | DISOPTYPE_X86_DEFAULT_64_OP_SIZE | DISOPTYPE_X86_REXB_EXTENDS_OPREG);
     
    24502450
    24512451        case IEMMODE_64BIT:
    2452             IEM_MC_BEGIN(0, 1);
     2452            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    24532453            IEMOP_HLP_DECODED_NL_1(OP_POP, IEMOPFORM_FIXED, OP_PARM_REG_ESP,
    24542454                                   DISOPTYPE_HARMLESS | DISOPTYPE_X86_DEFAULT_64_OP_SIZE | DISOPTYPE_X86_REXB_EXTENDS_OPREG);
     
    26052605            if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    26062606            {
    2607                 IEM_MC_BEGIN(3, 1);
     2607                IEM_MC_BEGIN(3, 1, IEM_MC_F_NOT_64BIT);
    26082608                IEM_MC_ARG(uint16_t,    u16Index,       0); /* Note! All operands are actually signed. Lazy unsigned bird. */
    26092609                IEM_MC_ARG(uint16_t,    u16LowerBounds, 1);
     
    26232623            else /* 32-bit operands */
    26242624            {
    2625                 IEM_MC_BEGIN(3, 1);
     2625                IEM_MC_BEGIN(3, 1, IEM_MC_F_MIN_386 | IEM_MC_F_NOT_64BIT);
    26262626                IEM_MC_ARG(uint32_t,    u32Index,       0); /* Note! All operands are actually signed. Lazy unsigned bird. */
    26272627                IEM_MC_ARG(uint32_t,    u32LowerBounds, 1);
     
    26832683    {
    26842684        /* Register */
    2685         IEM_MC_BEGIN(3, 0);
     2685        IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_64BIT);
    26862686        IEMOP_HLP_DECODED_NL_2(OP_ARPL, IEMOPFORM_MR_REG, OP_PARM_Ew, OP_PARM_Gw, DISOPTYPE_HARMLESS);
    26872687        IEM_MC_ARG(uint16_t *,      pu16Dst,    0);
     
    27002700    {
    27012701        /* Memory */
    2702         IEM_MC_BEGIN(3, 3);
     2702        IEM_MC_BEGIN(3, 3, IEM_MC_F_NOT_64BIT);
    27032703        IEM_MC_ARG(uint16_t *, pu16Dst,          0);
    27042704        IEM_MC_ARG(uint16_t,   u16Src,           1);
     
    27422742             * Register to register.
    27432743             */
    2744             IEM_MC_BEGIN(0, 1);
     2744            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    27452745            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    27462746            IEM_MC_LOCAL(uint64_t, u64Value);
     
    27552755             * We're loading a register from memory.
    27562756             */
    2757             IEM_MC_BEGIN(0, 2);
     2757            IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    27582758            IEM_MC_LOCAL(uint64_t, u64Value);
    27592759            IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    28752875        {
    28762876            uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    2877             IEM_MC_BEGIN(0,0);
     2877            IEM_MC_BEGIN(0, 0, 0);
    28782878            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    28792879            IEM_MC_PUSH_U16(u16Imm);
     
    28862886        {
    28872887            uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    2888             IEM_MC_BEGIN(0,0);
     2888            IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    28892889            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    28902890            IEM_MC_PUSH_U32(u32Imm);
     
    28972897        {
    28982898            uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm);
    2899             IEM_MC_BEGIN(0,0);
     2899            IEM_MC_BEGIN(0, 0, IEM_MC_F_64BIT);
    29002900            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    29012901            IEM_MC_PUSH_U64(u64Imm);
     
    29292929                /* register operand */
    29302930                uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    2931                 IEM_MC_BEGIN(3, 1);
     2931                IEM_MC_BEGIN(3, 1, 0);
    29322932                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    29332933                IEM_MC_ARG(uint16_t *,      pu16Dst,            0);
     
    29482948            {
    29492949                /* memory operand */
    2950                 IEM_MC_BEGIN(3, 2);
     2950                IEM_MC_BEGIN(3, 2, 0);
    29512951                IEM_MC_ARG(uint16_t *,      pu16Dst,            0);
    29522952                IEM_MC_ARG(uint16_t,        u16Src,             1);
     
    29782978                /* register operand */
    29792979                uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    2980                 IEM_MC_BEGIN(3, 1);
     2980                IEM_MC_BEGIN(3, 1, IEM_MC_F_MIN_386);
    29812981                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    29822982                IEM_MC_ARG(uint32_t *,      pu32Dst,            0);
     
    29972997            {
    29982998                /* memory operand */
    2999                 IEM_MC_BEGIN(3, 2);
     2999                IEM_MC_BEGIN(3, 2, IEM_MC_F_MIN_386);
    30003000                IEM_MC_ARG(uint32_t *,      pu32Dst,            0);
    30013001                IEM_MC_ARG(uint32_t,        u32Src,             1);
     
    30273027                /* register operand */
    30283028                uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm);
    3029                 IEM_MC_BEGIN(3, 1);
     3029                IEM_MC_BEGIN(3, 1, IEM_MC_F_64BIT);
    30303030                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    30313031                IEM_MC_ARG(uint64_t *,      pu64Dst,            0);
     
    30463046            {
    30473047                /* memory operand */
    3048                 IEM_MC_BEGIN(3, 2);
     3048                IEM_MC_BEGIN(3, 2, IEM_MC_F_64BIT);
    30493049                IEM_MC_ARG(uint64_t *,      pu64Dst,            0);
    30503050                IEM_MC_ARG(uint64_t,        u64Src,             1);
     
    30873087    {
    30883088        case IEMMODE_16BIT:
    3089             IEM_MC_BEGIN(0,0);
     3089            IEM_MC_BEGIN(0, 0, 0);
    30903090            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    30913091            IEM_MC_PUSH_U16(i8Imm);
     
    30943094            break;
    30953095        case IEMMODE_32BIT:
    3096             IEM_MC_BEGIN(0,0);
     3096            IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    30973097            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    30983098            IEM_MC_PUSH_U32(i8Imm);
     
    31013101            break;
    31023102        case IEMMODE_64BIT:
    3103             IEM_MC_BEGIN(0,0);
     3103            IEM_MC_BEGIN(0, 0, IEM_MC_F_64BIT);
    31043104            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    31053105            IEM_MC_PUSH_U64(i8Imm);
     
    31313131                /* register operand */
    31323132                uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    3133                 IEM_MC_BEGIN(3, 1);
     3133                IEM_MC_BEGIN(3, 1, 0);
    31343134                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    31353135                IEM_MC_ARG(uint16_t *,      pu16Dst,                    0);
     
    31503150            {
    31513151                /* memory operand */
    3152                 IEM_MC_BEGIN(3, 2);
     3152                IEM_MC_BEGIN(3, 2, 0);
    31533153                IEM_MC_ARG(uint16_t *,      pu16Dst,                    0);
    31543154                IEM_MC_ARG(uint16_t,        u16Src,                     1);
     
    31803180                /* register operand */
    31813181                uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    3182                 IEM_MC_BEGIN(3, 1);
     3182                IEM_MC_BEGIN(3, 1, IEM_MC_F_MIN_386);
    31833183                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    31843184                IEM_MC_ARG(uint32_t *,      pu32Dst,                    0);
     
    31993199            {
    32003200                /* memory operand */
    3201                 IEM_MC_BEGIN(3, 2);
     3201                IEM_MC_BEGIN(3, 2, IEM_MC_F_MIN_386);
    32023202                IEM_MC_ARG(uint32_t *,      pu32Dst,                    0);
    32033203                IEM_MC_ARG(uint32_t,        u32Src,                     1);
     
    32293229                /* register operand */
    32303230                uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    3231                 IEM_MC_BEGIN(3, 1);
     3231                IEM_MC_BEGIN(3, 1, IEM_MC_F_64BIT);
    32323232                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    32333233                IEM_MC_ARG(uint64_t *,      pu64Dst,                    0);
     
    32483248            {
    32493249                /* memory operand */
    3250                 IEM_MC_BEGIN(3, 2);
     3250                IEM_MC_BEGIN(3, 2, IEM_MC_F_64BIT);
    32513251                IEM_MC_ARG(uint64_t *,      pu64Dst,                    0);
    32523252                IEM_MC_ARG(uint64_t,        u64Src,                     1);
     
    35373537    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    35383538
    3539     IEM_MC_BEGIN(0, 0);
     3539    IEM_MC_BEGIN(0, 0, 0);
    35403540    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    35413541    IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) {
     
    35573557    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    35583558
    3559     IEM_MC_BEGIN(0, 0);
     3559    IEM_MC_BEGIN(0, 0, 0);
    35603560    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    35613561    IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) {
     
    35763576    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    35773577
    3578     IEM_MC_BEGIN(0, 0);
     3578    IEM_MC_BEGIN(0, 0, 0);
    35793579    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    35803580    IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) {
     
    35963596    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    35973597
    3598     IEM_MC_BEGIN(0, 0);
     3598    IEM_MC_BEGIN(0, 0, 0);
    35993599    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    36003600    IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) {
     
    36163616    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    36173617
    3618     IEM_MC_BEGIN(0, 0);
     3618    IEM_MC_BEGIN(0, 0, 0);
    36193619    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    36203620    IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) {
     
    36363636    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    36373637
    3638     IEM_MC_BEGIN(0, 0);
     3638    IEM_MC_BEGIN(0, 0, 0);
    36393639    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    36403640    IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) {
     
    36563656    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    36573657
    3658     IEM_MC_BEGIN(0, 0);
     3658    IEM_MC_BEGIN(0, 0, 0);
    36593659    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    36603660    IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) {
     
    36763676    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    36773677
    3678     IEM_MC_BEGIN(0, 0);
     3678    IEM_MC_BEGIN(0, 0, 0);
    36793679    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    36803680    IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) {
     
    36963696    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    36973697
    3698     IEM_MC_BEGIN(0, 0);
     3698    IEM_MC_BEGIN(0, 0, 0);
    36993699    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    37003700    IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) {
     
    37163716    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    37173717
    3718     IEM_MC_BEGIN(0, 0);
     3718    IEM_MC_BEGIN(0, 0, 0);
    37193719    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    37203720    IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) {
     
    37363736    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    37373737
    3738     IEM_MC_BEGIN(0, 0);
     3738    IEM_MC_BEGIN(0, 0, 0);
    37393739    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    37403740    IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) {
     
    37563756    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    37573757
    3758     IEM_MC_BEGIN(0, 0);
     3758    IEM_MC_BEGIN(0, 0, 0);
    37593759    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    37603760    IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) {
     
    37763776    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    37773777
    3778     IEM_MC_BEGIN(0, 0);
     3778    IEM_MC_BEGIN(0, 0, 0);
    37793779    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    37803780    IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) {
     
    37963796    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    37973797
    3798     IEM_MC_BEGIN(0, 0);
     3798    IEM_MC_BEGIN(0, 0, 0);
    37993799    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    38003800    IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) {
     
    38163816    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    38173817
    3818     IEM_MC_BEGIN(0, 0);
     3818    IEM_MC_BEGIN(0, 0, 0);
    38193819    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    38203820    IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) {
     
    38363836    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    38373837
    3838     IEM_MC_BEGIN(0, 0);
     3838    IEM_MC_BEGIN(0, 0, 0);
    38393839    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    38403840    IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) {
     
    38563856        /* register target */ \
    38573857        uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm); \
    3858         IEM_MC_BEGIN(3, 0); \
     3858        IEM_MC_BEGIN(3, 0, 0); \
    38593859        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    38603860        IEM_MC_ARG(uint8_t *,       pu8Dst,                 0); \
     
    38743874        if (!(pVCpu->iem.s.fPrefixes & IEM_OP_PRF_LOCK)) \
    38753875        { \
    3876             IEM_MC_BEGIN(3, 3); \
     3876            IEM_MC_BEGIN(3, 3, 0); \
    38773877            IEM_MC_ARG(uint8_t *,       pu8Dst,                 0); \
    38783878            IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags,        2); \
     
    38993899
    39003900#define IEMOP_BODY_BINARY_Eb_Ib_LOCKED(a_fnLockedU8) \
    3901             IEM_MC_BEGIN(3, 3); \
     3901            IEM_MC_BEGIN(3, 3, 0); \
    39023902            IEM_MC_ARG(uint8_t *,       pu8Dst,                 0); \
    39033903            IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags,        2); \
     
    39273927        /* register target */ \
    39283928        uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm); \
    3929         IEM_MC_BEGIN(3, 0); \
     3929        IEM_MC_BEGIN(3, 0, 0); \
    39303930        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    39313931        IEM_MC_ARG(uint8_t *,       pu8Dst,                 0); \
     
    39453945        if (!(pVCpu->iem.s.fPrefixes & IEM_OP_PRF_LOCK)) \
    39463946        { \
    3947             IEM_MC_BEGIN(3, 3); \
     3947            IEM_MC_BEGIN(3, 3, 0); \
    39483948            IEM_MC_ARG(uint8_t const *, pu8Dst,                 0); \
    39493949            IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags,        2); \
     
    41074107            { \
    41084108                uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm); \
    4109                 IEM_MC_BEGIN(3, 0); \
     4109                IEM_MC_BEGIN(3, 0, 0); \
    41104110                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    41114111                IEM_MC_ARG(uint16_t *,      pu16Dst,                0); \
     
    41254125            { \
    41264126                uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm); \
    4127                 IEM_MC_BEGIN(3, 0); \
     4127                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    41284128                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    41294129                IEM_MC_ARG(uint32_t *,      pu32Dst,                0); \
     
    41444144            { \
    41454145                uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm); \
    4146                 IEM_MC_BEGIN(3, 0); \
     4146                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    41474147                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    41484148                IEM_MC_ARG(uint64_t *,      pu64Dst,                0); \
     
    41714171                case IEMMODE_16BIT: \
    41724172                { \
    4173                     IEM_MC_BEGIN(3, 3); \
     4173                    IEM_MC_BEGIN(3, 3, 0); \
    41744174                    IEM_MC_ARG(uint16_t *,      pu16Dst,                0); \
    41754175                    IEM_MC_ARG(uint16_t,        u16Src,                 1); \
     
    41954195                case IEMMODE_32BIT: \
    41964196                { \
    4197                     IEM_MC_BEGIN(3, 3); \
     4197                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    41984198                    IEM_MC_ARG(uint32_t *,      pu32Dst,                0); \
    41994199                    IEM_MC_ARG(uint32_t,        u32Src,                 1); \
     
    42194219                case IEMMODE_64BIT: \
    42204220                { \
    4221                     IEM_MC_BEGIN(3, 3); \
     4221                    IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT); \
    42224222                    IEM_MC_ARG(uint64_t *,      pu64Dst,                0); \
    42234223                    IEM_MC_ARG(uint64_t,        u64Src,                 1); \
     
    42534253                case IEMMODE_16BIT: \
    42544254                { \
    4255                     IEM_MC_BEGIN(3, 3); \
     4255                    IEM_MC_BEGIN(3, 3, 0); \
    42564256                    IEM_MC_ARG(uint16_t *,      pu16Dst,                0); \
    42574257                    IEM_MC_ARG(uint16_t,        u16Src,                 1); \
     
    42774277                case IEMMODE_32BIT: \
    42784278                { \
    4279                     IEM_MC_BEGIN(3, 3); \
     4279                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    42804280                    IEM_MC_ARG(uint32_t *,      pu32Dst,                0); \
    42814281                    IEM_MC_ARG(uint32_t,        u32Src,                 1); \
     
    43014301                case IEMMODE_64BIT: \
    43024302                { \
    4303                     IEM_MC_BEGIN(3, 3); \
     4303                    IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT); \
    43044304                    IEM_MC_ARG(uint64_t *,      pu64Dst,                0); \
    43054305                    IEM_MC_ARG(uint64_t,        u64Src,                 1); \
     
    43394339            { \
    43404340                uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm); \
    4341                 IEM_MC_BEGIN(3, 0); \
     4341                IEM_MC_BEGIN(3, 0, 0); \
    43424342                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    43434343                IEM_MC_ARG(uint16_t *,      pu16Dst,                0); \
     
    43574357            { \
    43584358                uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm); \
    4359                 IEM_MC_BEGIN(3, 0); \
     4359                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    43604360                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    43614361                IEM_MC_ARG(uint32_t *,      pu32Dst,                0); \
     
    43754375            { \
    43764376                uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm); \
    4377                 IEM_MC_BEGIN(3, 0); \
     4377                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    43784378                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    43794379                IEM_MC_ARG(uint64_t *,      pu64Dst,                0); \
     
    44024402                case IEMMODE_16BIT: \
    44034403                { \
    4404                     IEM_MC_BEGIN(3, 3); \
     4404                    IEM_MC_BEGIN(3, 3, 0); \
    44054405                    IEM_MC_ARG(uint16_t const *, pu16Dst,               0); \
    44064406                    IEM_MC_ARG(uint16_t,         u16Src,                1); \
     
    44264426                case IEMMODE_32BIT: \
    44274427                { \
    4428                     IEM_MC_BEGIN(3, 3); \
     4428                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    44294429                    IEM_MC_ARG(uint32_t const *, pu32Dst,               0); \
    44304430                    IEM_MC_ARG(uint32_t,         u32Src,                1); \
     
    44504450                case IEMMODE_64BIT: \
    44514451                { \
    4452                     IEM_MC_BEGIN(3, 3); \
     4452                    IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT); \
    44534453                    IEM_MC_ARG(uint64_t const *, pu64Dst,               0); \
    44544454                    IEM_MC_ARG(uint64_t,         u64Src,                1); \
     
    46264626        { \
    46274627            case IEMMODE_16BIT: \
    4628             { \
    4629                 IEM_MC_BEGIN(3, 0); \
     4628                IEM_MC_BEGIN(3, 0, 0); \
    46304629                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    46314630                IEM_MC_ARG(uint16_t *,      pu16Dst,                    0); \
     
    46404639                IEM_MC_END(); \
    46414640                break; \
    4642             } \
    46434641            \
    46444642            case IEMMODE_32BIT: \
    4645             { \
    4646                 IEM_MC_BEGIN(3, 0); \
     4643                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    46474644                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    46484645                IEM_MC_ARG(uint32_t *,      pu32Dst,                    0); \
     
    46584655                IEM_MC_END(); \
    46594656                break; \
    4660             } \
    46614657            \
    46624658            case IEMMODE_64BIT: \
    4663             { \
    4664                 IEM_MC_BEGIN(3, 0); \
     4659                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    46654660                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    46664661                IEM_MC_ARG(uint64_t *,      pu64Dst,                    0); \
     
    46754670                IEM_MC_END(); \
    46764671                break; \
    4677             } \
    46784672            \
    46794673            IEM_NOT_REACHED_DEFAULT_CASE_RET(); \
     
    46904684            { \
    46914685                case IEMMODE_16BIT: \
    4692                 { \
    4693                     IEM_MC_BEGIN(3, 3); \
     4686                    IEM_MC_BEGIN(3, 3, 0); \
    46944687                    IEM_MC_ARG(uint16_t *,      pu16Dst,                    0); \
    46954688                    IEM_MC_ARG(uint16_t,        u16Src,                     1); \
     
    47114704                    IEM_MC_END(); \
    47124705                    break; \
    4713                 } \
    47144706                \
    47154707                case IEMMODE_32BIT: \
    4716                 { \
    4717                     IEM_MC_BEGIN(3, 3); \
     4708                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    47184709                    IEM_MC_ARG(uint32_t *,      pu32Dst,                    0); \
    47194710                    IEM_MC_ARG(uint32_t,        u32Src,                     1); \
     
    47354726                    IEM_MC_END(); \
    47364727                    break; \
    4737                 } \
    47384728                \
    47394729                case IEMMODE_64BIT: \
    4740                 { \
    4741                     IEM_MC_BEGIN(3, 3); \
     4730                    IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT); \
    47424731                    IEM_MC_ARG(uint64_t *,      pu64Dst,                    0); \
    47434732                    IEM_MC_ARG(uint64_t,        u64Src,                     1); \
     
    47594748                    IEM_MC_END(); \
    47604749                    break; \
    4761                 } \
    47624750                \
    47634751                IEM_NOT_REACHED_DEFAULT_CASE_RET(); \
     
    47724760            { \
    47734761                case IEMMODE_16BIT: \
    4774                 { \
    4775                     IEM_MC_BEGIN(3, 3); \
     4762                    IEM_MC_BEGIN(3, 3, 0); \
    47764763                    IEM_MC_ARG(uint16_t *,      pu16Dst,                    0); \
    47774764                    IEM_MC_ARG(uint16_t,        u16Src,                     1); \
     
    47934780                    IEM_MC_END(); \
    47944781                    break; \
    4795                 } \
    47964782                \
    47974783                case IEMMODE_32BIT: \
    4798                 { \
    4799                     IEM_MC_BEGIN(3, 3); \
     4784                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    48004785                    IEM_MC_ARG(uint32_t *,      pu32Dst,                    0); \
    48014786                    IEM_MC_ARG(uint32_t,        u32Src,                     1); \
     
    48174802                    IEM_MC_END(); \
    48184803                    break; \
    4819                 } \
    48204804                \
    48214805                case IEMMODE_64BIT: \
    4822                 { \
    4823                     IEM_MC_BEGIN(3, 3); \
     4806                    IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT); \
    48244807                    IEM_MC_ARG(uint64_t *,      pu64Dst,                    0); \
    48254808                    IEM_MC_ARG(uint64_t,        u64Src,                     1); \
     
    48414824                    IEM_MC_END(); \
    48424825                    break; \
    4843                 } \
    48444826                \
    48454827                IEM_NOT_REACHED_DEFAULT_CASE_RET(); \
     
    48604842        { \
    48614843            case IEMMODE_16BIT: \
    4862             { \
    4863                 IEM_MC_BEGIN(3, 0); \
     4844                IEM_MC_BEGIN(3, 0, 0); \
    48644845                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    48654846                IEM_MC_ARG(uint16_t *,      pu16Dst,                    0); \
     
    48744855                IEM_MC_END(); \
    48754856                break; \
    4876             } \
    48774857            \
    48784858            case IEMMODE_32BIT: \
    4879             { \
    4880                 IEM_MC_BEGIN(3, 0); \
     4859                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    48814860                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    48824861                IEM_MC_ARG(uint32_t *,      pu32Dst,                    0); \
     
    48914870                IEM_MC_END(); \
    48924871                break; \
    4893             } \
    48944872            \
    48954873            case IEMMODE_64BIT: \
    4896             { \
    4897                 IEM_MC_BEGIN(3, 0); \
     4874                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    48984875                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    48994876                IEM_MC_ARG(uint64_t *,      pu64Dst,                    0); \
     
    49084885                IEM_MC_END(); \
    49094886                break; \
    4910             } \
    49114887            \
    49124888            IEM_NOT_REACHED_DEFAULT_CASE_RET(); \
     
    49234899            { \
    49244900                case IEMMODE_16BIT: \
    4925                 { \
    4926                     IEM_MC_BEGIN(3, 3); \
     4901                    IEM_MC_BEGIN(3, 3, 0); \
    49274902                    IEM_MC_ARG(uint16_t const *, pu16Dst,                   0); \
    49284903                    IEM_MC_ARG(uint16_t,         u16Src,                    1); \
     
    49444919                    IEM_MC_END(); \
    49454920                    break; \
    4946                 } \
    49474921                \
    49484922                case IEMMODE_32BIT: \
    4949                 { \
    4950                     IEM_MC_BEGIN(3, 3); \
     4923                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    49514924                    IEM_MC_ARG(uint32_t const *, pu32Dst,                   0); \
    49524925                    IEM_MC_ARG(uint32_t,         u32Src,                    1); \
     
    49684941                    IEM_MC_END(); \
    49694942                    break; \
    4970                 } \
    49714943                \
    49724944                case IEMMODE_64BIT: \
    4973                 { \
    4974                     IEM_MC_BEGIN(3, 3); \
     4945                    IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT); \
    49754946                    IEM_MC_ARG(uint64_t const *, pu64Dst,                   0); \
    49764947                    IEM_MC_ARG(uint64_t,         u64Src,                    1); \
     
    49924963                    IEM_MC_END(); \
    49934964                    break; \
    4994                 } \
    49954965                \
    49964966                IEM_NOT_REACHED_DEFAULT_CASE_RET(); \
     
    51605130    if (IEM_IS_MODRM_REG_MODE(bRm))
    51615131    {
    5162         IEM_MC_BEGIN(0, 2);
     5132        IEM_MC_BEGIN(0, 2, 0);
    51635133        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    51645134        IEM_MC_LOCAL(uint8_t, uTmp1);
     
    51785148         * We're accessing memory.
    51795149         */
    5180         IEM_MC_BEGIN(2, 4);
     5150        IEM_MC_BEGIN(2, 4, 0);
    51815151        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    51825152        IEM_MC_LOCAL(uint8_t, bUnmapInfo);
     
    52185188        {
    52195189            case IEMMODE_16BIT:
    5220                 IEM_MC_BEGIN(0, 2);
     5190                IEM_MC_BEGIN(0, 2, 0);
    52215191                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    52225192                IEM_MC_LOCAL(uint16_t, uTmp1);
     
    52335203
    52345204            case IEMMODE_32BIT:
    5235                 IEM_MC_BEGIN(0, 2);
     5205                IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    52365206                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    52375207                IEM_MC_LOCAL(uint32_t, uTmp1);
     
    52485218
    52495219            case IEMMODE_64BIT:
    5250                 IEM_MC_BEGIN(0, 2);
     5220                IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    52515221                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    52525222                IEM_MC_LOCAL(uint64_t, uTmp1);
     
    52735243        {
    52745244            case IEMMODE_16BIT:
    5275                 IEM_MC_BEGIN(2, 4);
     5245                IEM_MC_BEGIN(2, 4, 0);
    52765246                IEM_MC_LOCAL(RTGCPTR,  GCPtrEffDst);
    52775247                IEM_MC_LOCAL(uint8_t,  bUnmapInfo);
     
    52965266
    52975267            case IEMMODE_32BIT:
    5298                 IEM_MC_BEGIN(2, 4);
     5268                IEM_MC_BEGIN(2, 4, IEM_MC_F_MIN_386);
    52995269                IEM_MC_LOCAL(RTGCPTR,  GCPtrEffDst);
    53005270                IEM_MC_LOCAL(uint8_t,  bUnmapInfo);
     
    53195289
    53205290            case IEMMODE_64BIT:
    5321                 IEM_MC_BEGIN(2, 4);
     5291                IEM_MC_BEGIN(2, 4, IEM_MC_F_64BIT);
    53225292                IEM_MC_LOCAL(RTGCPTR,  GCPtrEffDst);
    53235293                IEM_MC_LOCAL(uint8_t,  bUnmapInfo);
     
    53625332    if (IEM_IS_MODRM_REG_MODE(bRm))
    53635333    {
    5364         IEM_MC_BEGIN(0, 1);
     5334        IEM_MC_BEGIN(0, 1, 0);
    53655335        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    53665336        IEM_MC_LOCAL(uint8_t, u8Value);
     
    53755345         * We're writing a register to memory.
    53765346         */
    5377         IEM_MC_BEGIN(0, 2);
     5347        IEM_MC_BEGIN(0, 2, 0);
    53785348        IEM_MC_LOCAL(uint8_t, u8Value);
    53795349        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    54055375        {
    54065376            case IEMMODE_16BIT:
    5407                 IEM_MC_BEGIN(0, 1);
     5377                IEM_MC_BEGIN(0, 1, 0);
    54085378                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    54095379                IEM_MC_LOCAL(uint16_t, u16Value);
     
    54155385
    54165386            case IEMMODE_32BIT:
    5417                 IEM_MC_BEGIN(0, 1);
     5387                IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    54185388                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    54195389                IEM_MC_LOCAL(uint32_t, u32Value);
     
    54255395
    54265396            case IEMMODE_64BIT:
    5427                 IEM_MC_BEGIN(0, 1);
     5397                IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    54285398                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    54295399                IEM_MC_LOCAL(uint64_t, u64Value);
     
    54455415        {
    54465416            case IEMMODE_16BIT:
    5447                 IEM_MC_BEGIN(0, 2);
     5417                IEM_MC_BEGIN(0, 2, 0);
    54485418                IEM_MC_LOCAL(uint16_t, u16Value);
    54495419                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    54575427
    54585428            case IEMMODE_32BIT:
    5459                 IEM_MC_BEGIN(0, 2);
     5429                IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    54605430                IEM_MC_LOCAL(uint32_t, u32Value);
    54615431                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    54695439
    54705440            case IEMMODE_64BIT:
    5471                 IEM_MC_BEGIN(0, 2);
     5441                IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    54725442                IEM_MC_LOCAL(uint64_t, u64Value);
    54735443                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    55005470    if (IEM_IS_MODRM_REG_MODE(bRm))
    55015471    {
    5502         IEM_MC_BEGIN(0, 1);
     5472        IEM_MC_BEGIN(0, 1, 0);
    55035473        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    55045474        IEM_MC_LOCAL(uint8_t, u8Value);
     
    55135483         * We're loading a register from memory.
    55145484         */
    5515         IEM_MC_BEGIN(0, 2);
     5485        IEM_MC_BEGIN(0, 2, 0);
    55165486        IEM_MC_LOCAL(uint8_t, u8Value);
    55175487        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    55435513        {
    55445514            case IEMMODE_16BIT:
    5545                 IEM_MC_BEGIN(0, 1);
     5515                IEM_MC_BEGIN(0, 1, 0);
    55465516                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    55475517                IEM_MC_LOCAL(uint16_t, u16Value);
     
    55535523
    55545524            case IEMMODE_32BIT:
    5555                 IEM_MC_BEGIN(0, 1);
     5525                IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    55565526                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    55575527                IEM_MC_LOCAL(uint32_t, u32Value);
     
    55635533
    55645534            case IEMMODE_64BIT:
    5565                 IEM_MC_BEGIN(0, 1);
     5535                IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    55665536                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    55675537                IEM_MC_LOCAL(uint64_t, u64Value);
     
    55835553        {
    55845554            case IEMMODE_16BIT:
    5585                 IEM_MC_BEGIN(0, 2);
     5555                IEM_MC_BEGIN(0, 2, 0);
    55865556                IEM_MC_LOCAL(uint16_t, u16Value);
    55875557                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    55955565
    55965566            case IEMMODE_32BIT:
    5597                 IEM_MC_BEGIN(0, 2);
     5567                IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    55985568                IEM_MC_LOCAL(uint32_t, u32Value);
    55995569                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    56075577
    56085578            case IEMMODE_64BIT:
    5609                 IEM_MC_BEGIN(0, 2);
     5579                IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    56105580                IEM_MC_LOCAL(uint64_t, u64Value);
    56115581                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    56645634        {
    56655635            case IEMMODE_16BIT:
    5666                 IEM_MC_BEGIN(0, 1);
     5636                IEM_MC_BEGIN(0, 1, 0);
    56675637                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    56685638                IEM_MC_LOCAL(uint16_t, u16Value);
     
    56745644
    56755645            case IEMMODE_32BIT:
    5676                 IEM_MC_BEGIN(0, 1);
     5646                IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    56775647                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    56785648                IEM_MC_LOCAL(uint32_t, u32Value);
     
    56845654
    56855655            case IEMMODE_64BIT:
    5686                 IEM_MC_BEGIN(0, 1);
     5656                IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    56875657                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    56885658                IEM_MC_LOCAL(uint64_t, u64Value);
     
    57055675        pVCpu->iem.s.enmEffOpSize = pVCpu->iem.s.enmDefOpSize = IEMMODE_16BIT;
    57065676#endif
    5707         IEM_MC_BEGIN(0, 2);
     5677        IEM_MC_BEGIN(0, 2, 0);
    57085678        IEM_MC_LOCAL(uint16_t,  u16Value);
    57095679        IEM_MC_LOCAL(RTGCPTR,   GCPtrEffDst);
     
    57335703    {
    57345704        case IEMMODE_16BIT:
    5735             IEM_MC_BEGIN(0, 2);
     5705            IEM_MC_BEGIN(0, 2, 0);
    57365706            IEM_MC_LOCAL(RTGCPTR,  GCPtrEffSrc);
    57375707            IEM_MC_LOCAL(uint16_t, u16Cast);
     
    57455715
    57465716        case IEMMODE_32BIT:
    5747             IEM_MC_BEGIN(0, 2);
     5717            IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    57485718            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    57495719            IEM_MC_LOCAL(uint32_t, u32Cast);
     
    57575727
    57585728        case IEMMODE_64BIT:
    5759             IEM_MC_BEGIN(0, 1);
     5729            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    57605730            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    57615731            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
     
    58025772    if (IEM_IS_MODRM_REG_MODE(bRm))
    58035773    {
    5804         IEM_MC_BEGIN(2, 0);
     5774        IEM_MC_BEGIN(2, 0, 0);
    58055775        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    58065776        IEM_MC_ARG_CONST(uint8_t, iSRegArg, iSegReg, 0);
     
    58195789         * regardless of operand size prefixes.
    58205790         */
    5821         IEM_MC_BEGIN(2, 1);
     5791        IEM_MC_BEGIN(2, 1, 0);
    58225792        IEM_MC_ARG_CONST(uint8_t, iSRegArg, iSegReg, 0);
    58235793        IEM_MC_ARG(uint16_t,      u16Value,          1);
     
    58715841    {
    58725842        case IEMMODE_16BIT:
    5873         {
    5874             IEM_MC_BEGIN(2, 0);
     5843            IEM_MC_BEGIN(2, 0, 0);
    58755844            IEM_MC_ARG(uint8_t, iEffSeg,     0);
    58765845            IEM_MC_ARG(RTGCPTR, GCPtrEffDst, 1);
     
    58805849            IEM_MC_CALL_CIMPL_2(0, iemCImpl_pop_mem16, iEffSeg, GCPtrEffDst);
    58815850            IEM_MC_END();
    5882         }
     5851            break;
    58835852
    58845853        case IEMMODE_32BIT:
    5885         {
    5886             IEM_MC_BEGIN(2, 0);
     5854            IEM_MC_BEGIN(2, 0, IEM_MC_F_MIN_386);
    58875855            IEM_MC_ARG(uint8_t, iEffSeg,     0);
    58885856            IEM_MC_ARG(RTGCPTR, GCPtrEffDst, 1);
     
    58925860            IEM_MC_CALL_CIMPL_2(0, iemCImpl_pop_mem32, iEffSeg, GCPtrEffDst);
    58935861            IEM_MC_END();
    5894         }
     5862            break;
    58955863
    58965864        case IEMMODE_64BIT:
    5897         {
    5898             IEM_MC_BEGIN(2, 0);
     5865            IEM_MC_BEGIN(2, 0, IEM_MC_F_64BIT);
    58995866            IEM_MC_ARG(uint8_t, iEffSeg,     0);
    59005867            IEM_MC_ARG(RTGCPTR, GCPtrEffDst, 1);
     
    59045871            IEM_MC_CALL_CIMPL_2(0, iemCImpl_pop_mem64, iEffSeg, GCPtrEffDst);
    59055872            IEM_MC_END();
    5906         }
     5873            break;
    59075874
    59085875        IEM_NOT_REACHED_DEFAULT_CASE_RET();
     
    60476014    {
    60486015        case IEMMODE_16BIT:
    6049             IEM_MC_BEGIN(0, 2);
     6016            IEM_MC_BEGIN(0, 2, 0);
    60506017            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    60516018            IEM_MC_LOCAL(uint16_t, u16Tmp1);
     
    60606027
    60616028        case IEMMODE_32BIT:
    6062             IEM_MC_BEGIN(0, 2);
     6029            IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    60636030            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    60646031            IEM_MC_LOCAL(uint32_t, u32Tmp1);
     
    60736040
    60746041        case IEMMODE_64BIT:
    6075             IEM_MC_BEGIN(0, 2);
     6042            IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    60766043            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    60776044            IEM_MC_LOCAL(uint64_t, u64Tmp1);
     
    61216088        IEMOP_MNEMONIC(nop, "nop");
    61226089    /** @todo testcase: lock nop; lock pause */
    6123     IEM_MC_BEGIN(0, 0);
     6090    IEM_MC_BEGIN(0, 0, 0);
    61246091    IEMOP_HLP_DONE_DECODING();
    61256092    IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    62076174        case IEMMODE_16BIT:
    62086175            IEMOP_MNEMONIC(cbw, "cbw");
    6209             IEM_MC_BEGIN(0, 1);
     6176            IEM_MC_BEGIN(0, 1, 0);
    62106177            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    62116178            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 7) {
     
    62206187        case IEMMODE_32BIT:
    62216188            IEMOP_MNEMONIC(cwde, "cwde");
    6222             IEM_MC_BEGIN(0, 1);
     6189            IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    62236190            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    62246191            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 15) {
     
    62336200        case IEMMODE_64BIT:
    62346201            IEMOP_MNEMONIC(cdqe, "cdqe");
    6235             IEM_MC_BEGIN(0, 1);
     6202            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    62366203            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    62376204            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 31) {
     
    62586225        case IEMMODE_16BIT:
    62596226            IEMOP_MNEMONIC(cwd, "cwd");
    6260             IEM_MC_BEGIN(0, 1);
     6227            IEM_MC_BEGIN(0, 1, 0);
    62616228            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    62626229            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 15) {
     
    62716238        case IEMMODE_32BIT:
    62726239            IEMOP_MNEMONIC(cdq, "cdq");
    6273             IEM_MC_BEGIN(0, 1);
     6240            IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    62746241            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    62756242            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 31) {
     
    62846251        case IEMMODE_64BIT:
    62856252            IEMOP_MNEMONIC(cqo, "cqo");
    6286             IEM_MC_BEGIN(0, 1);
     6253            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    62876254            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    62886255            IEM_MC_IF_GREG_BIT_SET(X86_GREG_xAX, 63) {
     
    63266293{
    63276294    IEMOP_MNEMONIC(wait, "wait");
    6328     IEM_MC_BEGIN(0, 0);
     6295    IEM_MC_BEGIN(0, 0, 0);
    63296296    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    63306297    IEM_MC_MAYBE_RAISE_WAIT_DEVICE_NOT_AVAILABLE();
     
    63696336        && !IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fLahfSahf)
    63706337        IEMOP_RAISE_INVALID_OPCODE_RET();
    6371     IEM_MC_BEGIN(0, 2);
     6338    IEM_MC_BEGIN(0, 2, 0);
    63726339    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    63736340    IEM_MC_LOCAL(uint32_t, u32Flags);
     
    63946361        && !IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fLahfSahf)
    63956362        IEMOP_RAISE_INVALID_OPCODE_RET();
    6396     IEM_MC_BEGIN(0, 1);
     6363    IEM_MC_BEGIN(0, 1, 0);
    63976364    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    63986365    IEM_MC_LOCAL(uint8_t, u8Flags);
     
    64436410     * Fetch AL.
    64446411     */
    6445     IEM_MC_BEGIN(0,1);
     6412    IEM_MC_BEGIN(0, 1, 0);
    64466413    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    64476414    IEM_MC_LOCAL(uint8_t, u8Tmp);
     
    64716438    {
    64726439        case IEMMODE_16BIT:
    6473             IEM_MC_BEGIN(0,1);
     6440            IEM_MC_BEGIN(0, 1, 0);
    64746441            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    64756442            IEM_MC_LOCAL(uint16_t, u16Tmp);
     
    64816448
    64826449        case IEMMODE_32BIT:
    6483             IEM_MC_BEGIN(0,1);
     6450            IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    64846451            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    64856452            IEM_MC_LOCAL(uint32_t, u32Tmp);
     
    64916458
    64926459        case IEMMODE_64BIT:
    6493             IEM_MC_BEGIN(0,1);
     6460            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    64946461            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    64956462            IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    65206487     * Store AL.
    65216488     */
    6522     IEM_MC_BEGIN(0,1);
     6489    IEM_MC_BEGIN(0, 1, 0);
    65236490    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    65246491    IEM_MC_LOCAL(uint8_t, u8Tmp);
     
    65486515    {
    65496516        case IEMMODE_16BIT:
    6550             IEM_MC_BEGIN(0,1);
     6517            IEM_MC_BEGIN(0, 1, 0);
    65516518            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    65526519            IEM_MC_LOCAL(uint16_t, u16Tmp);
     
    65586525
    65596526        case IEMMODE_32BIT:
    6560             IEM_MC_BEGIN(0,1);
     6527            IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    65616528            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    65626529            IEM_MC_LOCAL(uint32_t, u32Tmp);
     
    65686535
    65696536        case IEMMODE_64BIT:
    6570             IEM_MC_BEGIN(0,1);
     6537            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    65716538            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    65726539            IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    65826549
    65836550/** Macro used by iemOp_movsb_Xb_Yb and iemOp_movswd_Xv_Yv */
    6584 #define IEM_MOVS_CASE(ValBits, AddrBits) \
    6585         IEM_MC_BEGIN(0, 2); \
     6551#define IEM_MOVS_CASE(ValBits, AddrBits, a_fMcFlags) \
     6552        IEM_MC_BEGIN(0, 2, a_fMcFlags); \
    65866553        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    65876554        IEM_MC_LOCAL(uint##ValBits##_t, uValue); \
     
    66286595    switch (pVCpu->iem.s.enmEffAddrMode)
    66296596    {
    6630         case IEMMODE_16BIT: IEM_MOVS_CASE(8, 16); break;
    6631         case IEMMODE_32BIT: IEM_MOVS_CASE(8, 32); break;
    6632         case IEMMODE_64BIT: IEM_MOVS_CASE(8, 64); break;
     6597        case IEMMODE_16BIT: IEM_MOVS_CASE(8, 16, IEM_MC_F_NOT_64BIT); break;
     6598        case IEMMODE_32BIT: IEM_MOVS_CASE(8, 32, IEM_MC_F_MIN_386); break;
     6599        case IEMMODE_64BIT: IEM_MOVS_CASE(8, 64, IEM_MC_F_64BIT); break;
    66336600        IEM_NOT_REACHED_DEFAULT_CASE_RET();
    66346601    }
     
    66906657            switch (pVCpu->iem.s.enmEffAddrMode)
    66916658            {
    6692                 case IEMMODE_16BIT: IEM_MOVS_CASE(16, 16); break;
    6693                 case IEMMODE_32BIT: IEM_MOVS_CASE(16, 32); break;
    6694                 case IEMMODE_64BIT: IEM_MOVS_CASE(16, 64); break;
     6659                case IEMMODE_16BIT: IEM_MOVS_CASE(16, 16, IEM_MC_F_NOT_64BIT); break;
     6660                case IEMMODE_32BIT: IEM_MOVS_CASE(16, 32, IEM_MC_F_MIN_386); break;
     6661                case IEMMODE_64BIT: IEM_MOVS_CASE(16, 64, IEM_MC_F_64BIT); break;
    66956662                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    66966663            }
     
    67006667            switch (pVCpu->iem.s.enmEffAddrMode)
    67016668            {
    6702                 case IEMMODE_16BIT: IEM_MOVS_CASE(32, 16); break;
    6703                 case IEMMODE_32BIT: IEM_MOVS_CASE(32, 32); break;
    6704                 case IEMMODE_64BIT: IEM_MOVS_CASE(32, 64); break;
     6669                case IEMMODE_16BIT: IEM_MOVS_CASE(32, 16, IEM_MC_F_MIN_386 | IEM_MC_F_NOT_64BIT); break;
     6670                case IEMMODE_32BIT: IEM_MOVS_CASE(32, 32, IEM_MC_F_MIN_386); break;
     6671                case IEMMODE_64BIT: IEM_MOVS_CASE(32, 64, IEM_MC_F_64BIT); break;
    67056672                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    67066673            }
     
    67116678            {
    67126679                case IEMMODE_16BIT: AssertFailedReturn(VERR_IEM_IPE_1); /* cannot be encoded */ break;
    6713                 case IEMMODE_32BIT: IEM_MOVS_CASE(64, 32); break;
    6714                 case IEMMODE_64BIT: IEM_MOVS_CASE(64, 64); break;
     6680                case IEMMODE_32BIT: IEM_MOVS_CASE(64, 32, IEM_MC_F_64BIT); break;
     6681                case IEMMODE_64BIT: IEM_MOVS_CASE(64, 64, IEM_MC_F_64BIT); break;
    67156682                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    67166683            }
     
    67236690
    67246691/** Macro used by iemOp_cmpsb_Xb_Yb and iemOp_cmpswd_Xv_Yv */
    6725 #define IEM_CMPS_CASE(ValBits, AddrBits) \
    6726         IEM_MC_BEGIN(3, 3); \
     6692#define IEM_CMPS_CASE(ValBits, AddrBits, a_fMcFlags) \
     6693        IEM_MC_BEGIN(3, 3, a_fMcFlags); \
    67276694        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    67286695        IEM_MC_ARG(uint##ValBits##_t *, puValue1, 0); \
     
    67906757    switch (pVCpu->iem.s.enmEffAddrMode)
    67916758    {
    6792         case IEMMODE_16BIT: IEM_CMPS_CASE(8, 16); break;
    6793         case IEMMODE_32BIT: IEM_CMPS_CASE(8, 32); break;
    6794         case IEMMODE_64BIT: IEM_CMPS_CASE(8, 64); break;
     6759        case IEMMODE_16BIT: IEM_CMPS_CASE(8, 16, IEM_MC_F_NOT_64BIT); break;
     6760        case IEMMODE_32BIT: IEM_CMPS_CASE(8, 32, IEM_MC_F_MIN_386); break;
     6761        case IEMMODE_64BIT: IEM_CMPS_CASE(8, 64, IEM_MC_F_64BIT); break;
    67956762        IEM_NOT_REACHED_DEFAULT_CASE_RET();
    67966763    }
     
    68866853            switch (pVCpu->iem.s.enmEffAddrMode)
    68876854            {
    6888                 case IEMMODE_16BIT: IEM_CMPS_CASE(16, 16); break;
    6889                 case IEMMODE_32BIT: IEM_CMPS_CASE(16, 32); break;
    6890                 case IEMMODE_64BIT: IEM_CMPS_CASE(16, 64); break;
     6855                case IEMMODE_16BIT: IEM_CMPS_CASE(16, 16, IEM_MC_F_NOT_64BIT); break;
     6856                case IEMMODE_32BIT: IEM_CMPS_CASE(16, 32, IEM_MC_F_MIN_386); break;
     6857                case IEMMODE_64BIT: IEM_CMPS_CASE(16, 64, IEM_MC_F_64BIT); break;
    68916858                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    68926859            }
     
    68966863            switch (pVCpu->iem.s.enmEffAddrMode)
    68976864            {
    6898                 case IEMMODE_16BIT: IEM_CMPS_CASE(32, 16); break;
    6899                 case IEMMODE_32BIT: IEM_CMPS_CASE(32, 32); break;
    6900                 case IEMMODE_64BIT: IEM_CMPS_CASE(32, 64); break;
     6865                case IEMMODE_16BIT: IEM_CMPS_CASE(32, 16, IEM_MC_F_MIN_386 | IEM_MC_F_NOT_64BIT); break;
     6866                case IEMMODE_32BIT: IEM_CMPS_CASE(32, 32, IEM_MC_F_MIN_386); break;
     6867                case IEMMODE_64BIT: IEM_CMPS_CASE(32, 64, IEM_MC_F_64BIT); break;
    69016868                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    69026869            }
     
    69076874            {
    69086875                case IEMMODE_16BIT: AssertFailedReturn(VERR_IEM_IPE_1); /* cannot be encoded */ break;
    6909                 case IEMMODE_32BIT: IEM_CMPS_CASE(64, 32); break;
    6910                 case IEMMODE_64BIT: IEM_CMPS_CASE(64, 64); break;
     6876                case IEMMODE_32BIT: IEM_CMPS_CASE(64, 32, IEM_MC_F_MIN_386); break;
     6877                case IEMMODE_64BIT: IEM_CMPS_CASE(64, 64, IEM_MC_F_64BIT); break;
    69116878                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    69126879            }
     
    69416908
    69426909/** Macro used by iemOp_stosb_Yb_AL and iemOp_stoswd_Yv_eAX */
    6943 #define IEM_STOS_CASE(ValBits, AddrBits) \
    6944         IEM_MC_BEGIN(0, 2); \
     6910#define IEM_STOS_CASE(ValBits, AddrBits, a_fMcFlags) \
     6911        IEM_MC_BEGIN(0, 2, a_fMcFlags); \
    69456912        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    69466913        IEM_MC_LOCAL(uint##ValBits##_t, uValue); \
     
    69846951    switch (pVCpu->iem.s.enmEffAddrMode)
    69856952    {
    6986         case IEMMODE_16BIT: IEM_STOS_CASE(8, 16); break;
    6987         case IEMMODE_32BIT: IEM_STOS_CASE(8, 32); break;
    6988         case IEMMODE_64BIT: IEM_STOS_CASE(8, 64); break;
     6953        case IEMMODE_16BIT: IEM_STOS_CASE(8, 16, IEM_MC_F_NOT_64BIT); break;
     6954        case IEMMODE_32BIT: IEM_STOS_CASE(8, 32, IEM_MC_F_MIN_386); break;
     6955        case IEMMODE_64BIT: IEM_STOS_CASE(8, 64, IEM_MC_F_64BIT); break;
    69896956        IEM_NOT_REACHED_DEFAULT_CASE_RET();
    69906957    }
     
    70457012            switch (pVCpu->iem.s.enmEffAddrMode)
    70467013            {
    7047                 case IEMMODE_16BIT: IEM_STOS_CASE(16, 16); break;
    7048                 case IEMMODE_32BIT: IEM_STOS_CASE(16, 32); break;
    7049                 case IEMMODE_64BIT: IEM_STOS_CASE(16, 64); break;
     7014                case IEMMODE_16BIT: IEM_STOS_CASE(16, 16, IEM_MC_F_NOT_64BIT); break;
     7015                case IEMMODE_32BIT: IEM_STOS_CASE(16, 32, IEM_MC_F_MIN_386); break;
     7016                case IEMMODE_64BIT: IEM_STOS_CASE(16, 64, IEM_MC_F_64BIT); break;
    70507017                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    70517018            }
     
    70557022            switch (pVCpu->iem.s.enmEffAddrMode)
    70567023            {
    7057                 case IEMMODE_16BIT: IEM_STOS_CASE(32, 16); break;
    7058                 case IEMMODE_32BIT: IEM_STOS_CASE(32, 32); break;
    7059                 case IEMMODE_64BIT: IEM_STOS_CASE(32, 64); break;
     7024                case IEMMODE_16BIT: IEM_STOS_CASE(32, 16, IEM_MC_F_MIN_386 | IEM_MC_F_NOT_64BIT); break;
     7025                case IEMMODE_32BIT: IEM_STOS_CASE(32, 32, IEM_MC_F_MIN_386); break;
     7026                case IEMMODE_64BIT: IEM_STOS_CASE(32, 64, IEM_MC_F_64BIT); break;
    70607027                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    70617028            }
     
    70667033            {
    70677034                case IEMMODE_16BIT: AssertFailedReturn(VERR_IEM_IPE_1); /* cannot be encoded */ break;
    7068                 case IEMMODE_32BIT: IEM_STOS_CASE(64, 32); break;
    7069                 case IEMMODE_64BIT: IEM_STOS_CASE(64, 64); break;
     7035                case IEMMODE_32BIT: IEM_STOS_CASE(64, 32, IEM_MC_F_64BIT); break;
     7036                case IEMMODE_64BIT: IEM_STOS_CASE(64, 64, IEM_MC_F_64BIT); break;
    70707037                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    70717038            }
     
    70787045
    70797046/** Macro used by iemOp_lodsb_AL_Xb and iemOp_lodswd_eAX_Xv */
    7080 #define IEM_LODS_CASE(ValBits, AddrBits) \
    7081         IEM_MC_BEGIN(0, 2); \
     7047#define IEM_LODS_CASE(ValBits, AddrBits, a_fMcFlags) \
     7048        IEM_MC_BEGIN(0, 2, a_fMcFlags); \
    70827049        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    70837050        IEM_MC_LOCAL(uint##ValBits##_t, uValue); \
     
    71217088    switch (pVCpu->iem.s.enmEffAddrMode)
    71227089    {
    7123         case IEMMODE_16BIT: IEM_LODS_CASE(8, 16); break;
    7124         case IEMMODE_32BIT: IEM_LODS_CASE(8, 32); break;
    7125         case IEMMODE_64BIT: IEM_LODS_CASE(8, 64); break;
     7090        case IEMMODE_16BIT: IEM_LODS_CASE(8, 16, IEM_MC_F_NOT_64BIT); break;
     7091        case IEMMODE_32BIT: IEM_LODS_CASE(8, 32, IEM_MC_F_MIN_386); break;
     7092        case IEMMODE_64BIT: IEM_LODS_CASE(8, 64, IEM_MC_F_64BIT); break;
    71267093        IEM_NOT_REACHED_DEFAULT_CASE_RET();
    71277094    }
     
    71827149            switch (pVCpu->iem.s.enmEffAddrMode)
    71837150            {
    7184                 case IEMMODE_16BIT: IEM_LODS_CASE(16, 16); break;
    7185                 case IEMMODE_32BIT: IEM_LODS_CASE(16, 32); break;
    7186                 case IEMMODE_64BIT: IEM_LODS_CASE(16, 64); break;
     7151                case IEMMODE_16BIT: IEM_LODS_CASE(16, 16, IEM_MC_F_NOT_64BIT); break;
     7152                case IEMMODE_32BIT: IEM_LODS_CASE(16, 32, IEM_MC_F_MIN_386); break;
     7153                case IEMMODE_64BIT: IEM_LODS_CASE(16, 64, IEM_MC_F_64BIT); break;
    71877154                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    71887155            }
     
    71927159            switch (pVCpu->iem.s.enmEffAddrMode)
    71937160            {
    7194                 case IEMMODE_16BIT: IEM_LODS_CASE(32, 16); break;
    7195                 case IEMMODE_32BIT: IEM_LODS_CASE(32, 32); break;
    7196                 case IEMMODE_64BIT: IEM_LODS_CASE(32, 64); break;
     7161                case IEMMODE_16BIT: IEM_LODS_CASE(32, 16, IEM_MC_F_MIN_386 | IEM_MC_F_NOT_64BIT); break;
     7162                case IEMMODE_32BIT: IEM_LODS_CASE(32, 32, IEM_MC_F_MIN_386); break;
     7163                case IEMMODE_64BIT: IEM_LODS_CASE(32, 64, IEM_MC_F_64BIT); break;
    71977164                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    71987165            }
     
    72037170            {
    72047171                case IEMMODE_16BIT: AssertFailedReturn(VERR_IEM_IPE_1); /* cannot be encoded */ break;
    7205                 case IEMMODE_32BIT: IEM_LODS_CASE(64, 32); break;
    7206                 case IEMMODE_64BIT: IEM_LODS_CASE(64, 64); break;
     7172                case IEMMODE_32BIT: IEM_LODS_CASE(64, 32, IEM_MC_F_64BIT); break;
     7173                case IEMMODE_64BIT: IEM_LODS_CASE(64, 64, IEM_MC_F_64BIT); break;
    72077174                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    72087175            }
     
    72157182
    72167183/** Macro used by iemOp_scasb_AL_Xb and iemOp_scaswd_eAX_Xv */
    7217 #define IEM_SCAS_CASE(ValBits, AddrBits) \
    7218         IEM_MC_BEGIN(3, 2); \
     7184#define IEM_SCAS_CASE(ValBits, AddrBits, a_fMcFlags) \
     7185        IEM_MC_BEGIN(3, 2, a_fMcFlags); \
    72197186        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    72207187        IEM_MC_ARG(uint##ValBits##_t *, puRax,   0); \
     
    72767243    switch (pVCpu->iem.s.enmEffAddrMode)
    72777244    {
    7278         case IEMMODE_16BIT: IEM_SCAS_CASE(8, 16); break;
    7279         case IEMMODE_32BIT: IEM_SCAS_CASE(8, 32); break;
    7280         case IEMMODE_64BIT: IEM_SCAS_CASE(8, 64); break;
     7245        case IEMMODE_16BIT: IEM_SCAS_CASE(8, 16, IEM_MC_F_NOT_64BIT); break;
     7246        case IEMMODE_32BIT: IEM_SCAS_CASE(8, 32, IEM_MC_F_MIN_386); break;
     7247        case IEMMODE_64BIT: IEM_SCAS_CASE(8, 64, IEM_MC_F_64BIT); break;
    72817248        IEM_NOT_REACHED_DEFAULT_CASE_RET();
    72827249    }
     
    73717338            switch (pVCpu->iem.s.enmEffAddrMode)
    73727339            {
    7373                 case IEMMODE_16BIT: IEM_SCAS_CASE(16, 16); break;
    7374                 case IEMMODE_32BIT: IEM_SCAS_CASE(16, 32); break;
    7375                 case IEMMODE_64BIT: IEM_SCAS_CASE(16, 64); break;
     7340                case IEMMODE_16BIT: IEM_SCAS_CASE(16, 16, IEM_MC_F_NOT_64BIT); break;
     7341                case IEMMODE_32BIT: IEM_SCAS_CASE(16, 32, IEM_MC_F_MIN_386); break;
     7342                case IEMMODE_64BIT: IEM_SCAS_CASE(16, 64, IEM_MC_F_64BIT); break;
    73767343                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    73777344            }
     
    73817348            switch (pVCpu->iem.s.enmEffAddrMode)
    73827349            {
    7383                 case IEMMODE_16BIT: IEM_SCAS_CASE(32, 16); break;
    7384                 case IEMMODE_32BIT: IEM_SCAS_CASE(32, 32); break;
    7385                 case IEMMODE_64BIT: IEM_SCAS_CASE(32, 64); break;
     7350                case IEMMODE_16BIT: IEM_SCAS_CASE(32, 16, IEM_MC_F_MIN_386 | IEM_MC_F_NOT_64BIT); break;
     7351                case IEMMODE_32BIT: IEM_SCAS_CASE(32, 32, IEM_MC_F_MIN_386); break;
     7352                case IEMMODE_64BIT: IEM_SCAS_CASE(32, 64, IEM_MC_F_64BIT); break;
    73867353                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    73877354            }
     
    73927359            {
    73937360                case IEMMODE_16BIT: AssertFailedReturn(VERR_IEM_IPE_1); /* cannot be encoded */ break;
    7394                 case IEMMODE_32BIT: IEM_SCAS_CASE(64, 32); break;
    7395                 case IEMMODE_64BIT: IEM_SCAS_CASE(64, 64); break;
     7361                case IEMMODE_32BIT: IEM_SCAS_CASE(64, 32, IEM_MC_F_64BIT); break;
     7362                case IEMMODE_64BIT: IEM_SCAS_CASE(64, 64, IEM_MC_F_64BIT); break;
    73967363                IEM_NOT_REACHED_DEFAULT_CASE_RET();
    73977364            }
     
    74097376{
    74107377    uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    7411     IEM_MC_BEGIN(0, 1);
     7378    IEM_MC_BEGIN(0, 1, 0);
    74127379    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    74137380    IEM_MC_LOCAL_CONST(uint8_t, u8Value,/*=*/ u8Imm);
     
    75067473    {
    75077474        case IEMMODE_16BIT:
    7508         {
     7475            IEM_MC_BEGIN(0, 1, 0);
    75097476            uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    7510             IEM_MC_BEGIN(0, 1);
    75117477            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    75127478            IEM_MC_LOCAL_CONST(uint16_t, u16Value,/*=*/ u16Imm);
     
    75157481            IEM_MC_END();
    75167482            break;
    7517         }
    75187483
    75197484        case IEMMODE_32BIT:
    7520         {
     7485            IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    75217486            uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    7522             IEM_MC_BEGIN(0, 1);
    75237487            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    75247488            IEM_MC_LOCAL_CONST(uint32_t, u32Value,/*=*/ u32Imm);
     
    75277491            IEM_MC_END();
    75287492            break;
    7529         }
     7493
    75307494        case IEMMODE_64BIT:
    7531         {
     7495            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    75327496            uint64_t u64Imm; IEM_OPCODE_GET_NEXT_U64(&u64Imm); /* 64-bit immediate! */
    7533             IEM_MC_BEGIN(0, 1);
    75347497            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    75357498            IEM_MC_LOCAL_CONST(uint64_t, u64Value,/*=*/ u64Imm);
     
    75387501            IEM_MC_END();
    75397502            break;
    7540         }
    75417503        IEM_NOT_REACHED_DEFAULT_CASE_RET();
    75427504    }
     
    76507612        /* register */
    76517613        uint8_t cShift; IEM_OPCODE_GET_NEXT_U8(&cShift);
    7652         IEM_MC_BEGIN(3, 0);
     7614        IEM_MC_BEGIN(3, 0, 0);
    76537615        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    76547616        IEM_MC_ARG(uint8_t *,       pu8Dst,            0);
     
    76647626    {
    76657627        /* memory */
    7666         IEM_MC_BEGIN(3, 3);
     7628        IEM_MC_BEGIN(3, 3, 0);
    76677629        IEM_MC_ARG(uint8_t *,   pu8Dst,    0);
    76687630        IEM_MC_ARG(uint8_t,     cShiftArg,  1);
     
    77167678        {
    77177679            case IEMMODE_16BIT:
    7718                 IEM_MC_BEGIN(3, 0);
     7680                IEM_MC_BEGIN(3, 0, 0);
    77197681                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    77207682                IEM_MC_ARG(uint16_t *,      pu16Dst,           0);
     
    77297691
    77307692            case IEMMODE_32BIT:
    7731                 IEM_MC_BEGIN(3, 0);
     7693                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386);
    77327694                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    77337695                IEM_MC_ARG(uint32_t *,      pu32Dst,           0);
     
    77437705
    77447706            case IEMMODE_64BIT:
    7745                 IEM_MC_BEGIN(3, 0);
     7707                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT);
    77467708                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    77477709                IEM_MC_ARG(uint64_t *,      pu64Dst,           0);
     
    77647726        {
    77657727            case IEMMODE_16BIT:
    7766                 IEM_MC_BEGIN(3, 3);
     7728                IEM_MC_BEGIN(3, 3, 0);
    77677729                IEM_MC_ARG(uint16_t *,  pu16Dst,    0);
    77687730                IEM_MC_ARG(uint8_t,     cShiftArg,  1);
     
    77867748
    77877749            case IEMMODE_32BIT:
    7788                 IEM_MC_BEGIN(3, 3);
     7750                IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386);
    77897751                IEM_MC_ARG(uint32_t *,  pu32Dst,    0);
    77907752                IEM_MC_ARG(uint8_t,     cShiftArg,  1);
     
    78087770
    78097771            case IEMMODE_64BIT:
    7810                 IEM_MC_BEGIN(3, 3);
     7772                IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT);
    78117773                IEM_MC_ARG(uint64_t *,  pu64Dst,    0);
    78127774                IEM_MC_ARG(uint8_t,     cShiftArg,  1);
     
    80087970        /* register access */
    80097971        uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    8010         IEM_MC_BEGIN(0, 0);
     7972        IEM_MC_BEGIN(0, 0, 0);
    80117973        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    80127974        IEM_MC_STORE_GREG_U8(IEM_GET_MODRM_RM(pVCpu, bRm), u8Imm);
     
    80177979    {
    80187980        /* memory access. */
    8019         IEM_MC_BEGIN(0, 1);
     7981        IEM_MC_BEGIN(0, 1, 0);
    80207982        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    80217983        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 1);
     
    80458007        {
    80468008            case IEMMODE_16BIT:
    8047                 IEM_MC_BEGIN(0, 0);
     8009                IEM_MC_BEGIN(0, 0, 0);
    80488010                uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    80498011                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    80548016
    80558017            case IEMMODE_32BIT:
    8056                 IEM_MC_BEGIN(0, 0);
     8018                IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    80578019                uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    80588020                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    80638025
    80648026            case IEMMODE_64BIT:
    8065                 IEM_MC_BEGIN(0, 0);
     8027                IEM_MC_BEGIN(0, 0, IEM_MC_F_64BIT);
    80668028                uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm);
    80678029                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     
    80808042        {
    80818043            case IEMMODE_16BIT:
    8082                 IEM_MC_BEGIN(0, 1);
     8044                IEM_MC_BEGIN(0, 1, 0);
    80838045                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    80848046                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 2);
     
    80918053
    80928054            case IEMMODE_32BIT:
    8093                 IEM_MC_BEGIN(0, 1);
     8055                IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    80948056                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    80958057                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 4);
     
    81028064
    81038065            case IEMMODE_64BIT:
    8104                 IEM_MC_BEGIN(0, 1);
     8066                IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    81058067                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    81068068                IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 4);
     
    82508212    {
    82518213        /* register */
    8252         IEM_MC_BEGIN(3, 0);
     8214        IEM_MC_BEGIN(3, 0, 0);
    82538215        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    82548216        IEM_MC_ARG(uint8_t *,       pu8Dst,             0);
     
    82648226    {
    82658227        /* memory */
    8266         IEM_MC_BEGIN(3, 3);
     8228        IEM_MC_BEGIN(3, 3, 0);
    82678229        IEM_MC_ARG(uint8_t *,       pu8Dst,             0);
    82688230        IEM_MC_ARG_CONST(uint8_t,   cShiftArg,/*=*/1,   1);
     
    83138275        {
    83148276            case IEMMODE_16BIT:
    8315                 IEM_MC_BEGIN(3, 0);
     8277                IEM_MC_BEGIN(3, 0, 0);
    83168278                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    83178279                IEM_MC_ARG(uint16_t *,      pu16Dst,           0);
     
    83268288
    83278289            case IEMMODE_32BIT:
    8328                 IEM_MC_BEGIN(3, 0);
     8290                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386);
    83298291                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    83308292                IEM_MC_ARG(uint32_t *,      pu32Dst,           0);
     
    83408302
    83418303            case IEMMODE_64BIT:
    8342                 IEM_MC_BEGIN(3, 0);
     8304                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT);
    83438305                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    83448306                IEM_MC_ARG(uint64_t *,      pu64Dst,           0);
     
    83618323        {
    83628324            case IEMMODE_16BIT:
    8363                 IEM_MC_BEGIN(3, 3);
     8325                IEM_MC_BEGIN(3, 3, 0);
    83648326                IEM_MC_ARG(uint16_t *,      pu16Dst,            0);
    83658327                IEM_MC_ARG_CONST(uint8_t,   cShiftArg,/*=1*/1,  1);
     
    83818343
    83828344            case IEMMODE_32BIT:
    8383                 IEM_MC_BEGIN(3, 3);
     8345                IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386);
    83848346                IEM_MC_ARG(uint32_t *,      pu32Dst,            0);
    83858347                IEM_MC_ARG_CONST(uint8_t,   cShiftArg,/*=1*/1,  1);
     
    84018363
    84028364            case IEMMODE_64BIT:
    8403                 IEM_MC_BEGIN(3, 3);
     8365                IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT);
    84048366                IEM_MC_ARG(uint64_t *,      pu64Dst,            0);
    84058367                IEM_MC_ARG_CONST(uint8_t,   cShiftArg,/*=1*/1,  1);
     
    84508412    {
    84518413        /* register */
    8452         IEM_MC_BEGIN(3, 0);
     8414        IEM_MC_BEGIN(3, 0, 0);
    84538415        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    84548416        IEM_MC_ARG(uint8_t *,   pu8Dst,     0);
     
    84658427    {
    84668428        /* memory */
    8467         IEM_MC_BEGIN(3, 3);
     8429        IEM_MC_BEGIN(3, 3, 0);
    84688430        IEM_MC_ARG(uint8_t *,   pu8Dst,          0);
    84698431        IEM_MC_ARG(uint8_t,     cShiftArg,       1);
     
    85148476        {
    85158477            case IEMMODE_16BIT:
    8516                 IEM_MC_BEGIN(3, 0);
     8478                IEM_MC_BEGIN(3, 0, 0);
    85178479                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    85188480                IEM_MC_ARG(uint16_t *,      pu16Dst,    0);
     
    85288490
    85298491            case IEMMODE_32BIT:
    8530                 IEM_MC_BEGIN(3, 0);
     8492                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386);
    85318493                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    85328494                IEM_MC_ARG(uint32_t *,      pu32Dst,    0);
     
    85438505
    85448506            case IEMMODE_64BIT:
    8545                 IEM_MC_BEGIN(3, 0);
     8507                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT);
    85468508                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    85478509                IEM_MC_ARG(uint64_t *,      pu64Dst,    0);
     
    85658527        {
    85668528            case IEMMODE_16BIT:
    8567                 IEM_MC_BEGIN(3, 3);
     8529                IEM_MC_BEGIN(3, 3, 0);
    85688530                IEM_MC_ARG(uint16_t *,  pu16Dst,    0);
    85698531                IEM_MC_ARG(uint8_t,     cShiftArg,  1);
     
    85868548
    85878549            case IEMMODE_32BIT:
    8588                 IEM_MC_BEGIN(3, 3);
     8550                IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386);
    85898551                IEM_MC_ARG(uint32_t *,  pu32Dst,    0);
    85908552                IEM_MC_ARG(uint8_t,     cShiftArg,  1);
     
    86078569
    86088570            case IEMMODE_64BIT:
    8609                 IEM_MC_BEGIN(3, 3);
     8571                IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT);
    86108572                IEM_MC_ARG(uint64_t *,  pu64Dst,    0);
    86118573                IEM_MC_ARG(uint8_t,     cShiftArg,  1);
     
    86688630    IEMOP_HLP_NO_64BIT();
    86698631
    8670     IEM_MC_BEGIN(0, 0);
     8632    IEM_MC_BEGIN(0, 0, 0);
    86718633    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    86728634    IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) {
     
    86898651    {
    86908652        case IEMMODE_16BIT:
    8691             IEM_MC_BEGIN(2, 0);
     8653            IEM_MC_BEGIN(2, 0, 0);
    86928654            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    86938655            IEM_MC_LOCAL(uint8_t,  u8Tmp);
     
    87028664
    87038665        case IEMMODE_32BIT:
    8704             IEM_MC_BEGIN(2, 0);
     8666            IEM_MC_BEGIN(2, 0, IEM_MC_F_MIN_386);
    87058667            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    87068668            IEM_MC_LOCAL(uint8_t,  u8Tmp);
     
    87158677
    87168678        case IEMMODE_64BIT:
    8717             IEM_MC_BEGIN(2, 0);
     8679            IEM_MC_BEGIN(2, 0, IEM_MC_F_64BIT);
    87188680            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    87198681            IEM_MC_LOCAL(uint8_t,  u8Tmp);
     
    87418703FNIEMOP_DEF_2(iemOpHlpFpu_st0_stN, uint8_t, bRm, PFNIEMAIMPLFPUR80, pfnAImpl)
    87428704{
    8743     IEM_MC_BEGIN(3, 1);
     8705    IEM_MC_BEGIN(3, 1, 0);
    87448706    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    87458707    IEM_MC_LOCAL(IEMFPURESULT,          FpuRes);
     
    87728734FNIEMOP_DEF_2(iemOpHlpFpuNoStore_st0_stN, uint8_t, bRm, PFNIEMAIMPLFPUR80FSW, pfnAImpl)
    87738735{
    8774     IEM_MC_BEGIN(3, 1);
     8736    IEM_MC_BEGIN(3, 1, 0);
    87758737    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    87768738    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    88038765FNIEMOP_DEF_2(iemOpHlpFpuNoStore_st0_stN_pop, uint8_t, bRm, PFNIEMAIMPLFPUR80FSW, pfnAImpl)
    88048766{
    8805     IEM_MC_BEGIN(3, 1);
     8767    IEM_MC_BEGIN(3, 1, 0);
    88068768    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    88078769    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    88988860FNIEMOP_DEF_2(iemOpHlpFpu_st0_m32r, uint8_t, bRm, PFNIEMAIMPLFPUR32, pfnAImpl)
    88998861{
    8900     IEM_MC_BEGIN(3, 3);
     8862    IEM_MC_BEGIN(3, 3, 0);
    89018863    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
    89028864    IEM_MC_LOCAL(IEMFPURESULT,          FpuRes);
     
    89478909    IEMOP_MNEMONIC(fcom_st0_m32r, "fcom st0,m32r");
    89488910
    8949     IEM_MC_BEGIN(3, 3);
     8911    IEM_MC_BEGIN(3, 3, 0);
    89508912    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
    89518913    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    89808942    IEMOP_MNEMONIC(fcomp_st0_m32r, "fcomp st0,m32r");
    89818943
    8982     IEM_MC_BEGIN(3, 3);
     8944    IEM_MC_BEGIN(3, 3, 0);
    89838945    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
    89848946    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    90879049    IEMOP_MNEMONIC(fld_m32r, "fld m32r");
    90889050
    9089     IEM_MC_BEGIN(2, 3);
     9051    IEM_MC_BEGIN(2, 3, 0);
    90909052    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
    90919053    IEM_MC_LOCAL(IEMFPURESULT,          FpuRes);
     
    91179079{
    91189080    IEMOP_MNEMONIC(fst_m32r, "fst m32r");
    9119     IEM_MC_BEGIN(3, 2);
     9081    IEM_MC_BEGIN(3, 2, 0);
    91209082    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    91219083    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    91529114{
    91539115    IEMOP_MNEMONIC(fstp_m32r, "fstp m32r");
    9154     IEM_MC_BEGIN(3, 2);
     9116    IEM_MC_BEGIN(3, 2, 0);
    91559117    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    91569118    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    91879149{
    91889150    IEMOP_MNEMONIC(fldenv, "fldenv m14/28byte");
    9189     IEM_MC_BEGIN(3, 0);
     9151    IEM_MC_BEGIN(3, 0, 0);
    91909152    IEM_MC_ARG_CONST(IEMMODE,           enmEffOpSize, /*=*/ pVCpu->iem.s.enmEffOpSize,  0);
    91919153    IEM_MC_ARG(uint8_t,                 iEffSeg,                                    1);
     
    92059167{
    92069168    IEMOP_MNEMONIC(fldcw_m2byte, "fldcw m2byte");
    9207     IEM_MC_BEGIN(1, 1);
     9169    IEM_MC_BEGIN(1, 1, 0);
    92089170    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
    92099171    IEM_MC_ARG(uint16_t,                u16Fsw,                                     0);
     
    92229184{
    92239185    IEMOP_MNEMONIC(fstenv, "fstenv m14/m28byte");
    9224     IEM_MC_BEGIN(3, 0);
     9186    IEM_MC_BEGIN(3, 0, 0);
    92259187    IEM_MC_ARG_CONST(IEMMODE,           enmEffOpSize, /*=*/ pVCpu->iem.s.enmEffOpSize,  0);
    92269188    IEM_MC_ARG(uint8_t,                 iEffSeg,                                    1);
     
    92409202{
    92419203    IEMOP_MNEMONIC(fnstcw_m2byte, "fnstcw m2byte");
    9242     IEM_MC_BEGIN(2, 0);
     9204    IEM_MC_BEGIN(2, 0, 0);
    92439205    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    92449206    IEM_MC_LOCAL(uint16_t,              u16Fcw);
     
    92589220{
    92599221    IEMOP_MNEMONIC(fnop, "fnop");
    9260     IEM_MC_BEGIN(0, 0);
     9222    IEM_MC_BEGIN(0, 0, 0);
    92619223    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    92629224    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
     
    92779239    /** @todo Testcase: Check if this raises \#MF?  Intel mentioned it not. AMD
    92789240     *        indicates that it does. */
    9279     IEM_MC_BEGIN(0, 2);
     9241    IEM_MC_BEGIN(0, 2, 0);
    92809242    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    92819243    IEM_MC_LOCAL(PCRTFLOAT80U,          pr80Value);
     
    93039265    /** @todo Testcase: Check if this raises \#MF?  Intel mentioned it not. AMD
    93049266     *        indicates that it does. */
    9305     IEM_MC_BEGIN(2, 3);
     9267    IEM_MC_BEGIN(2, 3, 0);
    93069268    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    93079269    IEM_MC_LOCAL(PCRTFLOAT80U,          pr80Value1);
     
    93369298    if (!iDstReg)
    93379299    {
    9338         IEM_MC_BEGIN(0, 1);
     9300        IEM_MC_BEGIN(0, 1, 0);
    93399301        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    93409302        IEM_MC_LOCAL_CONST(uint16_t,        u16Fsw, /*=*/ 0);
     
    93549316    else
    93559317    {
    9356         IEM_MC_BEGIN(0, 2);
     9318        IEM_MC_BEGIN(0, 2, 0);
    93579319        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    93589320        IEM_MC_LOCAL(PCRTFLOAT80U,          pr80Value);
     
    93839345FNIEMOP_DEF_1(iemOpHlpFpu_st0, PFNIEMAIMPLFPUR80UNARY, pfnAImpl)
    93849346{
    9385     IEM_MC_BEGIN(2, 1);
     9347    IEM_MC_BEGIN(2, 1, 0);
    93869348    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    93879349    IEM_MC_LOCAL(IEMFPURESULT,          FpuRes);
     
    94249386{
    94259387    IEMOP_MNEMONIC(ftst_st0, "ftst st0");
    9426     IEM_MC_BEGIN(2, 1);
     9388    IEM_MC_BEGIN(2, 1, 0);
    94279389    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    94289390    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    94499411{
    94509412    IEMOP_MNEMONIC(fxam_st0, "fxam st0");
    9451     IEM_MC_BEGIN(2, 1);
     9413    IEM_MC_BEGIN(2, 1, 0);
    94529414    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    94539415    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    94749436FNIEMOP_DEF_1(iemOpHlpFpuPushConstant, PFNIEMAIMPLFPUR80LDCONST, pfnAImpl)
    94759437{
    9476     IEM_MC_BEGIN(1, 1);
     9438    IEM_MC_BEGIN(1, 1, 0);
    94779439    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    94789440    IEM_MC_LOCAL(IEMFPURESULT,          FpuRes);
     
    95729534FNIEMOP_DEF_2(iemOpHlpFpu_stN_st0_pop, uint8_t, bRm, PFNIEMAIMPLFPUR80, pfnAImpl)
    95739535{
    9574     IEM_MC_BEGIN(3, 1);
     9536    IEM_MC_BEGIN(3, 1, 0);
    95759537    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    95769538    IEM_MC_LOCAL(IEMFPURESULT,          FpuRes);
     
    96119573FNIEMOP_DEF_1(iemOpHlpFpuReplace_st0_push, PFNIEMAIMPLFPUR80UNARYTWO, pfnAImpl)
    96129574{
    9613     IEM_MC_BEGIN(2, 1);
     9575    IEM_MC_BEGIN(2, 1, 0);
    96149576    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    96159577    IEM_MC_LOCAL(IEMFPURESULTTWO,           FpuResTwo);
     
    96719633    /** @todo Testcase: Check whether FOP, FPUIP and FPUCS are affected by
    96729634     *        FINCSTP and FDECSTP. */
    9673     IEM_MC_BEGIN(0,0);
     9635    IEM_MC_BEGIN(0, 0, 0);
    96749636    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    96759637
     
    96939655    /** @todo Testcase: Check whether FOP, FPUIP and FPUCS are affected by
    96949656     *        FINCSTP and FDECSTP. */
    9695     IEM_MC_BEGIN(0,0);
     9657    IEM_MC_BEGIN(0, 0, 0);
    96969658    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    96979659
     
    98609822{
    98619823    IEMOP_MNEMONIC(fcmovb_st0_stN, "fcmovb st0,stN");
    9862     IEM_MC_BEGIN(0, 1);
     9824    IEM_MC_BEGIN(0, 1, 0);
    98639825    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    98649826    IEM_MC_LOCAL(PCRTFLOAT80U,      pr80ValueN);
     
    98869848{
    98879849    IEMOP_MNEMONIC(fcmove_st0_stN, "fcmove st0,stN");
    9888     IEM_MC_BEGIN(0, 1);
     9850    IEM_MC_BEGIN(0, 1, 0);
    98899851    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    98909852    IEM_MC_LOCAL(PCRTFLOAT80U,      pr80ValueN);
     
    99129874{
    99139875    IEMOP_MNEMONIC(fcmovbe_st0_stN, "fcmovbe st0,stN");
    9914     IEM_MC_BEGIN(0, 1);
     9876    IEM_MC_BEGIN(0, 1, 0);
    99159877    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    99169878    IEM_MC_LOCAL(PCRTFLOAT80U,      pr80ValueN);
     
    99389900{
    99399901    IEMOP_MNEMONIC(fcmovu_st0_stN, "fcmovu st0,stN");
    9940     IEM_MC_BEGIN(0, 1);
     9902    IEM_MC_BEGIN(0, 1, 0);
    99419903    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    99429904    IEM_MC_LOCAL(PCRTFLOAT80U,      pr80ValueN);
     
    99689930FNIEMOP_DEF_1(iemOpHlpFpuNoStore_st0_st1_pop_pop, PFNIEMAIMPLFPUR80FSW, pfnAImpl)
    99699931{
    9970     IEM_MC_BEGIN(3, 1);
     9932    IEM_MC_BEGIN(3, 1, 0);
    99719933    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    99729934    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    100089970FNIEMOP_DEF_2(iemOpHlpFpu_st0_m32i, uint8_t, bRm, PFNIEMAIMPLFPUI32, pfnAImpl)
    100099971{
    10010     IEM_MC_BEGIN(3, 3);
     9972    IEM_MC_BEGIN(3, 3, 0);
    100119973    IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    100129974    IEM_MC_LOCAL(IEMFPURESULT,              FpuRes);
     
    1005710019    IEMOP_MNEMONIC(ficom_st0_m32i, "ficom st0,m32i");
    1005810020
    10059     IEM_MC_BEGIN(3, 3);
     10021    IEM_MC_BEGIN(3, 3, 0);
    1006010022    IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    1006110023    IEM_MC_LOCAL(uint16_t,                  u16Fsw);
     
    1009010052    IEMOP_MNEMONIC(ficomp_st0_m32i, "ficomp st0,m32i");
    1009110053
    10092     IEM_MC_BEGIN(3, 3);
     10054    IEM_MC_BEGIN(3, 3, 0);
    1009310055    IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    1009410056    IEM_MC_LOCAL(uint16_t,                  u16Fsw);
     
    1019810160    IEMOP_MNEMONIC(fild_m32i, "fild m32i");
    1019910161
    10200     IEM_MC_BEGIN(2, 3);
     10162    IEM_MC_BEGIN(2, 3, 0);
    1020110163    IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    1020210164    IEM_MC_LOCAL(IEMFPURESULT,              FpuRes);
     
    1022910191{
    1023010192    IEMOP_MNEMONIC(fisttp_m32i, "fisttp m32i");
    10231     IEM_MC_BEGIN(3, 2);
     10193    IEM_MC_BEGIN(3, 2, 0);
    1023210194    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    1023310195    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    1026410226{
    1026510227    IEMOP_MNEMONIC(fist_m32i, "fist m32i");
    10266     IEM_MC_BEGIN(3, 2);
     10228    IEM_MC_BEGIN(3, 2, 0);
    1026710229    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    1026810230    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    1029910261{
    1030010262    IEMOP_MNEMONIC(fistp_m32i, "fistp m32i");
    10301     IEM_MC_BEGIN(3, 2);
     10263    IEM_MC_BEGIN(3, 2, 0);
    1030210264    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    1030310265    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    1033510297    IEMOP_MNEMONIC(fld_m80r, "fld m80r");
    1033610298
    10337     IEM_MC_BEGIN(2, 3);
     10299    IEM_MC_BEGIN(2, 3, 0);
    1033810300    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
    1033910301    IEM_MC_LOCAL(IEMFPURESULT,          FpuRes);
     
    1036610328{
    1036710329    IEMOP_MNEMONIC(fstp_m80r, "fstp m80r");
    10368     IEM_MC_BEGIN(3, 2);
     10330    IEM_MC_BEGIN(3, 2, 0);
    1036910331    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    1037010332    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    1040110363{
    1040210364    IEMOP_MNEMONIC(fcmovnb_st0_stN, "fcmovnb st0,stN");
    10403     IEM_MC_BEGIN(0, 1);
     10365    IEM_MC_BEGIN(0, 1, 0);
    1040410366    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1040510367    IEM_MC_LOCAL(PCRTFLOAT80U,      pr80ValueN);
     
    1042710389{
    1042810390    IEMOP_MNEMONIC(fcmovne_st0_stN, "fcmovne st0,stN");
    10429     IEM_MC_BEGIN(0, 1);
     10391    IEM_MC_BEGIN(0, 1, 0);
    1043010392    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1043110393    IEM_MC_LOCAL(PCRTFLOAT80U,      pr80ValueN);
     
    1045310415{
    1045410416    IEMOP_MNEMONIC(fcmovnbe_st0_stN, "fcmovnbe st0,stN");
    10455     IEM_MC_BEGIN(0, 1);
     10417    IEM_MC_BEGIN(0, 1, 0);
    1045610418    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1045710419    IEM_MC_LOCAL(PCRTFLOAT80U,      pr80ValueN);
     
    1047910441{
    1048010442    IEMOP_MNEMONIC(fcmovnnu_st0_stN, "fcmovnnu st0,stN");
    10481     IEM_MC_BEGIN(0, 1);
     10443    IEM_MC_BEGIN(0, 1, 0);
    1048210444    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1048310445    IEM_MC_LOCAL(PCRTFLOAT80U,      pr80ValueN);
     
    1050510467{
    1050610468    IEMOP_MNEMONIC(fneni, "fneni (8087/ign)");
    10507     IEM_MC_BEGIN(0,0);
     10469    IEM_MC_BEGIN(0, 0, 0);
    1050810470    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1050910471    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
     
    1051710479{
    1051810480    IEMOP_MNEMONIC(fndisi, "fndisi (8087/ign)");
    10519     IEM_MC_BEGIN(0,0);
     10481    IEM_MC_BEGIN(0, 0, 0);
    1052010482    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1052110483    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
     
    1052910491{
    1053010492    IEMOP_MNEMONIC(fnclex, "fnclex");
    10531     IEM_MC_BEGIN(0,0);
     10493    IEM_MC_BEGIN(0, 0, 0);
    1053210494    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1053310495    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
     
    1055210514{
    1055310515    IEMOP_MNEMONIC(fnsetpm, "fnsetpm (80287/ign)");   /* set protected mode on fpu. */
    10554     IEM_MC_BEGIN(0,0);
     10516    IEM_MC_BEGIN(0, 0, 0);
    1055510517    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1055610518    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
     
    1056510527    IEMOP_MNEMONIC(frstpm, "frstpm (80287XL/ign)"); /* reset pm, back to real mode. */
    1056610528#if 0 /* #UDs on newer CPUs */
    10567     IEM_MC_BEGIN(0,0);
     10529    IEM_MC_BEGIN(0, 0, 0);
    1056810530    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1056910531    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
     
    1065910621FNIEMOP_DEF_2(iemOpHlpFpu_stN_st0, uint8_t, bRm, PFNIEMAIMPLFPUR80, pfnAImpl)
    1066010622{
    10661     IEM_MC_BEGIN(3, 1);
     10623    IEM_MC_BEGIN(3, 1, 0);
    1066210624    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1066310625    IEM_MC_LOCAL(IEMFPURESULT,          FpuRes);
     
    1073910701FNIEMOP_DEF_2(iemOpHlpFpu_ST0_m64r, uint8_t, bRm, PFNIEMAIMPLFPUR64, pfnImpl)
    1074010702{
    10741     IEM_MC_BEGIN(3, 3);
     10703    IEM_MC_BEGIN(3, 3, 0);
    1074210704    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
    1074310705    IEM_MC_LOCAL(IEMFPURESULT,          FpuRes);
     
    1078710749    IEMOP_MNEMONIC(fcom_st0_m64r, "fcom st0,m64r");
    1078810750
    10789     IEM_MC_BEGIN(3, 3);
     10751    IEM_MC_BEGIN(3, 3, 0);
    1079010752    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
    1079110753    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    1082010782    IEMOP_MNEMONIC(fcomp_st0_m64r, "fcomp st0,m64r");
    1082110783
    10822     IEM_MC_BEGIN(3, 3);
     10784    IEM_MC_BEGIN(3, 3, 0);
    1082310785    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
    1082410786    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    1092610888    IEMOP_MNEMONIC(fld_m64r, "fld m64r");
    1092710889
    10928     IEM_MC_BEGIN(2, 3);
     10890    IEM_MC_BEGIN(2, 3, 0);
    1092910891    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
    1093010892    IEM_MC_LOCAL(IEMFPURESULT,          FpuRes);
     
    1095610918{
    1095710919    IEMOP_MNEMONIC(fisttp_m64i, "fisttp m64i");
    10958     IEM_MC_BEGIN(3, 2);
     10920    IEM_MC_BEGIN(3, 2, 0);
    1095910921    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    1096010922    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    1099110953{
    1099210954    IEMOP_MNEMONIC(fst_m64r, "fst m64r");
    10993     IEM_MC_BEGIN(3, 2);
     10955    IEM_MC_BEGIN(3, 2, 0);
    1099410956    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    1099510957    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    1102810990{
    1102910991    IEMOP_MNEMONIC(fstp_m64r, "fstp m64r");
    11030     IEM_MC_BEGIN(3, 2);
     10992    IEM_MC_BEGIN(3, 2, 0);
    1103110993    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    1103210994    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    1106311025{
    1106411026    IEMOP_MNEMONIC(frstor, "frstor m94/108byte");
    11065     IEM_MC_BEGIN(3, 0);
     11027    IEM_MC_BEGIN(3, 0, 0);
    1106611028    IEM_MC_ARG_CONST(IEMMODE,           enmEffOpSize, /*=*/ pVCpu->iem.s.enmEffOpSize,  0);
    1106711029    IEM_MC_ARG(uint8_t,                 iEffSeg,                                    1);
     
    1108111043{
    1108211044    IEMOP_MNEMONIC(fnsave, "fnsave m94/108byte");
    11083     IEM_MC_BEGIN(3, 0);
     11045    IEM_MC_BEGIN(3, 0, 0);
    1108411046    IEM_MC_ARG_CONST(IEMMODE,           enmEffOpSize, /*=*/ pVCpu->iem.s.enmEffOpSize,  0);
    1108511047    IEM_MC_ARG(uint8_t,                 iEffSeg,                                    1);
     
    1109911061    IEMOP_MNEMONIC(fnstsw_m16, "fnstsw m16");
    1110011062
    11101     IEM_MC_BEGIN(0, 2);
     11063    IEM_MC_BEGIN(0, 2, 0);
    1110211064    IEM_MC_LOCAL(uint16_t, u16Tmp);
    1110311065    IEM_MC_LOCAL(RTGCPTR,  GCPtrEffDst);
     
    1112511087    /* Note! C0, C1, C2 and C3 are documented as undefined, we leave the
    1112611088             unmodified. */
    11127     IEM_MC_BEGIN(0, 0);
     11089    IEM_MC_BEGIN(0, 0, 0);
    1112811090    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1112911091
     
    1114411106{
    1114511107    IEMOP_MNEMONIC(fst_st0_stN, "fst st0,stN");
    11146     IEM_MC_BEGIN(0, 2);
     11108    IEM_MC_BEGIN(0, 2, 0);
    1114711109    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1114811110    IEM_MC_LOCAL(PCRTFLOAT80U,          pr80Value);
     
    1128511247FNIEMOP_DEF_2(iemOpHlpFpu_st0_m16i, uint8_t, bRm, PFNIEMAIMPLFPUI16, pfnAImpl)
    1128611248{
    11287     IEM_MC_BEGIN(3, 3);
     11249    IEM_MC_BEGIN(3, 3, 0);
    1128811250    IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    1128911251    IEM_MC_LOCAL(IEMFPURESULT,              FpuRes);
     
    1133411296    IEMOP_MNEMONIC(ficom_st0_m16i, "ficom st0,m16i");
    1133511297
    11336     IEM_MC_BEGIN(3, 3);
     11298    IEM_MC_BEGIN(3, 3, 0);
    1133711299    IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    1133811300    IEM_MC_LOCAL(uint16_t,                  u16Fsw);
     
    1136711329    IEMOP_MNEMONIC(ficomp_st0_m16i, "ficomp st0,m16i");
    1136811330
    11369     IEM_MC_BEGIN(3, 3);
     11331    IEM_MC_BEGIN(3, 3, 0);
    1137011332    IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    1137111333    IEM_MC_LOCAL(uint16_t,                  u16Fsw);
     
    1147411436{
    1147511437    IEMOP_MNEMONIC(ffreep_stN, "ffreep stN");
    11476     IEM_MC_BEGIN(0, 0);
     11438    IEM_MC_BEGIN(0, 0, 0);
    1147711439    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1147811440
     
    1149411456{
    1149511457    IEMOP_MNEMONIC(fnstsw_ax, "fnstsw ax");
    11496     IEM_MC_BEGIN(0, 1);
     11458    IEM_MC_BEGIN(0, 1, 0);
    1149711459    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1149811460    IEM_MC_LOCAL(uint16_t, u16Tmp);
     
    1153111493    IEMOP_MNEMONIC(fild_m16i, "fild m16i");
    1153211494
    11533     IEM_MC_BEGIN(2, 3);
     11495    IEM_MC_BEGIN(2, 3, 0);
    1153411496    IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    1153511497    IEM_MC_LOCAL(IEMFPURESULT,              FpuRes);
     
    1156211524{
    1156311525    IEMOP_MNEMONIC(fisttp_m16i, "fisttp m16i");
    11564     IEM_MC_BEGIN(3, 2);
     11526    IEM_MC_BEGIN(3, 2, 0);
    1156511527    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    1156611528    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    1159711559{
    1159811560    IEMOP_MNEMONIC(fist_m16i, "fist m16i");
    11599     IEM_MC_BEGIN(3, 2);
     11561    IEM_MC_BEGIN(3, 2, 0);
    1160011562    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    1160111563    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    1163211594{
    1163311595    IEMOP_MNEMONIC(fistp_m16i, "fistp m16i");
    11634     IEM_MC_BEGIN(3, 2);
     11596    IEM_MC_BEGIN(3, 2, 0);
    1163511597    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    1163611598    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    1166811630    IEMOP_MNEMONIC(fbld_m80d, "fbld m80d");
    1166911631
    11670     IEM_MC_BEGIN(2, 3);
     11632    IEM_MC_BEGIN(2, 3, 0);
    1167111633    IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    1167211634    IEM_MC_LOCAL(IEMFPURESULT,              FpuRes);
     
    1170011662    IEMOP_MNEMONIC(fild_m64i, "fild m64i");
    1170111663
    11702     IEM_MC_BEGIN(2, 3);
     11664    IEM_MC_BEGIN(2, 3, 0);
    1170311665    IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    1170411666    IEM_MC_LOCAL(IEMFPURESULT,              FpuRes);
     
    1173111693{
    1173211694    IEMOP_MNEMONIC(fbstp_m80d, "fbstp m80d");
    11733     IEM_MC_BEGIN(3, 2);
     11695    IEM_MC_BEGIN(3, 2, 0);
    1173411696    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    1173511697    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    1176611728{
    1176711729    IEMOP_MNEMONIC(fistp_m64i, "fistp m64i");
    11768     IEM_MC_BEGIN(3, 2);
     11730    IEM_MC_BEGIN(3, 2, 0);
    1176911731    IEM_MC_LOCAL(RTGCPTR,               GCPtrEffDst);
    1177011732    IEM_MC_LOCAL(uint16_t,              u16Fsw);
     
    1185111813    {
    1185211814        case IEMMODE_16BIT:
    11853             IEM_MC_BEGIN(0,0);
     11815            IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_64BIT);
    1185411816            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1185511817            IEM_MC_SUB_GREG_U16(X86_GREG_xCX, 1);
     
    1186311825
    1186411826        case IEMMODE_32BIT:
    11865             IEM_MC_BEGIN(0,0);
     11827            IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    1186611828            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1186711829            IEM_MC_SUB_GREG_U32(X86_GREG_xCX, 1);
     
    1187511837
    1187611838        case IEMMODE_64BIT:
    11877             IEM_MC_BEGIN(0,0);
     11839            IEM_MC_BEGIN(0, 0, IEM_MC_F_64BIT);
    1187811840            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1187911841            IEM_MC_SUB_GREG_U64(X86_GREG_xCX, 1);
     
    1190311865    {
    1190411866        case IEMMODE_16BIT:
    11905             IEM_MC_BEGIN(0,0);
     11867            IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_64BIT);
    1190611868            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1190711869            IEM_MC_SUB_GREG_U16(X86_GREG_xCX, 1);
     
    1191511877
    1191611878        case IEMMODE_32BIT:
    11917             IEM_MC_BEGIN(0,0);
     11879            IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    1191811880            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1191911881            IEM_MC_SUB_GREG_U32(X86_GREG_xCX, 1);
     
    1192711889
    1192811890        case IEMMODE_64BIT:
    11929             IEM_MC_BEGIN(0,0);
     11891            IEM_MC_BEGIN(0, 0, IEM_MC_F_64BIT);
    1193011892            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1193111893            IEM_MC_SUB_GREG_U64(X86_GREG_xCX, 1);
     
    1196511927        {
    1196611928            case IEMMODE_16BIT:
    11967                 IEM_MC_BEGIN(0,0);
     11929                IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_64BIT);
    1196811930                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1196911931                IEM_MC_STORE_GREG_U16_CONST(X86_GREG_xCX, 0);
     
    1197311935
    1197411936            case IEMMODE_32BIT:
    11975                 IEM_MC_BEGIN(0,0);
     11937                IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    1197611938                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1197711939                IEM_MC_STORE_GREG_U32_CONST(X86_GREG_xCX, 0);
     
    1198111943
    1198211944            case IEMMODE_64BIT:
    11983                 IEM_MC_BEGIN(0,0);
     11945                IEM_MC_BEGIN(0, 0, IEM_MC_F_64BIT);
    1198411946                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1198511947                IEM_MC_STORE_GREG_U64_CONST(X86_GREG_xCX, 0);
     
    1199511957    {
    1199611958        case IEMMODE_16BIT:
    11997             IEM_MC_BEGIN(0,0);
     11959            IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_64BIT);
    1199811960            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1199911961            IEM_MC_SUB_GREG_U16(X86_GREG_xCX, 1);
     
    1200711969
    1200811970        case IEMMODE_32BIT:
    12009             IEM_MC_BEGIN(0,0);
     11971            IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    1201011972            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1201111973            IEM_MC_SUB_GREG_U32(X86_GREG_xCX, 1);
     
    1201911981
    1202011982        case IEMMODE_64BIT:
    12021             IEM_MC_BEGIN(0,0);
     11983            IEM_MC_BEGIN(0, 0, IEM_MC_F_64BIT);
    1202211984            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1202311985            IEM_MC_SUB_GREG_U64(X86_GREG_xCX, 1);
     
    1204712009    {
    1204812010        case IEMMODE_16BIT:
    12049             IEM_MC_BEGIN(0,0);
     12011            IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_64BIT);
    1205012012            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1205112013            IEM_MC_IF_CX_IS_NZ() {
     
    1205812020
    1205912021        case IEMMODE_32BIT:
    12060             IEM_MC_BEGIN(0,0);
     12022            IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    1206112023            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1206212024            IEM_MC_IF_ECX_IS_NZ() {
     
    1206912031
    1207012032        case IEMMODE_64BIT:
    12071             IEM_MC_BEGIN(0,0);
     12033            IEM_MC_BEGIN(0, 0, IEM_MC_F_64BIT);
    1207212034            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1207312035            IEM_MC_IF_RCX_IS_NZ() {
     
    1217212134    {
    1217312135        case IEMMODE_16BIT:
    12174         {
     12136            IEM_MC_BEGIN(0, 0, 0);
    1217512137            int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    12176             IEM_MC_BEGIN(0, 0);
    1217712138            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1217812139            IEM_MC_REL_JMP_S16_AND_FINISH(i16Imm);
    1217912140            IEM_MC_END();
    1218012141            break;
    12181         }
    1218212142
    1218312143        case IEMMODE_64BIT:
    1218412144        case IEMMODE_32BIT:
    12185         {
     12145            IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    1218612146            int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    12187             IEM_MC_BEGIN(0, 0);
    1218812147            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1218912148            IEM_MC_REL_JMP_S32_AND_FINISH(i32Imm);
    1219012149            IEM_MC_END();
    1219112150            break;
    12192         }
    1219312151
    1219412152        IEM_NOT_REACHED_DEFAULT_CASE_RET();
     
    1222812186    IEMOP_HLP_DEFAULT_64BIT_OP_SIZE_AND_INTEL_IGNORES_OP_SIZE_PREFIX();
    1222912187
    12230     IEM_MC_BEGIN(0, 0);
     12188    IEM_MC_BEGIN(0, 0, 0);
    1223112189    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1223212190    IEM_MC_REL_JMP_S8_AND_FINISH(i8Imm);
     
    1236312321{
    1236412322    IEMOP_MNEMONIC(cmc, "cmc");
    12365     IEM_MC_BEGIN(0, 0);
     12323    IEM_MC_BEGIN(0, 0, 0);
    1236612324    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1236712325    IEM_MC_FLIP_EFL_BIT(X86_EFL_CF);
     
    1237812336    { \
    1237912337        /* register access */ \
    12380         IEM_MC_BEGIN(2, 0); \
     12338        IEM_MC_BEGIN(2, 0, 0); \
    1238112339        IEMOP_HLP_DONE_DECODING(); \
    1238212340        IEM_MC_ARG(uint8_t *,   pu8Dst, 0); \
     
    1239312351        if (!(pVCpu->iem.s.fPrefixes & IEM_OP_PRF_LOCK)) \
    1239412352        { \
    12395             IEM_MC_BEGIN(2, 2); \
     12353            IEM_MC_BEGIN(2, 2, 0); \
    1239612354            IEM_MC_ARG(uint8_t *,       pu8Dst,          0); \
    1239712355            IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags, 1); \
     
    1241212370        else \
    1241312371        { \
    12414             IEM_MC_BEGIN(2, 2); \
     12372            IEM_MC_BEGIN(2, 2, 0); \
    1241512373            IEM_MC_ARG(uint8_t *,       pu8Dst,          0); \
    1241612374            IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags, 1); \
     
    1244512403        { \
    1244612404            case IEMMODE_16BIT: \
    12447                 IEM_MC_BEGIN(2, 0); \
     12405                IEM_MC_BEGIN(2, 0, 0); \
    1244812406                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    1244912407                IEM_MC_ARG(uint16_t *,  pu16Dst, 0); \
     
    1245712415            \
    1245812416            case IEMMODE_32BIT: \
    12459                 IEM_MC_BEGIN(2, 0); \
     12417                IEM_MC_BEGIN(2, 0, IEM_MC_F_MIN_386); \
    1246012418                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    1246112419                IEM_MC_ARG(uint32_t *,  pu32Dst, 0); \
     
    1247012428            \
    1247112429            case IEMMODE_64BIT: \
    12472                 IEM_MC_BEGIN(2, 0); \
     12430                IEM_MC_BEGIN(2, 0, IEM_MC_F_64BIT); \
    1247312431                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    1247412432                IEM_MC_ARG(uint64_t *,  pu64Dst, 0); \
     
    1249412452            { \
    1249512453                case IEMMODE_16BIT: \
    12496                     IEM_MC_BEGIN(2, 3); \
     12454                    IEM_MC_BEGIN(2, 3, 0); \
    1249712455                    IEM_MC_ARG(uint16_t *,      pu16Dst,         0); \
    1249812456                    IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags, 1); \
     
    1251312471                \
    1251412472                case IEMMODE_32BIT: \
    12515                     IEM_MC_BEGIN(2, 3); \
     12473                    IEM_MC_BEGIN(2, 3, IEM_MC_F_MIN_386); \
    1251612474                    IEM_MC_ARG(uint32_t *,      pu32Dst,         0); \
    1251712475                    IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags, 1); \
     
    1253212490                \
    1253312491                case IEMMODE_64BIT: \
    12534                     IEM_MC_BEGIN(2, 3); \
     12492                    IEM_MC_BEGIN(2, 3, IEM_MC_F_64BIT); \
    1253512493                    IEM_MC_ARG(uint64_t *,      pu64Dst,         0); \
    1253612494                    IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags, 1); \
     
    1256112519            { \
    1256212520                case IEMMODE_16BIT: \
    12563                     IEM_MC_BEGIN(2, 3); \
     12521                    IEM_MC_BEGIN(2, 3, 0); \
    1256412522                    IEM_MC_ARG(uint16_t *,      pu16Dst,         0); \
    1256512523                    IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags, 1); \
     
    1258012538                \
    1258112539                case IEMMODE_32BIT: \
    12582                     IEM_MC_BEGIN(2, 3); \
     12540                    IEM_MC_BEGIN(2, 3, IEM_MC_F_MIN_386); \
    1258312541                    IEM_MC_ARG(uint32_t *,      pu32Dst,         0); \
    1258412542                    IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags, 1); \
     
    1259912557                \
    1260012558                case IEMMODE_64BIT: \
    12601                     IEM_MC_BEGIN(2, 3); \
     12559                    IEM_MC_BEGIN(2, 3, IEM_MC_F_64BIT); \
    1260212560                    IEM_MC_ARG(uint64_t *,      pu64Dst,         0); \
    1260312561                    IEM_MC_ARG_LOCAL_EFLAGS(    pEFlags, EFlags, 1); \
     
    1263812596        /* register access */
    1263912597        uint8_t u8Imm; IEM_OPCODE_GET_NEXT_U8(&u8Imm);
    12640         IEM_MC_BEGIN(3, 0);
     12598        IEM_MC_BEGIN(3, 0, 0);
    1264112599        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1264212600        IEM_MC_ARG(uint8_t *,       pu8Dst,             0);
     
    1265212610    {
    1265312611        /* memory access. */
    12654         IEM_MC_BEGIN(3, 3);
     12612        IEM_MC_BEGIN(3, 3, 0);
    1265512613        IEM_MC_ARG(uint8_t const *, pu8Dst,             0);
    1265612614        IEM_MC_ARG(uint8_t,         u8Src,              1);
     
    1268112639    {
    1268212640        /* register access */
    12683         IEM_MC_BEGIN(3, 1);
     12641        IEM_MC_BEGIN(3, 1, 0);
    1268412642        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1268512643        IEM_MC_ARG(uint16_t *,      pu16AX,     0);
     
    1270312661    {
    1270412662        /* memory access. */
    12705         IEM_MC_BEGIN(3, 2);
     12663        IEM_MC_BEGIN(3, 2, 0);
    1270612664        IEM_MC_ARG(uint16_t *,      pu16AX,     0);
    1270712665        IEM_MC_ARG(uint8_t,         u8Value,    1);
     
    1273812696        {
    1273912697            case IEMMODE_16BIT:
    12740             {
    12741                 IEM_MC_BEGIN(4, 1);
     12698                IEM_MC_BEGIN(4, 1, 0);
    1274212699                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1274312700                IEM_MC_ARG(uint16_t *,      pu16AX,     0);
     
    1276012717                IEM_MC_END();
    1276112718                break;
    12762             }
    1276312719
    1276412720            case IEMMODE_32BIT:
    12765             {
    12766                 IEM_MC_BEGIN(4, 1);
     12721                IEM_MC_BEGIN(4, 1, IEM_MC_F_MIN_386);
    1276712722                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1276812723                IEM_MC_ARG(uint32_t *,      pu32AX,     0);
     
    1278712742                IEM_MC_END();
    1278812743                break;
    12789             }
    1279012744
    1279112745            case IEMMODE_64BIT:
    12792             {
    12793                 IEM_MC_BEGIN(4, 1);
     12746                IEM_MC_BEGIN(4, 1, IEM_MC_F_64BIT);
    1279412747                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1279512748                IEM_MC_ARG(uint64_t *,      pu64AX,     0);
     
    1281212765                IEM_MC_END();
    1281312766                break;
    12814             }
    1281512767
    1281612768            IEM_NOT_REACHED_DEFAULT_CASE_RET();
     
    1282312775        {
    1282412776            case IEMMODE_16BIT:
    12825             {
    12826                 IEM_MC_BEGIN(4, 2);
     12777                IEM_MC_BEGIN(4, 2, 0);
    1282712778                IEM_MC_ARG(uint16_t *,      pu16AX,     0);
    1282812779                IEM_MC_ARG(uint16_t *,      pu16DX,     1);
     
    1284712798                IEM_MC_END();
    1284812799                break;
    12849             }
    1285012800
    1285112801            case IEMMODE_32BIT:
    12852             {
    12853                 IEM_MC_BEGIN(4, 2);
     12802                IEM_MC_BEGIN(4, 2, IEM_MC_F_MIN_386);
    1285412803                IEM_MC_ARG(uint32_t *,      pu32AX,     0);
    1285512804                IEM_MC_ARG(uint32_t *,      pu32DX,     1);
     
    1287612825                IEM_MC_END();
    1287712826                break;
    12878             }
    1287912827
    1288012828            case IEMMODE_64BIT:
    12881             {
    12882                 IEM_MC_BEGIN(4, 2);
     12829                IEM_MC_BEGIN(4, 2, IEM_MC_F_64BIT);
    1288312830                IEM_MC_ARG(uint64_t *,      pu64AX,     0);
    1288412831                IEM_MC_ARG(uint64_t *,      pu64DX,     1);
     
    1290312850                IEM_MC_END();
    1290412851                break;
    12905             }
    1290612852
    1290712853            IEM_NOT_REACHED_DEFAULT_CASE_RET();
     
    1297812924        {
    1297912925            case IEMMODE_16BIT:
    12980             {
     12926                IEM_MC_BEGIN(3, 0, 0);
    1298112927                uint16_t u16Imm; IEM_OPCODE_GET_NEXT_U16(&u16Imm);
    12982                 IEM_MC_BEGIN(3, 0);
    1298312928                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1298412929                IEM_MC_ARG(uint16_t *,      pu16Dst,                0);
     
    1299112936                IEM_MC_END();
    1299212937                break;
    12993             }
    1299412938
    1299512939            case IEMMODE_32BIT:
    12996             {
     12940                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386);
    1299712941                uint32_t u32Imm; IEM_OPCODE_GET_NEXT_U32(&u32Imm);
    12998                 IEM_MC_BEGIN(3, 0);
    1299912942                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1300012943                IEM_MC_ARG(uint32_t *,      pu32Dst,                0);
     
    1300812951                IEM_MC_END();
    1300912952                break;
    13010             }
    1301112953
    1301212954            case IEMMODE_64BIT:
    13013             {
     12955                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT);
    1301412956                uint64_t u64Imm; IEM_OPCODE_GET_NEXT_S32_SX_U64(&u64Imm);
    13015                 IEM_MC_BEGIN(3, 0);
    1301612957                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1301712958                IEM_MC_ARG(uint64_t *,      pu64Dst,                0);
     
    1302412965                IEM_MC_END();
    1302512966                break;
    13026             }
    1302712967
    1302812968            IEM_NOT_REACHED_DEFAULT_CASE_RET();
     
    1303512975        {
    1303612976            case IEMMODE_16BIT:
    13037             {
    13038                 IEM_MC_BEGIN(3, 3);
     12977                IEM_MC_BEGIN(3, 3, 0);
    1303912978                IEM_MC_ARG(uint16_t const *, pu16Dst,           0);
    1304012979                IEM_MC_ARG(uint16_t,         u16Src,            1);
     
    1305612995                IEM_MC_END();
    1305712996                break;
    13058             }
    1305912997
    1306012998            case IEMMODE_32BIT:
    13061             {
    13062                 IEM_MC_BEGIN(3, 3);
     12999                IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386);
    1306313000                IEM_MC_ARG(uint32_t const *, pu32Dst,           0);
    1306413001                IEM_MC_ARG(uint32_t,         u32Src,            1);
     
    1308013017                IEM_MC_END();
    1308113018                break;
    13082             }
    1308313019
    1308413020            case IEMMODE_64BIT:
    13085             {
    13086                 IEM_MC_BEGIN(3, 3);
     13021                IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT);
    1308713022                IEM_MC_ARG(uint64_t const *, pu64Dst,           0);
    1308813023                IEM_MC_ARG(uint64_t,         u64Src,            1);
     
    1310413039                IEM_MC_END();
    1310513040                break;
    13106             }
    1310713041
    1310813042            IEM_NOT_REACHED_DEFAULT_CASE_RET();
     
    1316913103{
    1317013104    IEMOP_MNEMONIC(clc, "clc");
    13171     IEM_MC_BEGIN(0, 0);
     13105    IEM_MC_BEGIN(0, 0, 0);
    1317213106    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1317313107    IEM_MC_CLEAR_EFL_BIT(X86_EFL_CF);
     
    1318313117{
    1318413118    IEMOP_MNEMONIC(stc, "stc");
    13185     IEM_MC_BEGIN(0, 0);
     13119    IEM_MC_BEGIN(0, 0, 0);
    1318613120    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1318713121    IEM_MC_SET_EFL_BIT(X86_EFL_CF);
     
    1321613150{
    1321713151    IEMOP_MNEMONIC(cld, "cld");
    13218     IEM_MC_BEGIN(0, 0);
     13152    IEM_MC_BEGIN(0, 0, 0);
    1321913153    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1322013154    IEM_MC_CLEAR_EFL_BIT(X86_EFL_DF);
     
    1323013164{
    1323113165    IEMOP_MNEMONIC(std, "std");
    13232     IEM_MC_BEGIN(0, 0);
     13166    IEM_MC_BEGIN(0, 0, 0);
    1323313167    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1323413168    IEM_MC_SET_EFL_BIT(X86_EFL_DF);
     
    1331013244        {
    1331113245            case IEMMODE_16BIT:
    13312                 IEM_MC_BEGIN(1, 0);
     13246                IEM_MC_BEGIN(1, 0, 0);
    1331313247                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1331413248                IEM_MC_ARG(uint16_t, u16Target, 0);
     
    1331913253
    1332013254            case IEMMODE_32BIT:
    13321                 IEM_MC_BEGIN(1, 0);
     13255                IEM_MC_BEGIN(1, 0, IEM_MC_F_MIN_386);
    1332213256                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1332313257                IEM_MC_ARG(uint32_t, u32Target, 0);
     
    1332813262
    1332913263            case IEMMODE_64BIT:
    13330                 IEM_MC_BEGIN(1, 0);
     13264                IEM_MC_BEGIN(1, 0, IEM_MC_F_64BIT);
    1333113265                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1333213266                IEM_MC_ARG(uint64_t, u64Target, 0);
     
    1334513279        {
    1334613280            case IEMMODE_16BIT:
    13347                 IEM_MC_BEGIN(1, 1);
     13281                IEM_MC_BEGIN(1, 1, 0);
    1334813282                IEM_MC_ARG(uint16_t,  u16Target, 0);
    1334913283                IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
     
    1335613290
    1335713291            case IEMMODE_32BIT:
    13358                 IEM_MC_BEGIN(1, 1);
     13292                IEM_MC_BEGIN(1, 1, IEM_MC_F_MIN_386);
    1335913293                IEM_MC_ARG(uint32_t,  u32Target, 0);
    1336013294                IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
     
    1336713301
    1336813302            case IEMMODE_64BIT:
    13369                 IEM_MC_BEGIN(1, 1);
     13303                IEM_MC_BEGIN(1, 1, IEM_MC_F_64BIT);
    1337013304                IEM_MC_ARG(uint64_t,  u64Target, 0);
    1337113305                IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
     
    1340013334    { \
    1340113335        case IEMMODE_16BIT: \
    13402             IEM_MC_BEGIN(3, 1); \
     13336            IEM_MC_BEGIN(3, 1, 0); \
    1340313337            IEM_MC_ARG(uint16_t,        u16Sel,                         0); \
    1340413338            IEM_MC_ARG(uint16_t,        offSeg,                         1); \
     
    1341613350        \
    1341713351        case IEMMODE_32BIT: \
    13418             IEM_MC_BEGIN(3, 1); \
     13352            IEM_MC_BEGIN(3, 1, IEM_MC_F_MIN_386); \
    1341913353            IEM_MC_ARG(uint16_t,        u16Sel,                         0); \
    1342013354            IEM_MC_ARG(uint32_t,        offSeg,                         1); \
     
    1343313367        case IEMMODE_64BIT: \
    1343413368            Assert(!IEM_IS_GUEST_CPU_AMD(pVCpu)); \
    13435             IEM_MC_BEGIN(3, 1); \
     13369            IEM_MC_BEGIN(3, 1, IEM_MC_F_64BIT); \
    1343613370            IEM_MC_ARG(uint16_t,        u16Sel,                         0); \
    1343713371            IEM_MC_ARG(uint64_t,        offSeg,                         1); \
     
    1347713411        {
    1347813412            case IEMMODE_16BIT:
    13479                 IEM_MC_BEGIN(0, 1);
     13413                IEM_MC_BEGIN(0, 1, 0);
    1348013414                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1348113415                IEM_MC_LOCAL(uint16_t, u16Target);
     
    1348613420
    1348713421            case IEMMODE_32BIT:
    13488                 IEM_MC_BEGIN(0, 1);
     13422                IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    1348913423                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1349013424                IEM_MC_LOCAL(uint32_t, u32Target);
     
    1349513429
    1349613430            case IEMMODE_64BIT:
    13497                 IEM_MC_BEGIN(0, 1);
     13431                IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    1349813432                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1349913433                IEM_MC_LOCAL(uint64_t, u64Target);
     
    1351213446        {
    1351313447            case IEMMODE_16BIT:
    13514                 IEM_MC_BEGIN(0, 2);
     13448                IEM_MC_BEGIN(0, 2, 0);
    1351513449                IEM_MC_LOCAL(uint16_t, u16Target);
    1351613450                IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
     
    1352313457
    1352413458            case IEMMODE_32BIT:
    13525                 IEM_MC_BEGIN(0, 2);
     13459                IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    1352613460                IEM_MC_LOCAL(uint32_t, u32Target);
    1352713461                IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
     
    1353413468
    1353513469            case IEMMODE_64BIT:
    13536                 IEM_MC_BEGIN(0, 2);
     13470                IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    1353713471                IEM_MC_LOCAL(uint64_t, u64Target);
    1353813472                IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
     
    1357813512    {
    1357913513        case IEMMODE_16BIT:
    13580             IEM_MC_BEGIN(0, 2);
     13514            IEM_MC_BEGIN(0, 2, 0);
    1358113515            IEM_MC_LOCAL(uint16_t,  u16Src);
    1358213516            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
     
    1359013524
    1359113525        case IEMMODE_32BIT:
    13592             IEM_MC_BEGIN(0, 2);
     13526            IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    1359313527            IEM_MC_LOCAL(uint32_t,  u32Src);
    1359413528            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
     
    1360213536
    1360313537        case IEMMODE_64BIT:
    13604             IEM_MC_BEGIN(0, 2);
     13538            IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    1360513539            IEM_MC_LOCAL(uint64_t,  u64Src);
    1360613540            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstPython.py

    r100840 r100854  
    19361936
    19371937
     1938## IEM_MC_F_XXX values.
     1939g_kdMcFlags = {
     1940    'IEM_MC_F_ONLY_8086':           True,
     1941    'IEM_MC_F_NOT_286_OR_OLDER':    True,
     1942    'IEM_MC_F_MIN_386':             True,
     1943    'IEM_MC_F_MIN_486':             True,
     1944    'IEM_MC_F_MIN_PENTIUM':         True,
     1945    'IEM_MC_F_MIN_PENTIUM_II':      True,
     1946    'IEM_MC_F_MIN_CORE':            True,
     1947    'IEM_MC_F_64BIT':               True,
     1948    'IEM_MC_F_NOT_64BIT':           True,
     1949};
    19381950class McBlock(object):
    19391951    """
     
    19611973        self.iInFunction  = iInFunction;
    19621974        self.cchIndent    = cchIndent if cchIndent else offBeginLine;
    1963         self.asLines      = []              # type: list(str)   ##< The raw lines the block is made up of.
     1975        ##< The raw lines the block is made up of.
     1976        self.asLines      = []              # type: list(str)
     1977        ## IEM_MC_BEGIN: Argument count.
     1978        self.cArgs        = -1;
     1979        ## IEM_MC_BEGIN: Locals count.
     1980        self.cLocals      = -1;
     1981        ## IEM_MC_BEGIN: IEM_MC_F_XXX dictionary
     1982        self.dMcFlags     = {}              # type: dict(str)
    19641983        ## Decoded statements in the block.
    19651984        self.aoStmts      = []              # type: list(McStmt)
     
    20082027    def parseMcBegin(oSelf, sName, asParams):
    20092028        """ IEM_MC_BEGIN """
    2010         oSelf.checkStmtParamCount(sName, asParams, 2);
     2029        oSelf.checkStmtParamCount(sName, asParams, 3);
     2030        if oSelf.cArgs != -1  or  oSelf.cLocals != -1  or  oSelf.dMcFlags:
     2031            oSelf.raiseStmtError(sName, 'Used more than once!');
     2032        oSelf.cArgs   = int(asParams[0]);
     2033        oSelf.cLocals = int(asParams[1]);
     2034        if asParams[2] != '0':
     2035            for sFlag in asParams[2].split('|'):
     2036                sFlag = sFlag.strip();
     2037                if sFlag in g_kdMcFlags:
     2038                    oSelf.dMcFlags[sFlag] = True;
     2039                else:
     2040                    oSelf.raiseStmtError(sName, 'Unknown flag: %s' % (sFlag, ));
     2041
    20112042        return McBlock.parseMcGeneric(oSelf, sName, asParams);
    20122043
     
    26112642    'IEM_MC_ASSIGN_U8_SX_U64':                                   (McBlock.parseMcGeneric,           False),
    26122643    'IEM_MC_ASSIGN_U32_SX_U64':                                  (McBlock.parseMcGeneric,           False),
    2613     'IEM_MC_BEGIN':                                              (McBlock.parseMcGeneric,           False),
     2644    'IEM_MC_BEGIN':                                              (McBlock.parseMcBegin,             False),
    26142645    'IEM_MC_BROADCAST_XREG_U16_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True),
    26152646    'IEM_MC_BROADCAST_XREG_U32_ZX_VLMAX':                        (McBlock.parseMcGeneric,           True),
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstThree0f38.cpp.h

    r100740 r100854  
    4949        /** @todo testcase: REX.B / REX.R and MMX register indexing. Ignored? */
    5050        /** @todo testcase: REX.B / REX.R and segment register indexing. Ignored? */
    51         IEM_MC_BEGIN(2, 0);
     51        IEM_MC_BEGIN(2, 0, 0);
    5252        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSsse3);
    5353        IEM_MC_ARG(uint64_t *,          pDst, 0);
     
    7070         * MMX, [mem64].
    7171         */
    72         IEM_MC_BEGIN(2, 2);
     72        IEM_MC_BEGIN(2, 2, 0);
    7373        IEM_MC_ARG(uint64_t *,                  pDst,       0);
    7474        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    111111         * Register, register.
    112112         */
    113         IEM_MC_BEGIN(2, 0);
     113        IEM_MC_BEGIN(2, 0, 0);
    114114        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSsse3);
    115115        IEM_MC_ARG(PRTUINT128U,                 puDst, 0);
     
    128128         * Register, memory.
    129129         */
    130         IEM_MC_BEGIN(2, 2);
     130        IEM_MC_BEGIN(2, 2, 0);
    131131        IEM_MC_ARG(PRTUINT128U,                 puDst,       0);
    132132        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    167167         * Register, register.
    168168         */
    169         IEM_MC_BEGIN(2, 0);
     169        IEM_MC_BEGIN(2, 0, 0);
    170170        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    171171        IEM_MC_ARG(PRTUINT128U,                 puDst, 0);
     
    184184         * Register, memory.
    185185         */
    186         IEM_MC_BEGIN(2, 2);
     186        IEM_MC_BEGIN(2, 2, 0);
    187187        IEM_MC_ARG(PRTUINT128U,                 puDst,       0);
    188188        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    226226         * Register, register.
    227227         */
    228         IEM_MC_BEGIN(2, 0);
     228        IEM_MC_BEGIN(2, 0, 0);
    229229        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    230230        IEM_MC_ARG(PRTUINT128U,                 puDst, 0);
     
    243243         * Register, memory.
    244244         */
    245         IEM_MC_BEGIN(2, 2);
     245        IEM_MC_BEGIN(2, 2, 0);
    246246        IEM_MC_ARG(PRTUINT128U,                 puDst,       0);
    247247        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    282282         * Register, register.
    283283         */
    284         IEM_MC_BEGIN(2, 0);
     284        IEM_MC_BEGIN(2, 0, 0);
    285285        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse42);
    286286        IEM_MC_ARG(PRTUINT128U,                 puDst, 0);
     
    299299         * Register, memory.
    300300         */
    301         IEM_MC_BEGIN(2, 2);
     301        IEM_MC_BEGIN(2, 2, 0);
    302302        IEM_MC_ARG(PRTUINT128U,                 puDst,       0);
    303303        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    342342         * Register, register.
    343343         */
    344         IEM_MC_BEGIN(2, 0);
     344        IEM_MC_BEGIN(2, 0, 0);
    345345        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fAesNi);
    346346        IEM_MC_ARG(PRTUINT128U,                 puDst, 0);
     
    359359         * Register, memory.
    360360         */
    361         IEM_MC_BEGIN(2, 2);
     361        IEM_MC_BEGIN(2, 2, 0);
    362362        IEM_MC_ARG(PRTUINT128U,                 puDst,       0);
    363363        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    402402         * Register, register.
    403403         */
    404         IEM_MC_BEGIN(2, 0);
     404        IEM_MC_BEGIN(2, 0, 0);
    405405        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSha);
    406406        IEM_MC_ARG(PRTUINT128U,                 puDst, 0);
     
    419419         * Register, memory.
    420420         */
    421         IEM_MC_BEGIN(2, 2);
     421        IEM_MC_BEGIN(2, 2, 0);
    422422        IEM_MC_ARG(PRTUINT128U,                 puDst,       0);
    423423        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    690690         * Register, register. \
    691691         */ \
    692         IEM_MC_BEGIN(3, 0); \
     692        IEM_MC_BEGIN(3, 0, 0); \
    693693        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41); \
    694694        IEM_MC_ARG(PRTUINT128U,  puDst,  0); \
     
    712712         * Register, memory. \
    713713         */ \
    714         IEM_MC_BEGIN(3, 2); \
     714        IEM_MC_BEGIN(3, 2, 0); \
    715715        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc); \
    716716        IEM_MC_LOCAL(RTUINT128U,                uSrc); \
     
    785785         * Register, register.
    786786         */
    787         IEM_MC_BEGIN(3, 0);
     787        IEM_MC_BEGIN(3, 0, 0);
    788788        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    789789        IEM_MC_ARG(PCRTUINT128U,                puSrc1,  0);
     
    804804         * Register, memory.
    805805         */
    806         IEM_MC_BEGIN(3, 2);
     806        IEM_MC_BEGIN(3, 2, 0);
    807807        IEM_MC_ARG(PCRTUINT128U,                puSrc1,        0);
    808808        IEM_MC_LOCAL(RTUINT128U,                uSrc2);
     
    906906         * Register, register. \
    907907         */ \
    908         IEM_MC_BEGIN(2, 0); \
     908        IEM_MC_BEGIN(2, 0, 0); \
    909909        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41); \
    910910        IEM_MC_ARG(PRTUINT128U,                 puDst, 0); \
     
    926926         * Register, memory. \
    927927         */ \
    928         IEM_MC_BEGIN(2, 2); \
     928        IEM_MC_BEGIN(2, 2, 0); \
    929929        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc); \
    930930        IEM_MC_ARG(PRTUINT128U,                 puDst, 0); \
     
    10391039    {
    10401040        /* Register, memory. */
    1041         IEM_MC_BEGIN(0, 2);
     1041        IEM_MC_BEGIN(0, 2, 0);
    10421042        IEM_MC_LOCAL(RTUINT128U,                uSrc);
    10431043        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    13141314    {
    13151315        /* Register, memory. */
     1316        IEMOP_HLP_NO_REAL_OR_V86_MODE();
    13161317        if (pVCpu->iem.s.enmEffOpSize == IEMMODE_64BIT)
    13171318        {
    1318             IEM_MC_BEGIN(3, 0);
     1319            IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT);
    13191320            IEM_MC_ARG(uint8_t,  iEffSeg,         0);
    13201321            IEM_MC_ARG(RTGCPTR,  GCPtrInveptDesc, 1);
     
    13321333        else
    13331334        {
    1334             IEM_MC_BEGIN(3, 0);
     1335            IEM_MC_BEGIN(3, 0, 0);
    13351336            IEM_MC_ARG(uint8_t,  iEffSeg,         0);
    13361337            IEM_MC_ARG(RTGCPTR,  GCPtrInveptDesc, 1);
     
    13641365    {
    13651366        /* Register, memory. */
     1367        IEMOP_HLP_NO_REAL_OR_V86_MODE();
    13661368        if (pVCpu->iem.s.enmEffOpSize == IEMMODE_64BIT)
    13671369        {
    1368             IEM_MC_BEGIN(3, 0);
     1370            IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT);
    13691371            IEM_MC_ARG(uint8_t,  iEffSeg,          0);
    13701372            IEM_MC_ARG(RTGCPTR,  GCPtrInvvpidDesc, 1);
     
    13821384        else
    13831385        {
    1384             IEM_MC_BEGIN(3, 0);
     1386            IEM_MC_BEGIN(3, 0, 0);
    13851387            IEM_MC_ARG(uint8_t,  iEffSeg,          0);
    13861388            IEM_MC_ARG(RTGCPTR,  GCPtrInvvpidDesc, 1);
     
    14151417        if (pVCpu->iem.s.enmEffOpSize == IEMMODE_64BIT)
    14161418        {
    1417             IEM_MC_BEGIN(3, 0);
     1419            IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT);
    14181420            IEM_MC_ARG(uint8_t,  iEffSeg,          0);
    14191421            IEM_MC_ARG(RTGCPTR,  GCPtrInvpcidDesc, 1);
     
    14281430        else
    14291431        {
    1430             IEM_MC_BEGIN(3, 0);
     1432            IEM_MC_BEGIN(3, 0, 0);
    14311433            IEM_MC_ARG(uint8_t,  iEffSeg,          0);
    14321434            IEM_MC_ARG(RTGCPTR,  GCPtrInvpcidDesc, 1);
     
    15751577         * Register, register.
    15761578         */
    1577         IEM_MC_BEGIN(3, 0);
     1579        IEM_MC_BEGIN(3, 0, 0);
    15781580        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSha);
    15791581        IEM_MC_ARG(PRTUINT128U,                 puDst, 0);
     
    15951597         * Register, memory.
    15961598         */
    1597         IEM_MC_BEGIN(3, 2);
     1599        IEM_MC_BEGIN(3, 2, 0);
    15981600        IEM_MC_ARG(PRTUINT128U,                 puDst,       0);
    15991601        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    17401742        {
    17411743            case IEMMODE_16BIT:
    1742                 IEM_MC_BEGIN(0, 2);
     1744                IEM_MC_BEGIN(0, 2, 0);
    17431745                IEM_MC_LOCAL(uint16_t,  uSrc);
    17441746                IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
     
    17561758
    17571759            case IEMMODE_32BIT:
    1758                 IEM_MC_BEGIN(0, 2);
     1760                IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    17591761                IEM_MC_LOCAL(uint32_t,  uSrc);
    17601762                IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
     
    17721774
    17731775            case IEMMODE_64BIT:
    1774                 IEM_MC_BEGIN(0, 2);
     1776                IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    17751777                IEM_MC_LOCAL(uint64_t,  uSrc);
    17761778                IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
     
    18141816         * Register, register.
    18151817         */
    1816         IEM_MC_BEGIN(2, 0);
     1818        IEM_MC_BEGIN(2, 0, 0);
    18171819        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    18181820        IEM_MC_ARG(uint32_t *,          puDst, 0);
     
    18301832         * Register, memory.
    18311833         */
    1832         IEM_MC_BEGIN(2, 1);
     1834        IEM_MC_BEGIN(2, 1, 0);
    18331835        IEM_MC_ARG(uint32_t *,          puDst, 0);
    18341836        IEM_MC_ARG(uint8_t,             uSrc,  1);
     
    18651867        {
    18661868            case IEMMODE_16BIT:
    1867                 IEM_MC_BEGIN(0, 2);
     1869                IEM_MC_BEGIN(0, 2, 0);
    18681870                IEM_MC_LOCAL(uint16_t, u16Value);
    18691871                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    18781880
    18791881            case IEMMODE_32BIT:
    1880                 IEM_MC_BEGIN(0, 2);
     1882                IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    18811883                IEM_MC_LOCAL(uint32_t, u32Value);
    18821884                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    18911893
    18921894            case IEMMODE_64BIT:
    1893                 IEM_MC_BEGIN(0, 2);
     1895                IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    18941896                IEM_MC_LOCAL(uint64_t, u64Value);
    18951897                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    19331935        {
    19341936            case IEMMODE_16BIT:
    1935                 IEM_MC_BEGIN(2, 0);
     1937                IEM_MC_BEGIN(2, 0, 0);
    19361938                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    19371939                IEM_MC_ARG(uint32_t *,          puDst, 0);
     
    19471949
    19481950            case IEMMODE_32BIT:
    1949                 IEM_MC_BEGIN(2, 0);
     1951                IEM_MC_BEGIN(2, 0, IEM_MC_F_MIN_386);
    19501952                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    19511953                IEM_MC_ARG(uint32_t *,          puDst, 0);
     
    19611963
    19621964            case IEMMODE_64BIT:
    1963                 IEM_MC_BEGIN(2, 0);
     1965                IEM_MC_BEGIN(2, 0, IEM_MC_F_64BIT);
    19641966                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    19651967                IEM_MC_ARG(uint32_t *,          puDst, 0);
     
    19851987        {
    19861988            case IEMMODE_16BIT:
    1987                 IEM_MC_BEGIN(2, 1);
     1989                IEM_MC_BEGIN(2, 1, 0);
    19881990                IEM_MC_ARG(uint32_t *,          puDst, 0);
    19891991                IEM_MC_ARG(uint16_t,            uSrc,  1);
     
    20042006
    20052007            case IEMMODE_32BIT:
    2006                 IEM_MC_BEGIN(2, 1);
     2008                IEM_MC_BEGIN(2, 1, IEM_MC_F_MIN_386);
    20072009                IEM_MC_ARG(uint32_t *,          puDst, 0);
    20082010                IEM_MC_ARG(uint32_t,            uSrc,  1);
     
    20232025
    20242026            case IEMMODE_64BIT:
    2025                 IEM_MC_BEGIN(2, 1);
     2027                IEM_MC_BEGIN(2, 1, IEM_MC_F_64BIT);
    20262028                IEM_MC_ARG(uint32_t *,          puDst, 0);
    20272029                IEM_MC_ARG(uint64_t,            uSrc,  1);
     
    20792081            if (IEM_IS_MODRM_REG_MODE(bRm)) \
    20802082            { \
    2081                 IEM_MC_BEGIN(3, 0); \
     2083                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    20822084                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    20832085                IEM_MC_ARG(uint64_t *,      pu64Dst,                0); \
     
    20942096            else \
    20952097            { \
    2096                 IEM_MC_BEGIN(3, 1); \
     2098                IEM_MC_BEGIN(3, 1, IEM_MC_F_64BIT); \
    20972099                IEM_MC_ARG(uint64_t *,      pu64Dst,                0); \
    20982100                IEM_MC_ARG(uint32_t *,      pEFlags,                1); \
     
    21142116            if (IEM_IS_MODRM_REG_MODE(bRm)) \
    21152117            { \
    2116                 IEM_MC_BEGIN(3, 0); \
     2118                IEM_MC_BEGIN(3, 0, 0); \
    21172119                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    21182120                IEM_MC_ARG(uint32_t *,      pu32Dst,                0); \
     
    21292131            else \
    21302132            { \
    2131                 IEM_MC_BEGIN(3, 1); \
     2133                IEM_MC_BEGIN(3, 1, 0); \
    21322134                IEM_MC_ARG(uint32_t *,      pu32Dst,                0); \
    21332135                IEM_MC_ARG(uint32_t *,      pEFlags,                1); \
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstThree0f3a.cpp.h

    r100740 r100854  
    5252         */
    5353        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    54         IEM_MC_BEGIN(3, 0);
     54        IEM_MC_BEGIN(3, 0, 0);
    5555        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSsse3);
    5656        IEM_MC_ARG(PRTUINT128U,                 puDst,               0);
     
    7070         * Register, memory.
    7171         */
    72         IEM_MC_BEGIN(3, 2);
     72        IEM_MC_BEGIN(3, 2, 0);
    7373        IEM_MC_ARG(PRTUINT128U,                 puDst,               0);
    7474        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    111111         */
    112112        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    113         IEM_MC_BEGIN(3, 0);
     113        IEM_MC_BEGIN(3, 0, 0);
    114114        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    115115        IEM_MC_ARG(PRTUINT128U,                 puDst,               0);
     
    129129         * XMM, [mem128], imm8.
    130130         */
    131         IEM_MC_BEGIN(3, 2);
     131        IEM_MC_BEGIN(3, 2, 0);
    132132        IEM_MC_ARG(PRTUINT128U,                 puDst,               0);
    133133        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    171171         */
    172172        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    173         IEM_MC_BEGIN(4, 2);
     173        IEM_MC_BEGIN(4, 2, 0);
    174174        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    175175        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              Src);
     
    196196         * XMM, [mem128], imm8.
    197197         */
    198         IEM_MC_BEGIN(4, 3);
     198        IEM_MC_BEGIN(4, 3, 0);
    199199        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              Src);
    200200        IEM_MC_LOCAL(X86XMMREG,                     Dst);
     
    243243         */
    244244        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    245         IEM_MC_BEGIN(3, 0);
     245        IEM_MC_BEGIN(3, 0, 0);
    246246        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fAesNi);
    247247        IEM_MC_ARG(PRTUINT128U,                 puDst,               0);
     
    261261         * Register, memory.
    262262         */
    263         IEM_MC_BEGIN(3, 2);
     263        IEM_MC_BEGIN(3, 2, 0);
    264264        IEM_MC_ARG(PRTUINT128U,                 puDst,               0);
    265265        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    323323         */
    324324        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    325         IEM_MC_BEGIN(4, 2);
     325        IEM_MC_BEGIN(4, 2, 0);
    326326        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    327327        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              Src);
     
    348348         * XMM32, [mem32].
    349349         */
    350         IEM_MC_BEGIN(4, 3);
     350        IEM_MC_BEGIN(4, 3, 0);
    351351        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              Src);
    352352        IEM_MC_LOCAL(X86XMMREG,                     Dst);
     
    388388         */
    389389        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    390         IEM_MC_BEGIN(4, 2);
     390        IEM_MC_BEGIN(4, 2, 0);
    391391        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    392392        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              Src);
     
    413413         * XMM64, [mem64], imm8.
    414414         */
    415         IEM_MC_BEGIN(4, 3);
     415        IEM_MC_BEGIN(4, 3, 0);
    416416        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              Src);
    417417        IEM_MC_LOCAL(X86XMMREG,                     Dst);
     
    481481        /** @todo testcase: REX.B / REX.R and segment register indexing. Ignored? */
    482482        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    483         IEM_MC_BEGIN(3, 0);
     483        IEM_MC_BEGIN(3, 0, 0);
    484484        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSsse3);
    485485        IEM_MC_ARG(uint64_t *,          pDst, 0);
     
    502502         * Register, memory.
    503503         */
    504         IEM_MC_BEGIN(3, 1);
     504        IEM_MC_BEGIN(3, 1, 0);
    505505        IEM_MC_ARG(uint64_t *,                  pDst,                0);
    506506        IEM_MC_ARG(uint64_t,                    uSrc,                1);
     
    553553         */
    554554        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    555         IEM_MC_BEGIN(0, 1);
     555        IEM_MC_BEGIN(0, 1, 0);
    556556        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    557557        IEM_MC_LOCAL(uint8_t,   uValue);
     
    568568         * [mem8], XMM.
    569569         */
    570         IEM_MC_BEGIN(0, 2);
     570        IEM_MC_BEGIN(0, 2, 0);
    571571        IEM_MC_LOCAL(uint8_t,   uValue);
    572572        IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
     
    597597         */
    598598        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    599         IEM_MC_BEGIN(0, 1);
     599        IEM_MC_BEGIN(0, 1, 0);
    600600        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    601601        IEM_MC_LOCAL(uint16_t,  uValue);
     
    612612         * [mem16], XMM.
    613613         */
    614         IEM_MC_BEGIN(0, 2);
     614        IEM_MC_BEGIN(0, 2, 0);
    615615        IEM_MC_LOCAL(uint16_t,  uValue);
    616616        IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
     
    648648             */
    649649            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    650             IEM_MC_BEGIN(0, 1);
     650            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    651651            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    652652            IEM_MC_LOCAL(uint64_t,  uSrc);
     
    663663             * [mem64], XMM.
    664664             */
    665             IEM_MC_BEGIN(0, 2);
     665            IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    666666            IEM_MC_LOCAL(uint64_t,  uSrc);
    667667            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
     
    695695             */
    696696            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    697             IEM_MC_BEGIN(0, 1);
     697            IEM_MC_BEGIN(0, 1, 0);
    698698            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    699699            IEM_MC_LOCAL(uint32_t,  uSrc);
     
    710710             * [mem32], XMM.
    711711             */
    712             IEM_MC_BEGIN(0, 2);
     712            IEM_MC_BEGIN(0, 2, 0);
    713713            IEM_MC_LOCAL(uint32_t,  uSrc);
    714714            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
     
    739739         */
    740740        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    741         IEM_MC_BEGIN(0, 1);
     741        IEM_MC_BEGIN(0, 1, 0);
    742742        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    743743        IEM_MC_LOCAL(uint32_t,  uSrc);
     
    754754         * [mem32], XMM.
    755755         */
    756         IEM_MC_BEGIN(0, 2);
     756        IEM_MC_BEGIN(0, 2, 0);
    757757        IEM_MC_LOCAL(uint32_t,  uSrc);
    758758        IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
     
    792792         */
    793793        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    794         IEM_MC_BEGIN(0, 1);
     794        IEM_MC_BEGIN(0, 1, 0);
    795795        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    796796        IEM_MC_LOCAL(uint8_t,   uSrc);
     
    807807         * XMM, [mem8].
    808808         */
    809         IEM_MC_BEGIN(0, 2);
     809        IEM_MC_BEGIN(0, 2, 0);
    810810        IEM_MC_LOCAL(uint8_t,   uSrc);
    811811        IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
     
    835835         */
    836836        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    837         IEM_MC_BEGIN(0, 3);
     837        IEM_MC_BEGIN(0, 3, 0);
    838838        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    839839        IEM_MC_LOCAL(uint32_t,  uSrc);
     
    859859         * XMM, [mem32].
    860860         */
    861         IEM_MC_BEGIN(0, 3);
     861        IEM_MC_BEGIN(0, 3, 0);
    862862        IEM_MC_LOCAL(uint32_t,  uSrc);
    863863        IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
     
    899899             */
    900900            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    901             IEM_MC_BEGIN(0, 1);
     901            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    902902            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    903903            IEM_MC_LOCAL(uint64_t,  uSrc);
     
    914914             * XMM, [mem64].
    915915             */
    916             IEM_MC_BEGIN(0, 2);
     916            IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    917917            IEM_MC_LOCAL(uint64_t,  uSrc);
    918918            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
     
    946946             */
    947947            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    948             IEM_MC_BEGIN(0, 1);
     948            IEM_MC_BEGIN(0, 1, 0);
    949949            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse41);
    950950            IEM_MC_LOCAL(uint32_t,  uSrc);
     
    961961             * XMM, [mem32].
    962962             */
    963             IEM_MC_BEGIN(0, 2);
     963            IEM_MC_BEGIN(0, 2, 0);
    964964            IEM_MC_LOCAL(uint32_t,  uSrc);
    965965            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
     
    10551055         */
    10561056        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    1057         IEM_MC_BEGIN(3, 0);
     1057        IEM_MC_BEGIN(3, 0, 0);
    10581058        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fPclMul);
    10591059        IEM_MC_ARG(PRTUINT128U,                 puDst,               0);
     
    10761076         * Register, memory.
    10771077         */
    1078         IEM_MC_BEGIN(3, 2);
     1078        IEM_MC_BEGIN(3, 2, 0);
    10791079        IEM_MC_ARG(PRTUINT128U,                 puDst,               0);
    10801080        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    11471147             */
    11481148            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    1149             IEM_MC_BEGIN(4, 1);
     1149            IEM_MC_BEGIN(4, 1, IEM_MC_F_64BIT);
    11501150            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse42);
    11511151            IEM_MC_ARG(PRTUINT128U,                puDst,             0);
     
    11741174             * Register, memory.
    11751175             */
    1176             IEM_MC_BEGIN(4, 3);
     1176            IEM_MC_BEGIN(4, 3, IEM_MC_F_64BIT);
    11771177            IEM_MC_ARG(uint32_t *,                  pu32Ecx,             0);
    11781178            IEM_MC_ARG(uint32_t *,                  pEFlags,             1);
     
    12111211             */
    12121212            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    1213             IEM_MC_BEGIN(4, 1);
     1213            IEM_MC_BEGIN(4, 1, 0);
    12141214            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse42);
    12151215            IEM_MC_ARG(PRTUINT128U,                puDst,             0);
     
    12381238             * Register, memory.
    12391239             */
    1240             IEM_MC_BEGIN(4, 3);
     1240            IEM_MC_BEGIN(4, 3, 0);
    12411241            IEM_MC_ARG(uint32_t *,                  pu32Ecx,             0);
    12421242            IEM_MC_ARG(uint32_t *,                  pEFlags,             1);
     
    12831283             */
    12841284            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    1285             IEM_MC_BEGIN(4, 1);
     1285            IEM_MC_BEGIN(4, 1, IEM_MC_F_64BIT);
    12861286            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse42);
    12871287            IEM_MC_ARG(uint32_t *,                 pu32Ecx,             0);
     
    13111311             * Register, memory.
    13121312             */
    1313             IEM_MC_BEGIN(4, 3);
     1313            IEM_MC_BEGIN(4, 3, IEM_MC_F_64BIT);
    13141314            IEM_MC_ARG(uint32_t *,                  pu32Ecx,             0);
    13151315            IEM_MC_ARG(uint32_t *,                  pEFlags,             1);
     
    13481348             */
    13491349            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    1350             IEM_MC_BEGIN(4, 1);
     1350            IEM_MC_BEGIN(4, 1, 0);
    13511351            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse42);
    13521352            IEM_MC_ARG(uint32_t *,                 pu32Ecx,             0);
     
    13761376             * Register, memory.
    13771377             */
    1378             IEM_MC_BEGIN(4, 3);
     1378            IEM_MC_BEGIN(4, 3, 0);
    13791379            IEM_MC_ARG(uint32_t *,                  pu32Ecx,             0);
    13801380            IEM_MC_ARG(uint32_t *,                  pEFlags,             1);
     
    14201420         */
    14211421        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    1422         IEM_MC_BEGIN(4, 1);
     1422        IEM_MC_BEGIN(4, 1, 0);
    14231423        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse42);
    14241424        IEM_MC_ARG(PRTUINT128U,                puDst,             0);
     
    14451445         * Register, memory.
    14461446         */
    1447         IEM_MC_BEGIN(4, 3);
     1447        IEM_MC_BEGIN(4, 3, 0);
    14481448        IEM_MC_ARG(uint32_t *,                  pu32Ecx,             0);
    14491449        IEM_MC_ARG(uint32_t *,                  pEFlags,             1);
     
    14851485         */
    14861486        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    1487         IEM_MC_BEGIN(4, 1);
     1487        IEM_MC_BEGIN(4, 1, 0);
    14881488        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse42);
    14891489        IEM_MC_ARG(uint32_t *,                 pu32Ecx,             0);
     
    15111511         * Register, memory.
    15121512         */
    1513         IEM_MC_BEGIN(4, 3);
     1513        IEM_MC_BEGIN(4, 3, 0);
    15141514        IEM_MC_ARG(uint32_t *,                  pu32Ecx,             0);
    15151515        IEM_MC_ARG(uint32_t *,                  pEFlags,             1);
     
    15821582         */
    15831583        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    1584         IEM_MC_BEGIN(3, 0);
     1584        IEM_MC_BEGIN(3, 0, 0);
    15851585        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSha);
    15861586        IEM_MC_ARG(PRTUINT128U,                 puDst,               0);
     
    16031603         * XMM, [mem128], imm8.
    16041604         */
    1605         IEM_MC_BEGIN(3, 2);
     1605        IEM_MC_BEGIN(3, 2, 0);
    16061606        IEM_MC_ARG(PRTUINT128U,                 puDst,               0);
    16071607        IEM_MC_LOCAL(RTUINT128U,                uSrc);
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstTwoByte0f.cpp.h

    r100844 r100854  
    5050        /** @todo testcase: REX.B / REX.R and MMX register indexing. Ignored? */
    5151        /** @todo testcase: REX.B / REX.R and segment register indexing. Ignored? */
    52         IEM_MC_BEGIN(2, 0);
     52        IEM_MC_BEGIN(2, 0, 0);
    5353        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    5454        IEM_MC_ARG(uint64_t *,          pDst, 0);
     
    7171         * MMX, [mem64].
    7272         */
    73         IEM_MC_BEGIN(2, 2);
     73        IEM_MC_BEGIN(2, 2, 0);
    7474        IEM_MC_ARG(uint64_t *,                  pDst,       0);
    7575        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    112112        /** @todo testcase: REX.B / REX.R and MMX register indexing. Ignored? */
    113113        /** @todo testcase: REX.B / REX.R and segment register indexing. Ignored? */
    114         IEM_MC_BEGIN(2, 0);
     114        IEM_MC_BEGIN(2, 0, 0);
    115115        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    116116        IEM_MC_ARG(uint64_t *,          pDst, 0);
     
    133133         * MMX, [mem64].
    134134         */
    135         IEM_MC_BEGIN(2, 2);
     135        IEM_MC_BEGIN(2, 2, 0);
    136136        IEM_MC_ARG(uint64_t *,                  pDst,       0);
    137137        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    172172        /** @todo testcase: REX.B / REX.R and MMX register indexing. Ignored? */
    173173        /** @todo testcase: REX.B / REX.R and segment register indexing. Ignored? */
    174         IEM_MC_BEGIN(2, 0);
     174        IEM_MC_BEGIN(2, 0, 0);
    175175        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX_2_OR(fSse, fAmdMmxExts);
    176176        IEM_MC_ARG(uint64_t *,          pDst, 0);
     
    193193         * MMX, [mem64].
    194194         */
    195         IEM_MC_BEGIN(2, 2);
     195        IEM_MC_BEGIN(2, 2, 0);
    196196        IEM_MC_ARG(uint64_t *,                  pDst,       0);
    197197        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    235235        /** @todo testcase: REX.B / REX.R and MMX register indexing. Ignored? */
    236236        /** @todo testcase: REX.B / REX.R and segment register indexing. Ignored? */
    237         IEM_MC_BEGIN(2, 0);
     237        IEM_MC_BEGIN(2, 0, 0);
    238238        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX_2_OR(fSse, fAmdMmxExts);
    239239        IEM_MC_ARG(uint64_t *,          pDst, 0);
     
    256256         * MMX, [mem64].
    257257         */
    258         IEM_MC_BEGIN(2, 2);
     258        IEM_MC_BEGIN(2, 2, 0);
    259259        IEM_MC_ARG(uint64_t *,                  pDst,       0);
    260260        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    295295        /** @todo testcase: REX.B / REX.R and MMX register indexing. Ignored? */
    296296        /** @todo testcase: REX.B / REX.R and segment register indexing. Ignored? */
    297         IEM_MC_BEGIN(2, 0);
     297        IEM_MC_BEGIN(2, 0, 0);
    298298        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    299299        IEM_MC_ARG(uint64_t *,          pDst, 0);
     
    316316         * MMX, [mem64].
    317317         */
    318         IEM_MC_BEGIN(2, 2);
     318        IEM_MC_BEGIN(2, 2, 0);
    319319        IEM_MC_ARG(uint64_t *,                  pDst,       0);
    320320        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    357357         * XMM, XMM.
    358358         */
    359         IEM_MC_BEGIN(2, 0);
     359        IEM_MC_BEGIN(2, 0, 0);
    360360        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    361361        IEM_MC_ARG(PRTUINT128U,          pDst, 0);
     
    374374         * XMM, [mem128].
    375375         */
    376         IEM_MC_BEGIN(2, 2);
     376        IEM_MC_BEGIN(2, 2, 0);
    377377        IEM_MC_ARG(PRTUINT128U,                 pDst,       0);
    378378        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    412412         * XMM, XMM.
    413413         */
    414         IEM_MC_BEGIN(2, 0);
     414        IEM_MC_BEGIN(2, 0, 0);
    415415        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    416416        IEM_MC_ARG(PRTUINT128U,          pDst, 0);
     
    429429         * XMM, [mem128].
    430430         */
    431         IEM_MC_BEGIN(2, 2);
     431        IEM_MC_BEGIN(2, 2, 0);
    432432        IEM_MC_ARG(PRTUINT128U,                 pDst,       0);
    433433        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    470470         * XMM, XMM.
    471471         */
    472         IEM_MC_BEGIN(2, 0);
     472        IEM_MC_BEGIN(2, 0, 0);
    473473        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    474474        IEM_MC_ARG(PRTUINT128U,          pDst, 0);
     
    487487         * XMM, [mem128].
    488488         */
    489         IEM_MC_BEGIN(2, 2);
     489        IEM_MC_BEGIN(2, 2, 0);
    490490        IEM_MC_ARG(PRTUINT128U,                 pDst,       0);
    491491        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    523523         * MMX, MMX.
    524524         */
    525         IEM_MC_BEGIN(2, 0);
     525        IEM_MC_BEGIN(2, 0, 0);
    526526        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    527527        IEM_MC_ARG(uint64_t *,              puDst, 0);
     
    544544         * MMX, [mem32].
    545545         */
    546         IEM_MC_BEGIN(2, 2);
     546        IEM_MC_BEGIN(2, 2, 0);
    547547        IEM_MC_ARG(uint64_t *,                  puDst,       0);
    548548        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    585585         * XMM, XMM.
    586586         */
    587         IEM_MC_BEGIN(2, 0);
     587        IEM_MC_BEGIN(2, 0, 0);
    588588        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    589589        IEM_MC_ARG(PRTUINT128U,             puDst, 0);
     
    602602         * XMM, [mem128].
    603603         */
    604         IEM_MC_BEGIN(2, 2);
     604        IEM_MC_BEGIN(2, 2, 0);
    605605        IEM_MC_ARG(PRTUINT128U,             puDst,       0);
    606606        IEM_MC_LOCAL(RTUINT128U,            uSrc);
     
    645645         * XMM, XMM.
    646646         */
    647         IEM_MC_BEGIN(2, 0);
     647        IEM_MC_BEGIN(2, 0, 0);
    648648        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    649649        IEM_MC_ARG(PRTUINT128U,             puDst, 0);
     
    662662         * XMM, [mem128].
    663663         */
    664         IEM_MC_BEGIN(2, 2);
     664        IEM_MC_BEGIN(2, 2, 0);
    665665        IEM_MC_ARG(PRTUINT128U,             puDst,       0);
    666666        IEM_MC_LOCAL(RTUINT128U,            uSrc);
     
    705705        /** @todo testcase: REX.B / REX.R and MMX register indexing. Ignored? */
    706706        /** @todo testcase: REX.B / REX.R and segment register indexing. Ignored? */
    707         IEM_MC_BEGIN(2, 0);
     707        IEM_MC_BEGIN(2, 0, 0);
    708708        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    709709        IEM_MC_ARG(uint64_t *,              puDst, 0);
     
    726726         * MMX, [mem64].
    727727         */
    728         IEM_MC_BEGIN(2, 2);
     728        IEM_MC_BEGIN(2, 2, 0);
    729729        IEM_MC_ARG(uint64_t *,                  puDst,       0);
    730730        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    767767         * XMM, XMM.
    768768         */
    769         IEM_MC_BEGIN(2, 0);
     769        IEM_MC_BEGIN(2, 0, 0);
    770770        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    771771        IEM_MC_ARG(PRTUINT128U,             puDst, 0);
     
    784784         * XMM, [mem128].
    785785         */
    786         IEM_MC_BEGIN(2, 2);
     786        IEM_MC_BEGIN(2, 2, 0);
    787787        IEM_MC_ARG(PRTUINT128U,                 puDst,       0);
    788788        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    827827         * XMM128, XMM128.
    828828         */
    829         IEM_MC_BEGIN(3, 1);
     829        IEM_MC_BEGIN(3, 1, 0);
    830830        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    831831        IEM_MC_LOCAL(IEMSSERESULT,          SseRes);
     
    849849         * XMM128, [mem128].
    850850         */
    851         IEM_MC_BEGIN(3, 2);
     851        IEM_MC_BEGIN(3, 2, 0);
    852852        IEM_MC_LOCAL(IEMSSERESULT,          SseRes);
    853853        IEM_MC_LOCAL(X86XMMREG,             uSrc2);
     
    891891         * XMM128, XMM32.
    892892         */
    893         IEM_MC_BEGIN(3, 1);
     893        IEM_MC_BEGIN(3, 1, 0);
    894894        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    895895        IEM_MC_LOCAL(IEMSSERESULT,          SseRes);
     
    913913         * XMM128, [mem32].
    914914         */
    915         IEM_MC_BEGIN(3, 2);
     915        IEM_MC_BEGIN(3, 2, 0);
    916916        IEM_MC_LOCAL(IEMSSERESULT,          SseRes);
    917917        IEM_MC_LOCAL(RTFLOAT32U,            r32Src2);
     
    955955         * XMM128, XMM128.
    956956         */
    957         IEM_MC_BEGIN(3, 1);
     957        IEM_MC_BEGIN(3, 1, 0);
    958958        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    959959        IEM_MC_LOCAL(IEMSSERESULT,          SseRes);
     
    977977         * XMM128, [mem128].
    978978         */
    979         IEM_MC_BEGIN(3, 2);
     979        IEM_MC_BEGIN(3, 2, 0);
    980980        IEM_MC_LOCAL(IEMSSERESULT,          SseRes);
    981981        IEM_MC_LOCAL(X86XMMREG,             uSrc2);
     
    10191019         * XMM, XMM.
    10201020         */
    1021         IEM_MC_BEGIN(3, 1);
     1021        IEM_MC_BEGIN(3, 1, 0);
    10221022        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    10231023        IEM_MC_LOCAL(IEMSSERESULT,          SseRes);
     
    10411041         * XMM, [mem64].
    10421042         */
    1043         IEM_MC_BEGIN(3, 2);
     1043        IEM_MC_BEGIN(3, 2, 0);
    10441044        IEM_MC_LOCAL(IEMSSERESULT,          SseRes);
    10451045        IEM_MC_LOCAL(RTFLOAT64U,            r64Src2);
     
    10831083         * XMM, XMM.
    10841084         */
    1085         IEM_MC_BEGIN(2, 0);
     1085        IEM_MC_BEGIN(2, 0, 0);
    10861086        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    10871087        IEM_MC_ARG(PRTUINT128U,             puDst, 0);
     
    11001100         * XMM, [mem128].
    11011101         */
    1102         IEM_MC_BEGIN(2, 2);
     1102        IEM_MC_BEGIN(2, 2, 0);
    11031103        IEM_MC_ARG(PRTUINT128U,                 puDst,       0);
    11041104        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    11431143         * XMM, XMM.
    11441144         */
    1145         IEM_MC_BEGIN(3, 1);
     1145        IEM_MC_BEGIN(3, 1, 0);
    11461146        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse3);
    11471147        IEM_MC_LOCAL(IEMSSERESULT,          SseRes);
     
    11651165         * XMM, [mem128].
    11661166         */
    1167         IEM_MC_BEGIN(3, 2);
     1167        IEM_MC_BEGIN(3, 2, 0);
    11681168        IEM_MC_LOCAL(IEMSSERESULT,          SseRes);
    11691169        IEM_MC_LOCAL(X86XMMREG,             uSrc2);
     
    12041204
    12051205    /* Ignore operand size here, memory refs are always 16-bit. */
    1206     IEM_MC_BEGIN(2, 0);
     1206    IEM_MC_BEGIN(2, 0, 0);
    12071207    IEM_MC_ARG(uint16_t, iEffSeg,               0);
    12081208    IEM_MC_ARG(RTGCPTR,  GCPtrEffDst,           1);
     
    12301230
    12311231    /* Ignore operand size here, memory refs are always 16-bit. */
    1232     IEM_MC_BEGIN(2, 0);
     1232    IEM_MC_BEGIN(2, 0, 0);
    12331233    IEM_MC_ARG(uint16_t, iEffSeg,               0);
    12341234    IEM_MC_ARG(RTGCPTR,  GCPtrEffDst,           1);
     
    12501250    if (IEM_IS_MODRM_REG_MODE(bRm))
    12511251    {
    1252         IEM_MC_BEGIN(1, 0);
     1252        IEM_MC_BEGIN(1, 0, 0);
    12531253        IEMOP_HLP_DECODED_NL_1(OP_LLDT, IEMOPFORM_M_REG, OP_PARM_Ew, DISOPTYPE_DANGEROUS);
    12541254        IEM_MC_ARG(uint16_t, u16Sel, 0);
     
    12591259    else
    12601260    {
    1261         IEM_MC_BEGIN(1, 1);
     1261        IEM_MC_BEGIN(1, 1, 0);
    12621262        IEM_MC_ARG(uint16_t, u16Sel, 0);
    12631263        IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
     
    12811281    if (IEM_IS_MODRM_REG_MODE(bRm))
    12821282    {
    1283         IEM_MC_BEGIN(1, 0);
     1283        IEM_MC_BEGIN(1, 0, 0);
    12841284        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    12851285        IEM_MC_ARG(uint16_t, u16Sel, 0);
     
    12901290    else
    12911291    {
    1292         IEM_MC_BEGIN(1, 1);
     1292        IEM_MC_BEGIN(1, 1, 0);
    12931293        IEM_MC_ARG(uint16_t, u16Sel, 0);
    12941294        IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
     
    13111311    if (IEM_IS_MODRM_REG_MODE(bRm))
    13121312    {
    1313         IEM_MC_BEGIN(2, 0);
     1313        IEM_MC_BEGIN(2, 0, 0);
    13141314        IEMOP_HLP_DECODED_NL_1(fWrite ? OP_VERW : OP_VERR, IEMOPFORM_M_MEM, OP_PARM_Ew, DISOPTYPE_DANGEROUS | DISOPTYPE_PRIVILEGED_NOTRAP);
    13151315        IEM_MC_ARG(uint16_t,    u16Sel,            0);
     
    13211321    else
    13221322    {
    1323         IEM_MC_BEGIN(2, 1);
     1323        IEM_MC_BEGIN(2, 1, 0);
    13241324        IEM_MC_ARG(uint16_t,    u16Sel,            0);
    13251325        IEM_MC_ARG_CONST(bool,  fWriteArg, fWrite, 1);
     
    13811381    IEMOP_HLP_MIN_286();
    13821382    IEMOP_HLP_64BIT_OP_SIZE();
    1383     IEM_MC_BEGIN(2, 1);
     1383    IEM_MC_BEGIN(2, 1, 0);
    13841384    IEM_MC_ARG(uint8_t,         iEffSeg,                                    0);
    13851385    IEM_MC_ARG(RTGCPTR,         GCPtrEffSrc,                                1);
     
    14731473    IEMOP_HLP_MIN_286();
    14741474    IEMOP_HLP_64BIT_OP_SIZE();
    1475     IEM_MC_BEGIN(2, 1);
     1475    IEM_MC_BEGIN(2, 1, 0);
    14761476    IEM_MC_ARG(uint8_t,         iEffSeg,                                    0);
    14771477    IEM_MC_ARG(RTGCPTR,         GCPtrEffSrc,                                1);
     
    15071507    IEMOP_MNEMONIC(lgdt, "lgdt");
    15081508    IEMOP_HLP_64BIT_OP_SIZE();
    1509     IEM_MC_BEGIN(3, 1);
     1509    IEM_MC_BEGIN(3, 1, 0);
    15101510    IEM_MC_ARG(uint8_t,         iEffSeg,                                    0);
    15111511    IEM_MC_ARG(RTGCPTR,         GCPtrEffSrc,                                1);
     
    15601560    IEMOP_MNEMONIC(lidt, "lidt");
    15611561    IEMMODE enmEffOpSize = IEM_IS_64BIT_CODE(pVCpu) ? IEMMODE_64BIT : pVCpu->iem.s.enmEffOpSize;
    1562     IEM_MC_BEGIN(3, 1);
     1562    IEM_MC_BEGIN(3, 1, 0);
    15631563    IEM_MC_ARG(uint8_t,         iEffSeg,                            0);
    15641564    IEM_MC_ARG(RTGCPTR,         GCPtrEffSrc,                        1);
     
    16921692
    16931693    /* Ignore operand size here, memory refs are always 16-bit. */
    1694     IEM_MC_BEGIN(2, 0);
     1694    IEM_MC_BEGIN(2, 0, 0);
    16951695    IEM_MC_ARG(uint16_t, iEffSeg,               0);
    16961696    IEM_MC_ARG(RTGCPTR,  GCPtrEffDst,           1);
     
    17121712    if (IEM_IS_MODRM_REG_MODE(bRm))
    17131713    {
    1714         IEM_MC_BEGIN(2, 0);
     1714        IEM_MC_BEGIN(2, 0, 0);
    17151715        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    17161716        IEM_MC_ARG(uint16_t, u16Tmp,                         0);
     
    17221722    else
    17231723    {
    1724         IEM_MC_BEGIN(2, 0);
     1724        IEM_MC_BEGIN(2, 0, 0);
    17251725        IEM_MC_ARG(uint16_t, u16Tmp,      0);
    17261726        IEM_MC_ARG(RTGCPTR,  GCPtrEffDst, 1);
     
    17391739    IEMOP_MNEMONIC(invlpg, "invlpg");
    17401740    IEMOP_HLP_MIN_486();
    1741     IEM_MC_BEGIN(1, 1);
     1741    IEM_MC_BEGIN(1, 1, IEM_MC_F_MIN_386);
    17421742    IEM_MC_ARG(RTGCPTR, GCPtrEffDst, 0);
    17431743    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    18641864        {
    18651865            case IEMMODE_16BIT:
    1866             {
    1867                 IEM_MC_BEGIN(3, 0);
     1866                IEM_MC_BEGIN(3, 0, 0);
    18681867                IEMOP_HLP_DECODED_NL_2(fIsLar ? OP_LAR : OP_LSL, IEMOPFORM_RM_REG, OP_PARM_Gv, OP_PARM_Ew, DISOPTYPE_DANGEROUS | DISOPTYPE_PRIVILEGED_NOTRAP);
    18691868                IEM_MC_ARG(uint16_t *,  pu16Dst,           0);
     
    18761875
    18771876                IEM_MC_END();
    1878             }
     1877                break;
    18791878
    18801879            case IEMMODE_32BIT:
    18811880            case IEMMODE_64BIT:
    1882             {
    1883                 IEM_MC_BEGIN(3, 0);
     1881                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386);
    18841882                IEMOP_HLP_DECODED_NL_2(fIsLar ? OP_LAR : OP_LSL, IEMOPFORM_RM_REG, OP_PARM_Gv, OP_PARM_Ew, DISOPTYPE_DANGEROUS | DISOPTYPE_PRIVILEGED_NOTRAP);
    18851883                IEM_MC_ARG(uint64_t *,  pu64Dst,           0);
     
    18921890
    18931891                IEM_MC_END();
    1894             }
     1892                break;
    18951893
    18961894            IEM_NOT_REACHED_DEFAULT_CASE_RET();
     
    19021900        {
    19031901            case IEMMODE_16BIT:
    1904             {
    1905                 IEM_MC_BEGIN(3, 1);
     1902                IEM_MC_BEGIN(3, 1, 0);
    19061903                IEM_MC_ARG(uint16_t *,  pu16Dst,           0);
    19071904                IEM_MC_ARG(uint16_t,    u16Sel,            1);
     
    19171914
    19181915                IEM_MC_END();
    1919             }
     1916                break;
    19201917
    19211918            case IEMMODE_32BIT:
    19221919            case IEMMODE_64BIT:
    1923             {
    1924                 IEM_MC_BEGIN(3, 1);
     1920                IEM_MC_BEGIN(3, 1, IEM_MC_F_MIN_386);
    19251921                IEM_MC_ARG(uint64_t *,  pu64Dst,           0);
    19261922                IEM_MC_ARG(uint16_t,    u16Sel,            1);
     
    19371933
    19381934                IEM_MC_END();
    1939             }
     1935                break;
    19401936
    19411937            IEM_NOT_REACHED_DEFAULT_CASE_RET();
     
    20502046    }
    20512047
    2052     IEM_MC_BEGIN(0, 1);
     2048    IEM_MC_BEGIN(0, 1, 0);
    20532049    IEM_MC_LOCAL(RTGCPTR,  GCPtrEffSrc);
    20542050    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
     
    20662062    IEMOP_MNEMONIC(femms, "femms");
    20672063
    2068     IEM_MC_BEGIN(0,0);
     2064    IEM_MC_BEGIN(0, 0, 0);
    20692065    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    20702066    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
     
    21152111         * XMM128, XMM128.
    21162112         */
    2117         IEM_MC_BEGIN(0, 0);
     2113        IEM_MC_BEGIN(0, 0, 0);
    21182114        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    21192115        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
     
    21292125         * XMM128, [mem128].
    21302126         */
    2131         IEM_MC_BEGIN(0, 2);
     2127        IEM_MC_BEGIN(0, 2, 0);
    21322128        IEM_MC_LOCAL(RTUINT128U,                uSrc); /** @todo optimize this one day... */
    21332129        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    21662162         * XMM128, XMM128.
    21672163         */
    2168         IEM_MC_BEGIN(0, 0);
     2164        IEM_MC_BEGIN(0, 0, 0);
    21692165        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    21702166        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
     
    21802176         * XMM128, [mem128].
    21812177         */
    2182         IEM_MC_BEGIN(0, 2);
     2178        IEM_MC_BEGIN(0, 2, 0);
    21832179        IEM_MC_LOCAL(RTUINT128U,                uSrc); /** @todo optimize this one day... */
    21842180        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    22162212         * XMM32, XMM32.
    22172213         */
    2218         IEM_MC_BEGIN(0, 1);
     2214        IEM_MC_BEGIN(0, 1, 0);
    22192215        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    22202216        IEM_MC_LOCAL(uint32_t,                  uSrc);
     
    22332229         * XMM128, [mem32].
    22342230         */
    2235         IEM_MC_BEGIN(0, 2);
     2231        IEM_MC_BEGIN(0, 2, 0);
    22362232        IEM_MC_LOCAL(uint32_t,                  uSrc);
    22372233        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    22692265         * XMM64, XMM64.
    22702266         */
    2271         IEM_MC_BEGIN(0, 1);
     2267        IEM_MC_BEGIN(0, 1, 0);
    22722268        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    22732269        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    22862282         * XMM128, [mem64].
    22872283         */
    2288         IEM_MC_BEGIN(0, 2);
     2284        IEM_MC_BEGIN(0, 2, 0);
    22892285        IEM_MC_LOCAL(uint64_t,                  uSrc);
    22902286        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    23222318         * XMM128, XMM128.
    23232319         */
    2324         IEM_MC_BEGIN(0, 0);
     2320        IEM_MC_BEGIN(0, 0, 0);
    23252321        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    23262322        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
     
    23362332         * [mem128], XMM128.
    23372333         */
    2338         IEM_MC_BEGIN(0, 2);
     2334        IEM_MC_BEGIN(0, 2, 0);
    23392335        IEM_MC_LOCAL(RTUINT128U,                uSrc); /** @todo optimize this one day... */
    23402336        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    23722368         * XMM128, XMM128.
    23732369         */
    2374         IEM_MC_BEGIN(0, 0);
     2370        IEM_MC_BEGIN(0, 0, 0);
    23752371        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    23762372        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
     
    23862382         * [mem128], XMM128.
    23872383         */
    2388         IEM_MC_BEGIN(0, 2);
     2384        IEM_MC_BEGIN(0, 2, 0);
    23892385        IEM_MC_LOCAL(RTUINT128U,                uSrc); /** @todo optimize this one day... */
    23902386        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    24222418         * XMM32, XMM32.
    24232419         */
    2424         IEM_MC_BEGIN(0, 1);
     2420        IEM_MC_BEGIN(0, 1, 0);
    24252421        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    24262422        IEM_MC_LOCAL(uint32_t,                  uSrc);
     
    24392435         * [mem32], XMM32.
    24402436         */
    2441         IEM_MC_BEGIN(0, 2);
     2437        IEM_MC_BEGIN(0, 2, 0);
    24422438        IEM_MC_LOCAL(uint32_t,                  uSrc);
    24432439        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    24752471         * XMM64, XMM64.
    24762472         */
    2477         IEM_MC_BEGIN(0, 1);
     2473        IEM_MC_BEGIN(0, 1, 0);
    24782474        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    24792475        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    24922488         * [mem64], XMM64.
    24932489         */
    2494         IEM_MC_BEGIN(0, 2);
     2490        IEM_MC_BEGIN(0, 2, 0);
    24952491        IEM_MC_LOCAL(uint64_t,                  uSrc);
    24962492        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    25272523        IEMOP_MNEMONIC2(RM_REG, MOVHLPS, movhlps, Vq_WO, UqHi, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    25282524
    2529         IEM_MC_BEGIN(0, 1);
     2525        IEM_MC_BEGIN(0, 1, 0);
    25302526        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    25312527        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    25552551        IEMOP_MNEMONIC2(RM_MEM, MOVLPS, movlps, Vq, Mq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    25562552
    2557         IEM_MC_BEGIN(0, 2);
     2553        IEM_MC_BEGIN(0, 2, 0);
    25582554        IEM_MC_LOCAL(uint64_t,                  uSrc);
    25592555        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    25902586        IEMOP_MNEMONIC2(RM_MEM, MOVLPD, movlpd, Vq_WO, Mq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    25912587
    2592         IEM_MC_BEGIN(0, 2);
     2588        IEM_MC_BEGIN(0, 2, 0);
    25932589        IEM_MC_LOCAL(uint64_t,                  uSrc);
    25942590        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    26392635         * XMM, XMM.
    26402636         */
    2641         IEM_MC_BEGIN(0, 1);
     2637        IEM_MC_BEGIN(0, 1, 0);
    26422638        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse3);
    26432639        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    26602656         * XMM, [mem128].
    26612657         */
    2662         IEM_MC_BEGIN(0, 2);
     2658        IEM_MC_BEGIN(0, 2, 0);
    26632659        IEM_MC_LOCAL(RTUINT128U,                uSrc);
    26642660        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    26992695         * XMM128, XMM64.
    27002696         */
    2701         IEM_MC_BEGIN(1, 0);
     2697        IEM_MC_BEGIN(1, 0, 0);
    27022698        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse3);
    27032699        IEM_MC_ARG(uint64_t,                    uSrc, 0);
     
    27182714         * XMM128, [mem64].
    27192715         */
    2720         IEM_MC_BEGIN(1, 1);
     2716        IEM_MC_BEGIN(1, 1, 0);
    27212717        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    27222718        IEM_MC_ARG(uint64_t,                    uSrc, 0);
     
    27542750        IEMOP_MNEMONIC2(MR_MEM, MOVLPS, movlps, Mq_WO, Vq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    27552751
    2756         IEM_MC_BEGIN(0, 2);
     2752        IEM_MC_BEGIN(0, 2, 0);
    27572753        IEM_MC_LOCAL(uint64_t,                  uSrc);
    27582754        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    28012797    {
    28022798        IEMOP_MNEMONIC2(MR_MEM, MOVLPD, movlpd, Mq_WO, Vq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    2803         IEM_MC_BEGIN(0, 2);
     2799
     2800        IEM_MC_BEGIN(0, 2, 0);
    28042801        IEM_MC_LOCAL(uint64_t,                  uSrc);
    28052802        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    29462943        IEMOP_MNEMONIC2(RM_REG, MOVLHPS, movlhps, VqHi_WO, Uq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    29472944
    2948         IEM_MC_BEGIN(0, 1);
     2945        IEM_MC_BEGIN(0, 1, 0);
    29492946        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    29502947        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    29742971        IEMOP_MNEMONIC2(RM_MEM, MOVHPS, movhps, VqHi_WO, Mq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    29752972
    2976         IEM_MC_BEGIN(0, 2);
     2973        IEM_MC_BEGIN(0, 2, 0);
    29772974        IEM_MC_LOCAL(uint64_t,                  uSrc);
    29782975        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    30083005    {
    30093006        IEMOP_MNEMONIC2(RM_MEM, MOVHPD, movhpd, VqHi_WO, Mq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    3010         IEM_MC_BEGIN(0, 2);
     3007
     3008        IEM_MC_BEGIN(0, 2, 0);
    30113009        IEM_MC_LOCAL(uint64_t,                  uSrc);
    30123010        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    30573055         * XMM128, XMM128.
    30583056         */
    3059         IEM_MC_BEGIN(0, 1);
     3057        IEM_MC_BEGIN(0, 1, 0);
    30603058        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse3);
    30613059        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    30783076         * XMM128, [mem128].
    30793077         */
    3080         IEM_MC_BEGIN(0, 2);
     3078        IEM_MC_BEGIN(0, 2, 0);
    30813079        IEM_MC_LOCAL(RTUINT128U,                uSrc);
    30823080        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    31273125        IEMOP_MNEMONIC2(MR_MEM, MOVHPS, movhps, Mq_WO, VqHi, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    31283126
    3129         IEM_MC_BEGIN(0, 2);
     3127        IEM_MC_BEGIN(0, 2, 0);
    31303128        IEM_MC_LOCAL(uint64_t,                  uSrc);
    31313129        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    31753173        IEMOP_MNEMONIC2(MR_MEM, MOVHPD, movhpd, Mq_WO, VqHi, DISOPTYPE_HARMLESS | DISOPTYPE_X86_SSE, IEMOPHINT_IGNORES_OP_SIZES);
    31763174
    3177         IEM_MC_BEGIN(0, 2);
     3175        IEM_MC_BEGIN(0, 2, 0);
    31783176        IEM_MC_LOCAL(uint64_t,                  uSrc);
    31793177        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    32473245        }
    32483246
    3249         IEM_MC_BEGIN(0, 1);
     3247        IEM_MC_BEGIN(0, 1, 0);
    32503248        IEM_MC_LOCAL(RTGCPTR,  GCPtrEffSrc);
    32513249        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
     
    32683266    if (IEM_IS_MODRM_REG_MODE(bRm))
    32693267    {
    3270         IEM_MC_BEGIN(0, 0);
     3268        IEM_MC_BEGIN(0, 0, 0);
    32713269        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    32723270        IEM_MC_ADVANCE_RIP_AND_FINISH();
     
    32753273    else
    32763274    {
    3277         IEM_MC_BEGIN(0, 1);
     3275        IEM_MC_BEGIN(0, 1, 0);
    32783276        IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    32793277        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
     
    34283426         * Register, register.
    34293427         */
    3430         IEM_MC_BEGIN(0, 0);
     3428        IEM_MC_BEGIN(0, 0, 0);
    34313429        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    34323430        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
     
    34423440         * Register, memory.
    34433441         */
    3444         IEM_MC_BEGIN(0, 2);
     3442        IEM_MC_BEGIN(0, 2, 0);
    34453443        IEM_MC_LOCAL(RTUINT128U,                uSrc); /** @todo optimize this one day... */
    34463444        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    34773475         * Register, register.
    34783476         */
    3479         IEM_MC_BEGIN(0, 0);
     3477        IEM_MC_BEGIN(0, 0, 0);
    34803478        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    34813479        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
     
    34913489         * Register, memory.
    34923490         */
    3493         IEM_MC_BEGIN(0, 2);
     3491        IEM_MC_BEGIN(0, 2, 0);
    34943492        IEM_MC_LOCAL(RTUINT128U,                uSrc); /** @todo optimize this one day... */
    34953493        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    35293527         * Register, register.
    35303528         */
    3531         IEM_MC_BEGIN(0, 0);
     3529        IEM_MC_BEGIN(0, 0, 0);
    35323530        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    35333531        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
     
    35433541         * Memory, register.
    35443542         */
    3545         IEM_MC_BEGIN(0, 2);
     3543        IEM_MC_BEGIN(0, 2, 0);
    35463544        IEM_MC_LOCAL(RTUINT128U,                uSrc); /** @todo optimize this one day... */
    35473545        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    35783576         * Register, register.
    35793577         */
    3580         IEM_MC_BEGIN(0, 0);
     3578        IEM_MC_BEGIN(0, 0, 0);
    35813579        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    35823580        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
     
    35923590         * Memory, register.
    35933591         */
    3594         IEM_MC_BEGIN(0, 2);
     3592        IEM_MC_BEGIN(0, 2, 0);
    35953593        IEM_MC_LOCAL(RTUINT128U,                uSrc); /** @todo optimize this one day... */
    35963594        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    36233621         * XMM, MMX
    36243622         */
    3625         IEM_MC_BEGIN(3, 1);
     3623        IEM_MC_BEGIN(3, 1, 0);
    36263624        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    36273625        IEM_MC_ARG(uint32_t *,              pfMxcsr,            0);
     
    36533651         * XMM, [mem64]
    36543652         */
    3655         IEM_MC_BEGIN(3, 2);
     3653        IEM_MC_BEGIN(3, 2, 0);
    36563654        IEM_MC_ARG(uint32_t *,              pfMxcsr,            0);
    36573655        IEM_MC_LOCAL(X86XMMREG,             Dst);
     
    36933691         * XMM, MMX
    36943692         */
    3695         IEM_MC_BEGIN(3, 1);
     3693        IEM_MC_BEGIN(3, 1, 0);
    36963694        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    36973695        IEM_MC_ARG(uint32_t *,              pfMxcsr,            0);
     
    37223720         * XMM, [mem64]
    37233721         */
    3724         IEM_MC_BEGIN(3, 3);
     3722        IEM_MC_BEGIN(3, 3, 0);
    37253723        IEM_MC_ARG(uint32_t *,              pfMxcsr,            0);
    37263724        IEM_MC_LOCAL(X86XMMREG,             Dst);
     
    37633761        {
    37643762            /* XMM, greg64 */
    3765             IEM_MC_BEGIN(3, 2);
     3763            IEM_MC_BEGIN(3, 2, IEM_MC_F_64BIT);
    37663764            IEM_MC_LOCAL(uint32_t,    fMxcsr);
    37673765            IEM_MC_LOCAL(RTFLOAT32U,  r32Dst);
     
    37893787        {
    37903788            /* XMM, [mem64] */
    3791             IEM_MC_BEGIN(3, 4);
     3789            IEM_MC_BEGIN(3, 4, IEM_MC_F_64BIT);
    37923790            IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
    37933791            IEM_MC_LOCAL(uint32_t,   fMxcsr);
     
    38213819        {
    38223820            /* greg, XMM */
    3823             IEM_MC_BEGIN(3, 2);
     3821            IEM_MC_BEGIN(3, 2, 0);
    38243822            IEM_MC_LOCAL(uint32_t,   fMxcsr);
    38253823            IEM_MC_LOCAL(RTFLOAT32U, r32Dst);
     
    38473845        {
    38483846            /* greg, [mem32] */
    3849             IEM_MC_BEGIN(3, 4);
     3847            IEM_MC_BEGIN(3, 4, 0);
    38503848            IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
    38513849            IEM_MC_LOCAL(uint32_t,   fMxcsr);
     
    38883886        {
    38893887            /* XMM, greg64 */
    3890             IEM_MC_BEGIN(3, 2);
     3888            IEM_MC_BEGIN(3, 2, IEM_MC_F_64BIT);
    38913889            IEM_MC_LOCAL(uint32_t,    fMxcsr);
    38923890            IEM_MC_LOCAL(RTFLOAT64U,  r64Dst);
     
    39143912        {
    39153913            /* XMM, [mem64] */
    3916             IEM_MC_BEGIN(3, 4);
     3914            IEM_MC_BEGIN(3, 4, IEM_MC_F_64BIT);
    39173915            IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
    39183916            IEM_MC_LOCAL(uint32_t,   fMxcsr);
     
    39463944        {
    39473945            /* XMM, greg32 */
    3948             IEM_MC_BEGIN(3, 2);
     3946            IEM_MC_BEGIN(3, 2, 0);
    39493947            IEM_MC_LOCAL(uint32_t,   fMxcsr);
    39503948            IEM_MC_LOCAL(RTFLOAT64U, r64Dst);
     
    39723970        {
    39733971            /* XMM, [mem32] */
    3974             IEM_MC_BEGIN(3, 4);
     3972            IEM_MC_BEGIN(3, 4, 0);
    39753973            IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
    39763974            IEM_MC_LOCAL(uint32_t,   fMxcsr);
     
    40214019         * memory, register.
    40224020         */
    4023         IEM_MC_BEGIN(0, 2);
     4021        IEM_MC_BEGIN(0, 2, 0);
    40244022        IEM_MC_LOCAL(RTUINT128U,                uSrc); /** @todo optimize this one day... */
    40254023        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    40604058         * memory, register.
    40614059         */
    4062         IEM_MC_BEGIN(0, 2);
     4060        IEM_MC_BEGIN(0, 2, 0);
    40634061        IEM_MC_LOCAL(RTUINT128U,                uSrc); /** @todo optimize this one day... */
    40644062        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    40934091         * Register, register.
    40944092         */
    4095         IEM_MC_BEGIN(3, 1);
     4093        IEM_MC_BEGIN(3, 1, 0);
    40964094        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    40974095        IEM_MC_ARG(uint32_t *,              pfMxcsr,            0);
     
    41214119         * Register, memory.
    41224120         */
    4123         IEM_MC_BEGIN(3, 2);
     4121        IEM_MC_BEGIN(3, 2, 0);
    41244122        IEM_MC_ARG(uint32_t *,              pfMxcsr,            0);
    41254123        IEM_MC_LOCAL(uint64_t,              u64Dst);
     
    41604158         * Register, register.
    41614159         */
    4162         IEM_MC_BEGIN(3, 1);
     4160        IEM_MC_BEGIN(3, 1, 0);
    41634161        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    41644162        IEM_MC_ARG(uint32_t *,              pfMxcsr,            0);
     
    41884186         * Register, memory.
    41894187         */
    4190         IEM_MC_BEGIN(3, 3);
     4188        IEM_MC_BEGIN(3, 3, 0);
    41914189        IEM_MC_ARG(uint32_t *,              pfMxcsr,            0);
    41924190        IEM_MC_LOCAL(uint64_t,              u64Dst);
     
    42304228        {
    42314229            /* greg64, XMM */
    4232             IEM_MC_BEGIN(3, 2);
     4230            IEM_MC_BEGIN(3, 2, IEM_MC_F_64BIT);
    42334231            IEM_MC_LOCAL(uint32_t,  fMxcsr);
    42344232            IEM_MC_LOCAL(int64_t,   i64Dst);
     
    42564254        {
    42574255            /* greg64, [mem64] */
    4258             IEM_MC_BEGIN(3, 4);
     4256            IEM_MC_BEGIN(3, 4, IEM_MC_F_64BIT);
    42594257            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
    42604258            IEM_MC_LOCAL(uint32_t,  fMxcsr);
     
    42884286        {
    42894287            /* greg, XMM */
    4290             IEM_MC_BEGIN(3, 2);
     4288            IEM_MC_BEGIN(3, 2, 0);
    42914289            IEM_MC_LOCAL(uint32_t,  fMxcsr);
    42924290            IEM_MC_LOCAL(int32_t,   i32Dst);
     
    43144312        {
    43154313            /* greg, [mem] */
    4316             IEM_MC_BEGIN(3, 4);
     4314            IEM_MC_BEGIN(3, 4, 0);
    43174315            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
    43184316            IEM_MC_LOCAL(uint32_t,  fMxcsr);
     
    43554353        {
    43564354            /* greg64, XMM */
    4357             IEM_MC_BEGIN(3, 2);
     4355            IEM_MC_BEGIN(3, 2, IEM_MC_F_64BIT);
    43584356            IEM_MC_LOCAL(uint32_t,  fMxcsr);
    43594357            IEM_MC_LOCAL(int64_t,   i64Dst);
     
    43814379        {
    43824380            /* greg64, [mem64] */
    4383             IEM_MC_BEGIN(3, 4);
     4381            IEM_MC_BEGIN(3, 4, IEM_MC_F_64BIT);
    43844382            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
    43854383            IEM_MC_LOCAL(uint32_t,  fMxcsr);
     
    44134411        {
    44144412            /* greg, XMM */
    4415             IEM_MC_BEGIN(3, 2);
     4413            IEM_MC_BEGIN(3, 2, 0);
    44164414            IEM_MC_LOCAL(uint32_t,  fMxcsr);
    44174415            IEM_MC_LOCAL(int32_t,   i32Dst);
     
    44394437        {
    44404438            /* greg32, [mem32] */
    4441             IEM_MC_BEGIN(3, 4);
     4439            IEM_MC_BEGIN(3, 4, 0);
    44424440            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
    44434441            IEM_MC_LOCAL(uint32_t,  fMxcsr);
     
    44794477         * Register, register.
    44804478         */
    4481         IEM_MC_BEGIN(3, 1);
     4479        IEM_MC_BEGIN(3, 1, 0);
    44824480        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    44834481        IEM_MC_ARG(uint32_t *,              pfMxcsr,            0);
     
    45084506         * Register, memory.
    45094507         */
    4510         IEM_MC_BEGIN(3, 2);
     4508        IEM_MC_BEGIN(3, 2, 0);
    45114509        IEM_MC_ARG(uint32_t *,              pfMxcsr,            0);
    45124510        IEM_MC_LOCAL(uint64_t,              u64Dst);
     
    45474545         * Register, register.
    45484546         */
    4549         IEM_MC_BEGIN(3, 1);
     4547        IEM_MC_BEGIN(3, 1, 0);
    45504548        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    45514549        IEM_MC_ARG(uint32_t *,              pfMxcsr,            0);
     
    45764574         * Register, memory.
    45774575         */
    4578         IEM_MC_BEGIN(3, 3);
     4576        IEM_MC_BEGIN(3, 3, 0);
    45794577        IEM_MC_ARG(uint32_t *,              pfMxcsr,            0);
    45804578        IEM_MC_LOCAL(uint64_t,              u64Dst);
     
    46184616        {
    46194617            /* greg64, XMM */
    4620             IEM_MC_BEGIN(3, 2);
     4618            IEM_MC_BEGIN(3, 2, IEM_MC_F_64BIT);
    46214619            IEM_MC_LOCAL(uint32_t,  fMxcsr);
    46224620            IEM_MC_LOCAL(int64_t,   i64Dst);
     
    46444642        {
    46454643            /* greg64, [mem64] */
    4646             IEM_MC_BEGIN(3, 4);
     4644            IEM_MC_BEGIN(3, 4, IEM_MC_F_64BIT);
    46474645            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
    46484646            IEM_MC_LOCAL(uint32_t,  fMxcsr);
     
    46764674        {
    46774675            /* greg, XMM */
    4678             IEM_MC_BEGIN(3, 2);
     4676            IEM_MC_BEGIN(3, 2, 0);
    46794677            IEM_MC_LOCAL(uint32_t,  fMxcsr);
    46804678            IEM_MC_LOCAL(int32_t,   i32Dst);
     
    47024700        {
    47034701            /* greg, [mem] */
    4704             IEM_MC_BEGIN(3, 4);
     4702            IEM_MC_BEGIN(3, 4, 0);
    47054703            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
    47064704            IEM_MC_LOCAL(uint32_t,  fMxcsr);
     
    47434741        {
    47444742            /* greg64, XMM */
    4745             IEM_MC_BEGIN(3, 2);
     4743            IEM_MC_BEGIN(3, 2, IEM_MC_F_64BIT);
    47464744            IEM_MC_LOCAL(uint32_t,  fMxcsr);
    47474745            IEM_MC_LOCAL(int64_t,   i64Dst);
     
    47694767        {
    47704768            /* greg64, [mem64] */
    4771             IEM_MC_BEGIN(3, 4);
     4769            IEM_MC_BEGIN(3, 4, IEM_MC_F_64BIT);
    47724770            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
    47734771            IEM_MC_LOCAL(uint32_t,  fMxcsr);
     
    48014799        {
    48024800            /* greg32, XMM */
    4803             IEM_MC_BEGIN(3, 2);
     4801            IEM_MC_BEGIN(3, 2, 0);
    48044802            IEM_MC_LOCAL(uint32_t,  fMxcsr);
    48054803            IEM_MC_LOCAL(int32_t,   i32Dst);
     
    48274825        {
    48284826            /* greg32, [mem64] */
    4829             IEM_MC_BEGIN(3, 4);
     4827            IEM_MC_BEGIN(3, 4, 0);
    48304828            IEM_MC_LOCAL(RTGCPTR,   GCPtrEffSrc);
    48314829            IEM_MC_LOCAL(uint32_t,  fMxcsr);
     
    48674865         * Register, register.
    48684866         */
    4869         IEM_MC_BEGIN(4, 1);
     4867        IEM_MC_BEGIN(4, 1, 0);
    48704868        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    48714869        IEM_MC_LOCAL(uint32_t, fEFlags);
     
    48954893         * Register, memory.
    48964894         */
    4897         IEM_MC_BEGIN(4, 3);
     4895        IEM_MC_BEGIN(4, 3, 0);
    48984896        IEM_MC_LOCAL(uint32_t, fEFlags);
    48994897        IEM_MC_ARG(uint32_t *,                  pfMxcsr,            0);
     
    49364934         * Register, register.
    49374935         */
    4938         IEM_MC_BEGIN(4, 1);
     4936        IEM_MC_BEGIN(4, 1, 0);
    49394937        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    49404938        IEM_MC_LOCAL(uint32_t, fEFlags);
     
    49644962         * Register, memory.
    49654963         */
    4966         IEM_MC_BEGIN(4, 3);
     4964        IEM_MC_BEGIN(4, 3, 0);
    49674965        IEM_MC_LOCAL(uint32_t, fEFlags);
    49684966        IEM_MC_ARG(uint32_t *,                  pfMxcsr,            0);
     
    50095007         * Register, register.
    50105008         */
    5011         IEM_MC_BEGIN(4, 1);
     5009        IEM_MC_BEGIN(4, 1, 0);
    50125010        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    50135011        IEM_MC_LOCAL(uint32_t, fEFlags);
     
    50375035         * Register, memory.
    50385036         */
    5039         IEM_MC_BEGIN(4, 3);
     5037        IEM_MC_BEGIN(4, 3, 0);
    50405038        IEM_MC_LOCAL(uint32_t, fEFlags);
    50415039        IEM_MC_ARG(uint32_t *,                  pfMxcsr,            0);
     
    50785076         * Register, register.
    50795077         */
    5080         IEM_MC_BEGIN(4, 1);
     5078        IEM_MC_BEGIN(4, 1, 0);
    50815079        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    50825080        IEM_MC_LOCAL(uint32_t, fEFlags);
     
    51065104         * Register, memory.
    51075105         */
    5108         IEM_MC_BEGIN(4, 3);
     5106        IEM_MC_BEGIN(4, 3, 0);
    51095107        IEM_MC_LOCAL(uint32_t, fEFlags);
    51105108        IEM_MC_ARG(uint32_t *,                  pfMxcsr,            0);
     
    52415239        { \
    52425240            case IEMMODE_16BIT: \
    5243                 IEM_MC_BEGIN(0, 1); \
     5241                IEM_MC_BEGIN(0, 1, 0); \
    52445242                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    52455243                IEM_MC_LOCAL(uint16_t, u16Tmp); \
     
    52515249                IEM_MC_END(); \
    52525250                break; \
    5253     \
     5251            \
    52545252            case IEMMODE_32BIT: \
    5255                 IEM_MC_BEGIN(0, 1); \
     5253                IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386); \
    52565254                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    52575255                IEM_MC_LOCAL(uint32_t, u32Tmp); \
     
    52655263                IEM_MC_END(); \
    52665264                break; \
    5267     \
     5265            \
    52685266            case IEMMODE_64BIT: \
    5269                 IEM_MC_BEGIN(0, 1); \
     5267                IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT); \
    52705268                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    52715269                IEM_MC_LOCAL(uint64_t, u64Tmp); \
     
    52775275                IEM_MC_END(); \
    52785276                break; \
    5279     \
     5277            \
    52805278            IEM_NOT_REACHED_DEFAULT_CASE_RET(); \
    52815279        } \
     
    52865284        { \
    52875285            case IEMMODE_16BIT: \
    5288                 IEM_MC_BEGIN(0, 2); \
     5286                IEM_MC_BEGIN(0, 2, 0); \
    52895287                IEM_MC_LOCAL(RTGCPTR,  GCPtrEffSrc); \
    52905288                IEM_MC_LOCAL(uint16_t, u16Tmp); \
     
    52985296                IEM_MC_END(); \
    52995297                break; \
    5300     \
     5298            \
    53015299            case IEMMODE_32BIT: \
    5302                 IEM_MC_BEGIN(0, 2); \
     5300                IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386); \
    53035301                IEM_MC_LOCAL(RTGCPTR,  GCPtrEffSrc); \
    53045302                IEM_MC_LOCAL(uint32_t, u32Tmp); \
     
    53145312                IEM_MC_END(); \
    53155313                break; \
    5316     \
     5314            \
    53175315            case IEMMODE_64BIT: \
    5318                 IEM_MC_BEGIN(0, 2); \
     5316                IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT); \
    53195317                IEM_MC_LOCAL(RTGCPTR,  GCPtrEffSrc); \
    53205318                IEM_MC_LOCAL(uint64_t, u64Tmp); \
     
    53285326                IEM_MC_END(); \
    53295327                break; \
    5330     \
     5328            \
    53315329            IEM_NOT_REACHED_DEFAULT_CASE_RET(); \
    53325330        } \
     
    54745472         * Register, register.
    54755473         */
    5476         IEM_MC_BEGIN(2, 1);
     5474        IEM_MC_BEGIN(2, 1, 0);
    54775475        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    54785476        IEM_MC_LOCAL(uint8_t,           u8Dst);
     
    55035501         * Register, register.
    55045502         */
    5505         IEM_MC_BEGIN(2, 1);
     5503        IEM_MC_BEGIN(2, 1, 0);
    55065504        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    55075505        IEM_MC_LOCAL(uint8_t,           u8Dst);
     
    62066204        {
    62076205            /* MMX, greg64 */
    6208             IEM_MC_BEGIN(0, 1);
     6206            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    62096207            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    62106208            IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    62236221        {
    62246222            /* MMX, [mem64] */
    6225             IEM_MC_BEGIN(0, 2);
     6223            IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    62266224            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    62276225            IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    62586256        {
    62596257            /* MMX, greg32 */
    6260             IEM_MC_BEGIN(0, 1);
     6258            IEM_MC_BEGIN(0, 1, 0);
    62616259            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    62626260            IEM_MC_LOCAL(uint32_t, u32Tmp);
     
    62756273        {
    62766274            /* MMX, [mem32] */
    6277             IEM_MC_BEGIN(0, 2);
     6275            IEM_MC_BEGIN(0, 2, 0);
    62786276            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    62796277            IEM_MC_LOCAL(uint32_t, u32Tmp);
     
    63136311        {
    63146312            /* XMM, greg64 */
    6315             IEM_MC_BEGIN(0, 1);
     6313            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    63166314            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    63176315            IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    63296327        {
    63306328            /* XMM, [mem64] */
    6331             IEM_MC_BEGIN(0, 2);
     6329            IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    63326330            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    63336331            IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    63636361        {
    63646362            /* XMM, greg32 */
    6365             IEM_MC_BEGIN(0, 1);
     6363            IEM_MC_BEGIN(0, 1, 0);
    63666364            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    63676365            IEM_MC_LOCAL(uint32_t, u32Tmp);
     
    63796377        {
    63806378            /* XMM, [mem32] */
    6381             IEM_MC_BEGIN(0, 2);
     6379            IEM_MC_BEGIN(0, 2, 0);
    63826380            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    63836381            IEM_MC_LOCAL(uint32_t, u32Tmp);
     
    64186416         * Register, register.
    64196417         */
    6420         IEM_MC_BEGIN(0, 1);
     6418        IEM_MC_BEGIN(0, 1, 0);
    64216419        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    64226420        IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    64376435         * Register, memory.
    64386436         */
    6439         IEM_MC_BEGIN(0, 2);
     6437        IEM_MC_BEGIN(0, 2, 0);
    64406438        IEM_MC_LOCAL(uint64_t, u64Tmp);
    64416439        IEM_MC_LOCAL(RTGCPTR,  GCPtrEffSrc);
     
    64736471         * Register, register.
    64746472         */
    6475         IEM_MC_BEGIN(0, 0);
     6473        IEM_MC_BEGIN(0, 0, 0);
    64766474        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    64776475
     
    64896487         * Register, memory.
    64906488         */
    6491         IEM_MC_BEGIN(0, 2);
     6489        IEM_MC_BEGIN(0, 2, 0);
    64926490        IEM_MC_LOCAL(RTUINT128U, u128Tmp);
    64936491        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
     
    65246522         * Register, register.
    65256523         */
    6526         IEM_MC_BEGIN(0, 0);
     6524        IEM_MC_BEGIN(0, 0, 0);
    65276525        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    65286526        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
     
    65386536         * Register, memory.
    65396537         */
    6540         IEM_MC_BEGIN(0, 2);
     6538        IEM_MC_BEGIN(0, 2, 0);
    65416539        IEM_MC_LOCAL(RTUINT128U, u128Tmp);
    65426540        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
     
    65656563         * Register, register.
    65666564         */
     6565        IEM_MC_BEGIN(3, 0, 0);
    65676566        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    6568         IEM_MC_BEGIN(3, 0);
    65696567        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX_2_OR(fSse, fAmdMmxExts);
    65706568        IEM_MC_ARG(uint64_t *,          pDst, 0);
     
    65886586         * Register, memory.
    65896587         */
    6590         IEM_MC_BEGIN(3, 2);
     6588        IEM_MC_BEGIN(3, 2, 0);
    65916589        IEM_MC_ARG(uint64_t *,                  pDst,       0);
    65926590        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    66316629         * Register, register.
    66326630         */
     6631        IEM_MC_BEGIN(3, 0, 0);
    66336632        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    6634         IEM_MC_BEGIN(3, 0);
    66356633        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    66366634        IEM_MC_ARG(PRTUINT128U,         puDst, 0);
     
    66506648         * Register, memory.
    66516649         */
    6652         IEM_MC_BEGIN(3, 2);
     6650        IEM_MC_BEGIN(3, 2, 0);
    66536651        IEM_MC_ARG(PRTUINT128U,                 puDst,       0);
    66546652        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    67166714         * Register, immediate.
    67176715         */
     6716        IEM_MC_BEGIN(2, 0, 0);
    67186717        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    6719         IEM_MC_BEGIN(2, 0);
    67206718        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    67216719        IEM_MC_ARG(uint64_t *,          pDst, 0);
     
    67626760         * Register, immediate.
    67636761         */
     6762        IEM_MC_BEGIN(2, 0, 0);
    67646763        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    6765         IEM_MC_BEGIN(2, 0);
    67666764        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    67676765        IEM_MC_ARG(PRTUINT128U,         pDst, 0);
     
    70777075{
    70787076    IEMOP_MNEMONIC(emms, "emms");
    7079     IEM_MC_BEGIN(0,0);
     7077    IEM_MC_BEGIN(0, 0, 0);
    70807078    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    70817079    IEM_MC_MAYBE_RAISE_DEVICE_NOT_AVAILABLE();
     
    71087106        if (enmEffOpSize == IEMMODE_64BIT)
    71097107        {
    7110             IEM_MC_BEGIN(2, 0);
     7108            IEM_MC_BEGIN(2, 0, IEM_MC_F_64BIT);
    71117109            IEMOP_HLP_DONE_DECODING_NO_SIZE_OP_REPZ_OR_REPNZ_PREFIXES();
    71127110            IEM_MC_ARG(uint64_t *, pu64Dst, 0);
     
    71197117        else
    71207118        {
    7121             IEM_MC_BEGIN(2, 0);
     7119            IEM_MC_BEGIN(2, 0, 0);
    71227120            IEMOP_HLP_DONE_DECODING_NO_SIZE_OP_REPZ_OR_REPNZ_PREFIXES();
    71237121            IEM_MC_ARG(uint64_t *, pu64Dst, 0);
     
    71367134        if (enmEffOpSize == IEMMODE_64BIT)
    71377135        {
    7138             IEM_MC_BEGIN(3, 0);
     7136            IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT);
    71397137            IEM_MC_ARG(uint8_t,       iEffSeg,                                          0);
    71407138            IEM_MC_ARG(RTGCPTR,       GCPtrVal,                                         1);
     
    71507148        else
    71517149        {
    7152             IEM_MC_BEGIN(3, 0);
     7150            IEM_MC_BEGIN(3, 0, 0);
    71537151            IEM_MC_ARG(uint8_t,       iEffSeg,                                          0);
    71547152            IEM_MC_ARG(RTGCPTR,       GCPtrVal,                                         1);
     
    71907188        if (enmEffOpSize == IEMMODE_64BIT)
    71917189        {
    7192             IEM_MC_BEGIN(2, 0);
     7190            IEM_MC_BEGIN(2, 0, IEM_MC_F_64BIT);
    71937191            IEMOP_HLP_DONE_DECODING_NO_SIZE_OP_REPZ_OR_REPNZ_PREFIXES();
    71947192            IEM_MC_ARG(uint64_t, u64Val, 0);
     
    72017199        else
    72027200        {
    7203             IEM_MC_BEGIN(2, 0);
     7201            IEM_MC_BEGIN(2, 0, 0);
    72047202            IEMOP_HLP_DONE_DECODING_NO_SIZE_OP_REPZ_OR_REPNZ_PREFIXES();
    72057203            IEM_MC_ARG(uint32_t, u32Val, 0);
     
    72187216        if (enmEffOpSize == IEMMODE_64BIT)
    72197217        {
    7220             IEM_MC_BEGIN(3, 0);
     7218            IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT);
    72217219            IEM_MC_ARG(uint8_t,       iEffSeg,                                          0);
    72227220            IEM_MC_ARG(RTGCPTR,       GCPtrVal,                                         1);
     
    72327230        else
    72337231        {
    7234             IEM_MC_BEGIN(3, 0);
     7232            IEM_MC_BEGIN(3, 0, 0);
    72357233            IEM_MC_ARG(uint8_t,       iEffSeg,                                          0);
    72367234            IEM_MC_ARG(RTGCPTR,       GCPtrVal,                                         1);
     
    73277325        {
    73287326            /* greg64, MMX */
    7329             IEM_MC_BEGIN(0, 1);
     7327            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    73307328            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    73317329            IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    73447342        {
    73457343            /* [mem64], MMX */
    7346             IEM_MC_BEGIN(0, 2);
     7344            IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    73477345            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    73487346            IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    73797377        {
    73807378            /* greg32, MMX */
    7381             IEM_MC_BEGIN(0, 1);
     7379            IEM_MC_BEGIN(0, 1, 0);
    73827380            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    73837381            IEM_MC_LOCAL(uint32_t, u32Tmp);
     
    73967394        {
    73977395            /* [mem32], MMX */
    7398             IEM_MC_BEGIN(0, 2);
     7396            IEM_MC_BEGIN(0, 2, 0);
    73997397            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    74007398            IEM_MC_LOCAL(uint32_t, u32Tmp);
     
    74357433        {
    74367434            /* greg64, XMM */
    7437             IEM_MC_BEGIN(0, 1);
     7435            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    74387436            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    74397437            IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    74517449        {
    74527450            /* [mem64], XMM */
    7453             IEM_MC_BEGIN(0, 2);
     7451            IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    74547452            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    74557453            IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    74857483        {
    74867484            /* greg32, XMM */
    7487             IEM_MC_BEGIN(0, 1);
     7485            IEM_MC_BEGIN(0, 1, 0);
    74887486            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    74897487            IEM_MC_LOCAL(uint32_t, u32Tmp);
     
    75017499        {
    75027500            /* [mem32], XMM */
    7503             IEM_MC_BEGIN(0, 2);
     7501            IEM_MC_BEGIN(0, 2, 0);
    75047502            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    75057503            IEM_MC_LOCAL(uint32_t, u32Tmp);
     
    75377535         * XMM128, XMM64.
    75387536         */
    7539         IEM_MC_BEGIN(0, 2);
     7537        IEM_MC_BEGIN(0, 2, 0);
    75407538        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    75417539        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    75557553         * XMM128, [mem64].
    75567554         */
    7557         IEM_MC_BEGIN(0, 2);
     7555        IEM_MC_BEGIN(0, 2, 0);
    75587556        IEM_MC_LOCAL(uint64_t,                  uSrc);
    75597557        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    75877585        /** @todo testcase: REX.B / REX.R and MMX register indexing. Ignored? */
    75887586        /** @todo testcase: REX.B / REX.R and segment register indexing. Ignored? */
    7589         IEM_MC_BEGIN(0, 1);
     7587        IEM_MC_BEGIN(0, 1, 0);
    75907588        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fMmx);
    75917589        IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    76057603         * [mem64], MMX.
    76067604         */
    7607         IEM_MC_BEGIN(0, 2);
     7605        IEM_MC_BEGIN(0, 2, 0);
    76087606        IEM_MC_LOCAL(uint64_t, u64Tmp);
    76097607        IEM_MC_LOCAL(RTGCPTR,  GCPtrEffSrc);
     
    76337631         * XMM, XMM.
    76347632         */
    7635         IEM_MC_BEGIN(0, 0);
     7633        IEM_MC_BEGIN(0, 0, 0);
    76367634        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    76377635        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
     
    76477645         * [mem128], XMM.
    76487646         */
    7649         IEM_MC_BEGIN(0, 2);
     7647        IEM_MC_BEGIN(0, 2, 0);
    76507648        IEM_MC_LOCAL(RTUINT128U, u128Tmp);
    76517649        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
     
    76747672         * XMM, XMM.
    76757673         */
    7676         IEM_MC_BEGIN(0, 0);
     7674        IEM_MC_BEGIN(0, 0, 0);
    76777675        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    76787676        IEM_MC_MAYBE_RAISE_SSE_RELATED_XCPT();
     
    76887686         * [mem128], XMM.
    76897687         */
    7690         IEM_MC_BEGIN(0, 2);
     7688        IEM_MC_BEGIN(0, 2, 0);
    76917689        IEM_MC_LOCAL(RTUINT128U, u128Tmp);
    76927690        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
     
    77177715    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    77187716    {
     7717        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    77197718        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    7720         IEM_MC_BEGIN(0, 0);
    77217719        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    77227720        IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) {
     
    77297727    else
    77307728    {
     7729        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    77317730        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    7732         IEM_MC_BEGIN(0, 0);
    77337731        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    77347732        IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) {
     
    77507748    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    77517749    {
     7750        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    77527751        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    7753         IEM_MC_BEGIN(0, 0);
    77547752        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    77557753        IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) {
     
    77627760    else
    77637761    {
     7762        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    77647763        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    7765         IEM_MC_BEGIN(0, 0);
    77667764        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    77677765        IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) {
     
    77837781    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    77847782    {
     7783        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    77857784        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    7786         IEM_MC_BEGIN(0, 0);
    77877785        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    77887786        IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) {
     
    77957793    else
    77967794    {
     7795        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    77977796        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    7798         IEM_MC_BEGIN(0, 0);
    77997797        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    78007798        IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) {
     
    78167814    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    78177815    {
     7816        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    78187817        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    7819         IEM_MC_BEGIN(0, 0);
    78207818        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    78217819        IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) {
     
    78287826    else
    78297827    {
     7828        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    78307829        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    7831         IEM_MC_BEGIN(0, 0);
    78327830        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    78337831        IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) {
     
    78497847    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    78507848    {
     7849        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    78517850        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    7852         IEM_MC_BEGIN(0, 0);
    78537851        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    78547852        IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) {
     
    78617859    else
    78627860    {
     7861        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    78637862        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    7864         IEM_MC_BEGIN(0, 0);
    78657863        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    78667864        IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) {
     
    78827880    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    78837881    {
     7882        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    78847883        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    7885         IEM_MC_BEGIN(0, 0);
    78867884        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    78877885        IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) {
     
    78947892    else
    78957893    {
     7894        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    78967895        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    7897         IEM_MC_BEGIN(0, 0);
    78987896        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    78997897        IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) {
     
    79157913    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    79167914    {
     7915        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    79177916        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    7918         IEM_MC_BEGIN(0, 0);
    79197917        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    79207918        IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) {
     
    79277925    else
    79287926    {
     7927        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    79297928        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    7930         IEM_MC_BEGIN(0, 0);
    79317929        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    79327930        IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) {
     
    79487946    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    79497947    {
     7948        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    79507949        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    7951         IEM_MC_BEGIN(0, 0);
    79527950        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    79537951        IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) {
     
    79607958    else
    79617959    {
     7960        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    79627961        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    7963         IEM_MC_BEGIN(0, 0);
    79647962        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    79657963        IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) {
     
    79817979    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    79827980    {
     7981        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    79837982        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    7984         IEM_MC_BEGIN(0, 0);
    79857983        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    79867984        IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) {
     
    79937991    else
    79947992    {
     7993        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    79957994        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    7996         IEM_MC_BEGIN(0, 0);
    79977995        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    79987996        IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) {
     
    80148012    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    80158013    {
     8014        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    80168015        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    8017         IEM_MC_BEGIN(0, 0);
    80188016        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    80198017        IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) {
     
    80268024    else
    80278025    {
     8026        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    80288027        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    8029         IEM_MC_BEGIN(0, 0);
    80308028        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    80318029        IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) {
     
    80478045    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    80488046    {
     8047        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    80498048        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    8050         IEM_MC_BEGIN(0, 0);
    80518049        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    80528050        IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) {
     
    80598057    else
    80608058    {
     8059        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    80618060        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    8062         IEM_MC_BEGIN(0, 0);
    80638061        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    80648062        IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) {
     
    80808078    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    80818079    {
     8080        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    80828081        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    8083         IEM_MC_BEGIN(0, 0);
    80848082        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    80858083        IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) {
     
    80928090    else
    80938091    {
     8092        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    80948093        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    8095         IEM_MC_BEGIN(0, 0);
    80968094        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    80978095        IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) {
     
    81138111    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    81148112    {
     8113        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    81158114        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    8116         IEM_MC_BEGIN(0, 0);
    81178115        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    81188116        IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) {
     
    81258123    else
    81268124    {
     8125        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    81278126        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    8128         IEM_MC_BEGIN(0, 0);
    81298127        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    81308128        IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) {
     
    81468144    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    81478145    {
     8146        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    81488147        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    8149         IEM_MC_BEGIN(0, 0);
    81508148        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    81518149        IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) {
     
    81588156    else
    81598157    {
     8158        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    81608159        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    8161         IEM_MC_BEGIN(0, 0);
    81628160        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    81638161        IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) {
     
    81798177    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    81808178    {
     8179        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    81818180        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    8182         IEM_MC_BEGIN(0, 0);
    81838181        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    81848182        IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) {
     
    81918189    else
    81928190    {
     8191        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    81938192        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    8194         IEM_MC_BEGIN(0, 0);
    81958193        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    81968194        IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) {
     
    82128210    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_16BIT)
    82138211    {
     8212        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    82148213        int16_t i16Imm; IEM_OPCODE_GET_NEXT_S16(&i16Imm);
    8215         IEM_MC_BEGIN(0, 0);
    82168214        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    82178215        IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) {
     
    82248222    else
    82258223    {
     8224        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    82268225        int32_t i32Imm; IEM_OPCODE_GET_NEXT_S32(&i32Imm);
    8227         IEM_MC_BEGIN(0, 0);
    82288226        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    82298227        IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) {
     
    82508248    {
    82518249        /* register target */
    8252         IEM_MC_BEGIN(0, 0);
     8250        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    82538251        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    82548252        IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) {
     
    82638261    {
    82648262        /* memory target */
    8265         IEM_MC_BEGIN(0, 1);
     8263        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    82668264        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    82678265        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    82918289    {
    82928290        /* register target */
    8293         IEM_MC_BEGIN(0, 0);
     8291        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    82948292        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    82958293        IEM_MC_IF_EFL_BIT_SET(X86_EFL_OF) {
     
    83048302    {
    83058303        /* memory target */
    8306         IEM_MC_BEGIN(0, 1);
     8304        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    83078305        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    83088306        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    83328330    {
    83338331        /* register target */
    8334         IEM_MC_BEGIN(0, 0);
     8332        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    83358333        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    83368334        IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) {
     
    83458343    {
    83468344        /* memory target */
    8347         IEM_MC_BEGIN(0, 1);
     8345        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    83488346        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    83498347        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    83738371    {
    83748372        /* register target */
    8375         IEM_MC_BEGIN(0, 0);
     8373        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    83768374        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    83778375        IEM_MC_IF_EFL_BIT_SET(X86_EFL_CF) {
     
    83868384    {
    83878385        /* memory target */
    8388         IEM_MC_BEGIN(0, 1);
     8386        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    83898387        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    83908388        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    84148412    {
    84158413        /* register target */
    8416         IEM_MC_BEGIN(0, 0);
     8414        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    84178415        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    84188416        IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) {
     
    84278425    {
    84288426        /* memory target */
    8429         IEM_MC_BEGIN(0, 1);
     8427        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    84308428        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    84318429        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    84558453    {
    84568454        /* register target */
    8457         IEM_MC_BEGIN(0, 0);
     8455        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    84588456        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    84598457        IEM_MC_IF_EFL_BIT_SET(X86_EFL_ZF) {
     
    84688466    {
    84698467        /* memory target */
    8470         IEM_MC_BEGIN(0, 1);
     8468        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    84718469        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    84728470        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    84968494    {
    84978495        /* register target */
    8498         IEM_MC_BEGIN(0, 0);
     8496        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    84998497        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    85008498        IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) {
     
    85098507    {
    85108508        /* memory target */
    8511         IEM_MC_BEGIN(0, 1);
     8509        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    85128510        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    85138511        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    85378535    {
    85388536        /* register target */
    8539         IEM_MC_BEGIN(0, 0);
     8537        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    85408538        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    85418539        IEM_MC_IF_EFL_ANY_BITS_SET(X86_EFL_CF | X86_EFL_ZF) {
     
    85508548    {
    85518549        /* memory target */
    8552         IEM_MC_BEGIN(0, 1);
     8550        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    85538551        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    85548552        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    85788576    {
    85798577        /* register target */
    8580         IEM_MC_BEGIN(0, 0);
     8578        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    85818579        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    85828580        IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) {
     
    85918589    {
    85928590        /* memory target */
    8593         IEM_MC_BEGIN(0, 1);
     8591        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    85948592        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    85958593        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    86198617    {
    86208618        /* register target */
    8621         IEM_MC_BEGIN(0, 0);
     8619        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    86228620        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    86238621        IEM_MC_IF_EFL_BIT_SET(X86_EFL_SF) {
     
    86328630    {
    86338631        /* memory target */
    8634         IEM_MC_BEGIN(0, 1);
     8632        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    86358633        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    86368634        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    86608658    {
    86618659        /* register target */
    8662         IEM_MC_BEGIN(0, 0);
     8660        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    86638661        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    86648662        IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) {
     
    86738671    {
    86748672        /* memory target */
    8675         IEM_MC_BEGIN(0, 1);
     8673        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    86768674        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    86778675        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    87018699    {
    87028700        /* register target */
    8703         IEM_MC_BEGIN(0, 0);
     8701        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    87048702        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    87058703        IEM_MC_IF_EFL_BIT_SET(X86_EFL_PF) {
     
    87148712    {
    87158713        /* memory target */
    8716         IEM_MC_BEGIN(0, 1);
     8714        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    87178715        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    87188716        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    87428740    {
    87438741        /* register target */
    8744         IEM_MC_BEGIN(0, 0);
     8742        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    87458743        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    87468744        IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) {
     
    87558753    {
    87568754        /* memory target */
    8757         IEM_MC_BEGIN(0, 1);
     8755        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    87588756        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    87598757        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    87838781    {
    87848782        /* register target */
    8785         IEM_MC_BEGIN(0, 0);
     8783        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    87868784        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    87878785        IEM_MC_IF_EFL_BITS_NE(X86_EFL_SF, X86_EFL_OF) {
     
    87968794    {
    87978795        /* memory target */
    8798         IEM_MC_BEGIN(0, 1);
     8796        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    87998797        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    88008798        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    88248822    {
    88258823        /* register target */
    8826         IEM_MC_BEGIN(0, 0);
     8824        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    88278825        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    88288826        IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) {
     
    88378835    {
    88388836        /* memory target */
    8839         IEM_MC_BEGIN(0, 1);
     8837        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    88408838        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    88418839        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    88658863    {
    88668864        /* register target */
    8867         IEM_MC_BEGIN(0, 0);
     8865        IEM_MC_BEGIN(0, 0, IEM_MC_F_MIN_386);
    88688866        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    88698867        IEM_MC_IF_EFL_BIT_SET_OR_BITS_NE(X86_EFL_ZF, X86_EFL_SF, X86_EFL_OF) {
     
    88788876    {
    88798877        /* memory target */
    8880         IEM_MC_BEGIN(0, 1);
     8878        IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    88818879        IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
    88828880        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
     
    89388936        { \
    89398937            case IEMMODE_16BIT: \
    8940                 IEM_MC_BEGIN(3, 0); \
     8938                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    89418939                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    89428940                IEM_MC_ARG(uint16_t *,      pu16Dst,                0); \
     
    89558953            \
    89568954            case IEMMODE_32BIT: \
    8957                 IEM_MC_BEGIN(3, 0); \
     8955                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    89588956                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    89598957                IEM_MC_ARG(uint32_t *,      pu32Dst,                0); \
     
    89738971            \
    89748972            case IEMMODE_64BIT: \
    8975                 IEM_MC_BEGIN(3, 0); \
     8973                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    89768974                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    89778975                IEM_MC_ARG(uint64_t *,      pu64Dst,                0); \
     
    90018999            { \
    90029000                case IEMMODE_16BIT: \
    9003                     IEM_MC_BEGIN(3, 4); \
     9001                    IEM_MC_BEGIN(3, 4, IEM_MC_F_MIN_386); \
    90049002                    IEM_MC_ARG(uint16_t *,              pu16Dst,                0); \
    90059003                    IEM_MC_ARG(uint16_t,                u16Src,                 1); \
     
    90299027                \
    90309028                case IEMMODE_32BIT: \
    9031                     IEM_MC_BEGIN(3, 4); \
     9029                    IEM_MC_BEGIN(3, 4, IEM_MC_F_MIN_386); \
    90329030                    IEM_MC_ARG(uint32_t *,              pu32Dst,                0); \
    90339031                    IEM_MC_ARG(uint32_t,                u32Src,                 1); \
     
    90579055                \
    90589056                case IEMMODE_64BIT: \
    9059                     IEM_MC_BEGIN(3, 5); \
     9057                    IEM_MC_BEGIN(3, 5, IEM_MC_F_64BIT); \
    90609058                    IEM_MC_ARG(uint64_t *,              pu64Dst,                0); \
    90619059                    IEM_MC_ARG(uint64_t,                u64Src,                 1); \
     
    90959093            { \
    90969094                case IEMMODE_16BIT: \
    9097                     IEM_MC_BEGIN(3, 4); \
     9095                    IEM_MC_BEGIN(3, 4, IEM_MC_F_MIN_386); \
    90989096                    IEM_MC_ARG(uint16_t *,              pu16Dst,                0); \
    90999097                    IEM_MC_ARG(uint16_t,                u16Src,                 1); \
     
    91239121                \
    91249122                case IEMMODE_32BIT: \
    9125                     IEM_MC_BEGIN(3, 4); \
     9123                    IEM_MC_BEGIN(3, 4, IEM_MC_F_MIN_386); \
    91269124                    IEM_MC_ARG(uint32_t *,              pu32Dst,                0); \
    91279125                    IEM_MC_ARG(uint32_t,                u32Src,                 1); \
     
    91519149                \
    91529150                case IEMMODE_64BIT: \
    9153                     IEM_MC_BEGIN(3, 4); \
     9151                    IEM_MC_BEGIN(3, 4, IEM_MC_F_64BIT); \
    91549152                    IEM_MC_ARG(uint64_t *,              pu64Dst,                0); \
    91559153                    IEM_MC_ARG(uint64_t,                u64Src,                 1); \
     
    91959193        { \
    91969194            case IEMMODE_16BIT: \
    9197                 IEM_MC_BEGIN(3, 0); \
     9195                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    91989196                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    91999197                IEM_MC_ARG(uint16_t const *, pu16Dst,               0); \
     
    92129210            \
    92139211            case IEMMODE_32BIT: \
    9214                 IEM_MC_BEGIN(3, 0); \
     9212                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    92159213                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    92169214                IEM_MC_ARG(uint32_t const *, pu32Dst,               0); \
     
    92299227            \
    92309228            case IEMMODE_64BIT: \
    9231                 IEM_MC_BEGIN(3, 0); \
     9229                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    92329230                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    92339231                IEM_MC_ARG(uint64_t const *, pu64Dst,               0); \
     
    92579255            { \
    92589256                case IEMMODE_16BIT: \
    9259                     IEM_MC_BEGIN(3, 4); \
     9257                    IEM_MC_BEGIN(3, 4, IEM_MC_F_MIN_386); \
    92609258                    IEM_MC_ARG(uint16_t const *,        pu16Dst,                0); \
    92619259                    IEM_MC_ARG(uint16_t,                u16Src,                 1); \
     
    92859283                \
    92869284                case IEMMODE_32BIT: \
    9287                     IEM_MC_BEGIN(3, 4); \
     9285                    IEM_MC_BEGIN(3, 4, IEM_MC_F_MIN_386); \
    92889286                    IEM_MC_ARG(uint32_t const *,        pu32Dst,                0); \
    92899287                    IEM_MC_ARG(uint32_t,                u32Src,                 1); \
     
    93139311                \
    93149312                case IEMMODE_64BIT: \
    9315                     IEM_MC_BEGIN(3, 4); \
     9313                    IEM_MC_BEGIN(3, 4, IEM_MC_F_64BIT); \
    93169314                    IEM_MC_ARG(uint64_t const *,        pu64Dst,                0); \
    93179315                    IEM_MC_ARG(uint64_t,                u64Src,                 1); \
     
    93769374        {
    93779375            case IEMMODE_16BIT:
    9378                 IEM_MC_BEGIN(4, 0);
     9376                IEM_MC_BEGIN(4, 0, IEM_MC_F_MIN_386);
    93799377                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    93809378                IEM_MC_ARG(uint16_t *,      pu16Dst,                0);
     
    93939391
    93949392            case IEMMODE_32BIT:
    9395                 IEM_MC_BEGIN(4, 0);
     9393                IEM_MC_BEGIN(4, 0, IEM_MC_F_MIN_386);
    93969394                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    93979395                IEM_MC_ARG(uint32_t *,      pu32Dst,                0);
     
    94119409
    94129410            case IEMMODE_64BIT:
    9413                 IEM_MC_BEGIN(4, 0);
     9411                IEM_MC_BEGIN(4, 0, IEM_MC_F_64BIT);
    94149412                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    94159413                IEM_MC_ARG(uint64_t *,      pu64Dst,                0);
     
    94359433        {
    94369434            case IEMMODE_16BIT:
    9437                 IEM_MC_BEGIN(4, 3);
     9435                IEM_MC_BEGIN(4, 3, IEM_MC_F_MIN_386);
    94389436                IEM_MC_ARG(uint16_t *,              pu16Dst,                0);
    94399437                IEM_MC_ARG(uint16_t,                u16Src,                 1);
     
    94599457
    94609458            case IEMMODE_32BIT:
    9461                 IEM_MC_BEGIN(4, 3);
     9459                IEM_MC_BEGIN(4, 3, IEM_MC_F_MIN_386);
    94629460                IEM_MC_ARG(uint32_t *,              pu32Dst,                0);
    94639461                IEM_MC_ARG(uint32_t,                u32Src,                 1);
     
    94839481
    94849482            case IEMMODE_64BIT:
    9485                 IEM_MC_BEGIN(4, 3);
     9483                IEM_MC_BEGIN(4, 3, IEM_MC_F_64BIT);
    94869484                IEM_MC_ARG(uint64_t *,              pu64Dst,                0);
    94879485                IEM_MC_ARG(uint64_t,                u64Src,                 1);
     
    95259523        {
    95269524            case IEMMODE_16BIT:
    9527                 IEM_MC_BEGIN(4, 0);
     9525                IEM_MC_BEGIN(4, 0, IEM_MC_F_MIN_386);
    95289526                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    95299527                IEM_MC_ARG(uint16_t *,      pu16Dst,                0);
     
    95439541
    95449542            case IEMMODE_32BIT:
    9545                 IEM_MC_BEGIN(4, 0);
     9543                IEM_MC_BEGIN(4, 0, IEM_MC_F_MIN_386);
    95469544                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    95479545                IEM_MC_ARG(uint32_t *,      pu32Dst,                0);
     
    95629560
    95639561            case IEMMODE_64BIT:
    9564                 IEM_MC_BEGIN(4, 0);
     9562                IEM_MC_BEGIN(4, 0, IEM_MC_F_64BIT);
    95659563                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    95669564                IEM_MC_ARG(uint64_t *,      pu64Dst,                0);
     
    95879585        {
    95889586            case IEMMODE_16BIT:
    9589                 IEM_MC_BEGIN(4, 3);
     9587                IEM_MC_BEGIN(4, 3, IEM_MC_F_MIN_386);
    95909588                IEM_MC_ARG(uint16_t *,              pu16Dst,                0);
    95919589                IEM_MC_ARG(uint16_t,                u16Src,                 1);
     
    96109608
    96119609            case IEMMODE_32BIT:
    9612                 IEM_MC_BEGIN(4, 3);
     9610                IEM_MC_BEGIN(4, 3, IEM_MC_F_MIN_386);
    96139611                IEM_MC_ARG(uint32_t *,              pu32Dst,                0);
    96149612                IEM_MC_ARG(uint32_t,                u32Src,                 1);
     
    96339631
    96349632            case IEMMODE_64BIT:
    9635                 IEM_MC_BEGIN(4, 3);
     9633                IEM_MC_BEGIN(4, 3, IEM_MC_F_64BIT);
    96369634                IEM_MC_ARG(uint64_t *,              pu64Dst,                0);
    96379635                IEM_MC_ARG(uint64_t,                u64Src,                 1);
     
    97489746        IEMOP_RAISE_INVALID_OPCODE_RET();
    97499747
    9750     IEM_MC_BEGIN(3, 1);
     9748    IEM_MC_BEGIN(3, 1, IEM_MC_F_MIN_PENTIUM_II);
    97519749    IEM_MC_ARG(uint8_t,         iEffSeg,                                 0);
    97529750    IEM_MC_ARG(RTGCPTR,         GCPtrEff,                                1);
     
    97689766        IEMOP_RAISE_INVALID_OPCODE_RET();
    97699767
    9770     IEM_MC_BEGIN(3, 1);
     9768    IEM_MC_BEGIN(3, 1, IEM_MC_F_MIN_PENTIUM_II);
    97719769    IEM_MC_ARG(uint8_t,         iEffSeg,                                 0);
    97729770    IEM_MC_ARG(RTGCPTR,         GCPtrEff,                                1);
     
    98069804        IEMOP_RAISE_INVALID_OPCODE_RET();
    98079805
    9808     IEM_MC_BEGIN(2, 0);
     9806    IEM_MC_BEGIN(2, 0, IEM_MC_F_MIN_PENTIUM_II);
    98099807    IEM_MC_ARG(uint8_t,         iEffSeg,                                 0);
    98109808    IEM_MC_ARG(RTGCPTR,         GCPtrEff,                                1);
     
    98429840        IEMOP_RAISE_INVALID_OPCODE_RET();
    98439841
    9844     IEM_MC_BEGIN(2, 0);
     9842    IEM_MC_BEGIN(2, 0, IEM_MC_F_MIN_PENTIUM_II);
    98459843    IEM_MC_ARG(uint8_t,         iEffSeg,                                 0);
    98469844    IEM_MC_ARG(RTGCPTR,         GCPtrEff,                                1);
     
    98689866        IEMOP_RAISE_INVALID_OPCODE_RET();
    98699867
    9870     IEM_MC_BEGIN(3, 0);
     9868    IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_CORE);
    98719869    IEM_MC_ARG(uint8_t,         iEffSeg,                                 0);
    98729870    IEM_MC_ARG(RTGCPTR,         GCPtrEff,                                1);
     
    98959893        IEMOP_RAISE_INVALID_OPCODE_RET();
    98969894
    9897     IEM_MC_BEGIN(3, 0);
     9895    IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_CORE);
    98989896    IEM_MC_ARG(uint8_t,         iEffSeg,                                 0);
    98999897    IEM_MC_ARG(RTGCPTR,         GCPtrEff,                                1);
     
    99249922        return FNIEMOP_CALL_1(iemOp_InvalidWithRMAllNeeded, bRm);
    99259923
    9926     IEM_MC_BEGIN(2, 0);
     9924    IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    99279925    IEM_MC_ARG(uint8_t,         iEffSeg,                                 0);
    99289926    IEM_MC_ARG(RTGCPTR,         GCPtrEff,                                1);
     
    99489946        return FNIEMOP_CALL_1(iemOp_InvalidWithRMAllNeeded, bRm);
    99499947
    9950     IEM_MC_BEGIN(2, 0);
     9948    IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    99519949    IEM_MC_ARG(uint8_t,         iEffSeg,                                 0);
    99529950    IEM_MC_ARG(RTGCPTR,         GCPtrEff,                                1);
     
    99649962    RT_NOREF_PV(bRm);
    99659963    IEMOP_MNEMONIC(lfence, "lfence");
    9966     IEM_MC_BEGIN(0, 0);
     9964    IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    99679965    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    99689966#ifdef RT_ARCH_ARM64
     
    99849982    RT_NOREF_PV(bRm);
    99859983    IEMOP_MNEMONIC(mfence, "mfence");
    9986     IEM_MC_BEGIN(0, 0);
     9984    IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    99879985    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    99889986#ifdef RT_ARCH_ARM64
     
    1000410002    RT_NOREF_PV(bRm);
    1000510003    IEMOP_MNEMONIC(sfence, "sfence");
    10006     IEM_MC_BEGIN(0, 0);
     10004    IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1000710005    IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    1000810006#ifdef RT_ARCH_ARM64
     
    1002510023    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_64BIT)
    1002610024    {
    10027         IEM_MC_BEGIN(1, 0);
     10025        IEM_MC_BEGIN(1, 0, IEM_MC_F_64BIT);
    1002810026        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fFsGsBase);
    1002910027        IEM_MC_MAYBE_RAISE_FSGSBASE_XCPT();
     
    1003610034    else
    1003710035    {
    10038         IEM_MC_BEGIN(1, 0);
     10036        IEM_MC_BEGIN(1, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1003910037        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fFsGsBase);
    1004010038        IEM_MC_MAYBE_RAISE_FSGSBASE_XCPT();
     
    1005410052    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_64BIT)
    1005510053    {
    10056         IEM_MC_BEGIN(1, 0);
     10054        IEM_MC_BEGIN(1, 0, IEM_MC_F_64BIT);
    1005710055        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fFsGsBase);
    1005810056        IEM_MC_MAYBE_RAISE_FSGSBASE_XCPT();
     
    1006510063    else
    1006610064    {
    10067         IEM_MC_BEGIN(1, 0);
     10065        IEM_MC_BEGIN(1, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1006810066        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fFsGsBase);
    1006910067        IEM_MC_MAYBE_RAISE_FSGSBASE_XCPT();
     
    1008310081    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_64BIT)
    1008410082    {
    10085         IEM_MC_BEGIN(1, 0);
     10083        IEM_MC_BEGIN(1, 0, IEM_MC_F_64BIT);
    1008610084        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fFsGsBase);
    1008710085        IEM_MC_MAYBE_RAISE_FSGSBASE_XCPT();
     
    1009510093    else
    1009610094    {
    10097         IEM_MC_BEGIN(1, 0);
     10095        IEM_MC_BEGIN(1, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1009810096        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fFsGsBase);
    1009910097        IEM_MC_MAYBE_RAISE_FSGSBASE_XCPT();
     
    1011310111    if (pVCpu->iem.s.enmEffOpSize == IEMMODE_64BIT)
    1011410112    {
    10115         IEM_MC_BEGIN(1, 0);
     10113        IEM_MC_BEGIN(1, 0, IEM_MC_F_64BIT);
    1011610114        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fFsGsBase);
    1011710115        IEM_MC_MAYBE_RAISE_FSGSBASE_XCPT();
     
    1012510123    else
    1012610124    {
    10127         IEM_MC_BEGIN(1, 0);
     10125        IEM_MC_BEGIN(1, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1012810126        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fFsGsBase);
    1012910127        IEM_MC_MAYBE_RAISE_FSGSBASE_XCPT();
     
    1020610204    if (IEM_IS_MODRM_REG_MODE(bRm))
    1020710205    {
    10208         IEM_MC_BEGIN(4, 0);
     10206        IEM_MC_BEGIN(4, 0, IEM_MC_F_MIN_486);
    1020910207        IEMOP_HLP_DONE_DECODING();
    1021010208        IEM_MC_ARG(uint8_t *,       pu8Dst,                 0);
     
    1022710225    else
    1022810226    {
    10229         IEM_MC_BEGIN(4, 4);
     10227        IEM_MC_BEGIN(4, 4, IEM_MC_F_MIN_486);
    1023010228        IEM_MC_ARG(uint8_t *,       pu8Dst,                 0);
    1023110229        IEM_MC_ARG(uint8_t *,       pu8Al,                  1);
     
    1026810266        {
    1026910267            case IEMMODE_16BIT:
    10270                 IEM_MC_BEGIN(4, 0);
     10268                IEM_MC_BEGIN(4, 0, IEM_MC_F_MIN_486);
    1027110269                IEMOP_HLP_DONE_DECODING();
    1027210270                IEM_MC_ARG(uint16_t *,      pu16Dst,                0);
     
    1028910287
    1029010288            case IEMMODE_32BIT:
    10291                 IEM_MC_BEGIN(4, 0);
     10289                IEM_MC_BEGIN(4, 0, IEM_MC_F_MIN_486);
    1029210290                IEMOP_HLP_DONE_DECODING();
    1029310291                IEM_MC_ARG(uint32_t *,      pu32Dst,                0);
     
    1031610314
    1031710315            case IEMMODE_64BIT:
    10318                 IEM_MC_BEGIN(4, 0);
     10316                IEM_MC_BEGIN(4, 0, IEM_MC_F_64BIT);
    1031910317                IEMOP_HLP_DONE_DECODING();
    1032010318                IEM_MC_ARG(uint64_t *,      pu64Dst,                0);
     
    1035610354        {
    1035710355            case IEMMODE_16BIT:
    10358                 IEM_MC_BEGIN(4, 4);
     10356                IEM_MC_BEGIN(4, 4, IEM_MC_F_MIN_486);
    1035910357                IEM_MC_ARG(uint16_t *,      pu16Dst,                0);
    1036010358                IEM_MC_ARG(uint16_t *,      pu16Ax,                 1);
     
    1038510383
    1038610384            case IEMMODE_32BIT:
    10387                 IEM_MC_BEGIN(4, 4);
     10385                IEM_MC_BEGIN(4, 4, IEM_MC_F_MIN_486);
    1038810386                IEM_MC_ARG(uint32_t *,      pu32Dst,                0);
    1038910387                IEM_MC_ARG(uint32_t *,      pu32Eax,                 1);
     
    1041810416
    1041910417            case IEMMODE_64BIT:
    10420                 IEM_MC_BEGIN(4, 4);
     10418                IEM_MC_BEGIN(4, 4, IEM_MC_F_64BIT);
    1042110419                IEM_MC_ARG(uint64_t *,      pu64Dst,                0);
    1042210420                IEM_MC_ARG(uint64_t *,      pu64Rax,                1);
     
    1052610524        {
    1052710525            case IEMMODE_16BIT:
    10528                 IEM_MC_BEGIN(0, 1);
     10526                IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    1052910527                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1053010528                IEM_MC_LOCAL(uint16_t, u16Value);
     
    1053610534
    1053710535            case IEMMODE_32BIT:
    10538                 IEM_MC_BEGIN(0, 1);
     10536                IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    1053910537                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1054010538                IEM_MC_LOCAL(uint32_t, u32Value);
     
    1054610544
    1054710545            case IEMMODE_64BIT:
    10548                 IEM_MC_BEGIN(0, 1);
     10546                IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    1054910547                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1055010548                IEM_MC_LOCAL(uint64_t, u64Value);
     
    1056610564        {
    1056710565            case IEMMODE_16BIT:
    10568                 IEM_MC_BEGIN(0, 2);
     10566                IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    1056910567                IEM_MC_LOCAL(uint16_t, u16Value);
    1057010568                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    1057810576
    1057910577            case IEMMODE_32BIT:
    10580                 IEM_MC_BEGIN(0, 2);
     10578                IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    1058110579                IEM_MC_LOCAL(uint32_t, u32Value);
    1058210580                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    1059010588
    1059110589            case IEMMODE_64BIT:
    10592                 IEM_MC_BEGIN(0, 2);
     10590                IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    1059310591                IEM_MC_LOCAL(uint64_t, u64Value);
    1059410592                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    1062510623        if (pVCpu->iem.s.enmEffOpSize != IEMMODE_64BIT)
    1062610624        {
    10627             IEM_MC_BEGIN(0, 1);
     10625            IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    1062810626            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1062910627            IEM_MC_LOCAL(uint32_t, u32Value);
     
    1063510633        else
    1063610634        {
    10637             IEM_MC_BEGIN(0, 1);
     10635            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    1063810636            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1063910637            IEM_MC_LOCAL(uint64_t, u64Value);
     
    1065110649        if (pVCpu->iem.s.enmEffOpSize != IEMMODE_64BIT)
    1065210650        {
    10653             IEM_MC_BEGIN(0, 2);
     10651            IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    1065410652            IEM_MC_LOCAL(uint32_t, u32Value);
    1065510653            IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    1066310661        else
    1066410662        {
    10665             IEM_MC_BEGIN(0, 2);
     10663            IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    1066610664            IEM_MC_LOCAL(uint64_t, u64Value);
    1066710665            IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    1073110729        { \
    1073210730            case IEMMODE_16BIT: \
    10733                 IEM_MC_BEGIN(3, 0); \
     10731                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    1073410732                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    1073510733                IEM_MC_ARG(uint16_t *,      pu16Dst,                    0); \
     
    1074610744            \
    1074710745            case IEMMODE_32BIT: \
    10748                 IEM_MC_BEGIN(3, 0); \
     10746                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    1074910747                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    1075010748                IEM_MC_ARG(uint32_t *,      pu32Dst,                    0); \
     
    1076210760            \
    1076310761            case IEMMODE_64BIT: \
    10764                 IEM_MC_BEGIN(3, 0); \
     10762                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    1076510763                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    1076610764                IEM_MC_ARG(uint64_t *,      pu64Dst,                    0); \
     
    1078810786            { \
    1078910787                case IEMMODE_16BIT: \
    10790                     IEM_MC_BEGIN(3, 3); \
     10788                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    1079110789                    IEM_MC_ARG(uint16_t *,              pu16Dst,                0); \
    1079210790                    IEM_MC_ARG(uint16_t,                u16Src,                 1); \
     
    1081010808                \
    1081110809                case IEMMODE_32BIT: \
    10812                     IEM_MC_BEGIN(3, 3); \
     10810                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    1081310811                    IEM_MC_ARG(uint32_t *,              pu32Dst,                0); \
    1081410812                    IEM_MC_ARG(uint32_t,                u32Src,                 1); \
     
    1083210830                \
    1083310831                case IEMMODE_64BIT: \
    10834                     IEM_MC_BEGIN(3, 3); \
     10832                    IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT); \
    1083510833                    IEM_MC_ARG(uint64_t *,              pu64Dst,                0); \
    1083610834                    IEM_MC_ARG(uint64_t,                u64Src,                 1); \
     
    1086410862            { \
    1086510863                case IEMMODE_16BIT: \
    10866                     IEM_MC_BEGIN(3, 3); \
     10864                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    1086710865                    IEM_MC_ARG(uint16_t *,              pu16Dst,                0); \
    1086810866                    IEM_MC_ARG(uint16_t,                u16Src,                 1); \
     
    1088610884                \
    1088710885                case IEMMODE_32BIT: \
    10888                     IEM_MC_BEGIN(3, 3); \
     10886                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    1088910887                    IEM_MC_ARG(uint32_t *,              pu32Dst,                0); \
    1089010888                    IEM_MC_ARG(uint32_t,                u32Src,                 1); \
     
    1090810906                \
    1090910907                case IEMMODE_64BIT: \
    10910                     IEM_MC_BEGIN(3, 3); \
     10908                    IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT); \
    1091110909                    IEM_MC_ARG(uint64_t *,              pu64Dst,                0); \
    1091210910                    IEM_MC_ARG(uint64_t,                u64Src,                 1); \
     
    1094710945        { \
    1094810946            case IEMMODE_16BIT: \
    10949                 IEM_MC_BEGIN(3, 0); \
     10947                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    1095010948                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    1095110949                IEM_MC_ARG(uint16_t const *, pu16Dst,                   0); \
     
    1096210960            \
    1096310961            case IEMMODE_32BIT: \
    10964                 IEM_MC_BEGIN(3, 0); \
     10962                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386); \
    1096510963                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    1096610964                IEM_MC_ARG(uint32_t const *, pu32Dst,                   0); \
     
    1097710975            \
    1097810976            case IEMMODE_64BIT: \
    10979                 IEM_MC_BEGIN(3, 0); \
     10977                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    1098010978                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
    1098110979                IEM_MC_ARG(uint64_t const *, pu64Dst,                   0); \
     
    1100311001            { \
    1100411002                case IEMMODE_16BIT: \
    11005                     IEM_MC_BEGIN(3, 3); \
     11003                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    1100611004                    IEM_MC_ARG(uint16_t const *,        pu16Dst,                0); \
    1100711005                    IEM_MC_ARG(uint16_t,                u16Src,                 1); \
     
    1102511023                \
    1102611024                case IEMMODE_32BIT: \
    11027                     IEM_MC_BEGIN(3, 3); \
     11025                    IEM_MC_BEGIN(3, 3, IEM_MC_F_MIN_386); \
    1102811026                    IEM_MC_ARG(uint32_t const *,        pu32Dst,                0); \
    1102911027                    IEM_MC_ARG(uint32_t,                u32Src,                 1); \
     
    1104711045                \
    1104811046                case IEMMODE_64BIT: \
    11049                     IEM_MC_BEGIN(3, 3); \
     11047                    IEM_MC_BEGIN(3, 3, IEM_MC_F_64BIT); \
    1105011048                    IEM_MC_ARG(uint64_t const *,        pu64Dst,                0); \
    1105111049                    IEM_MC_ARG(uint64_t,                u64Src,                 1); \
     
    1116711165        {
    1116811166            case IEMMODE_16BIT:
    11169                 IEM_MC_BEGIN(3, 0);
     11167                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386);
    1117011168                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1117111169                IEM_MC_ARG(uint16_t *, pu16Dst, 0);
     
    1118311181
    1118411182            case IEMMODE_32BIT:
    11185                 IEM_MC_BEGIN(3, 0);
     11183                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_386);
    1118611184                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1118711185                IEM_MC_ARG(uint32_t *, pu32Dst, 0);
     
    1120111199
    1120211200            case IEMMODE_64BIT:
    11203                 IEM_MC_BEGIN(3, 0);
     11201                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT);
    1120411202                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1120511203                IEM_MC_ARG(uint64_t *, pu64Dst, 0);
     
    1122711225        {
    1122811226            case IEMMODE_16BIT:
    11229                 IEM_MC_BEGIN(3, 1);
     11227                IEM_MC_BEGIN(3, 1, IEM_MC_F_MIN_386);
    1123011228                IEM_MC_ARG(uint16_t *, pu16Dst, 0);
    1123111229                IEM_MC_ARG(uint16_t,   u16Src,  1);
     
    1124511243
    1124611244            case IEMMODE_32BIT:
    11247                 IEM_MC_BEGIN(3, 1);
     11245                IEM_MC_BEGIN(3, 1, IEM_MC_F_MIN_386);
    1124811246                IEM_MC_ARG(uint32_t *, pu32Dst, 0);
    1124911247                IEM_MC_ARG(uint32_t,   u32Src,  1);
     
    1126611264
    1126711265            case IEMMODE_64BIT:
    11268                 IEM_MC_BEGIN(3, 1);
     11266                IEM_MC_BEGIN(3, 1, IEM_MC_F_64BIT);
    1126911267                IEM_MC_ARG(uint64_t *, pu64Dst, 0);
    1127011268                IEM_MC_ARG(uint64_t,   u64Src,  1);
     
    1138011378        {
    1138111379            case IEMMODE_16BIT:
    11382                 IEM_MC_BEGIN(0, 1);
     11380                IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    1138311381                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1138411382                IEM_MC_LOCAL(uint16_t, u16Value);
     
    1139011388
    1139111389            case IEMMODE_32BIT:
    11392                 IEM_MC_BEGIN(0, 1);
     11390                IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    1139311391                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1139411392                IEM_MC_LOCAL(uint32_t, u32Value);
     
    1140011398
    1140111399            case IEMMODE_64BIT:
    11402                 IEM_MC_BEGIN(0, 1);
     11400                IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    1140311401                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1140411402                IEM_MC_LOCAL(uint64_t, u64Value);
     
    1142011418        {
    1142111419            case IEMMODE_16BIT:
    11422                 IEM_MC_BEGIN(0, 2);
     11420                IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    1142311421                IEM_MC_LOCAL(uint16_t, u16Value);
    1142411422                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    1143211430
    1143311431            case IEMMODE_32BIT:
    11434                 IEM_MC_BEGIN(0, 2);
     11432                IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    1143511433                IEM_MC_LOCAL(uint32_t, u32Value);
    1143611434                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    1144411442
    1144511443            case IEMMODE_64BIT:
    11446                 IEM_MC_BEGIN(0, 2);
     11444                IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    1144711445                IEM_MC_LOCAL(uint64_t, u64Value);
    1144811446                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    1147911477        if (pVCpu->iem.s.enmEffOpSize != IEMMODE_64BIT)
    1148011478        {
    11481             IEM_MC_BEGIN(0, 1);
     11479            IEM_MC_BEGIN(0, 1, IEM_MC_F_MIN_386);
    1148211480            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1148311481            IEM_MC_LOCAL(uint32_t, u32Value);
     
    1148911487        else
    1149011488        {
    11491             IEM_MC_BEGIN(0, 1);
     11489            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    1149211490            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1149311491            IEM_MC_LOCAL(uint64_t, u64Value);
     
    1150511503        if (pVCpu->iem.s.enmEffOpSize != IEMMODE_64BIT)
    1150611504        {
    11507             IEM_MC_BEGIN(0, 2);
     11505            IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    1150811506            IEM_MC_LOCAL(uint32_t, u32Value);
    1150911507            IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    1151711515        else
    1151811516        {
    11519             IEM_MC_BEGIN(0, 2);
     11517            IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    1152011518            IEM_MC_LOCAL(uint64_t, u64Value);
    1152111519            IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    1154311541    if (IEM_IS_MODRM_REG_MODE(bRm))
    1154411542    {
    11545         IEM_MC_BEGIN(3, 0);
     11543        IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_486);
    1154611544        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1154711545        IEM_MC_ARG(uint8_t *,  pu8Dst,  0);
     
    1156211560         * We're accessing memory.
    1156311561         */
    11564         IEM_MC_BEGIN(3, 4);
     11562        IEM_MC_BEGIN(3, 4, IEM_MC_F_MIN_486);
    1156511563        IEM_MC_ARG(uint8_t *,   pu8Dst,          0);
    1156611564        IEM_MC_ARG(uint8_t *,   pu8Reg,          1);
     
    1160511603        {
    1160611604            case IEMMODE_16BIT:
    11607                 IEM_MC_BEGIN(3, 0);
     11605                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_486);
    1160811606                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1160911607                IEM_MC_ARG(uint16_t *, pu16Dst,  0);
     
    1162111619
    1162211620            case IEMMODE_32BIT:
    11623                 IEM_MC_BEGIN(3, 0);
     11621                IEM_MC_BEGIN(3, 0, IEM_MC_F_MIN_486);
    1162411622                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1162511623                IEM_MC_ARG(uint32_t *, pu32Dst,  0);
     
    1163911637
    1164011638            case IEMMODE_64BIT:
    11641                 IEM_MC_BEGIN(3, 0);
     11639                IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT);
    1164211640                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1164311641                IEM_MC_ARG(uint64_t *, pu64Dst,  0);
     
    1166511663        {
    1166611664            case IEMMODE_16BIT:
    11667                 IEM_MC_BEGIN(3, 4);
     11665                IEM_MC_BEGIN(3, 4, IEM_MC_F_MIN_486);
    1166811666                IEM_MC_ARG(uint16_t *,  pu16Dst,         0);
    1166911667                IEM_MC_ARG(uint16_t *,  pu16Reg,         1);
     
    1169211690
    1169311691            case IEMMODE_32BIT:
    11694                 IEM_MC_BEGIN(3, 4);
     11692                IEM_MC_BEGIN(3, 4, IEM_MC_F_MIN_486);
    1169511693                IEM_MC_ARG(uint32_t *,  pu32Dst,         0);
    1169611694                IEM_MC_ARG(uint32_t *,  pu32Reg,         1);
     
    1171911717
    1172011718            case IEMMODE_64BIT:
    11721                 IEM_MC_BEGIN(3, 4);
     11719                IEM_MC_BEGIN(3, 4, IEM_MC_F_64BIT);
    1172211720                IEM_MC_ARG(uint64_t *,  pu64Dst,         0);
    1172311721                IEM_MC_ARG(uint64_t *,  pu64Reg,         1);
     
    1176211760         * XMM, XMM.
    1176311761         */
     11762        IEM_MC_BEGIN(4, 2, IEM_MC_F_NOT_286_OR_OLDER);
    1176411763        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    11765         IEM_MC_BEGIN(4, 2);
    1176611764        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    1176711765        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              Src);
     
    1179111789         * XMM, [mem128].
    1179211790         */
    11793         IEM_MC_BEGIN(4, 3);
     11791        IEM_MC_BEGIN(4, 3, IEM_MC_F_NOT_286_OR_OLDER);
    1179411792        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              Src);
    1179511793        IEM_MC_LOCAL(X86XMMREG,                     Dst);
     
    1183311831         * XMM, XMM.
    1183411832         */
     11833        IEM_MC_BEGIN(4, 2, IEM_MC_F_NOT_286_OR_OLDER);
    1183511834        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    11836         IEM_MC_BEGIN(4, 2);
    1183711835        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    1183811836        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              Src);
     
    1186211860         * XMM, [mem128].
    1186311861         */
    11864         IEM_MC_BEGIN(4, 3);
     11862        IEM_MC_BEGIN(4, 3, IEM_MC_F_NOT_286_OR_OLDER);
    1186511863        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              Src);
    1186611864        IEM_MC_LOCAL(X86XMMREG,                     Dst);
     
    1190411902         * XMM32, XMM32.
    1190511903         */
     11904        IEM_MC_BEGIN(4, 2, IEM_MC_F_NOT_286_OR_OLDER);
    1190611905        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    11907         IEM_MC_BEGIN(4, 2);
    1190811906        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    1190911907        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              Src);
     
    1193311931         * XMM32, [mem32].
    1193411932         */
    11935         IEM_MC_BEGIN(4, 3);
     11933        IEM_MC_BEGIN(4, 3, IEM_MC_F_NOT_286_OR_OLDER);
    1193611934        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              Src);
    1193711935        IEM_MC_LOCAL(X86XMMREG,                     Dst);
     
    1197511973         * XMM64, XMM64.
    1197611974         */
     11975        IEM_MC_BEGIN(4, 2, IEM_MC_F_NOT_286_OR_OLDER);
    1197711976        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    11978         IEM_MC_BEGIN(4, 2);
    1197911977        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    1198011978        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              Src);
     
    1200412002         * XMM64, [mem64].
    1200512003         */
    12006         IEM_MC_BEGIN(4, 3);
     12004        IEM_MC_BEGIN(4, 3, IEM_MC_F_NOT_286_OR_OLDER);
    1200712005        IEM_MC_LOCAL(IEMMEDIAF2XMMSRC,              Src);
    1200812006        IEM_MC_LOCAL(X86XMMREG,                     Dst);
     
    1204812046        {
    1204912047            case IEMMODE_32BIT:
    12050                 IEM_MC_BEGIN(0, 2);
     12048                IEM_MC_BEGIN(0, 2, IEM_MC_F_MIN_386);
    1205112049                IEM_MC_LOCAL(uint32_t, u32Value);
    1205212050                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    1206212060
    1206312061            case IEMMODE_64BIT:
    12064                 IEM_MC_BEGIN(0, 2);
     12062                IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    1206512063                IEM_MC_LOCAL(uint64_t, u64Value);
    1206612064                IEM_MC_LOCAL(RTGCPTR, GCPtrEffDst);
     
    1210212100         * Register, register.
    1210312101         */
     12102        IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1210412103        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    12105         IEM_MC_BEGIN(3, 0);
    1210612104        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX_2_OR(fSse, fAmdMmxExts);
    1210712105        IEM_MC_ARG(uint64_t *,           pu64Dst,               0);
     
    1212312121         * Register, memory.
    1212412122         */
    12125         IEM_MC_BEGIN(3, 1);
     12123        IEM_MC_BEGIN(3, 1, IEM_MC_F_NOT_286_OR_OLDER);
    1212612124        IEM_MC_ARG(uint64_t *,    pu64Dst,               0);
    1212712125        IEM_MC_ARG(uint16_t,      u16Src,                1);
     
    1215612154         * Register, register.
    1215712155         */
     12156        IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1215812157        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    12159         IEM_MC_BEGIN(3, 0);
    1216012158        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    1216112159        IEM_MC_ARG(PRTUINT128U,          puDst,                 0);
     
    1217512173         * Register, memory.
    1217612174         */
    12177         IEM_MC_BEGIN(3, 2);
     12175        IEM_MC_BEGIN(3, 2, IEM_MC_F_NOT_286_OR_OLDER);
    1217812176        IEM_MC_ARG(PRTUINT128U,   puDst,                 0);
    1217912177        IEM_MC_ARG(uint16_t,      u16Src,                1);
     
    1221012208         * Greg32, MMX, imm8.
    1221112209         */
     12210        IEM_MC_BEGIN(3, 1, IEM_MC_F_NOT_286_OR_OLDER);
    1221212211        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    12213         IEM_MC_BEGIN(3, 1);
    1221412212        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX_2_OR(fSse, fAmdMmxExts);
    1221512213        IEM_MC_LOCAL(uint16_t,              u16Dst);
     
    1224212240         * Greg32, XMM, imm8.
    1224312241         */
     12242        IEM_MC_BEGIN(3, 1, IEM_MC_F_NOT_286_OR_OLDER);
    1224412243        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    12245         IEM_MC_BEGIN(3, 1);
    1224612244        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    1224712245        IEM_MC_LOCAL(uint16_t,              u16Dst);
     
    1227712275         * XMM, XMM, imm8.
    1227812276         */
     12277        IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1227912278        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    12280         IEM_MC_BEGIN(3, 0);
    1228112279        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse);
    1228212280        IEM_MC_ARG(PRTUINT128U,          pDst, 0);
     
    1229612294         * XMM, [mem128], imm8.
    1229712295         */
    12298         IEM_MC_BEGIN(3, 2);
     12296        IEM_MC_BEGIN(3, 2, IEM_MC_F_NOT_286_OR_OLDER);
    1229912297        IEM_MC_ARG(PRTUINT128U,                 pDst,       0);
    1230012298        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    1232912327         * XMM, XMM, imm8.
    1233012328         */
     12329        IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1233112330        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    12332         IEM_MC_BEGIN(3, 0);
    1233312331        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    1233412332        IEM_MC_ARG(PRTUINT128U,          pDst, 0);
     
    1234812346         * XMM, [mem128], imm8.
    1234912347         */
    12350         IEM_MC_BEGIN(3, 2);
     12348        IEM_MC_BEGIN(3, 2, IEM_MC_F_NOT_286_OR_OLDER);
    1235112349        IEM_MC_ARG(PRTUINT128U,                 pDst,       0);
    1235212350        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    1238012378    IEMOP_MNEMONIC(cmpxchg8b, "cmpxchg8b Mq");
    1238112379
    12382     IEM_MC_BEGIN(4, 5);
     12380    IEM_MC_BEGIN(4, 5, IEM_MC_F_NOT_286_OR_OLDER);
    1238312381    IEM_MC_ARG(uint64_t *, pu64MemDst,     0);
    1238412382    IEM_MC_ARG(PRTUINT64U, pu64EaxEdx,     1);
     
    1239112389
    1239212390    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0);
    12393     IEMOP_HLP_DONE_DECODING();
     12391    IEMOP_HLP_DONE_DECODING_EX(fCmpXchg8b);
    1239412392    IEM_MC_MEM_MAP_U64_RW(pu64MemDst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst);
    1239512393
     
    1242512423{
    1242612424    IEMOP_MNEMONIC(cmpxchg16b, "cmpxchg16b Mdq");
    12427     if (IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fMovCmpXchg16b)
    12428     {
    12429         IEM_MC_BEGIN(4, 3);
     12425    if (IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fCmpXchg16b)
     12426    {
     12427        IEM_MC_BEGIN(4, 3, IEM_MC_F_64BIT);
    1243012428        IEM_MC_ARG(PRTUINT128U, pu128MemDst,     0);
    1243112429        IEM_MC_ARG(PRTUINT128U, pu128RaxRdx,     1);
     
    1245212450
    1245312451#ifdef RT_ARCH_AMD64 /* some code duplication here because IEMAllInstPython.py cannot parse if/else/#if spaghetti. */
    12454         if (IEM_GET_HOST_CPU_FEATURES(pVCpu)->fMovCmpXchg16b)
     12452        if (IEM_GET_HOST_CPU_FEATURES(pVCpu)->fCmpXchg16b)
    1245512453        {
    1245612454            if (   !(pVCpu->iem.s.fExec & IEM_F_X86_DISREGARD_LOCK)
     
    1252512523        {
    1252612524            case IEMMODE_16BIT:
    12527                 IEM_MC_BEGIN(2, 0);
     12525                IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1252812526                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1252912527                IEM_MC_ARG(uint16_t *,      pu16Dst,                0);
     
    1254012538
    1254112539            case IEMMODE_32BIT:
    12542                 IEM_MC_BEGIN(2, 0);
     12540                IEM_MC_BEGIN(2, 0, IEM_MC_F_MIN_386);
    1254312541                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1254412542                IEM_MC_ARG(uint32_t *,      pu32Dst,                0);
     
    1255612554
    1255712555            case IEMMODE_64BIT:
    12558                 IEM_MC_BEGIN(2, 0);
     12556                IEM_MC_BEGIN(2, 0, IEM_MC_F_64BIT);
    1255912557                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1256012558                IEM_MC_ARG(uint64_t *,      pu64Dst,                0);
     
    1258512583    IEMOP_HLP_IN_VMX_OPERATION("vmptrld", kVmxVDiag_Vmptrld);
    1258612584    IEMOP_HLP_VMX_INSTR("vmptrld", kVmxVDiag_Vmptrld);
    12587     IEM_MC_BEGIN(2, 0);
     12585    IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1258812586    IEM_MC_ARG(uint8_t, iEffSeg,     0);
    1258912587    IEM_MC_ARG(RTGCPTR, GCPtrEffSrc, 1);
     
    1260512603    IEMOP_HLP_IN_VMX_OPERATION("vmclear", kVmxVDiag_Vmclear);
    1260612604    IEMOP_HLP_VMX_INSTR("vmclear", kVmxVDiag_Vmclear);
    12607     IEM_MC_BEGIN(2, 0);
     12605    IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1260812606    IEM_MC_ARG(uint8_t, iEffSeg,     0);
    1260912607    IEM_MC_ARG(RTGCPTR, GCPtrEffDst, 1);
     
    1262412622    IEMOP_MNEMONIC(vmxon, "vmxon");
    1262512623    IEMOP_HLP_VMX_INSTR("vmxon", kVmxVDiag_Vmxon);
    12626     IEM_MC_BEGIN(2, 0);
     12624    IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1262712625    IEM_MC_ARG(uint8_t, iEffSeg,     0);
    1262812626    IEM_MC_ARG(RTGCPTR, GCPtrEffSrc, 1);
     
    1264412642    IEMOP_HLP_IN_VMX_OPERATION("vmptrst", kVmxVDiag_Vmptrst);
    1264512643    IEMOP_HLP_VMX_INSTR("vmptrst", kVmxVDiag_Vmptrst);
    12646     IEM_MC_BEGIN(2, 0);
     12644    IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1264712645    IEM_MC_ARG(uint8_t, iEffSeg,     0);
    1264812646    IEM_MC_ARG(RTGCPTR, GCPtrEffDst, 1);
     
    1266912667        {
    1267012668            case IEMMODE_16BIT:
    12671                 IEM_MC_BEGIN(2, 0);
     12669                IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1267212670                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1267312671                IEM_MC_ARG(uint16_t *,      pu16Dst,                0);
     
    1268412682
    1268512683            case IEMMODE_32BIT:
    12686                 IEM_MC_BEGIN(2, 0);
     12684                IEM_MC_BEGIN(2, 0, IEM_MC_F_MIN_386);
    1268712685                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1268812686                IEM_MC_ARG(uint32_t *,      pu32Dst,                0);
     
    1270012698
    1270112699            case IEMMODE_64BIT:
    12702                 IEM_MC_BEGIN(2, 0);
     12700                IEM_MC_BEGIN(2, 0, IEM_MC_F_64BIT);
    1270312701                IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1270412702                IEM_MC_ARG(uint64_t *,      pu64Dst,                0);
     
    1277812776    {
    1277912777        case IEMMODE_16BIT:
    12780             IEM_MC_BEGIN(1, 0);
     12778            IEM_MC_BEGIN(1, 0, IEM_MC_F_MIN_486);
    1278112779            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1278212780            IEM_MC_ARG(uint32_t *,  pu32Dst, 0);
     
    1278812786
    1278912787        case IEMMODE_32BIT:
    12790             IEM_MC_BEGIN(1, 0);
     12788            IEM_MC_BEGIN(1, 0, IEM_MC_F_MIN_486);
    1279112789            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1279212790            IEM_MC_ARG(uint32_t *,  pu32Dst, 0);
     
    1279912797
    1280012798        case IEMMODE_64BIT:
    12801             IEM_MC_BEGIN(1, 0);
     12799            IEM_MC_BEGIN(1, 0, IEM_MC_F_64BIT);
    1280212800            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
    1280312801            IEM_MC_ARG(uint64_t *,  pu64Dst, 0);
     
    1302413022         * Register, register.
    1302513023         */
    13026         IEM_MC_BEGIN(0, 2);
     13024        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    1302713025        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    1302813026        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    1304213040         * Memory, register.
    1304313041         */
    13044         IEM_MC_BEGIN(0, 2);
     13042        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    1304513043        IEM_MC_LOCAL(uint64_t,                  uSrc);
    1304613044        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    1307813076         */
    1307913077        IEMOP_MNEMONIC2(RM_REG, MOVQ2DQ, movq2dq, VqZx_WO, Nq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    13080         IEM_MC_BEGIN(0, 1);
     13078        IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    1308113079        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    1308213080        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    1313013128         */
    1313113129        IEMOP_MNEMONIC2(RM_REG, MOVDQ2Q, movdq2q, Pq_WO, Uq, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    13132         IEM_MC_BEGIN(0, 1);
     13130        IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    1313313131        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    1313413132        IEM_MC_LOCAL(uint64_t,                  uSrc);
     
    1316913167        /* Note! Taking the lazy approch here wrt the high 32-bits of the GREG. */
    1317013168        IEMOP_MNEMONIC2(RM_REG, PMOVMSKB, pmovmskb, Gd, Nq, DISOPTYPE_X86_MMX | DISOPTYPE_HARMLESS, 0);
    13171         IEM_MC_BEGIN(2, 0);
     13169        IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1317213170        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX_2_OR(fSse, fAmdMmxExts);
    1317313171        IEM_MC_ARG(uint64_t *,              puDst, 0);
     
    1319813196        /* Note! Taking the lazy approch here wrt the high 32-bits of the GREG. */
    1319913197        IEMOP_MNEMONIC2(RM_REG, PMOVMSKB, pmovmskb, Gd, Ux, DISOPTYPE_X86_SSE | DISOPTYPE_HARMLESS, 0);
    13200         IEM_MC_BEGIN(2, 0);
     13198        IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    1320113199        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    1320213200        IEM_MC_ARG(uint64_t *,              puDst, 0);
     
    1352713525    {
    1352813526        /* Register, memory. */
    13529         IEM_MC_BEGIN(0, 2);
     13527        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    1353013528        IEM_MC_LOCAL(uint64_t,                  uSrc);
    1353113529        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    1357413572    {
    1357513573        /* Register, memory. */
    13576         IEM_MC_BEGIN(0, 2);
     13574        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    1357713575        IEM_MC_LOCAL(RTUINT128U,                uSrc);
    1357813576        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    1378513783         * Register, memory.
    1378613784         */
    13787         IEM_MC_BEGIN(0, 2);
     13785        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    1378813786        IEM_MC_LOCAL(RTUINT128U, u128Tmp);
    1378913787        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstVexMap1.cpp.h

    r100740 r100854  
    5151        if (pVCpu->iem.s.uVexLength)
    5252        {
    53             IEM_MC_BEGIN(4, 3);
     53            IEM_MC_BEGIN(4, 3, IEM_MC_F_NOT_286_OR_OLDER);
    5454            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2);
    5555            IEM_MC_LOCAL(RTUINT256U,            uDst);
     
    7171        else
    7272        {
    73             IEM_MC_BEGIN(4, 0);
     73            IEM_MC_BEGIN(4, 0, IEM_MC_F_NOT_286_OR_OLDER);
    7474            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    7575            IEM_MC_IMPLICIT_AVX_AIMPL_ARGS();
     
    9595        if (pVCpu->iem.s.uVexLength)
    9696        {
    97             IEM_MC_BEGIN(4, 4);
     97            IEM_MC_BEGIN(4, 4, IEM_MC_F_NOT_286_OR_OLDER);
    9898            IEM_MC_LOCAL(RTUINT256U,            uDst);
    9999            IEM_MC_LOCAL(RTUINT256U,            uSrc1);
     
    120120        else
    121121        {
    122             IEM_MC_BEGIN(4, 2);
     122            IEM_MC_BEGIN(4, 2, IEM_MC_F_NOT_286_OR_OLDER);
    123123            IEM_MC_LOCAL(RTUINT128U,                uSrc2);
    124124            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    165165        if (pVCpu->iem.s.uVexLength)
    166166        {
    167             IEM_MC_BEGIN(3, 3);
     167            IEM_MC_BEGIN(3, 3, IEM_MC_F_NOT_286_OR_OLDER);
    168168            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2);
    169169            IEM_MC_LOCAL(RTUINT256U,            uDst);
     
    184184        else
    185185        {
    186             IEM_MC_BEGIN(3, 0);
     186            IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER);
    187187            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    188188            IEM_MC_ARG(PRTUINT128U,          puDst,  0);
     
    207207        if (pVCpu->iem.s.uVexLength)
    208208        {
    209             IEM_MC_BEGIN(3, 4);
     209            IEM_MC_BEGIN(3, 4, IEM_MC_F_NOT_286_OR_OLDER);
    210210            IEM_MC_LOCAL(RTUINT256U,            uDst);
    211211            IEM_MC_LOCAL(RTUINT256U,            uSrc1);
     
    231231        else
    232232        {
    233             IEM_MC_BEGIN(3, 2);
     233            IEM_MC_BEGIN(3, 2, IEM_MC_F_NOT_286_OR_OLDER);
    234234            IEM_MC_LOCAL(RTUINT128U,                uSrc2);
    235235            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    307307        if (pVCpu->iem.s.uVexLength)
    308308        {
    309             IEM_MC_BEGIN(2, 2);
     309            IEM_MC_BEGIN(2, 2, IEM_MC_F_NOT_286_OR_OLDER);
    310310            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2);
    311311            IEM_MC_LOCAL(RTUINT256U,            uDst);
     
    323323        else
    324324        {
    325             IEM_MC_BEGIN(2, 0);
     325            IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    326326            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    327327            IEM_MC_ARG(PRTUINT128U,          puDst,  0);
     
    344344        if (pVCpu->iem.s.uVexLength)
    345345        {
    346             IEM_MC_BEGIN(2, 3);
     346            IEM_MC_BEGIN(2, 3, IEM_MC_F_NOT_286_OR_OLDER);
    347347            IEM_MC_LOCAL(RTUINT256U,            uDst);
    348348            IEM_MC_LOCAL(RTUINT256U,            uSrc);
     
    365365        else
    366366        {
    367             IEM_MC_BEGIN(2, 2);
     367            IEM_MC_BEGIN(2, 2, IEM_MC_F_NOT_286_OR_OLDER);
    368368            IEM_MC_LOCAL(RTUINT128U,                uSrc);
    369369            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    432432         * Register, register.
    433433         */
    434         IEM_MC_BEGIN(0, 0);
     434        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    435435        IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    436436        IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
     
    450450         * 128-bit: Register, Memory
    451451         */
    452         IEM_MC_BEGIN(0, 2);
     452        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    453453        IEM_MC_LOCAL(RTUINT128U,                uSrc);
    454454        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    470470         * 256-bit: Register, Memory
    471471         */
    472         IEM_MC_BEGIN(0, 2);
     472        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    473473        IEM_MC_LOCAL(RTUINT256U,                uSrc);
    474474        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    507507         * Register, register.
    508508         */
    509         IEM_MC_BEGIN(0, 0);
     509        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    510510        IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    511511        IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
     
    525525         * 128-bit: Memory, register.
    526526         */
    527         IEM_MC_BEGIN(0, 2);
     527        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    528528        IEM_MC_LOCAL(RTUINT128U,                uSrc);
    529529        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    545545         * 256-bit: Memory, register.
    546546         */
    547         IEM_MC_BEGIN(0, 2);
     547        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    548548        IEM_MC_LOCAL(RTUINT256U,                uSrc);
    549549        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    583583         */
    584584        IEMOP_MNEMONIC3(VEX_RVM_REG, VMOVSS, vmovss, Vss_WO, HssHi, Uss, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_IGNORED);
    585         IEM_MC_BEGIN(0, 0);
     585        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    586586        IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    587587        IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
     
    608608         */
    609609        IEMOP_MNEMONIC2(VEX_RM_MEM, VMOVSS, vmovss, VssZx_WO, Md, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_IGNORED);
    610         IEM_MC_BEGIN(0, 2);
     610        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    611611        IEM_MC_LOCAL(uint32_t,                  uSrc);
    612612        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    646646         */
    647647        IEMOP_MNEMONIC3(VEX_RVM_REG, VMOVSD, vmovsd, Vsd_WO, HsdHi, Usd, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_IGNORED);
    648         IEM_MC_BEGIN(0, 0);
     648        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    649649        IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    650650
     
    672672         */
    673673        IEMOP_MNEMONIC2(VEX_RM_MEM, VMOVSD, vmovsd, VsdZx_WO, Mq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_IGNORED);
    674         IEM_MC_BEGIN(0, 2);
     674        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    675675        IEM_MC_LOCAL(uint64_t,                  uSrc);
    676676        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    709709         * Register, register.
    710710         */
    711         IEM_MC_BEGIN(0, 0);
     711        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    712712        IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    713713        IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
     
    727727         * 128-bit: Memory, register.
    728728         */
    729         IEM_MC_BEGIN(0, 2);
     729        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    730730        IEM_MC_LOCAL(RTUINT128U,                uSrc);
    731731        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    747747         * 256-bit: Memory, register.
    748748         */
    749         IEM_MC_BEGIN(0, 2);
     749        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    750750        IEM_MC_LOCAL(RTUINT256U,                uSrc);
    751751        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    784784         * Register, register.
    785785         */
    786         IEM_MC_BEGIN(0, 0);
     786        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    787787        IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    788788        IEM_MC_MAYBE_RAISE_AVX_RELATED_XCPT();
     
    802802         * 128-bit: Memory, register.
    803803         */
    804         IEM_MC_BEGIN(0, 2);
     804        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    805805        IEM_MC_LOCAL(RTUINT128U,                uSrc);
    806806        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    822822         * 256-bit: Memory, register.
    823823         */
    824         IEM_MC_BEGIN(0, 2);
     824        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    825825        IEM_MC_LOCAL(RTUINT256U,                uSrc);
    826826        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    859859         */
    860860        IEMOP_MNEMONIC3(VEX_MVR_REG, VMOVSS, vmovss, Uss_WO, HssHi, Vss, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_IGNORED);
    861         IEM_MC_BEGIN(0, 0);
     861        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    862862        IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    863863
     
    885885         */
    886886        IEMOP_MNEMONIC2(VEX_MR_MEM, VMOVSS, vmovss, Md_WO, Vss, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_IGNORED);
    887         IEM_MC_BEGIN(0, 2);
     887        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    888888        IEM_MC_LOCAL(uint32_t,                  uSrc);
    889889        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    923923         */
    924924        IEMOP_MNEMONIC3(VEX_MVR_REG, VMOVSD, vmovsd, Usd_WO, HsdHi, Vsd, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_IGNORED);
    925         IEM_MC_BEGIN(0, 0);
     925        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    926926        IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    927927
     
    949949         */
    950950        IEMOP_MNEMONIC2(VEX_MR_MEM, VMOVSD, vmovsd, Mq_WO, Vsd, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_IGNORED);
    951         IEM_MC_BEGIN(0, 2);
     951        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    952952        IEM_MC_LOCAL(uint64_t,                  uSrc);
    953953        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    986986         */
    987987        IEMOP_MNEMONIC3(VEX_RVM_REG, VMOVHLPS, vmovhlps, Vq_WO, HqHi, UqHi, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_ZERO);
    988         IEM_MC_BEGIN(0, 0);
     988        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    989989        IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fAvx);
    990990
     
    10161016        IEMOP_MNEMONIC3(VEX_RVM_MEM, VMOVLPS, vmovlps, Vq_WO, HqHi, Mq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_ZERO);
    10171017
    1018         IEM_MC_BEGIN(0, 2);
     1018        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    10191019        IEM_MC_LOCAL(uint64_t,                  uSrc);
    10201020        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    10551055        IEMOP_MNEMONIC3(VEX_RVM_MEM, VMOVLPD, vmovlpd, Vq_WO, HqHi, Mq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_ZERO);
    10561056
    1057         IEM_MC_BEGIN(0, 2);
     1057        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    10581058        IEM_MC_LOCAL(uint64_t,                  uSrc);
    10591059        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    11121112        if (pVCpu->iem.s.uVexLength == 0)
    11131113        {
    1114             IEM_MC_BEGIN(0, 1);
     1114            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    11151115            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    11161116            IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    11311131        else
    11321132        {
    1133             IEM_MC_BEGIN(3, 0);
     1133            IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER);
    11341134            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    11351135            IEM_MC_IMPLICIT_AVX_AIMPL_ARGS();
     
    11521152        if (pVCpu->iem.s.uVexLength == 0)
    11531153        {
    1154             IEM_MC_BEGIN(0, 2);
     1154            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    11551155            IEM_MC_LOCAL(RTUINT128U,                uSrc);
    11561156            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    11731173        else
    11741174        {
    1175             IEM_MC_BEGIN(3, 2);
     1175            IEM_MC_BEGIN(3, 2, IEM_MC_F_NOT_286_OR_OLDER);
    11761176            IEM_MC_LOCAL(RTUINT256U,            uSrc);
    11771177            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    12171217        if (pVCpu->iem.s.uVexLength == 0)
    12181218        {
    1219             IEM_MC_BEGIN(1, 0);
     1219            IEM_MC_BEGIN(1, 0, IEM_MC_F_NOT_286_OR_OLDER);
    12201220            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    12211221            IEM_MC_ARG(uint64_t,                    uSrc, 0);
     
    12341234        else
    12351235        {
    1236             IEM_MC_BEGIN(3, 0);
     1236            IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER);
    12371237            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    12381238            IEM_MC_IMPLICIT_AVX_AIMPL_ARGS();
     
    12551255        if (pVCpu->iem.s.uVexLength == 0)
    12561256        {
    1257             IEM_MC_BEGIN(1, 1);
     1257            IEM_MC_BEGIN(1, 1, IEM_MC_F_NOT_286_OR_OLDER);
    12581258            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    12591259            IEM_MC_ARG(uint64_t,                    uSrc, 0);
     
    12741274        else
    12751275        {
    1276             IEM_MC_BEGIN(3, 2);
     1276            IEM_MC_BEGIN(3, 2, IEM_MC_F_NOT_286_OR_OLDER);
    12771277            IEM_MC_LOCAL(RTUINT256U,            uSrc);
    12781278            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    13131313        IEMOP_MNEMONIC2(VEX_MR_MEM, VMOVLPS, vmovlps, Mq_WO, Vq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_ZERO);
    13141314
    1315         IEM_MC_BEGIN(0, 2);
     1315        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    13161316        IEM_MC_LOCAL(uint64_t,                  uSrc);
    13171317        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    13601360    {
    13611361        IEMOP_MNEMONIC2(VEX_MR_MEM, VMOVLPD, vmovlpd, Mq_WO, Vq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_ZERO);
    1362         IEM_MC_BEGIN(0, 2);
     1362        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    13631363        IEM_MC_LOCAL(uint64_t,                  uSrc);
    13641364        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    14521452        IEMOP_MNEMONIC3(VEX_RVM_REG, VMOVLHPS, vmovlhps, Vq_WO, Hq, Uq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_ZERO);
    14531453
    1454         IEM_MC_BEGIN(0, 0);
     1454        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    14551455        IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fAvx);
    14561456
     
    14781478        IEMOP_MNEMONIC3(VEX_RVM_MEM, VMOVHPS, vmovhps, Vq_WO, Hq, Mq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_ZERO);
    14791479
    1480         IEM_MC_BEGIN(0, 2);
     1480        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    14811481        IEM_MC_LOCAL(uint64_t,                  uSrc);
    14821482        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    15131513        IEMOP_MNEMONIC3(VEX_RVM_MEM, VMOVHPD, vmovhpd, Vq_WO, Hq, Mq, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_ZERO);
    15141514
    1515         IEM_MC_BEGIN(0, 2);
     1515        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    15161516        IEM_MC_LOCAL(uint64_t,                  uSrc);
    15171517        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    15661566        if (pVCpu->iem.s.uVexLength == 0)
    15671567        {
    1568             IEM_MC_BEGIN(0, 1);
     1568            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    15691569            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    15701570            IEM_MC_LOCAL(RTUINT128U,                  uSrc);
     
    15851585        else
    15861586        {
    1587             IEM_MC_BEGIN(3, 0);
     1587            IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER);
    15881588            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    15891589            IEM_MC_IMPLICIT_AVX_AIMPL_ARGS();
     
    16061606        if (pVCpu->iem.s.uVexLength == 0)
    16071607        {
    1608             IEM_MC_BEGIN(0, 2);
     1608            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    16091609            IEM_MC_LOCAL(RTUINT128U,                uSrc);
    16101610            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    16271627        else
    16281628        {
    1629             IEM_MC_BEGIN(3, 2);
     1629            IEM_MC_BEGIN(3, 2, IEM_MC_F_NOT_286_OR_OLDER);
    16301630            IEM_MC_LOCAL(RTUINT256U,            uSrc);
    16311631            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    16671667        IEMOP_MNEMONIC2(VEX_MR_MEM, VMOVHPS, vmovhps, Mq_WO, VqHi, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_ZERO);
    16681668
    1669         IEM_MC_BEGIN(0, 2);
     1669        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    16701670        IEM_MC_LOCAL(uint64_t,                  uSrc);
    16711671        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    17121712    {
    17131713        IEMOP_MNEMONIC2(VEX_MR_MEM, VMOVHPD, vmovhpd, Mq_WO, VqHi, DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_ZERO);
    1714         IEM_MC_BEGIN(0, 2);
     1714
     1715        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    17151716        IEM_MC_LOCAL(uint64_t,                  uSrc);
    17161717        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    17851786         * Register, register.
    17861787         */
    1787         IEM_MC_BEGIN(1, 0);
     1788        IEM_MC_BEGIN(1, 0, IEM_MC_F_NOT_286_OR_OLDER);
    17881789        IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    17891790
     
    18061807        if (pVCpu->iem.s.uVexLength == 0)
    18071808        {
    1808             IEM_MC_BEGIN(0, 2);
     1809            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    18091810            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    18101811            IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    18231824        else
    18241825        {
    1825             IEM_MC_BEGIN(0, 2);
     1826            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    18261827            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    18271828            IEM_MC_LOCAL(RTUINT256U,                uSrc);
     
    18621863         * Register, register.
    18631864         */
    1864         IEM_MC_BEGIN(1, 0);
     1865        IEM_MC_BEGIN(1, 0, IEM_MC_F_NOT_286_OR_OLDER);
    18651866        IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    18661867
     
    18831884        if (pVCpu->iem.s.uVexLength == 0)
    18841885        {
    1885             IEM_MC_BEGIN(0, 2);
     1886            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    18861887            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    18871888            IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    19001901        else
    19011902        {
    1902             IEM_MC_BEGIN(0, 2);
     1903            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    19031904            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    19041905            IEM_MC_LOCAL(RTUINT256U,                uSrc);
     
    19581959         * Register, register.
    19591960         */
    1960         IEM_MC_BEGIN(1, 0);
     1961        IEM_MC_BEGIN(1, 0, IEM_MC_F_NOT_286_OR_OLDER);
    19611962        IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    19621963
     
    19791980        if (pVCpu->iem.s.uVexLength == 0)
    19801981        {
    1981             IEM_MC_BEGIN(0, 2);
     1982            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    19821983            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    19831984            IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    19961997        else
    19971998        {
    1998             IEM_MC_BEGIN(0, 2);
     1999            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    19992000            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    20002001            IEM_MC_LOCAL(RTUINT256U,                uSrc);
     
    20342035         * Register, register.
    20352036         */
    2036         IEM_MC_BEGIN(1, 0);
     2037        IEM_MC_BEGIN(1, 0, IEM_MC_F_NOT_286_OR_OLDER);
    20372038        IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    20382039
     
    20552056        if (pVCpu->iem.s.uVexLength == 0)
    20562057        {
    2057             IEM_MC_BEGIN(0, 2);
     2058            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    20582059            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    20592060            IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    20722073        else
    20732074        {
    2074             IEM_MC_BEGIN(0, 2);
     2075            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    20752076            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
    20762077            IEM_MC_LOCAL(RTUINT256U,                uSrc);
     
    21432144        if (pVCpu->iem.s.uVexLength == 0)
    21442145        {
    2145             IEM_MC_BEGIN(0, 2);
     2146            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    21462147            IEM_MC_LOCAL(RTUINT128U,                uSrc);
    21472148            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    21602161        else
    21612162        {
    2162             IEM_MC_BEGIN(0, 2);
     2163            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    21632164            IEM_MC_LOCAL(RTUINT256U,                uSrc);
    21642165            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    22042205        if (pVCpu->iem.s.uVexLength == 0)
    22052206        {
    2206             IEM_MC_BEGIN(0, 2);
     2207            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    22072208            IEM_MC_LOCAL(RTUINT128U,                uSrc);
    22082209            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    22212222        else
    22222223        {
    2223             IEM_MC_BEGIN(0, 2);
     2224            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    22242225            IEM_MC_LOCAL(RTUINT256U,                uSrc);
    22252226            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    22882289         * Register, register.
    22892290         */
    2290         IEM_MC_BEGIN(4, 1);
     2291        IEM_MC_BEGIN(4, 1, IEM_MC_F_NOT_286_OR_OLDER);
    22912292        IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    22922293        IEM_MC_LOCAL(uint32_t, fEFlags);
     
    23172318         * Register, memory.
    23182319         */
    2319         IEM_MC_BEGIN(4, 3);
     2320        IEM_MC_BEGIN(4, 3, IEM_MC_F_NOT_286_OR_OLDER);
    23202321        IEM_MC_LOCAL(uint32_t, fEFlags);
    23212322        IEM_MC_ARG(uint32_t *,                  pfMxcsr,            0);
     
    23592360         * Register, register.
    23602361         */
    2361         IEM_MC_BEGIN(4, 1);
     2362        IEM_MC_BEGIN(4, 1, IEM_MC_F_NOT_286_OR_OLDER);
    23622363        IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    23632364        IEM_MC_LOCAL(uint32_t, fEFlags);
     
    23882389         * Register, memory.
    23892390         */
    2390         IEM_MC_BEGIN(4, 3);
     2391        IEM_MC_BEGIN(4, 3, IEM_MC_F_NOT_286_OR_OLDER);
    23912392        IEM_MC_LOCAL(uint32_t, fEFlags);
    23922393        IEM_MC_ARG(uint32_t *,                  pfMxcsr,            0);
     
    24332434         * Register, register.
    24342435         */
    2435         IEM_MC_BEGIN(4, 1);
     2436        IEM_MC_BEGIN(4, 1, IEM_MC_F_NOT_286_OR_OLDER);
    24362437        IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    24372438        IEM_MC_LOCAL(uint32_t, fEFlags);
     
    24622463         * Register, memory.
    24632464         */
    2464         IEM_MC_BEGIN(4, 3);
     2465        IEM_MC_BEGIN(4, 3, IEM_MC_F_NOT_286_OR_OLDER);
    24652466        IEM_MC_LOCAL(uint32_t, fEFlags);
    24662467        IEM_MC_ARG(uint32_t *,                  pfMxcsr,            0);
     
    25042505         * Register, register.
    25052506         */
    2506         IEM_MC_BEGIN(4, 1);
     2507        IEM_MC_BEGIN(4, 1, IEM_MC_F_NOT_286_OR_OLDER);
    25072508        IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    25082509        IEM_MC_LOCAL(uint32_t, fEFlags);
     
    25332534         * Register, memory.
    25342535         */
    2535         IEM_MC_BEGIN(4, 3);
     2536        IEM_MC_BEGIN(4, 3, IEM_MC_F_NOT_286_OR_OLDER);
    25362537        IEM_MC_LOCAL(uint32_t, fEFlags);
    25372538        IEM_MC_ARG(uint32_t *,                  pfMxcsr,            0);
     
    26142615        if (pVCpu->iem.s.uVexLength == 0)
    26152616        {
    2616             IEM_MC_BEGIN(2, 1);
     2617            IEM_MC_BEGIN(2, 1, IEM_MC_F_NOT_286_OR_OLDER);
    26172618            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    26182619            IEM_MC_LOCAL(uint8_t,           u8Dst);
     
    26302631        else
    26312632        {
    2632             IEM_MC_BEGIN(2, 2);
     2633            IEM_MC_BEGIN(2, 2, IEM_MC_F_NOT_286_OR_OLDER);
    26332634            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2);
    26342635            IEM_MC_LOCAL(uint8_t,               u8Dst);
     
    26652666        if (pVCpu->iem.s.uVexLength == 0)
    26662667        {
    2667             IEM_MC_BEGIN(2, 1);
     2668            IEM_MC_BEGIN(2, 1, IEM_MC_F_NOT_286_OR_OLDER);
    26682669            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    26692670            IEM_MC_LOCAL(uint8_t,           u8Dst);
     
    26812682        else
    26822683        {
    2683             IEM_MC_BEGIN(2, 2);
     2684            IEM_MC_BEGIN(2, 2, IEM_MC_F_NOT_286_OR_OLDER);
    26842685            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2);
    26852686            IEM_MC_LOCAL(uint8_t,               u8Dst);
     
    30233024//         * Register, register.
    30243025//         */
    3025 //        IEM_MC_BEGIN(2, 0);
     3026//        IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    30263027//        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse2);
    30273028//        IEM_MC_ARG(PRTUINT128U,          pDst, 0);
     
    30403041//         * Register, memory.
    30413042//         */
    3042 //        IEM_MC_BEGIN(2, 2);
     3043//        IEM_MC_BEGIN(2, 2, IEM_MC_F_NOT_286_OR_OLDER);
    30433044//        IEM_MC_ARG(PRTUINT128U,                 pDst,       0);
    30443045//        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    31733174        {
    31743175            /* XMM, greg64 */
    3175             IEM_MC_BEGIN(0, 1);
     3176            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    31763177            IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    31773178            IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    31893190        {
    31903191            /* XMM, [mem64] */
    3191             IEM_MC_BEGIN(0, 2);
     3192            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    31923193            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    31933194            IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    32233224        {
    32243225            /* XMM, greg32 */
    3225             IEM_MC_BEGIN(0, 1);
     3226            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    32263227            IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    32273228            IEM_MC_LOCAL(uint32_t, u32Tmp);
     
    32393240        {
    32403241            /* XMM, [mem32] */
    3241             IEM_MC_BEGIN(0, 2);
     3242            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    32423243            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    32433244            IEM_MC_LOCAL(uint32_t, u32Tmp);
     
    32823283         * Register, register.
    32833284         */
    3284         IEM_MC_BEGIN(0, 0);
     3285        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    32853286        IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    32863287
     
    33013302         * Register, memory128.
    33023303         */
    3303         IEM_MC_BEGIN(0, 2);
     3304        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    33043305        IEM_MC_LOCAL(RTUINT128U, u128Tmp);
    33053306        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
     
    33213322         * Register, memory256.
    33223323         */
    3323         IEM_MC_BEGIN(0, 2);
     3324        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    33243325        IEM_MC_LOCAL(RTUINT256U, u256Tmp);
    33253326        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
     
    33573358         * Register, register.
    33583359         */
    3359         IEM_MC_BEGIN(0, 0);
     3360        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    33603361        IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    33613362
     
    33763377         * Register, memory128.
    33773378         */
    3378         IEM_MC_BEGIN(0, 2);
     3379        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    33793380        IEM_MC_LOCAL(RTUINT128U, u128Tmp);
    33803381        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
     
    33963397         * Register, memory256.
    33973398         */
    3398         IEM_MC_BEGIN(0, 2);
     3399        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    33993400        IEM_MC_LOCAL(RTUINT256U, u256Tmp);
    34003401        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
     
    34353436        if (pVCpu->iem.s.uVexLength)
    34363437        {
    3437             IEM_MC_BEGIN(3, 2);
     3438            IEM_MC_BEGIN(3, 2, IEM_MC_F_NOT_286_OR_OLDER);
    34383439            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx2);
    34393440            IEM_MC_LOCAL(RTUINT256U,            uDst);
     
    34523453        else
    34533454        {
    3454             IEM_MC_BEGIN(3, 0);
     3455            IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER);
    34553456            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    34563457            IEM_MC_ARG(PRTUINT128U,             puDst,                 0);
     
    34743475        if (pVCpu->iem.s.uVexLength)
    34753476        {
    3476             IEM_MC_BEGIN(3, 3);
     3477            IEM_MC_BEGIN(3, 3, IEM_MC_F_NOT_286_OR_OLDER);
    34773478            IEM_MC_LOCAL(RTUINT256U,            uDst);
    34783479            IEM_MC_LOCAL(RTUINT256U,            uSrc);
     
    34973498        else
    34983499        {
    3499             IEM_MC_BEGIN(3, 1);
     3500            IEM_MC_BEGIN(3, 1, IEM_MC_F_NOT_286_OR_OLDER);
    35003501            IEM_MC_LOCAL(RTUINT128U,            uSrc);
    35013502            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    37343735         */
    37353736        IEMOP_MNEMONIC(vzeroupper, "vzeroupper");
    3736         IEM_MC_BEGIN(0, 0);
     3737        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    37373738
    37383739        IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
     
    37703771         */
    37713772        IEMOP_MNEMONIC(vzeroall, "vzeroall");
    3772         IEM_MC_BEGIN(0, 1);
     3773        IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    37733774        IEM_MC_LOCAL(uint32_t,  uZero);
    37743775
     
    38653866        {
    38663867            /* greg64, XMM */
    3867             IEM_MC_BEGIN(0, 1);
     3868            IEM_MC_BEGIN(0, 1, IEM_MC_F_64BIT);
    38683869            IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    38693870            IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    38813882        {
    38823883            /* [mem64], XMM */
    3883             IEM_MC_BEGIN(0, 2);
     3884            IEM_MC_BEGIN(0, 2, IEM_MC_F_64BIT);
    38843885            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    38853886            IEM_MC_LOCAL(uint64_t, u64Tmp);
     
    39153916        {
    39163917            /* greg32, XMM */
    3917             IEM_MC_BEGIN(0, 1);
     3918            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    39183919            IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    39193920            IEM_MC_LOCAL(uint32_t, u32Tmp);
     
    39313932        {
    39323933            /* [mem32], XMM */
    3933             IEM_MC_BEGIN(0, 2);
     3934            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    39343935            IEM_MC_LOCAL(RTGCPTR, GCPtrEffSrc);
    39353936            IEM_MC_LOCAL(uint32_t, u32Tmp);
     
    39683969         * Register, register.
    39693970         */
    3970         IEM_MC_BEGIN(0, 0);
     3971        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    39713972        IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    39723973
     
    39843985         * Memory, register.
    39853986         */
    3986         IEM_MC_BEGIN(0, 2);
     3987        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    39873988        IEM_MC_LOCAL(uint64_t,                  uSrc);
    39883989        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    40254026         * Register, register.
    40264027         */
    4027         IEM_MC_BEGIN(0, 0);
     4028        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    40284029        IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    40294030
     
    40444045         * Register, memory128.
    40454046         */
    4046         IEM_MC_BEGIN(0, 2);
     4047        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    40474048        IEM_MC_LOCAL(RTUINT128U, u128Tmp);
    40484049        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
     
    40644065         * Register, memory256.
    40654066         */
    4066         IEM_MC_BEGIN(0, 2);
     4067        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    40674068        IEM_MC_LOCAL(RTUINT256U, u256Tmp);
    40684069        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
     
    41014102         * Register, register.
    41024103         */
    4103         IEM_MC_BEGIN(0, 0);
     4104        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    41044105        IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    41054106
     
    41204121         * Register, memory128.
    41214122         */
    4122         IEM_MC_BEGIN(0, 2);
     4123        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    41234124        IEM_MC_LOCAL(RTUINT128U, u128Tmp);
    41244125        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
     
    41404141         * Register, memory256.
    41414142         */
    4142         IEM_MC_BEGIN(0, 2);
     4143        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    41434144        IEM_MC_LOCAL(RTUINT256U, u256Tmp);
    41444145        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
     
    42344235//{
    42354236//    IEMOP_MNEMONIC1(M_MEM, VLDMXCSR, vldmxcsr, MdRO, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES);
    4236 //    IEM_MC_BEGIN(2, 0);
     4237//    IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    42374238//    IEM_MC_ARG(uint8_t,         iEffSeg,                                 0);
    42384239//    IEM_MC_ARG(RTGCPTR,         GCPtrEff,                                1);
     
    42884289{
    42894290    IEMOP_MNEMONIC1(VEX_M_MEM, VSTMXCSR, vstmxcsr, Md_WO, DISOPTYPE_HARMLESS, IEMOPHINT_IGNORES_OP_SIZES | IEMOPHINT_VEX_L_ZERO);
    4290     IEM_MC_BEGIN(2, 0);
     4291    IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    42914292    IEM_MC_ARG(uint8_t,         iEffSeg,                                 0);
    42924293    IEM_MC_ARG(RTGCPTR,         GCPtrEff,                                1);
     
    44014402         * Register, register.
    44024403         */
     4404        IEM_MC_BEGIN(4, 0, IEM_MC_F_NOT_286_OR_OLDER);
    44034405        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    4404         IEM_MC_BEGIN(4, 0);
    44054406        IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fAvx);
    44064407        IEM_MC_ARG(PRTUINT128U,          puDst,                 0);
     
    44244425         * Register, memory.
    44254426         */
    4426         IEM_MC_BEGIN(4, 1);
     4427        IEM_MC_BEGIN(4, 1, IEM_MC_F_NOT_286_OR_OLDER);
    44274428        IEM_MC_LOCAL(RTGCPTR,     GCPtrEffSrc);
    44284429        IEM_MC_ARG(PRTUINT128U,   puDst,                 0);
     
    44674468         */
    44684469        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    4469         IEM_MC_BEGIN(3, 1);
     4470        IEM_MC_BEGIN(3, 1, IEM_MC_F_NOT_286_OR_OLDER);
    44704471        IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fAvx);
    44714472        IEM_MC_LOCAL(uint16_t,              u16Dst);
     
    45024503        { \
    45034504            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm); \
    4504             IEM_MC_BEGIN(4, 3); \
     4505            IEM_MC_BEGIN(4, 3, IEM_MC_F_NOT_286_OR_OLDER); \
    45054506            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2); \
    45064507            IEM_MC_LOCAL(RTUINT256U,            uDst); \
     
    45244525        { \
    45254526            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm); \
    4526             IEM_MC_BEGIN(4, 0); \
     4527            IEM_MC_BEGIN(4, 0, IEM_MC_F_NOT_286_OR_OLDER); \
    45274528            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx); \
    45284529            IEM_MC_ARG(PRTUINT128U,          puDst,                 0); \
     
    45494550        if (pVCpu->iem.s.uVexLength) \
    45504551        { \
    4551             IEM_MC_BEGIN(4, 4); \
     4552            IEM_MC_BEGIN(4, 4, IEM_MC_F_NOT_286_OR_OLDER); \
    45524553            IEM_MC_LOCAL(RTUINT256U,            uDst); \
    45534554            IEM_MC_LOCAL(RTUINT256U,            uSrc1); \
     
    45734574        else \
    45744575        { \
    4575             IEM_MC_BEGIN(4, 2); \
     4576            IEM_MC_BEGIN(4, 2, IEM_MC_F_NOT_286_OR_OLDER); \
    45764577            IEM_MC_LOCAL(RTUINT128U,                uSrc2); \
    45774578            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc); \
     
    47074708         * Register, register.
    47084709         */
    4709         IEM_MC_BEGIN(0, 0);
     4710        IEM_MC_BEGIN(0, 0, IEM_MC_F_NOT_286_OR_OLDER);
    47104711        IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fAvx);
    47114712
     
    47234724         * Memory, register.
    47244725         */
    4725         IEM_MC_BEGIN(0, 2);
     4726        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    47264727        IEM_MC_LOCAL(uint64_t,                  uSrc);
    47274728        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    47574758        if (pVCpu->iem.s.uVexLength)
    47584759        {
    4759             IEM_MC_BEGIN(2, 1);
     4760            IEM_MC_BEGIN(2, 1, IEM_MC_F_NOT_286_OR_OLDER);
    47604761            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx2);
    47614762            IEM_MC_ARG(uint64_t *,              puDst, 0);
     
    47734774        else
    47744775        {
    4775             IEM_MC_BEGIN(2, 0);
     4776            IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    47764777            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx);
    47774778            IEM_MC_ARG(uint64_t *,              puDst, 0);
     
    50195020             * 128-bit: Memory, register.
    50205021             */
    5021             IEM_MC_BEGIN(0, 2);
     5022            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    50225023            IEM_MC_LOCAL(RTUINT128U,                uSrc);
    50235024            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    50395040             * 256-bit: Memory, register.
    50405041             */
    5041             IEM_MC_BEGIN(0, 2);
     5042            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    50425043            IEM_MC_LOCAL(RTUINT256U,                uSrc);
    50435044            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    52175218         * Register, memory128.
    52185219         */
    5219         IEM_MC_BEGIN(0, 2);
     5220        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    52205221        IEM_MC_LOCAL(RTUINT128U, u128Tmp);
    52215222        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
     
    52375238         * Register, memory256.
    52385239         */
    5239         IEM_MC_BEGIN(0, 2);
     5240        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    52405241        IEM_MC_LOCAL(RTUINT256U, u256Tmp);
    52415242        IEM_MC_LOCAL(RTGCPTR,    GCPtrEffSrc);
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstVexMap2.cpp.h

    r100740 r100854  
    221221        if (pVCpu->iem.s.uVexLength)
    222222        {
    223             IEM_MC_BEGIN(3, 2);
     223            IEM_MC_BEGIN(3, 2, IEM_MC_F_NOT_286_OR_OLDER);
    224224            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2);
    225225            IEM_MC_LOCAL(RTUINT256U,            uSrc1);
     
    240240        else
    241241        {
    242             IEM_MC_BEGIN(3, 0);
     242            IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER);
    243243            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    244244            IEM_MC_ARG(PCRTUINT128U,            puSrc1,  0);
     
    262262        if (pVCpu->iem.s.uVexLength)
    263263        {
    264             IEM_MC_BEGIN(3, 3);
     264            IEM_MC_BEGIN(3, 3, IEM_MC_F_NOT_286_OR_OLDER);
    265265            IEM_MC_LOCAL(RTUINT256U,            uSrc1);
    266266            IEM_MC_LOCAL(RTUINT256U,            uSrc2);
     
    286286        else
    287287        {
    288             IEM_MC_BEGIN(3, 2);
     288            IEM_MC_BEGIN(3, 2, IEM_MC_F_NOT_286_OR_OLDER);
    289289            IEM_MC_LOCAL(RTUINT128U,            uSrc2);
    290290            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    325325        if (pVCpu->iem.s.uVexLength)
    326326        {
    327             IEM_MC_BEGIN(0, 1);
     327            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    328328            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx2);
    329329            IEM_MC_LOCAL(uint32_t,              uSrc);
     
    340340        else
    341341        {
    342             IEM_MC_BEGIN(0, 1);
     342            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    343343            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx2);
    344344            IEM_MC_LOCAL(uint32_t,              uSrc);
     
    360360        if (pVCpu->iem.s.uVexLength)
    361361        {
    362             IEM_MC_BEGIN(0, 2);
     362            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    363363            IEM_MC_LOCAL(uint32_t,              uSrc);
    364364            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    377377        else
    378378        {
    379             IEM_MC_BEGIN(3, 3);
     379            IEM_MC_BEGIN(3, 3, IEM_MC_F_NOT_286_OR_OLDER);
    380380            IEM_MC_LOCAL(uint32_t,              uSrc);
    381381            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    411411        if (pVCpu->iem.s.uVexLength)
    412412        {
    413             IEM_MC_BEGIN(0, 1);
     413            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    414414            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx2);
    415415            IEM_MC_LOCAL(uint64_t,              uSrc);
     
    426426        else
    427427        {
    428             IEM_MC_BEGIN(0, 1);
     428            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    429429            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx2);
    430430            IEM_MC_LOCAL(uint64_t,              uSrc);
     
    444444         * Register, memory.
    445445         */
    446         IEM_MC_BEGIN(0, 2);
     446        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    447447        IEM_MC_LOCAL(uint64_t,              uSrc);
    448448        IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    482482         * Register, memory.
    483483         */
    484         IEM_MC_BEGIN(0, 2);
     484        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    485485        IEM_MC_LOCAL(RTUINT128U,            uSrc);
    486486        IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    551551        if (pVCpu->iem.s.uVexLength) \
    552552        { \
    553             IEM_MC_BEGIN(2, 1); \
     553            IEM_MC_BEGIN(2, 1, IEM_MC_F_NOT_286_OR_OLDER); \
    554554            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx2); \
    555555            IEM_MC_LOCAL(RTUINT256U,            uDst); \
     
    568568        else \
    569569        { \
    570             IEM_MC_BEGIN(2, 0); \
     570            IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER); \
    571571            IEMOP_HLP_DONE_VEX_DECODING_NO_VVVV_EX(fAvx); \
    572572            IEM_MC_ARG(PRTUINT128U,          puDst,  0); \
     
    591591        if (pVCpu->iem.s.uVexLength) \
    592592        { \
    593             IEM_MC_BEGIN(2, 3); \
     593            IEM_MC_BEGIN(2, 3, IEM_MC_F_NOT_286_OR_OLDER); \
    594594            IEM_MC_LOCAL(RTUINT256U,            uDst); \
    595595            IEM_MC_LOCAL(RTUINT128U,            uSrc); \
     
    611611        else \
    612612        { \
    613             IEM_MC_BEGIN(2, 1); \
     613            IEM_MC_BEGIN(2, 1, IEM_MC_F_NOT_286_OR_OLDER); \
    614614            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc); \
    615615            IEM_MC_ARG(PRTUINT128U,                 puDst,       0); \
     
    728728            IEMOP_MNEMONIC2EX(vmovntdqa_Vdq_WO_Mdq_L0, "vmovntdqa, Vdq_WO, Mdq", VEX_RM_MEM, VMOVNTDQA, vmovntdqa, Vx_WO, Mx,
    729729                              DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES);
    730             IEM_MC_BEGIN(0, 2);
     730            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    731731            IEM_MC_LOCAL(RTUINT128U,                uSrc);
    732732            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    759759            IEMOP_MNEMONIC2EX(vmovntdqa_Vqq_WO_Mqq_L1, "vmovntdqa, Vqq_WO,Mqq", VEX_RM_MEM, VMOVNTDQA, vmovntdqa, Vx_WO, Mx,
    760760                              DISOPTYPE_HARMLESS | DISOPTYPE_X86_AVX, IEMOPHINT_IGNORES_OP_SIZES);
    761             IEM_MC_BEGIN(0, 2);
     761            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    762762            IEM_MC_LOCAL(RTUINT256U,                uSrc);
    763763            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    968968         * Register, register.
    969969         */
    970         IEM_MC_BEGIN(2, 0);
     970        IEM_MC_BEGIN(2, 0, IEM_MC_F_NOT_286_OR_OLDER);
    971971        IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fAvx);
    972972        IEM_MC_ARG(PRTUINT128U,          puDst,  0);
     
    987987         * Register, memory.
    988988         */
    989         IEM_MC_BEGIN(2, 2);
     989        IEM_MC_BEGIN(2, 2, IEM_MC_F_NOT_286_OR_OLDER);
    990990        IEM_MC_LOCAL(RTUINT128U,                uSrc);
    991991        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    10501050        if (pVCpu->iem.s.uVexLength)
    10511051        {
    1052             IEM_MC_BEGIN(0, 1);
     1052            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    10531053            IEM_MC_LOCAL(uint32_t,              uSrc);
    10541054
     
    10651065        else
    10661066        {
    1067             IEM_MC_BEGIN(0, 1);
     1067            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    10681068            IEM_MC_LOCAL(uint32_t,              uSrc);
    10691069
     
    10851085        if (pVCpu->iem.s.uVexLength)
    10861086        {
    1087             IEM_MC_BEGIN(0, 2);
     1087            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    10881088            IEM_MC_LOCAL(uint32_t,              uSrc);
    10891089            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    11021102        else
    11031103        {
    1104             IEM_MC_BEGIN(3, 3);
     1104            IEM_MC_BEGIN(3, 3, IEM_MC_F_NOT_286_OR_OLDER);
    11051105            IEM_MC_LOCAL(uint32_t,              uSrc);
    11061106            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    11331133        if (pVCpu->iem.s.uVexLength)
    11341134        {
    1135             IEM_MC_BEGIN(0, 1);
     1135            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    11361136            IEM_MC_LOCAL(uint64_t,              uSrc);
    11371137
     
    11481148        else
    11491149        {
    1150             IEM_MC_BEGIN(0, 1);
     1150            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    11511151            IEM_MC_LOCAL(uint64_t,              uSrc);
    11521152
     
    11681168        if (pVCpu->iem.s.uVexLength)
    11691169        {
    1170             IEM_MC_BEGIN(0, 2);
     1170            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    11711171            IEM_MC_LOCAL(uint64_t,              uSrc);
    11721172            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    11851185        else
    11861186        {
    1187             IEM_MC_BEGIN(3, 3);
     1187            IEM_MC_BEGIN(3, 3, IEM_MC_F_NOT_286_OR_OLDER);
    11881188            IEM_MC_LOCAL(uint64_t,              uSrc);
    11891189            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    12211221         * Register, memory.
    12221222         */
    1223         IEM_MC_BEGIN(0, 2);
     1223        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    12241224        IEM_MC_LOCAL(RTUINT128U,            uSrc);
    12251225        IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    12841284        if (pVCpu->iem.s.uVexLength)
    12851285        {
    1286             IEM_MC_BEGIN(0, 1);
     1286            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    12871287            IEM_MC_LOCAL(uint8_t,               uSrc);
    12881288
     
    12991299        else
    13001300        {
    1301             IEM_MC_BEGIN(0, 1);
     1301            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    13021302            IEM_MC_LOCAL(uint8_t,               uSrc);
    13031303
     
    13191319        if (pVCpu->iem.s.uVexLength)
    13201320        {
    1321             IEM_MC_BEGIN(0, 2);
     1321            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    13221322            IEM_MC_LOCAL(uint8_t,               uSrc);
    13231323            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    13361336        else
    13371337        {
    1338             IEM_MC_BEGIN(3, 3);
     1338            IEM_MC_BEGIN(3, 3, IEM_MC_F_NOT_286_OR_OLDER);
    13391339            IEM_MC_LOCAL(uint8_t,               uSrc);
    13401340            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    13671367        if (pVCpu->iem.s.uVexLength)
    13681368        {
    1369             IEM_MC_BEGIN(0, 1);
     1369            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    13701370            IEM_MC_LOCAL(uint16_t,              uSrc);
    13711371
     
    13821382        else
    13831383        {
    1384             IEM_MC_BEGIN(0, 1);
     1384            IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    13851385            IEM_MC_LOCAL(uint16_t,              uSrc);
    13861386
     
    14021402        if (pVCpu->iem.s.uVexLength)
    14031403        {
    1404             IEM_MC_BEGIN(0, 2);
     1404            IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    14051405            IEM_MC_LOCAL(uint16_t,              uSrc);
    14061406            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    14191419        else
    14201420        {
    1421             IEM_MC_BEGIN(3, 3);
     1421            IEM_MC_BEGIN(3, 3, IEM_MC_F_NOT_286_OR_OLDER);
    14221422            IEM_MC_LOCAL(uint16_t,              uSrc);
    14231423            IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    16451645        if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W)
    16461646        {
    1647             IEM_MC_BEGIN(4, 0);
     1647            IEM_MC_BEGIN(4, 0, IEM_MC_F_NOT_286_OR_OLDER);
    16481648            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fBmi1);
    16491649            IEM_MC_ARG(uint64_t *,          pDst,    0);
     
    16621662        else
    16631663        {
    1664             IEM_MC_BEGIN(4, 0);
     1664            IEM_MC_BEGIN(4, 0, IEM_MC_F_NOT_286_OR_OLDER);
    16651665            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fBmi1);
    16661666            IEM_MC_ARG(uint32_t *,          pDst,    0);
     
    16861686        if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W)
    16871687        {
    1688             IEM_MC_BEGIN(4, 1);
     1688            IEM_MC_BEGIN(4, 1, IEM_MC_F_NOT_286_OR_OLDER);
    16891689            IEM_MC_ARG(uint64_t *,          pDst,    0);
    16901690            IEM_MC_ARG(uint64_t,            uSrc1,   1);
     
    17051705        else
    17061706        {
    1707             IEM_MC_BEGIN(4, 1);
     1707            IEM_MC_BEGIN(4, 1, IEM_MC_F_NOT_286_OR_OLDER);
    17081708            IEM_MC_ARG(uint32_t *,          pDst,    0);
    17091709            IEM_MC_ARG(uint32_t,            uSrc1,   1);
     
    17461746        if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W) \
    17471747        { \
    1748             IEM_MC_BEGIN(3, 0); \
     1748            IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    17491749            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fBmi1); \
    17501750            IEM_MC_ARG(uint64_t *,          pDst,    0); \
     
    17611761        else \
    17621762        { \
    1763             IEM_MC_BEGIN(3, 0); \
     1763            IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER); \
    17641764            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fBmi1); \
    17651765            IEM_MC_ARG(uint32_t *,          pDst,    0); \
     
    17831783        if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W) \
    17841784        { \
    1785             IEM_MC_BEGIN(3, 1); \
     1785            IEM_MC_BEGIN(3, 1, IEM_MC_F_64BIT); \
    17861786            IEM_MC_ARG(uint64_t *,          pDst,    0); \
    17871787            IEM_MC_ARG(uint64_t,            uSrc,    1); \
     
    18001800        else \
    18011801        { \
    1802             IEM_MC_BEGIN(3, 1); \
     1802            IEM_MC_BEGIN(3, 1, IEM_MC_F_NOT_286_OR_OLDER); \
    18031803            IEM_MC_ARG(uint32_t *,          pDst,    0); \
    18041804            IEM_MC_ARG(uint32_t,            uSrc,    1); \
     
    18971897        if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W) \
    18981898        { \
    1899             IEM_MC_BEGIN(4, 0); \
     1899            IEM_MC_BEGIN(4, 0, IEM_MC_F_64BIT); \
    19001900            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(a_fFeatureMember); \
    19011901            IEM_MC_ARG(uint64_t *,          pDst,    0); \
     
    19151915        else \
    19161916        { \
    1917             IEM_MC_BEGIN(4, 0); \
     1917            IEM_MC_BEGIN(4, 0, IEM_MC_F_NOT_286_OR_OLDER); \
    19181918            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(a_fFeatureMember); \
    19191919            IEM_MC_ARG(uint32_t *,          pDst,    0); \
     
    19401940        if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W) \
    19411941        { \
    1942             IEM_MC_BEGIN(4, 1); \
     1942            IEM_MC_BEGIN(4, 1, IEM_MC_F_64BIT); \
    19431943            IEM_MC_ARG(uint64_t *,          pDst,    0); \
    19441944            IEM_MC_ARG(uint64_t,            uSrc1,   1); \
     
    19601960        else \
    19611961        { \
    1962             IEM_MC_BEGIN(4, 1); \
     1962            IEM_MC_BEGIN(4, 1, IEM_MC_F_NOT_286_OR_OLDER); \
    19631963            IEM_MC_ARG(uint32_t *,          pDst,    0); \
    19641964            IEM_MC_ARG(uint32_t,            uSrc1,   1); \
     
    19931993        if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W) \
    19941994        { \
    1995             IEM_MC_BEGIN(3, 0); \
     1995            IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    19961996            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(a_fFeatureMember); \
    19971997            IEM_MC_ARG(uint64_t *,          pDst,    0); \
     
    20082008        else \
    20092009        { \
    2010             IEM_MC_BEGIN(3, 0); \
     2010            IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER); \
    20112011            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(a_fFeatureMember); \
    20122012            IEM_MC_ARG(uint32_t *,          pDst,    0); \
     
    20302030        if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W) \
    20312031        { \
    2032             IEM_MC_BEGIN(3, 1); \
     2032            IEM_MC_BEGIN(3, 1, IEM_MC_F_64BIT); \
    20332033            IEM_MC_ARG(uint64_t *,          pDst,    0); \
    20342034            IEM_MC_ARG(uint64_t,            uSrc1,   1); \
     
    20472047        else \
    20482048        { \
    2049             IEM_MC_BEGIN(3, 1); \
     2049            IEM_MC_BEGIN(3, 1, IEM_MC_F_NOT_286_OR_OLDER); \
    20502050            IEM_MC_ARG(uint32_t *,          pDst,    0); \
    20512051            IEM_MC_ARG(uint32_t,            uSrc1,   1); \
     
    20852085        if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W) \
    20862086        { \
    2087             IEM_MC_BEGIN(3, 0); \
     2087            IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT); \
    20882088            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(a_fFeatureMember); \
    20892089            IEM_MC_ARG(uint64_t *,          pDst,    0); \
     
    21012101        else \
    21022102        { \
    2103             IEM_MC_BEGIN(3, 0); \
     2103            IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER); \
    21042104            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(a_fFeatureMember); \
    21052105            IEM_MC_ARG(uint32_t *,          pDst,    0); \
     
    21242124        if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W) \
    21252125        { \
    2126             IEM_MC_BEGIN(3, 1); \
     2126            IEM_MC_BEGIN(3, 1, IEM_MC_F_64BIT); \
    21272127            IEM_MC_ARG(uint64_t *,          pDst,    0); \
    21282128            IEM_MC_ARG(uint64_t,            uSrc1,   1); \
     
    21422142        else \
    21432143        { \
    2144             IEM_MC_BEGIN(3, 1); \
     2144            IEM_MC_BEGIN(3, 1, IEM_MC_F_NOT_286_OR_OLDER); \
    21452145            IEM_MC_ARG(uint32_t *,          pDst,    0); \
    21462146            IEM_MC_ARG(uint32_t,            uSrc1,   1); \
     
    21962196        if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W)
    21972197        {
    2198             IEM_MC_BEGIN(4, 0);
     2198            IEM_MC_BEGIN(4, 0, IEM_MC_F_64BIT);
    21992199            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fBmi2);
    22002200            IEM_MC_ARG(uint64_t *,          pDst1,   0);
     
    22132213        else
    22142214        {
    2215             IEM_MC_BEGIN(4, 0);
     2215            IEM_MC_BEGIN(4, 0, IEM_MC_F_NOT_286_OR_OLDER);
    22162216            IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fBmi2);
    22172217            IEM_MC_ARG(uint32_t *,          pDst1,   0);
     
    22382238        if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W)
    22392239        {
    2240             IEM_MC_BEGIN(4, 1);
     2240            IEM_MC_BEGIN(4, 1, IEM_MC_F_64BIT);
    22412241            IEM_MC_ARG(uint64_t *,          pDst1,   0);
    22422242            IEM_MC_ARG(uint64_t *,          pDst2,   1);
     
    22572257        else
    22582258        {
    2259             IEM_MC_BEGIN(4, 1);
     2259            IEM_MC_BEGIN(4, 1, IEM_MC_F_NOT_286_OR_OLDER);
    22602260            IEM_MC_ARG(uint32_t *,          pDst1,   0);
    22612261            IEM_MC_ARG(uint32_t *,          pDst2,   1);
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstVexMap3.cpp.h

    r100740 r100854  
    5353        if (pVCpu->iem.s.uVexLength)
    5454        {
     55            IEM_MC_BEGIN(4, 3, IEM_MC_F_NOT_286_OR_OLDER);
    5556            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    56             IEM_MC_BEGIN(4, 3);
    5757            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2);
    5858            IEM_MC_LOCAL(RTUINT256U,            uDst);
     
    7474        else
    7575        {
     76            IEM_MC_BEGIN(4, 0, IEM_MC_F_NOT_286_OR_OLDER);
    7677            uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    77             IEM_MC_BEGIN(4, 0);
    7878            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    7979            IEM_MC_ARG(PRTUINT128U,          puDst,  0);
     
    9999        if (pVCpu->iem.s.uVexLength)
    100100        {
    101             IEM_MC_BEGIN(4, 4);
     101            IEM_MC_BEGIN(4, 4, IEM_MC_F_NOT_286_OR_OLDER);
    102102            IEM_MC_LOCAL(RTUINT256U,            uDst);
    103103            IEM_MC_LOCAL(RTUINT256U,            uSrc1);
     
    125125        else
    126126        {
    127             IEM_MC_BEGIN(4, 2);
     127            IEM_MC_BEGIN(4, 2, IEM_MC_F_NOT_286_OR_OLDER);
    128128            IEM_MC_LOCAL(RTUINT128U,                uSrc2);
    129129            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    172172        if (pVCpu->iem.s.uVexLength)
    173173        {
    174             IEM_MC_BEGIN(4, 3);
     174            IEM_MC_BEGIN(4, 3, IEM_MC_F_NOT_286_OR_OLDER);
    175175            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    176176            IEM_MC_LOCAL(RTUINT256U,            uDst);
     
    192192        else
    193193        {
    194             IEM_MC_BEGIN(4, 0);
     194            IEM_MC_BEGIN(4, 0, IEM_MC_F_NOT_286_OR_OLDER);
    195195            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    196196            IEM_MC_ARG(PRTUINT128U,          puDst,  0);
     
    216216        if (pVCpu->iem.s.uVexLength)
    217217        {
    218             IEM_MC_BEGIN(4, 4);
     218            IEM_MC_BEGIN(4, 4, IEM_MC_F_NOT_286_OR_OLDER);
    219219            IEM_MC_LOCAL(RTUINT256U,            uDst);
    220220            IEM_MC_LOCAL(RTUINT256U,            uSrc1);
     
    242242        else
    243243        {
    244             IEM_MC_BEGIN(4, 2);
     244            IEM_MC_BEGIN(4, 2, IEM_MC_F_NOT_286_OR_OLDER);
    245245            IEM_MC_LOCAL(RTUINT128U,                uSrc2);
    246246            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    293293         * Register, register.
    294294         */
     295        IEM_MC_BEGIN(4, 3, IEM_MC_F_NOT_286_OR_OLDER);
    295296        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    296         IEM_MC_BEGIN(4, 3);
    297297        IEMOP_HLP_DONE_VEX_DECODING_L1_EX(fAvx2);
    298298        IEM_MC_LOCAL(RTUINT256U,            uDst);
     
    318318         * Register, memory.
    319319         */
    320         IEM_MC_BEGIN(4, 2);
     320        IEM_MC_BEGIN(4, 2, IEM_MC_F_NOT_286_OR_OLDER);
    321321        IEM_MC_LOCAL(RTUINT256U,                uDst);
    322322        IEM_MC_LOCAL(RTUINT256U,                uSrc1);
     
    424424         * Register, register.
    425425         */
     426        IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    426427        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    427         IEM_MC_BEGIN(0, 1);
    428428        IEMOP_HLP_DONE_VEX_DECODING_L1_EX(fAvx2);
    429429        IEM_MC_LOCAL(RTUINT128U,            uSrc);
     
    444444         * Register, memory.
    445445         */
    446         IEM_MC_BEGIN(0, 2);
     446        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    447447        IEM_MC_LOCAL(RTUINT128U,            uSrc);
    448448        IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    516516         * Register, register.
    517517         */
     518        IEM_MC_BEGIN(0, 1, IEM_MC_F_NOT_286_OR_OLDER);
    518519        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    519         IEM_MC_BEGIN(0, 1);
    520520        IEMOP_HLP_DONE_VEX_DECODING_L1_EX(fAvx2);
    521521        IEM_MC_LOCAL(RTUINT128U,            uSrc);
     
    536536         * Register, memory.
    537537         */
    538         IEM_MC_BEGIN(0, 2);
     538        IEM_MC_BEGIN(0, 2, IEM_MC_F_NOT_286_OR_OLDER);
    539539        IEM_MC_LOCAL(RTUINT128U,            uSrc);
    540540        IEM_MC_LOCAL(RTGCPTR,               GCPtrEffSrc);
     
    586586         * Register, register.
    587587         */
     588        IEM_MC_BEGIN(4, 0, IEM_MC_F_NOT_286_OR_OLDER);
    588589        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    589         IEM_MC_BEGIN(4, 0);
    590590        IEMOP_HLP_DONE_VEX_DECODING_L0_EX(fPclMul);
    591591        IEM_MC_ARG(PRTUINT128U,          puDst,  0);
     
    609609         * Register, memory.
    610610         */
    611         IEM_MC_BEGIN(4, 2);
     611        IEM_MC_BEGIN(4, 2, IEM_MC_F_NOT_286_OR_OLDER);
    612612        IEM_MC_LOCAL(RTUINT128U,                uSrc2);
    613613        IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    650650         * Register, register.
    651651         */
     652        IEM_MC_BEGIN(4, 3, IEM_MC_F_NOT_286_OR_OLDER);
    652653        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    653         IEM_MC_BEGIN(4, 3);
    654654        IEMOP_HLP_DONE_VEX_DECODING_L1_EX(fAvx2);
    655655        IEM_MC_LOCAL(RTUINT256U,            uDst);
     
    675675         * Register, memory.
    676676         */
    677         IEM_MC_BEGIN(4, 2);
     677        IEM_MC_BEGIN(4, 2, IEM_MC_F_NOT_286_OR_OLDER);
    678678        IEM_MC_LOCAL(RTUINT256U,                uDst);
    679679        IEM_MC_LOCAL(RTUINT256U,                uSrc1);
     
    728728        if (pVCpu->iem.s.uVexLength)
    729729        {
    730             IEM_MC_BEGIN(4, 4);
     730            IEM_MC_BEGIN(4, 4, IEM_MC_F_NOT_286_OR_OLDER);
    731731            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    732732            IEM_MC_LOCAL(RTUINT256U,            uDst);
     
    750750        else
    751751        {
    752             IEM_MC_BEGIN(4, 0);
     752            IEM_MC_BEGIN(4, 0, IEM_MC_F_NOT_286_OR_OLDER);
    753753            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    754754            IEM_MC_ARG(PRTUINT128U,          puDst,  0);
     
    775775        if (pVCpu->iem.s.uVexLength)
    776776        {
    777             IEM_MC_BEGIN(4, 5);
     777            IEM_MC_BEGIN(4, 5, IEM_MC_F_NOT_286_OR_OLDER);
    778778            IEM_MC_LOCAL(RTUINT256U,            uDst);
    779779            IEM_MC_LOCAL(RTUINT256U,            uSrc1);
     
    805805        else
    806806        {
    807             IEM_MC_BEGIN(4, 2);
     807            IEM_MC_BEGIN(4, 2, IEM_MC_F_NOT_286_OR_OLDER);
    808808            IEM_MC_LOCAL(RTUINT128U,                uSrc2);
    809809            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    872872        if (pVCpu->iem.s.uVexLength)
    873873        {
    874             IEM_MC_BEGIN(4, 4);
     874            IEM_MC_BEGIN(4, 4, IEM_MC_F_NOT_286_OR_OLDER);
    875875            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx2);
    876876            IEM_MC_LOCAL(RTUINT256U,            uDst);
     
    894894        else
    895895        {
    896             IEM_MC_BEGIN(4, 0);
     896            IEM_MC_BEGIN(4, 0, IEM_MC_F_NOT_286_OR_OLDER);
    897897            IEMOP_HLP_DONE_VEX_DECODING_EX(fAvx);
    898898            IEM_MC_ARG(PRTUINT128U,          puDst,  0);
     
    919919        if (pVCpu->iem.s.uVexLength)
    920920        {
    921             IEM_MC_BEGIN(4, 5);
     921            IEM_MC_BEGIN(4, 5, IEM_MC_F_NOT_286_OR_OLDER);
    922922            IEM_MC_LOCAL(RTUINT256U,            uDst);
    923923            IEM_MC_LOCAL(RTUINT256U,            uSrc1);
     
    949949        else
    950950        {
    951             IEM_MC_BEGIN(4, 2);
     951            IEM_MC_BEGIN(4, 2, IEM_MC_F_NOT_286_OR_OLDER);
    952952            IEM_MC_LOCAL(RTUINT128U,                uSrc2);
    953953            IEM_MC_LOCAL(RTGCPTR,                   GCPtrEffSrc);
     
    11221122        if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W)
    11231123        {
    1124             IEM_MC_BEGIN(3, 0);
     1124            IEM_MC_BEGIN(3, 0, IEM_MC_F_64BIT);
    11251125            IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fBmi2);
    11261126            IEM_MC_ARG(uint64_t *,          pDst,    0);
     
    11351135        else
    11361136        {
    1137             IEM_MC_BEGIN(3, 0);
     1137            IEM_MC_BEGIN(3, 0, IEM_MC_F_NOT_286_OR_OLDER);
    11381138            IEMOP_HLP_DONE_VEX_DECODING_L0_AND_NO_VVVV_EX(fBmi2);
    11391139            IEM_MC_ARG(uint32_t *,          pDst,    0);
     
    11551155        if (pVCpu->iem.s.fPrefixes & IEM_OP_PRF_SIZE_REX_W)
    11561156        {
    1157             IEM_MC_BEGIN(3, 1);
     1157            IEM_MC_BEGIN(3, 1, IEM_MC_F_64BIT);
    11581158            IEM_MC_ARG(uint64_t *,          pDst,    0);
    11591159            IEM_MC_ARG(uint64_t,            uSrc1,   1);
     
    11711171        else
    11721172        {
    1173             IEM_MC_BEGIN(3, 1);
     1173            IEM_MC_BEGIN(3, 1, IEM_MC_F_NOT_286_OR_OLDER);
    11741174            IEM_MC_ARG(uint32_t *,          pDst,    0);
    11751175            IEM_MC_ARG(uint32_t,            uSrc1,   1);
  • trunk/src/VBox/VMM/VMMAll/IEMAllThrdPython.py

    r100829 r100854  
    504504    };
    505505
     506    kdMemMcToFlatInfoStack = {
     507        'IEM_MC_PUSH_U16':                        (  'IEM_MC_PUSH_FLAT32_U16', 'IEM_MC_PUSH_FLAT64_U16', ),
     508        'IEM_MC_PUSH_U32':                        (  'IEM_MC_PUSH_FLAT32_U32', 'IEM_MC_PUSH_FLAT64_U32', ),
     509        'IEM_MC_PUSH_U64':                        (  'IEM_MC_PUSH_U64',        'IEM_MC_PUSH_FLAT64_U64', ),
     510        'IEM_MC_POP_U16':                         (  'IEM_MC_POP_FLAT32_U16',  'IEM_MC_POP_FLAT64_U16', ),
     511        'IEM_MC_POP_U32':                         (  'IEM_MC_POP_FLAT32_U32',  'IEM_MC_POP_FLAT64_U32', ),
     512        'IEM_MC_POP_U64':                         (  'IEM_MC_POP_U64',         'IEM_MC_POP_FLAT64_U64', ),
     513    };
     514
    506515    def analyzeMorphStmtForThreaded(self, aoStmts, iParamRef = 0):
    507516        """
     
    754763                continue;
    755764            if oStmt.isCppStmt() and oStmt.fDecode:
     765                continue;
     766            if oStmt.sName in ('IEM_MC_BEGIN',):
    756767                continue;
    757768
     
    18111822                #
    18121823                elif oThreadedFunction.oMcBlock.iBeginLine != oThreadedFunction.oMcBlock.iEndLine:
    1813                     assert sLine.count('IEM_MC_') == 1;
     1824                    assert sLine.count('IEM_MC_') - sLine.count('IEM_MC_F_') == 1, 'sLine="%s"' % (sLine,);
    18141825                    oOut.write(sLine[:oThreadedFunction.oMcBlock.offBeginLine]);
    18151826                    sModified = oThreadedFunction.generateInputCode().strip();
     
    18181829                    iLine = oThreadedFunction.oMcBlock.iEndLine;
    18191830                    sLine = oParser.asLines[iLine - 1];
    1820                     assert sLine.count('IEM_MC_') == 1 or len(oThreadedFunction.oMcBlock.aoStmts) == 1;
     1831                    assert sLine.count('IEM_MC_') - sLine.count('IEM_MC_F_') == 1 or len(oThreadedFunction.oMcBlock.aoStmts) == 1;
    18211832                    oOut.write(sLine[oThreadedFunction.oMcBlock.offAfterEnd : ]);
    18221833
  • trunk/src/VBox/VMM/VMMR3/CPUMR3CpuId.cpp

    r100625 r100854  
    13931393                           //| X86_CPUID_FEATURE_ECX_CNTXID - no L1 context id (MSR++).
    13941394                           //| X86_CPUID_FEATURE_ECX_FMA   - not implemented yet.
    1395                            | PASSTHRU_FEATURE(pConfig->enmCmpXchg16b, pHstFeat->fMovCmpXchg16b, X86_CPUID_FEATURE_ECX_CX16)
     1395                           | PASSTHRU_FEATURE(pConfig->enmCmpXchg16b, pHstFeat->fCmpXchg16b, X86_CPUID_FEATURE_ECX_CX16)
    13961396                           /* ECX Bit 14 - xTPR Update Control. Processor supports changing IA32_MISC_ENABLES[bit 23]. */
    13971397                           //| X86_CPUID_FEATURE_ECX_TPRUPDATE
  • trunk/src/VBox/VMM/include/IEMInternal.h

    r100851 r100854  
    539539 */
    540540#define IEMTLB_TAG_TO_ENTRY(a_pTlb, a_uTag) ( &(a_pTlb)->aEntries[IEMTLB_TAG_TO_INDEX(a_uTag)] )
     541
     542
     543/** @name IEM_MC_F_XXX - MC block flags/clues.
     544 * @{ */
     545#define IEM_MC_F_ONLY_8086          RT_BIT_32(0)
     546#define IEM_MC_F_NOT_286_OR_OLDER   IEM_MC_F_MIN_386
     547#define IEM_MC_F_MIN_386            RT_BIT_32(3)
     548#define IEM_MC_F_MIN_486            RT_BIT_32(4)
     549#define IEM_MC_F_MIN_PENTIUM        RT_BIT_32(5)
     550#define IEM_MC_F_MIN_PENTIUM_II     IEM_MC_F_MIN_PENTIUM
     551#define IEM_MC_F_MIN_CORE           IEM_MC_F_MIN_PENTIUM
     552#define IEM_MC_F_64BIT              RT_BIT_32(6)
     553#define IEM_MC_F_NOT_64BIT          RT_BIT_32(7)
     554/** @} */
    541555
    542556
  • trunk/src/VBox/VMM/include/IEMMc.h

    r100847 r100854  
    4040 * @{
    4141 */
    42 #define IEM_MC_BEGIN(a_cArgs, a_cLocals)                {
     42
     43#define IEM_MC_BEGIN(a_cArgs, a_cLocals, a_fFlags)      {
    4344#define IEM_MC_END()                                    }
    4445
     
    142143    } while (0)
    143144AssertCompile(!((X86_CR0_EM | X86_CR0_TS) & X86_FSW_ES));
     145/** @todo recomp: this one is slightly problematic as the recompiler doesn't
     146 *        count the CPL into the TB key.  However it is safe enough for now, as
     147 *        it calls iemRaiseGeneralProtectionFault0 directly so no calls will be
     148 *        emitted for it. */
    144149#define IEM_MC_RAISE_GP0_IF_CPL_NOT_ZERO() \
    145150    do { \
  • trunk/src/VBox/VMM/include/IEMOpHlp.h

    r100731 r100854  
    420420    } while (0)
    421421
     422#define IEMOP_HLP_DONE_DECODING_EX(a_fFeature) \
     423    do \
     424    { \
     425        if (RT_LIKELY(IEM_GET_GUEST_CPU_FEATURES(pVCpu)->a_fFeature)) \
     426        { /* likely */ } \
     427        else \
     428            IEMOP_RAISE_INVALID_LOCK_PREFIX_RET(); \
     429    } while (0)
     430
    422431/**
    423432 * Done decoding, raise \#UD exception if lock prefix present.
  • trunk/src/VBox/VMM/testcase/tstIEMCheckMc.cpp

    r100840 r100854  
    182182
    183183#define IEMOP_HLP_DONE_DECODING()                           do { } while (0)
     184#define IEMOP_HLP_DONE_DECODING_EX(a_fFeature)              do { } while (0)
    184185
    185186#define IEMOP_HLP_DECODED_NL_1(a_uDisOpNo, a_fIemOpFlags, a_uDisParam0, a_fDisOpType)               do { } while (0)
     
    557558
    558559#define IEM_ARG_CHECK_CALLBACK(a_idx, a_User) int RT_CONCAT(iArgCheck_,a_idx); NOREF(RT_CONCAT(iArgCheck_,a_idx))
    559 #define IEM_MC_BEGIN(a_cArgs, a_cLocals) \
     560#define IEM_MC_BEGIN(a_cArgs, a_cLocals, a_fFlags) \
    560561    { \
    561         const uint8_t cArgs   = (a_cArgs); NOREF(cArgs); \
    562         const uint8_t cLocals = (a_cLocals); NOREF(cLocals); \
    563         const uint8_t fMcBegin = (a_cArgs) + (a_cLocals); \
     562        const uint8_t  cArgs    = (a_cArgs); NOREF(cArgs); \
     563        const uint8_t  cLocals = (a_cLocals); NOREF(cLocals); \
     564        const uint32_t fMcBegin = (((a_cArgs) + (a_cLocals)) << 23) + (a_fFlags); \
    564565        IEM_REPEAT(a_cArgs, IEM_ARG_CHECK, 0); \
    565566
Note: See TracChangeset for help on using the changeset viewer.

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