Changeset 105072 in vbox for trunk/src/VBox/VMM/include
- Timestamp:
- Jun 28, 2024 12:03:20 PM (7 months ago)
- Location:
- trunk/src/VBox/VMM/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/IEMInline.h
r104988 r105072 579 579 /* 580 580 * Check for hardware instruction breakpoints. 581 * Note! Guest breakpoints are only checked after POP SS or MOV SS on AMD CPUs. 581 582 */ 582 583 if (RT_LIKELY(!(pVCpu->iem.s.fExec & IEM_F_PENDING_BRK_INSTR))) … … 585 586 { 586 587 VBOXSTRICTRC rcStrict = DBGFBpCheckInstruction(pVCpu->CTX_SUFF(pVM), pVCpu, 587 pVCpu->cpum.GstCtx.rip + pVCpu->cpum.GstCtx.cs.u64Base); 588 pVCpu->cpum.GstCtx.rip + pVCpu->cpum.GstCtx.cs.u64Base, 589 !(pVCpu->cpum.GstCtx.rflags.uBoth & CPUMCTX_INHIBIT_SHADOW_SS) 590 || IEM_IS_GUEST_CPU_AMD(pVCpu)); 588 591 if (RT_LIKELY(rcStrict == VINF_SUCCESS)) 589 592 { /* likely */ } … … 622 625 /* 623 626 * Check for hardware instruction breakpoints. 627 * Note! Guest breakpoints are only checked after POP SS or MOV SS on AMD CPUs. 624 628 */ 625 629 if (RT_LIKELY(!(pVCpu->iem.s.fExec & IEM_F_PENDING_BRK_INSTR))) … … 628 632 { 629 633 VBOXSTRICTRC rcStrict = DBGFBpCheckInstruction(pVCpu->CTX_SUFF(pVM), pVCpu, 630 pVCpu->cpum.GstCtx.rip + pVCpu->cpum.GstCtx.cs.u64Base); 634 pVCpu->cpum.GstCtx.rip + pVCpu->cpum.GstCtx.cs.u64Base, 635 !(pVCpu->cpum.GstCtx.rflags.uBoth & CPUMCTX_INHIBIT_SHADOW_SS) 636 || IEM_IS_GUEST_CPU_AMD(pVCpu)); 631 637 if (RT_LIKELY(rcStrict == VINF_SUCCESS)) 632 638 { /* likely */ } … … 2111 2117 if (pVCpu->cpum.GstCtx.eflags.uBoth & X86_EFL_TF) 2112 2118 pVCpu->cpum.GstCtx.dr[6] |= X86_DR6_BS; 2113 pVCpu->cpum.GstCtx.dr[6] |= (pVCpu->cpum.GstCtx.eflags.uBoth & CPUMCTX_DBG_HIT_DRX_MASK) >> CPUMCTX_DBG_HIT_DRX_SHIFT; 2119 pVCpu->cpum.GstCtx.dr[6] |= (pVCpu->cpum.GstCtx.eflags.uBoth & CPUMCTX_DBG_HIT_DRX_MASK_NONSILENT) 2120 >> CPUMCTX_DBG_HIT_DRX_SHIFT; 2114 2121 LogFlowFunc(("Guest #DB fired at %04X:%016llX: DR6=%08X, RFLAGS=%16RX64\n", 2115 2122 pVCpu->cpum.GstCtx.cs.Sel, pVCpu->cpum.GstCtx.rip, (unsigned)pVCpu->cpum.GstCtx.dr[6], … … 2828 2835 pVCpu->cpum.GstCtx.dr[6] &= ~X86_DR6_B_MASK; 2829 2836 pVCpu->cpum.GstCtx.dr[6] |= X86_DR6_BS 2830 | (pVCpu->cpum.GstCtx.eflags.uBoth & CPUMCTX_DBG_HIT_DRX_MASK) >> CPUMCTX_DBG_HIT_DRX_SHIFT; 2837 | ( (pVCpu->cpum.GstCtx.eflags.uBoth & CPUMCTX_DBG_HIT_DRX_MASK_NONSILENT) 2838 >> CPUMCTX_DBG_HIT_DRX_SHIFT); 2831 2839 /** @todo Do we set all pending \#DB events, or just one? */ 2832 2840 LogFlowFunc(("Guest #DB fired at %04X:%016llX: DR6=%08X, RFLAGS=%16RX64 (popf)\n", -
trunk/src/VBox/VMM/include/IEMInternal.h
r105036 r105072 1981 1981 R3PTRTYPE(PIEMTB) pTbLookupEntryDummyR3; 1982 1982 1983 /** Dummy TLB entry used for accesses to pages with databreakpoints. */ 1984 IEMTLBENTRY DataBreakpointTlbe; 1985 1983 1986 /** Threaded TB statistics: Times TB execution was broken off before reaching the end. */ 1984 1987 STAMCOUNTER StatTbThreadedExecBreaks; … … 2201 2204 STAMCOUNTER StatMemBounceBufferMapPhys; 2202 2205 /** @} */ 2203 2204 uint64_t au64Padding[ 1];2206 2207 uint64_t au64Padding[5]; 2205 2208 /** @} */ 2206 2209
Note:
See TracChangeset
for help on using the changeset viewer.