]> git.proxmox.com Git - mirror_qemu.git/commit
target/arm: Split M profile MNegPri mmu index into user and priv
authorPeter Maydell <peter.maydell@linaro.org>
Wed, 13 Dec 2017 17:59:23 +0000 (17:59 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Wed, 13 Dec 2017 17:59:23 +0000 (17:59 +0000)
commit62593718d77c06ad2b5e942727cead40775d2395
tree3741db4ad25ac02a9b42467cb5cc1c988cd647ea
parent871bec7c44a453d9cab972ce1b5d12e1af0545ab
target/arm: Split M profile MNegPri mmu index into user and priv

For M profile, we currently have an mmu index MNegPri for
"requested execution priority negative". This fails to
distinguish "requested execution priority negative, privileged"
from "requested execution priority negative, usermode", but
the two can return different results for MPU lookups. Fix this
by splitting MNegPri into MNegPriPriv and MNegPriUser, and
similarly for the Secure equivalent MSNegPri.

This takes us from 6 M profile MMU modes to 8, which means
we need to bump NB_MMU_MODES; this is OK since the point
where we are forced to reduce TLB sizes is 9 MMU modes.

(It would in theory be possible to stick with 6 MMU indexes:
{mpu-disabled,user,privileged} x {secure,nonsecure} since
in the MPU-disabled case the result of an MPU lookup is
always the same for both user and privileged code. However
we would then need to rework the TB flags handling to put
user/priv into the TB flags separately from the mmuidx.
Adding an extra couple of mmu indexes is simpler.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 1512153879-5291-5-git-send-email-peter.maydell@linaro.org
target/arm/cpu.h
target/arm/helper.c
target/arm/internals.h
target/arm/translate.c