qemu-e2k/target
Peter Maydell fd592d890e target/arm: Make v7M exception entry stack push check MPU
The memory writes done to push registers on the stack
on exception entry in M profile CPUs are supposed to
go via MPU permissions checks, which may cause us to
take a derived exception instead of the original one of
the MPU lookup fails. We were implementing these as
always-succeeds direct writes to physical memory.
Rewrite v7m_push_stack() to do the necessary checks.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 1517324542-6607-5-git-send-email-peter.maydell@linaro.org
2018-02-09 10:40:27 +00:00
..
alpha qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
arm target/arm: Make v7M exception entry stack push check MPU 2018-02-09 10:40:27 +00:00
cris qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
hppa qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
i386 Add the WHPX acceleration enlightenments 2018-02-07 14:09:26 +01:00
lm32 qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
m68k qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
microblaze qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
mips qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
moxie qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
nios2 qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
openrisc qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
ppc * socket option parsing fix (Daniel) 2018-02-07 20:40:36 +00:00
s390x qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
sh4 qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
sparc qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
tilegx qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
tricore qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
unicore32 qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
xtensa qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00