VirtualBox

Changeset 100623 in vbox for trunk


Ignore:
Timestamp:
Jul 18, 2023 9:58:30 AM (17 months ago)
Author:
vboxsync
Message:

VMM/IEM: pop [mem] correction, iEffSeg must be fetched after address decoding. Fixes regression from r157932. bugref:10369

File:
1 edited

Legend:

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

    r100591 r100623  
    52205220        {
    52215221            IEM_MC_BEGIN(2, 0);
    5222             IEM_MC_ARG_CONST(uint8_t,       iEffSeg, /*=*/ pVCpu->iem.s.iEffSeg, 0);
    5223             IEM_MC_ARG(      RTGCPTR,       GCPtrEffDst,                        1);
     5222            IEM_MC_ARG(uint8_t, iEffSeg,    0);
     5223            IEM_MC_ARG(RTGCPTR, GCPtrEffDst, 1);
    52245224            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 2 << 8);
    52255225            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     5226            IEM_MC_ASSIGN(iEffSeg, pVCpu->iem.s.iEffSeg);
    52265227            IEM_MC_CALL_CIMPL_2(0, iemCImpl_pop_mem16, iEffSeg, GCPtrEffDst);
    52275228            IEM_MC_END();
     
    52315232        {
    52325233            IEM_MC_BEGIN(2, 0);
    5233             IEM_MC_ARG_CONST(uint8_t,       iEffSeg, /*=*/ pVCpu->iem.s.iEffSeg, 0);
    5234             IEM_MC_ARG(      RTGCPTR,       GCPtrEffDst,                        1);
     5234            IEM_MC_ARG(uint8_t, iEffSeg,    0);
     5235            IEM_MC_ARG(RTGCPTR, GCPtrEffDst, 1);
    52355236            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 4 << 8);
    52365237            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     5238            IEM_MC_ASSIGN(iEffSeg, pVCpu->iem.s.iEffSeg);
    52375239            IEM_MC_CALL_CIMPL_2(0, iemCImpl_pop_mem32, iEffSeg, GCPtrEffDst);
    52385240            IEM_MC_END();
     
    52425244        {
    52435245            IEM_MC_BEGIN(2, 0);
    5244             IEM_MC_ARG_CONST(uint8_t,       iEffSeg, /*=*/ pVCpu->iem.s.iEffSeg, 0);
    5245             IEM_MC_ARG(      RTGCPTR,       GCPtrEffDst,                        1);
     5246            IEM_MC_ARG(uint8_t, iEffSeg,    0);
     5247            IEM_MC_ARG(RTGCPTR, GCPtrEffDst, 1);
    52465248            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 8 << 8);
    52475249            IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX();
     5250            IEM_MC_ASSIGN(iEffSeg, pVCpu->iem.s.iEffSeg);
    52485251            IEM_MC_CALL_CIMPL_2(0, iemCImpl_pop_mem64, iEffSeg, GCPtrEffDst);
    52495252            IEM_MC_END();
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