Changeset 105035 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Jun 26, 2024 7:48:07 PM (8 months ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompFuncs.h
r104984 r105035 414 414 */ 415 415 if ( IEM_F_MODE_X86_IS_FLAT(pReNative->fExec) 416 || !(pTbOrg->fFlags & IEMTB_F_CS_LIM_CHECKS) ) 416 # if 0 /** @todo breaks on IP/EIP/RIP wraparound tests in bs3-cpu-weird-1. See also iemNativeHlpReturnBreakViaLookup. */ 417 || !(pTbOrg->fFlags & IEMTB_F_CS_LIM_CHECKS) 418 # endif 419 ) 417 420 { 418 421 RTGCPHYS const GCPhysPcCurrent = iemNativeCallEntryToGCPhysPc(pTbOrg, pCallEntry); -
trunk/src/VBox/VMM/VMMAll/IEMAllN8veRecompiler.cpp
r104956 r105035 182 182 if (pVCpu->cpum.GstCtx.rflags.uBoth & CPUMCTX_INHIBIT_NMI) 183 183 fAssertFlags |= IEMTB_F_INHIBIT_NMI; 184 # if 1 /** @todo breaks on IP/EIP/RIP wraparound tests in bs3-cpu-weird-1. */ 185 Assert(IEM_F_MODE_X86_IS_FLAT(fFlags)); 186 # else 184 187 if (!IEM_F_MODE_X86_IS_FLAT(fFlags)) 185 188 { … … 188 191 fAssertFlags |= IEMTB_F_CS_LIM_CHECKS; 189 192 } 193 # endif 190 194 Assert(!(fFlags & ~(IEMTB_F_KEY_MASK | IEMTB_F_TYPE_MASK))); 191 195 AssertMsg(fFlags == fAssertFlags, ("fFlags=%#RX32 fAssertFlags=%#RX32 cs:rip=%04x:%#010RX64\n", -
trunk/src/VBox/VMM/include/IEMMc.h
r104419 r105035 2659 2659 */ 2660 2660 #ifdef VBOX_STRICT 2661 # define IEM_MC_CALL_CIMPL_HLP_RET(a_fFlags, a_CallExpr) \2661 # define IEM_MC_CALL_CIMPL_HLP_RET(a_fFlags, a_CallExpr) \ 2662 2662 do { \ 2663 2663 uint8_t const cbInstr = IEM_GET_INSTR_LEN(pVCpu); /* may be flushed */ \ … … 2669 2669 if (rcStrictHlp == VINF_SUCCESS) \ 2670 2670 { \ 2671 uint64_t const fRipMask = (pVCpu->iem.s.fExec & IEM_F_MODE_CPUMODE_MASK) == IEMMODE_64BIT ? UINT64_MAX : UINT32_MAX; \ 2671 2672 AssertMsg( ((a_fFlags) & IEM_CIMPL_F_BRANCH_ANY) \ 2672 || ( uRipBefore + cbInstr== pVCpu->cpum.GstCtx.rip \2673 && uCsBefore 2673 || ( ((uRipBefore + cbInstr) & fRipMask) == pVCpu->cpum.GstCtx.rip \ 2674 && uCsBefore == pVCpu->cpum.GstCtx.cs.Sel) \ 2674 2675 || ( ((a_fFlags) & IEM_CIMPL_F_REP) \ 2675 2676 && uRipBefore == pVCpu->cpum.GstCtx.rip \ 2676 2677 && uCsBefore == pVCpu->cpum.GstCtx.cs.Sel), \ 2677 2678 ("CS:RIP=%04x:%08RX64 + %x -> %04x:%08RX64, expected %04x:%08RX64\n", uCsBefore, uRipBefore, cbInstr, \ 2678 pVCpu->cpum.GstCtx.cs.Sel, pVCpu->cpum.GstCtx.rip, uCsBefore, uRipBefore + cbInstr)); \2679 pVCpu->cpum.GstCtx.cs.Sel, pVCpu->cpum.GstCtx.rip, uCsBefore, (uRipBefore + cbInstr) & fRipMask)); \ 2679 2680 if ((a_fFlags) & IEM_CIMPL_F_RFLAGS) \ 2680 2681 { /* No need to check fEflBefore */ Assert(!((a_fFlags) & IEM_CIMPL_F_STATUS_FLAGS)); } \
Note:
See TracChangeset
for help on using the changeset viewer.