Previous 199869 Revisions Next

r20785 Thursday 7th February, 2013 at 01:28:14 UTC by Carl
i386: improve tlb performance slightly (nw)
[src/emu/cpu]vtlb.c
[src/emu/cpu/i386]i386priv.h

trunk/src/emu/cpu/i386/i386priv.h
r20784r20785
527527            ret = FALSE;
528528         else
529529         {
530            if(write)
531               perm |= VTLB_FLAG_DIRTY;
530532            if(!(page_dir & 0x40) && write)
531            {
532533               cpustate->program->write_dword(pdbr + directory * 4, page_dir | 0x60);
533               perm |= VTLB_FLAG_DIRTY;
534            }
535534            else if(!(page_dir & 0x20))
536535               cpustate->program->write_dword(pdbr + directory * 4, page_dir | 0x20);
537536            ret = TRUE;
r20784r20785
557556               ret = FALSE;
558557            else
559558            {
559               if(write)
560                  perm |= VTLB_FLAG_DIRTY;
560561               if(!(page_dir & 0x20))
561562                  cpustate->program->write_dword(pdbr + directory * 4, page_dir | 0x20);
562563               if(!(page_entry & 0x40) && write)
563               {
564564                  cpustate->program->write_dword((page_dir & 0xfffff000) + (table * 4), page_entry | 0x60);
565                  perm |= VTLB_FLAG_DIRTY;
566               }
567565               else if(!(page_entry & 0x20))
568566                  cpustate->program->write_dword((page_dir & 0xfffff000) + (table * 4), page_entry | 0x20);
569567               ret = TRUE;
trunk/src/emu/cpu/vtlb.c
r20784r20785
232232void vtlb_dynload(vtlb_state *vtlb, int index, offs_t address, vtlb_entry value)
233233{
234234   vtlb_entry entry = vtlb->table[index];
235   value &= VTLB_FLAGS_MASK;
236235
237236   if (vtlb->dynamic == 0)
238237   {

Previous 199869 Revisions Next


© 1997-2024 The MAME Team