• Avi Kivity's avatar
    KVM: x86 emulator: don't depend on cr2 for mov abs emulation · c7e75a3d
    Avi Kivity authored
    The 'mov abs' instruction family (opcodes 0xa0 - 0xa3) still depends on cr2
    provided by the page fault handler.  This is wrong for several reasons:
    
    - if an instruction accessed misaligned data that crosses a page boundary,
      and if the fault happened on the second page, cr2 will point at the
      second page, not the data itself.
    
    - if we're emulating in real mode, or due to a FlexPriority exit, there
      is no cr2 generated.
    
    So, this change adds decoding for this instruction form and drops reliance
    on cr2.
    Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
    c7e75a3d
x86_emulate.c 47.6 KB