- Timestamp:
- Mar 3, 2009 9:12:06 AM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 43607
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
r17215 r17259 1673 1673 int rc = VINF_SUCCESS; 1674 1674 RTGCPHYS GCPhysCR3; 1675 if ( pVM->pgm.s.enmGuestMode == PGMMODE_PAE1676 || pVM->pgm.s.enmGuestMode == PGMMODE_PAE_NX1677 || pVM->pgm.s.enmGuestMode == PGMMODE_AMD641678 || pVM->pgm.s.enmGuestMode == PGMMODE_AMD64_NX)1675 switch (pVM->pgm.s.enmGuestMode) 1676 { 1677 case PGMMODE_PAE: 1678 case PGMMODE_PAE_NX: 1679 1679 GCPhysCR3 = (RTGCPHYS)(cr3 & X86_CR3_PAE_PAGE_MASK); 1680 else 1680 break; 1681 case PGMMODE_AMD64: 1682 case PGMMODE_AMD64_NX: 1683 GCPhysCR3 = (RTGCPHYS)(cr3 & X86_CR3_AMD64_PAGE_MASK); 1684 break; 1685 default: 1681 1686 GCPhysCR3 = (RTGCPHYS)(cr3 & X86_CR3_PAGE_MASK); 1687 break; 1688 } 1689 1682 1690 if (pVM->pgm.s.GCPhysCR3 != GCPhysCR3) 1683 1691 { 1684 #ifdef VBOX_WITH_PGMPOOL_PAGING_ONLY1685 /* Unmap the old CR3 value before activating the new one. */1686 rc = PGM_BTH_PFN(UnmapCR3, pVM)(pVM);1687 AssertRC(rc);1688 #endif1689 1692 RTGCPHYS GCPhysOldCR3 = pVM->pgm.s.GCPhysCR3; 1690 1693 pVM->pgm.s.GCPhysCR3 = GCPhysCR3; … … 1770 1773 int rc = VINF_SUCCESS; 1771 1774 RTGCPHYS GCPhysCR3; 1772 if ( pVM->pgm.s.enmGuestMode == PGMMODE_PAE1773 || pVM->pgm.s.enmGuestMode == PGMMODE_PAE_NX1774 || pVM->pgm.s.enmGuestMode == PGMMODE_AMD641775 || pVM->pgm.s.enmGuestMode == PGMMODE_AMD64_NX)1775 switch (pVM->pgm.s.enmGuestMode) 1776 { 1777 case PGMMODE_PAE: 1778 case PGMMODE_PAE_NX: 1776 1779 GCPhysCR3 = (RTGCPHYS)(cr3 & X86_CR3_PAE_PAGE_MASK); 1777 else 1780 break; 1781 case PGMMODE_AMD64: 1782 case PGMMODE_AMD64_NX: 1783 GCPhysCR3 = (RTGCPHYS)(cr3 & X86_CR3_AMD64_PAGE_MASK); 1784 break; 1785 default: 1778 1786 GCPhysCR3 = (RTGCPHYS)(cr3 & X86_CR3_PAGE_MASK); 1787 break; 1788 } 1779 1789 if (pVM->pgm.s.GCPhysCR3 != GCPhysCR3) 1780 1790 { … … 1847 1857 RTGCPHYS GCPhysCR3Old = pVM->pgm.s.GCPhysCR3; 1848 1858 RTGCPHYS GCPhysCR3; 1849 if ( pVM->pgm.s.enmGuestMode == PGMMODE_PAE1850 || pVM->pgm.s.enmGuestMode == PGMMODE_PAE_NX1851 || pVM->pgm.s.enmGuestMode == PGMMODE_AMD641852 || pVM->pgm.s.enmGuestMode == PGMMODE_AMD64_NX)1859 switch (pVM->pgm.s.enmGuestMode) 1860 { 1861 case PGMMODE_PAE: 1862 case PGMMODE_PAE_NX: 1853 1863 GCPhysCR3 = (RTGCPHYS)(cr3 & X86_CR3_PAE_PAGE_MASK); 1854 else 1864 break; 1865 case PGMMODE_AMD64: 1866 case PGMMODE_AMD64_NX: 1867 GCPhysCR3 = (RTGCPHYS)(cr3 & X86_CR3_AMD64_PAGE_MASK); 1868 break; 1869 default: 1855 1870 GCPhysCR3 = (RTGCPHYS)(cr3 & X86_CR3_PAGE_MASK); 1871 break; 1872 } 1856 1873 1857 1874 #ifdef VBOX_WITH_PGMPOOL_PAGING_ONLY 1858 1875 if (pVM->pgm.s.GCPhysCR3 != GCPhysCR3) 1859 1876 { 1860 /* Unmap the old CR3 value before activating the new one. */ 1861 rc = PGM_BTH_PFN(UnmapCR3, pVM)(pVM); 1862 AssertRC(rc); 1863 } 1864 #endif 1865 1877 pVM->pgm.s.GCPhysCR3 = GCPhysCR3; 1878 rc = PGM_BTH_PFN(MapCR3, pVM)(pVM, GCPhysCR3); 1879 } 1880 #else 1866 1881 pVM->pgm.s.GCPhysCR3 = GCPhysCR3; 1867 1882 rc = PGM_BTH_PFN(MapCR3, pVM)(pVM, GCPhysCR3); 1883 #endif 1868 1884 #ifdef IN_RING3 1869 1885 if (rc == VINF_PGM_SYNC_CR3)
Note:
See TracChangeset
for help on using the changeset viewer.