• Sean Christopherson's avatar
    KVM: VMX: Manually load RDX in vCPU-run asm blob · ccf44743
    Sean Christopherson authored
    Load RDX with the VMCS.HOST_RSP field encoding on-demand instead of
    delegating to the compiler via an input constraint.  In addition to
    saving one whole MOV instruction, this allows RDX to be properly
    clobbered (in a future patch) instead of being saved/loaded to/from
    the stack.
    
    Despite nested_vmx_check_vmentry_hw() having similar code, leave it
    alone, for now.  In that case, RDX is unconditionally used and isn't
    clobbered, i.e. sending in HOST_RSP as an input is simpler.
    
    Note that because HOST_RSP is an enum and not a define, it must be
    redefined as an immediate instead of using __stringify(HOST_RSP).  The
    naming "conflict" between host_rsp and HOST_RSP is slightly confusing,
    but the former will be removed in a future patch, at which point
    HOST_RSP is absolutely what is desired.
    Reviewed-by: default avatarJim Mattson <jmattson@google.com>
    Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    ccf44743
vmx.c 219 KB