tcg: Support MMU protection regions smaller than TARGET_PAGE_SIZE
commit55df6fcf5476b44bc1b95554e686ab3e91d725c5
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 26 Jun 2018 16:50:41 +0000 (26 17:50 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 26 Jun 2018 16:50:41 +0000 (26 17:50 +0100)
treefb36681917f253625bae410f6538a7f1a562a4ad
parentd29183d3c0174e248b31bb2ee58b889f7baa3cfe
tcg: Support MMU protection regions smaller than TARGET_PAGE_SIZE

Add support for MMU protection regions that are smaller than
TARGET_PAGE_SIZE. We do this by marking the TLB entry for those
pages with a flag TLB_RECHECK. This flag causes us to always
take the slow-path for accesses. In the slow path we can then
special case them to always call tlb_fill() again, so we have
the correct information for the exact address being accessed.

This change allows us to handle reading and writing from small
regions; we cannot deal with execution from the small region.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20180620130619.11362-2-peter.maydell@linaro.org
accel/tcg/cputlb.c
accel/tcg/softmmu_template.h
include/exec/cpu-all.h