• Sean Christopherson's avatar
    KVM: x86: Omit VCPU_REGS_RIP from emulator's _regs array · a5ba67b4
    Sean Christopherson authored
    Omit RIP from the emulator's _regs array, which is used only for GPRs,
    i.e. registers that can be referenced via ModRM and/or SIB bytes.  The
    emulator uses the dedicated _eip field for RIP, and manually reads from
    _eip to handle RIP-relative addressing.
    
    To avoid an even bigger, slightly more dangerous change, hardcode the
    number of GPRs to 16 for the time being even though 32-bit KVM's emulator
    technically should only have 8 GPRs.  Add a TODO to address that in a
    future commit.
    
    See also the comments above the read_gpr() and write_gpr() declarations,
    and obviously the handling in writeback_registers().
    
    No functional change intended.
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Reviewed-by: default avatarKees Cook <keescook@chromium.org>
    Message-Id: <20220526210817.3428868-4-seanjc@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    a5ba67b4
kvm_emulate.h 17.4 KB