From vm entry to exit, VMRUN is handled as a single instruction. It
uses DISAS_NORETURN in order to avoid processing TF or RF before
the first instruction executes in the guest. However, the corresponding
handling is missing in vmexit. Add it, and at the same time reorganize
the comments with quotes from the manual about the tasks performed
by a #VMEXIT.
Another gen_eob() task that is missing in VMRUN is preparing the
HF_INHIBIT_IRQ flag for the next instruction, in this case by loading
it from the VMCB control state.
Signed-off-by: Paolo Bonzini<pbonzini@redhat.com>
---
target/i386/tcg/sysemu/svm_helper.c | 46 +++++++++++++++++++++--------
target/i386/tcg/translate.c | 5 ++++
2 files changed, 38 insertions(+), 13 deletions(-)