VirtualBox

Changeset 41436 in vbox for trunk/src


Ignore:
Timestamp:
May 24, 2012 2:47:09 PM (13 years ago)
Author:
vboxsync
Message:

REM,EM: A20 fixes.

Location:
trunk/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/EM.cpp

    r41326 r41436  
    13131313    }
    13141314
    1315     Assert(PGMPhysIsA20Enabled(pVCpu));
     1315    /*Assert(PGMPhysIsA20Enabled(pVCpu));*/
    13161316    return EMSTATE_RAW;
    13171317#endif /* !IEM_VERIFICATION_MODE */
  • trunk/src/recompiler/VBoxRecompiler.c

    r41385 r41436  
    127127static STAMPROFILEADV gStatMemWrite;
    128128static STAMPROFILE    gStatGCPhys2HCVirt;
    129 static STAMPROFILE    gStatHCVirt2GCPhys;
    130129static STAMCOUNTER    gStatCpuGetTSC;
    131130static STAMCOUNTER    gStatRefuseTFInhibit;
     
    377376    STAM_REG(pVM, &gStatMemRead,            STAMTYPE_PROFILE, "/PROF/REM/MemRead",    STAMUNIT_TICKS_PER_CALL, "Profiling memory access.");
    378377    STAM_REG(pVM, &gStatMemWrite,           STAMTYPE_PROFILE, "/PROF/REM/MemWrite",   STAMUNIT_TICKS_PER_CALL, "Profiling memory access.");
    379     STAM_REG(pVM, &gStatHCVirt2GCPhys,      STAMTYPE_PROFILE, "/PROF/REM/HCVirt2GCPhys", STAMUNIT_TICKS_PER_CALL, "Profiling memory conversion.");
    380     STAM_REG(pVM, &gStatGCPhys2HCVirt,      STAMTYPE_PROFILE, "/PROF/REM/GCPhys2HCVirt", STAMUNIT_TICKS_PER_CALL, "Profiling memory conversion.");
     378    STAM_REG(pVM, &gStatGCPhys2HCVirt,      STAMTYPE_PROFILE, "/PROF/REM/GCPhys2HCVirt", STAMUNIT_TICKS_PER_CALL, "Profiling memory conversion (PGMR3PhysTlbGCPhys2Ptr).");
    381379
    382380    STAM_REG(pVM, &gStatCpuGetTSC,          STAMTYPE_COUNTER, "/REM/CpuGetTSC",         STAMUNIT_OCCURENCES,     "cpu_get_tsc calls");
     
    556554    STAM_DEREG(pVM, &gStatMemRead);
    557555    STAM_DEREG(pVM, &gStatMemWrite);
    558     STAM_DEREG(pVM, &gStatHCVirt2GCPhys);
    559556    STAM_DEREG(pVM, &gStatGCPhys2HCVirt);
    560557
     
    16511648    }
    16521649
    1653     Assert(env->pVCpu && PGMPhysIsA20Enabled(env->pVCpu));
     1650/*    Assert(env->pVCpu && PGMPhysIsA20Enabled(env->pVCpu));*/
    16541651    *piException = EXCP_EXECUTE_RAW;
    16551652    return true;
     
    17331730    int rc;
    17341731
     1732
    17351733    /* Address must be aligned enough to fiddle with lower bits */
    17361734    Assert((physAddr & 0x3) == 0);
    1737 
     1735    /*AssertMsg((env1->a20_mask & physAddr) == physAddr, ("%llx\n", (uint64_t)physAddr));*/
     1736
     1737    STAM_PROFILE_START(&gStatGCPhys2HCVirt, a);
    17381738    rc = PGMR3PhysTlbGCPhys2Ptr(env1->pVM, physAddr, true /*fWritable*/, &pv);
     1739    STAM_PROFILE_STOP(&gStatGCPhys2HCVirt, a);
    17391740    Assert(   rc == VINF_SUCCESS
    17401741           || rc == VINF_PGM_PHYS_TLB_CATCH_WRITE
  • trunk/src/recompiler/exec-all.h

    r37702 r41436  
    349349{
    350350    int mmu_idx, page_index, pd;
     351# ifndef VBOX
    351352    void *p;
     353# endif
    352354
    353355    page_index = (addr >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1);
  • trunk/src/recompiler/target-i386/helper.c

    r37689 r41436  
    829829    }
    830830 do_mapping:
     831#ifndef VBOX
    831832    pte = pte & env->a20_mask;
     833#endif
    832834
    833835    /* Even if 4MB pages, we map only one 4KB page in the cache to
     
    835837    page_offset = (addr & TARGET_PAGE_MASK) & (page_size - 1);
    836838    paddr = (pte & TARGET_PAGE_MASK) + page_offset;
     839#ifdef VBOX
     840    paddr &= env->a20_mask;
     841#endif
    837842    vaddr = virt_addr + page_offset;
    838843
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette