Changeset 97286 in vbox for trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp
- Timestamp:
- Oct 24, 2022 10:15:44 PM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp
r97231 r97286 197 197 VMM_INT_DECL(bool) CPUMAssertGuestRFlagsCookie(PVM pVM, PVMCPU pVCpu) 198 198 { 199 AssertLogRelMsgReturn( (pVCpu->cpum.s.Guest.rflags.uBoth & ~(uint64_t)(X86_EFL_LIVE_MASK | X86_EFL_RA1_MASK)) 199 AssertLogRelMsgReturn( ( pVCpu->cpum.s.Guest.rflags.uBoth 200 & ~(uint64_t)(CPUMX86EFLAGS_HW_MASK_64 | CPUMX86EFLAGS_INT_MASK_64)) 200 201 == pVM->cpum.s.fReservedRFlagsCookie 201 && (pVCpu->cpum.s.Guest.rflags.uBoth & X86_EFL_RA1_MASK) == X86_EFL_RA1_MASK, 202 && (pVCpu->cpum.s.Guest.rflags.uBoth & X86_EFL_RA1_MASK) == X86_EFL_RA1_MASK 203 && (pVCpu->cpum.s.Guest.rflags.uBoth & X86_EFL_RAZ_MASK & CPUMX86EFLAGS_HW_MASK_64) == 0, 202 204 ("rflags=%#RX64 vs fReservedRFlagsCookie=%#RX64\n", 203 205 pVCpu->cpum.s.Guest.rflags.uBoth, pVM->cpum.s.fReservedRFlagsCookie), … … 1951 1953 * or raw-mode). Hence we use the function below which handles the details. 1952 1954 */ 1953 if ( pVCpu->cpum.s.Guest.fInhibit == 01954 || ( !(pVCpu->cpum.s.Guest. fInhibit& CPUMCTX_INHIBIT_NMI)1955 if ( !(pVCpu->cpum.s.Guest.eflags.uBoth & CPUMCTX_INHIBIT_ALL_MASK) 1956 || ( !(pVCpu->cpum.s.Guest.eflags.uBoth & CPUMCTX_INHIBIT_NMI) 1955 1957 && pVCpu->cpum.s.Guest.uRipInhibitInt != pVCpu->cpum.s.Guest.rip)) 1956 1958 { … … 1983 1985 * NONMASKABLE INTERRUPT (NMI)" in SDM 3A seems pretty clear to me. 1984 1986 */ 1985 if (!(pVCpu->cpum.s.Guest. fInhibit& CPUMCTX_INHIBIT_NMI))1987 if (!(pVCpu->cpum.s.Guest.eflags.uBoth & CPUMCTX_INHIBIT_NMI)) 1986 1988 return CPUMINTERRUPTIBILITY_INT_INHIBITED; 1987 1989 return CPUMINTERRUPTIBILITY_NMI_INHIBIT;
Note:
See TracChangeset
for help on using the changeset viewer.