VirtualBox

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


Ignore:
Timestamp:
Dec 7, 2023 1:33:02 PM (16 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
160666
Message:

VMM/IEM: Fixed regression from r160580 where we'd be triggering #UD on arm executing lock-prefixed inc, dec, neg, not and some others. bugref:10371

File:
1 edited

Legend:

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

    r102473 r102522  
    52785278            \
    52795279            IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \
    5280             IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
     5280            IEMOP_HLP_DONE_DECODING(); /** @todo testcase: lock xchg */ \
    52815281            IEM_MC_MEM_MAP_U8_RW(pu8Mem, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    52825282            IEM_MC_FETCH_GREG_U8(uTmpReg, IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    53815381                        \
    53825382                        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \
    5383                         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
     5383                        IEMOP_HLP_DONE_DECODING(); /** @todo testcase: lock xchg */ \
    53845384                        IEM_MC_MEM_MAP_U16_RW(pu16Mem, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    53855385                        IEM_MC_FETCH_GREG_U16(uTmpReg, IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    54015401                        \
    54025402                        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \
    5403                         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
     5403                        IEMOP_HLP_DONE_DECODING(); \
    54045404                        IEM_MC_MEM_MAP_U32_RW(pu32Mem, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    54055405                        IEM_MC_FETCH_GREG_U32(uTmpReg, IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    54215421                        \
    54225422                        IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \
    5423                         IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
     5423                        IEMOP_HLP_DONE_DECODING(); \
    54245424                        IEM_MC_MEM_MAP_U64_RW(pu64Mem, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    54255425                        IEM_MC_FETCH_GREG_U64(uTmpReg, IEM_GET_MODRM_REG(pVCpu, bRm)); \
     
    1312513125                    \
    1312613126                    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \
    13127                     IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
     13127                    IEMOP_HLP_DONE_DECODING(); \
    1312813128                    IEM_MC_MEM_MAP_U16_RW(pu16Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    1312913129                    IEM_MC_FETCH_EFLAGS(EFlags); \
     
    1314413144                    \
    1314513145                    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \
    13146                     IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
     13146                    IEMOP_HLP_DONE_DECODING(); \
    1314713147                    IEM_MC_MEM_MAP_U32_RW(pu32Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    1314813148                    IEM_MC_FETCH_EFLAGS(EFlags); \
     
    1316313163                    \
    1316413164                    IEM_MC_CALC_RM_EFF_ADDR(GCPtrEffDst, bRm, 0); \
    13165                     IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); \
     13165                    IEMOP_HLP_DONE_DECODING(); \
    1316613166                    IEM_MC_MEM_MAP_U64_RW(pu64Dst, bUnmapInfo, pVCpu->iem.s.iEffSeg, GCPtrEffDst); \
    1316713167                    IEM_MC_FETCH_EFLAGS(EFlags); \
Note: See TracChangeset for help on using the changeset viewer.

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