Newer SVM implementations (Bulldozer) give the desired address on
a INVLPG intercept explicitly in the EXITINFO1 field of the VMCB.
Use this address to avoid a costly instruction fetch and decode
cycle.
Signed-off-by: Andre Przywara <andre.przywara@amd.com>
break;
case VMEXIT_INVLPG:
- if ( !handle_mmio() )
+ if ( cpu_has_svm_decode )
+ {
+ svm_invlpg_intercept(vmcb->exitinfo1);
+ __update_guest_eip(regs, vmcb->nextrip - vmcb->rip);
+ }
+ else if ( !handle_mmio() )
hvm_inject_exception(TRAP_gp_fault, 0, 0);
break;