VirtualBox

Changeset 11488 in vbox


Ignore:
Timestamp:
Aug 19, 2008 2:24:46 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
34985
Message:

stoswd emulation fix (DF).

Location:
trunk/src/VBox/VMM
Files:
2 edited

Legend:

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

    r11453 r11488  
    13651365    else
    13661366    {   
     1367        int offIncrement = pRegFrame->eflags.Bits.u1DF ? -(signed)cbSize : (signed)cbSize;
     1368
     1369        if (!cTransfers)
     1370            return VINF_SUCCESS;
     1371
    13671372        /* Access verification first; we currently can't recover properly from traps inside this instruction */
    1368         rc = PGMVerifyAccess(pVM, GCDest, cTransfers * cbSize, X86_PTE_RW | X86_PTE_US);
     1373        rc = PGMVerifyAccess(pVM, GCDest - (offIncrement > 0) ? 0 : ((cTransfers-1) * cbSize), cTransfers * cbSize, X86_PTE_RW | X86_PTE_US);
    13691374        if (rc != VINF_SUCCESS)
    13701375        {
     
    13841389
    13851390            Assert(rc == VINF_SUCCESS);
    1386             GCOffset += cbSize;
    1387             GCDest   += cbSize;
     1391            GCOffset += offIncrement;
     1392            GCDest   += offIncrement;
    13881393            cTransfers--;
    13891394        }
  • trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp

    r11398 r11488  
    11861186        /* Two options here:
    11871187         * - external interrupt pending, but masked by the TPR value.
    1188          *   -> CR8 updates that lower the TPR value to below the current value should cause an exit
     1188         *   -> a CR8 update that lower the current TPR value should cause an exit
    11891189         * - no pending interrupts
    11901190         *   -> We don't need to be explicitely notified. There are enough world switches for detecting pending interrupts.
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