Ulrich Weigand wrote:
> > You need to prescan memory accesses anyway in order to catch MMIO.
> 
> Eh?  Whether a memory access is MMIO or not depends not on the
> instruction stream, but on the *address* that is used.  You cannot
> know from just looking at the instructions (which is what prescanning
> does), what values the registers used for address generation will have
> when the code is executed ...

Oops, you have a point.  :)  That does make optimising MMIO
more difficult...

However, we can catch segments loads and segment-overridden
reads/writes and protect the monitor in there. (am I missing
something?)

Hmm... I'll have to think about what useful stuff can be
distilled from my wild but not-so-practical ideas :).
I/O caching should be possible at least... and I'd still
like to run ring0 code in (sandboxed) ring0, if possible.
We shouldn't need a full-blown JIT compiler, that would
just degrade performance probably..

Perhaps I should return to the standalone SBE tester that
Kevin wrote in february and modify it to do the jump stuff,
just as a proof-of-concept?

-- Ramon


Reply via email to