VirtualBox

Changeset 99326 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Apr 6, 2023 11:51:53 PM (21 months ago)
Author:
vboxsync
Message:

VMM/IEM: Use IEMOP_HLP_DONE_VEX_DECODING_*() rather than IEM_MC_MAYBE_RAISE_SS[S]E3*_RELATED_XCPT to do the CPUID check. bugref:10369

Location:
trunk/src/VBox/VMM/VMMAll
Files:
3 edited

Legend:

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

    r99325 r99326  
    5454         * Register, register.
    5555         */
    56         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     56        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSsse3);
    5757        IEM_MC_BEGIN(2, 0);
    5858        IEM_MC_ARG(PRTUINT128U,                 puDst, 0);
     
    7878
    7979        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    80         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     80        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSsse3);
    8181        IEM_MC_MAYBE_RAISE_SSSE3_RELATED_XCPT();
    8282        IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f3a.cpp.h

    r99325 r99326  
    5252         */
    5353        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    54         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     54        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSsse3);
    5555        IEM_MC_BEGIN(3, 0);
    5656        IEM_MC_ARG(PRTUINT128U,                 puDst,               0);
     
    7979        uint8_t bImm; IEM_OPCODE_GET_NEXT_U8(&bImm);
    8080        IEM_MC_ARG_CONST(uint8_t,               bImmArg, /*=*/ bImm, 2);
    81         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     81        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSsse3);
    8282        IEM_MC_MAYBE_RAISE_SSSE3_RELATED_XCPT();
    8383        IEM_MC_FETCH_MEM_U128_ALIGN_SSE(uSrc, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
  • trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsTwoByte0f.cpp.h

    r99307 r99326  
    11431143         * XMM, XMM.
    11441144         */
    1145         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     1145        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse3);
    11461146        IEM_MC_BEGIN(3, 1);
    11471147        IEM_MC_LOCAL(IEMSSERESULT,          SseRes);
     
    11741174
    11751175        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    1176         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     1176        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse3);
    11771177        IEM_MC_MAYBE_RAISE_SSE3_RELATED_XCPT();
    11781178        IEM_MC_FETCH_MEM_XMM_ALIGN_SSE(uSrc2, pVCpu->iem.s.iEffSeg, GCPtrEffSrc);
     
    26232623         * XMM, XMM.
    26242624         */
    2625         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     2625        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse3);
    26262626        IEM_MC_BEGIN(0, 1);
    26272627        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    26492649
    26502650        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    2651         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     2651        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse3);
    26522652        IEM_MC_MAYBE_RAISE_SSE3_RELATED_XCPT();
    26532653        IEM_MC_PREPARE_SSE_USAGE();
     
    26832683         * XMM128, XMM64.
    26842684         */
    2685         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     2685        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse3);
    26862686        IEM_MC_BEGIN(1, 0);
    26872687        IEM_MC_ARG(uint64_t,                    uSrc, 0);
     
    27072707
    27082708        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    2709         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     2709        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse3);
    27102710        IEM_MC_MAYBE_RAISE_SSE3_RELATED_XCPT();
    27112711        IEM_MC_PREPARE_SSE_USAGE();
     
    30413041         * XMM128, XMM128.
    30423042         */
    3043         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     3043        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse3);
    30443044        IEM_MC_BEGIN(0, 1);
    30453045        IEM_MC_LOCAL(RTUINT128U,                uSrc);
     
    30673067
    30683068        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    3069         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     3069        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse3);
    30703070        IEM_MC_MAYBE_RAISE_SSE3_RELATED_XCPT();
    30713071        IEM_MC_PREPARE_SSE_USAGE();
     
    1355613556
    1355713557        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffSrc, bRm, 0);
    13558         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     13558        IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX_EX(fSse3);
    1355913559        IEM_MC_MAYBE_RAISE_SSE3_RELATED_XCPT();
    1356013560        IEM_MC_ACTUALIZE_SSE_STATE_FOR_CHANGE();
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