VirtualBox

Ignore:
Timestamp:
Aug 11, 2023 1:29:04 AM (19 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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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);
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