• A
    target-s390x: mvc_fast_memmove: access memory through softmmu · 6da528d1
    Aurelien Jarno 提交于
    mvc_fast_memmove is bypassing the softmmu functions, getting the
    physical source and destination addresses using the mmu_translate
    function and accessing the corresponding physical memory. This
    prevents watchpoints to work correctly.
    
    Instead use the tlb_vaddr_to_host function to get the host addresses
    corresponding to the guest source and destination addresses through the
    softmmu code and fallback to the byte level code in case the
    corresponding address are not in the QEMU TLB or being examined through
    a watchpoint. As a bonus it works even for area crossing pages by
    splitting the are into chunks contained in a single page, bringing some
    performances improvements. We can therefore remove the 8-byte
    loads/stores method, as it is now quite unlikely to be used.
    
    At the same time change the name of the function to fast_memmove as it's
    not specific to mvc and use the same argument order as the C memmove
    function.
    Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
    Signed-off-by: NAlexander Graf <agraf@suse.de>
    6da528d1
mem_helper.c 29.0 KB