Hi,
The code would be simpler if some intercept tests were done at runtime
in the corresponding helpers (for crN, drN and MSR registers, I/Os).
This is especially true when the existing helpers can return an
exception at runtime. Complicating the translator to handle SVM is
definitely not the way I would have handled it.
For I/Os for example, there was already the necessary support to do
runtime tests (see gen_check_io()). Adding one bit to return the prefix
information is all what it needed. The current code is actually slower
because new ops were added for each I/O instruction.
Regards,
Fabrice.
Thiemo Seufer wrote:
CVSROOT: /sources/qemu
Module name: qemu
Changes by: Thiemo Seufer <ths> 07/09/23 15:28:04
Modified files:
. : cpu-all.h cpu-exec.c exec.c
target-i386 : cpu.h exec.h helper.c helper2.c op.c
translate.c
Log message:
SVM Support, by Alexander Graf.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemu/cpu-all.h?cvsroot=qemu&r1=1.75&r2=1.76
http://cvs.savannah.gnu.org/viewcvs/qemu/cpu-exec.c?cvsroot=qemu&r1=1.115&r2=1.116
http://cvs.savannah.gnu.org/viewcvs/qemu/exec.c?cvsroot=qemu&r1=1.105&r2=1.106
http://cvs.savannah.gnu.org/viewcvs/qemu/target-i386/cpu.h?cvsroot=qemu&r1=1.47&r2=1.48
http://cvs.savannah.gnu.org/viewcvs/qemu/target-i386/exec.h?cvsroot=qemu&r1=1.36&r2=1.37
http://cvs.savannah.gnu.org/viewcvs/qemu/target-i386/helper.c?cvsroot=qemu&r1=1.87&r2=1.88
http://cvs.savannah.gnu.org/viewcvs/qemu/target-i386/helper2.c?cvsroot=qemu&r1=1.51&r2=1.52
http://cvs.savannah.gnu.org/viewcvs/qemu/target-i386/op.c?cvsroot=qemu&r1=1.50&r2=1.51
http://cvs.savannah.gnu.org/viewcvs/qemu/target-i386/translate.c?cvsroot=qemu&r1=1.70&r2=1.71