• Bandan Das's avatar
    KVM: emulate: do not initialize memopp · 41061cdb
    Bandan Das authored
    rip_relative is only set if decode_modrm runs, and if you have ModRM
    you will also have a memopp.  We can then access memopp unconditionally.
    Note that rip_relative cannot be hoisted up to decode_modrm, or you
    break "mov $0, xyz(%rip)".
    
    Also, move typecast on "out of range value" of mem.ea to decode_modrm.
    
    Together, all these optimizations save about 50 cycles on each emulated
    instructions (4-6%).
    Signed-off-by: default avatarBandan Das <bsd@redhat.com>
    [Fix immediate operands with rip-relative addressing. - Paolo]
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    41061cdb
emulate.c 125 KB