3a5f338419
- Paging code rehash. You must now use --enable-4meg-pages to use 4Meg pages, with the default of disabled, since we don't well support 4Meg pages yet. Paging table walks model a real CPU more closely now, and I fixed some bugs in the old logic. - Segment check redundancy elimination. After a segment is loaded, reads and writes are marked when a segment type check succeeds, and they are skipped thereafter, when possible. - Repeated IO and memory string copy acceleration. Only some variants of instructions are available on all platforms, word and dword variants only on x86 for the moment due to alignment and endian issues. This is compiled in currently with no option - I should add a configure option. - Added a guest linear address to host TLB. Actually, I just stick the host address (mem.vector[addr] address) in the upper 29 bits of the field 'combined_access' since they are unused. Convenient for now. I'm only storing page frame addresses. This was the simplest for of such a TLB. We can likely enhance this. Also, I only accelerated the normal read/write routines in access.cc. Could also modify the read-modify-write versions too. You must use --enable-guest2host-tlb, to try this out. Currently speeds up Win95 boot time by about 3.5% for me. More ground to cover... - Minor mods to CPUI/MOV_CdRd for CMOV. - Integrated enhancements from Volker to getHostMemAddr() for PCI being enabled. |
||
---|---|---|
.. | ||
Makefile.in | ||
memory.cc | ||
memory.h | ||
misc_mem.cc |