Bochs/bochs/cpu
Kevin Lawton 491035fcb2 I extended the guest-to-host TLB acceleration across the
Read-Modify-Write instructions.  The first read phase stores
the host pointer in the "pages" field if a direct use pointer
is available.  The Write phase first checks if a pointer was
issued and uses it for a direct write if available.

I chose the "pages" field since it needs to be checked by the
write_RMW_virtual variants anyways and thus needs to be
cached anyways.

Mostly the mods where to access.cc, but I did also macro-ize
the calls to write_RMW_virtual...() in files which use it
and cpu.h.  Right now, the macro is just a straight pass-through.
I tried expanding it to a quick initial check for the pointer
availability to do the write in-place, with a function call
as a fall-back.  That didn't seemed to matter at all.

Booting is not helped by this really.  The upper bound of
the gain is 5 or 6%, and that's only if you have a loop that
looks like:

label:
  add [eax], ebx   ;; mega read-modify-write instruction
  jmp label        ;; intensive loop.
2002-09-06 21:54:58 +00:00
..
access.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
apic.cc - if misaligned or wrong size write, print the address and length! 2002-07-23 15:32:14 +00:00
arith8.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
arith16.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
arith32.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
bcd.cc - AAM can generate an exception (divide by 0) 2002-07-06 11:02:35 +00:00
bit.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
cpu.cc Added guest2host TLB tricks to read-modify-write variants of 2002-09-03 04:54:28 +00:00
cpu.h I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
ctrl_xfer8.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
ctrl_xfer16.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
ctrl_xfer32.cc Added a comment on iret flag writing. 2002-02-22 05:33:36 +00:00
ctrl_xfer_pro.cc - Applied patch from Santiago Bazerque. See this bug report: 2001-11-10 23:00:55 +00:00
data_xfer8.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
data_xfer16.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
data_xfer32.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
debugstuff.cc - committed patches/patch.no-busy-in-tr-cache. I'm leaving the patch 2001-10-09 21:15:14 +00:00
decode16.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
decode32.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
exception.cc - add #if BX_DEBUGGER around a few more things. :) 2002-03-12 19:00:44 +00:00
fetchdecode.cc Added guest2host TLB tricks to read-modify-write variants of 2002-09-03 04:54:28 +00:00
flag_ctrl_pro.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
flag_ctrl.cc - POPFD implemented for vm86 (tested with MS-DOS 6.2 and EMM386) 2002-08-05 19:45:32 +00:00
init.cc - apply a patch I've been working on 2002-09-06 16:43:26 +00:00
io_pro.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
io.cc Fixed repeated IO/string instruction acceleration bug. Not all the 2002-09-03 19:38:27 +00:00
lazy_flags.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
lazy_flags.h - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
logical8.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
logical16.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
logical32.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
Makefile.in - update Makefile dependencies on nearly everything 2002-08-27 22:43:57 +00:00
mult8.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
mult16.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
mult32.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
paging.cc Macroize BX_TLB_QUICK_INVALIDATE code. 2002-09-06 19:21:55 +00:00
proc_ctrl.cc Now, when you compile with --enable-guest2host-tlb, non-paged 2002-09-05 02:31:24 +00:00
protect_ctrl_pro.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
protect_ctrl.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
resolve16.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
resolve32.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
segment_ctrl_pro.cc - patch from Mike Rieker <mrieker@o3one.org> associated with this bug rpt: 2001-11-13 05:11:41 +00:00
segment_ctrl.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
shift8.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
shift16.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
shift32.cc I extended the guest-to-host TLB acceleration across the 2002-09-06 21:54:58 +00:00
soft_int.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
stack16.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
stack32.cc - Somebody was convinced that the enter instruction with level>0 was broken, 2002-03-05 15:50:17 +00:00
stack_pro.cc - add RCS Id to header of every file. This makes it easier to know what's 2001-10-03 13:10:38 +00:00
string.cc Fixed repeated IO/string instruction acceleration bug. Not all the 2002-09-03 19:38:27 +00:00
tasking.cc - in task_switch when it tried to ensure that the old TSS was paged in, 2001-11-11 04:57:05 +00:00
vm8086.cc - included instinc's patch.stack-return-from-v86 2002-06-27 13:31:54 +00:00