On Thu, Oct 06, 2016 at 17:24:22 +0200, Paolo Bonzini wrote: > Drop most the device emulation part and merge the rest into the description > of the MMU. Make some bits more up-to-date. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> (snip) > The host SIGSEGV and SIGBUS signal handlers are used to get invalid > -memory accesses. The simulated program counter is found by > -retranslating the corresponding basic block and by looking where the > -host program counter was at the exception point. > - > -The virtual CPU cannot retrieve the exact @code{EFLAGS} register because > -in some cases it is not computed because of condition code > -optimisations. It is not a big concern because the emulated code can > -still be restarted in any cases. > - > -@node MMU emulation > -@section MMU emulation > - > -For system emulation QEMU supports a soft MMU. In that mode, the MMU > +memory accesses. QEMU keeps a map that host program counter to > +target program counter, and looks up where the exception happened > +based on the host program counter at the exception point.
I had to read "keeps a map that host program to target program counter" several times; that "that" confused me. Perhaps "keeps a map of host-to-target program counters" would be clearer? > +On some targets, some bits of the virtual CPU's state are not flushed to the > +memory until the end of the translation block. This is done for internal "flushed to memory" sounds better to me than "flushed to the memory". Emilio