f0c9896964
mode uses the notion of the guest-to-host TLB. This has the benefit of allowing more uniform and streamlined acceleration code in access.cc which does not have to check if CR0.PG is set, eliminating a few instructions per guest access. Shaved just a little off execution time, as expected. Also, access_linear now breaks accesses which span two pages, into two calls the the physical memory routines, when paging is off, just like it always has for paging on. Besides being more uniform, this allows the physical memory access routines to known the complete data item is contained within a single physical page, and stop reapplying the A20ADDR() macro to pointers as it increments them. Perhaps things can be optimized a little more now there too... I renamed the routines to {read,write}PhysicalPage() as a reminder that these routines now operate on data solely within one page. I also added a little code so that the paging module is notified when the A20 line is tweaked, so it can dump whatever mappings it wants to. |
||
---|---|---|
.. | ||
Makefile.in | ||
memory.cc | ||
memory.h | ||
misc_mem.cc |