VirtualBox

Ignore:
Timestamp:
Dec 28, 2023 12:27:07 AM (11 months ago)
Author:
vboxsync
Message:

VMM/IEM: Corrected missing clobbering of kIemNativeGstReg_SegAttrib*. bugref:10371

File:
1 edited

Legend:

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

    r102698 r102719  
    837837    IEM_MC_DEFER_TO_CIMPL_2_RET(IEM_CIMPL_F_MODE,
    838838                                  RT_BIT_64(kIemNativeGstReg_GprFirst + X86_GREG_xSP)
    839                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_ES)
    840                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_ES)
    841                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_ES),
     839                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_ES)
     840                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_ES)
     841                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_ES)
     842                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_ES),
    842843                                iemCImpl_pop_Sreg, X86_SREG_ES, pVCpu->iem.s.enmEffOpSize);
    843844}
     
    11321133    IEM_MC_DEFER_TO_CIMPL_2_RET(IEM_CIMPL_F_MODE | IEM_CIMPL_F_INHIBIT_SHADOW,
    11331134                                  RT_BIT_64(kIemNativeGstReg_GprFirst + X86_GREG_xSP)
    1134                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_SS)
    1135                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_SS)
    1136                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_SS),
     1135                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_SS)
     1136                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_SS)
     1137                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_SS)
     1138                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_SS),
    11371139                                iemCImpl_pop_Sreg, X86_SREG_SS, pVCpu->iem.s.enmEffOpSize);
    11381140}
     
    12421244    IEM_MC_DEFER_TO_CIMPL_2_RET(IEM_CIMPL_F_MODE,
    12431245                                  RT_BIT_64(kIemNativeGstReg_GprFirst + X86_GREG_xSP)
    1244                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_DS)
    1245                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_DS)
    1246                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_DS),
     1246                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_DS)
     1247                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_DS)
     1248                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_DS)
     1249                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_DS),
    12471250                                iemCImpl_pop_Sreg, X86_SREG_DS, pVCpu->iem.s.enmEffOpSize);
    12481251}
     
    58625865            IEM_MC_FETCH_GREG_U16(u16Value, IEM_GET_MODRM_RM(pVCpu, bRm)); \
    58635866            IEM_MC_CALL_CIMPL_2(a_fCImplFlags, \
    5864                                   RT_BIT_64(kIemNativeGstReg_SegSelFirst   + iSegReg) \
    5865                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + iSegReg) \
    5866                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + iSegReg), \
     5867                                  RT_BIT_64(kIemNativeGstReg_SegSelFirst    + iSegReg) \
     5868                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + iSegReg) \
     5869                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + iSegReg) \
     5870                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + iSegReg), \
    58675871                                iemCImpl_load_SReg, iSRegArg, u16Value); \
    58685872            IEM_MC_END()
     
    59045908            IEM_MC_FETCH_MEM_U16(u16Value, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    59055909            IEM_MC_CALL_CIMPL_2(a_fCImplFlags, \
    5906                                   RT_BIT_64(kIemNativeGstReg_SegSelFirst   + iSegReg) \
    5907                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + iSegReg) \
    5908                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + iSegReg), \
     5910                                  RT_BIT_64(kIemNativeGstReg_SegSelFirst    + iSegReg) \
     5911                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + iSegReg) \
     5912                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + iSegReg) \
     5913                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + iSegReg), \
    59095914                                iemCImpl_load_SReg, iSRegArg, u16Value); \
    59105915            IEM_MC_END()
     
    86238628    IEM_MC_DEFER_TO_CIMPL_2_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_FAR | IEM_CIMPL_F_BRANCH_STACK
    86248629                                | IEM_CIMPL_F_MODE,
    8625                                   RT_BIT_64(kIemNativeGstReg_GprFirst      + X86_GREG_xSP)
    8626                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_DS)
    8627                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_ES)
    8628                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_FS)
    8629                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_GS)
    8630                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_DS)
    8631                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_ES)
    8632                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_FS)
    8633                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_GS)
    8634                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_DS)
    8635                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_ES)
    8636                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_FS)
    8637                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_GS),
     8630                                  RT_BIT_64(kIemNativeGstReg_GprFirst       + X86_GREG_xSP)
     8631                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_DS)
     8632                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_ES)
     8633                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_FS)
     8634                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_GS)
     8635                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_DS)
     8636                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_ES)
     8637                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_FS)
     8638                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_GS)
     8639                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_DS)
     8640                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_ES)
     8641                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_FS)
     8642                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_GS)
     8643                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_DS)
     8644                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_ES)
     8645                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_FS)
     8646                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_GS),
    86388647                                iemCImpl_retf, pVCpu->iem.s.enmEffOpSize, u16Imm);
    86398648}
     
    86498658    IEM_MC_DEFER_TO_CIMPL_2_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_FAR | IEM_CIMPL_F_BRANCH_STACK
    86508659                                | IEM_CIMPL_F_MODE,
    8651                                   RT_BIT_64(kIemNativeGstReg_GprFirst      + X86_GREG_xSP)
    8652                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_DS)
    8653                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_ES)
    8654                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_FS)
    8655                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_GS)
    8656                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_DS)
    8657                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_ES)
    8658                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_FS)
    8659                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_GS)
    8660                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_DS)
    8661                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_ES)
    8662                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_FS)
    8663                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_GS),
     8660                                  RT_BIT_64(kIemNativeGstReg_GprFirst       + X86_GREG_xSP)
     8661                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_DS)
     8662                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_ES)
     8663                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_FS)
     8664                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_GS)
     8665                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_DS)
     8666                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_ES)
     8667                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_FS)
     8668                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_GS)
     8669                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_DS)
     8670                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_ES)
     8671                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_FS)
     8672                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_GS)
     8673                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_DS)
     8674                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_ES)
     8675                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_FS)
     8676                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_GS),
    86648677                                iemCImpl_retf, pVCpu->iem.s.enmEffOpSize, 0);
    86658678}
     
    87188731    IEM_MC_DEFER_TO_CIMPL_1_RET(IEM_CIMPL_F_BRANCH_INDIRECT | IEM_CIMPL_F_BRANCH_FAR | IEM_CIMPL_F_BRANCH_STACK_FAR
    87198732                                | IEM_CIMPL_F_MODE | IEM_CIMPL_F_RFLAGS | IEM_CIMPL_F_CHECK_IRQ_BEFORE | IEM_CIMPL_F_VMEXIT,
    8720                                   RT_BIT_64(kIemNativeGstReg_GprFirst      + X86_GREG_xSP)
    8721                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_DS)
    8722                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_DS)
    8723                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_DS)
    8724                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_ES)
    8725                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_ES)
    8726                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_ES)
    8727                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_FS)
    8728                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_FS)
    8729                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_FS)
    8730                                 | RT_BIT_64(kIemNativeGstReg_SegSelFirst   + X86_SREG_GS)
    8731                                 | RT_BIT_64(kIemNativeGstReg_SegBaseFirst  + X86_SREG_GS)
    8732                                 | RT_BIT_64(kIemNativeGstReg_SegLimitFirst + X86_SREG_GS),
     8733                                  RT_BIT_64(kIemNativeGstReg_GprFirst       + X86_GREG_xSP)
     8734                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_DS)
     8735                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_DS)
     8736                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_DS)
     8737                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_DS)
     8738                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_ES)
     8739                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_ES)
     8740                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_ES)
     8741                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_ES)
     8742                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_FS)
     8743                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_FS)
     8744                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_FS)
     8745                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_FS)
     8746                                | RT_BIT_64(kIemNativeGstReg_SegSelFirst    + X86_SREG_GS)
     8747                                | RT_BIT_64(kIemNativeGstReg_SegBaseFirst   + X86_SREG_GS)
     8748                                | RT_BIT_64(kIemNativeGstReg_SegLimitFirst  + X86_SREG_GS)
     8749                                | RT_BIT_64(kIemNativeGstReg_SegAttribFirst + X86_SREG_GS),
    87338750                                iemCImpl_iret, pVCpu->iem.s.enmEffOpSize);
    87348751    /* Segment registers are sanitized when returning to an outer ring, or fully
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