]> git.proxmox.com Git - mirror_qemu.git/commit
s390x/tcg: MVCL: Process max 4k bytes at a time
authorDavid Hildenbrand <david@redhat.com>
Tue, 3 Sep 2019 12:56:19 +0000 (14:56 +0200)
committerDavid Hildenbrand <david@redhat.com>
Mon, 23 Sep 2019 07:28:29 +0000 (09:28 +0200)
commitf1c2e27cb5140b385e87f0d8be7606fb79aaa1f2
tree25fd83a30a8d566d5744655a3e5c88d0a48a2ba2
parentfbc17598d509be10d5d2349090bbb889ccb4f055
s390x/tcg: MVCL: Process max 4k bytes at a time

Process max 4k bytes at a time, writing back registers between the
accesses. The instruction is interruptible.
    "For operands longer than 2K bytes, access exceptions are not
    recognized for locations more than 2K bytes beyond the current location
    being processed."
Note that on z/Architecture, 2k vs. 4k access cannot get differentiated as
long as pages are not crossed. This seems to be a leftover from ESA/390.
Simply stay within single pages.

MVCL handling is quite different than MVCLE/MVCLU handling, so split up
the handlers.

Defer interrupt handling, as that will require more thought, add a TODO
for that.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: David Hildenbrand <david@redhat.com>
target/s390x/mem_helper.c