>All,
>
>I had some great success integrating both the scan-before-execute (prescan)
>code, and the split I&D TLB technique code into plex86.
Cool !
>Things are still rough, and I have not plugged the generated
>page exceptions into the rest of the existing emulation yet.
>Below are some notes showing that things are working so far.
>You don't have to read the details. In short, we can now
>virtualize arbitrary x86 instructions, specified by a flexible
>map, and protect against guest reads/writes to virtualized
>code pages.
Kevin, one question (yes I know, 't is nasty ;)) -- do you have any
performance measurements ? What kind of impact does scan-before-execute
(is it ok if we shorten this to s-b-e ? it's such a long word ;)) on the
performance of ring<3
code ? This is interesting stuff.
> I modified the instruction virtualization map, and marked
> 'NOP' for virtualization. The following code sequence:
>
> _start:
> clc
> stc
> nop
> hlt
>
> ... caused the monitor to trap out at:
>
> Current instruction:
> 000B.00100002 90 nop
I may be stupid here, but *why* ? Nop doesn't trap and isn't harmful, so
what's the point of virtualising it ? I don't get it.
-- Ramon