From the author:
I've implemented functions ALOb(), ObAL(), YbAL(),
ALXb() and eAXXv() from dis_groups.cc.
I've also changed dis_decode.cc to print cmpsd if code
is 32 bits and cmpsw if code is 16 bits. The same with
stosd, lodsd and scasd.
appears with the right dimensions. Font sizes other than 16 are working now.
The maximum font height in text mode is 32.
- the text mode cursor is now drawn with the right colors
The 64 bit variant of MOVNTI was not decoded. The proper fix for this is to work on
fetchdecode64.cc to call a 64 bit variant of SSE instructions or fail it with a
invalid op. A careful check needs to be done with the AMD manuals to determine if
there are any other SSE instructions that have a special 64 bit decoding.
into the host-specific files and wrapped access to them
with atomic operations since that's a structure global to
all the VMs. I think all the other globals are SMP clean
since they are only written once during module init time,
and read thereafter my all VMs.
Renamed all host OS specific functions to hostOS*(). All host
independent functions to host*().
I'd like to rename all monitor space functions to mon*() next.
bablokb says in [ 664926 ]
please remove the patch patches/patch.bochs.sh. This
patch was developed for 1.4.x and does not work
anymore with 2.0.x.
It has been superseded by bxtstart in Bochs-Tools (see
http://www.bablokb.de/bochs-tools/).
all the memory it needs, and the plex86 kernel module uses
get_user_pages() from the Linux kernel to get at them and
pin the few that are needed statically (and later up to
a watermark of pages that are needed dynamically).
Guest physical memory pages are now dynamically pinned/unpinned.
For now, I use a hard limit of 4Megs of pinned pages and
a really primitive algorithm to decide which one to unpin
when the limit is reached and one needs to be bumped. Seems
to work. Though I haven't run into the limit yet since I'm using
just a small test program.
and pinning user pages from the plex86 kernel module. The
guest physical memory array is no longer mmap()'d from kernel
space where it used to be allocated.
in the plex86 module and mmap()'ing it into user space (bochs),
to letting bochs malloc() it normally and using the
Linux kernel facility get_user_pages() to get the associated
physical pages and pin them in memory. I only have code for
Linux kernel 2.4.20 and up, as that's the first version to
export the get_user_pages() symbol so modules can use it.