qemu/target/arm
Michael Davidsaver 542b3478a0 armv7m: Replace armv7m.hack with unassigned_access handler
For v7m we need to catch attempts to execute from special
addresses at 0xfffffff0 and above. Previously we did this
with the aid of a hacky special purpose lump of memory
in the address space and a check in translate.c for whether
we were translating code at those addresses.

We can implement this more cleanly using a CPU
unassigned access handler which throws the exception
if the unassigned access is for one of the special addresses.

Signed-off-by: Michael Davidsaver <mdavidsaver@gmail.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 1484937883-1068-3-git-send-email-peter.maydell@linaro.org
[PMM:
 * drop the deletion of the "don't interrupt if PC is magic"
   code in arm_v7m_cpu_exec_interrupt() -- this is still
   required
 * don't generate an exception for unassigned accesses
   which aren't to the magic address -- although doing
   this is in theory correct in practice it will break
   currently working guests which rely on the RAZ/WI
   behaviour when they touch devices which we haven't
   modelled.
 * trigger EXCP_EXCEPTION_EXIT on is_exec, not !is_write
]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-01-27 15:20:21 +00:00
..
arch_dump.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
arm-powerctl.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
arm-powerctl.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
arm-semi.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
arm_ldst.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
cpu-qom.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
cpu.c armv7m: Replace armv7m.hack with unassigned_access handler 2017-01-27 15:20:21 +00:00
cpu.h target-arm: Enable EL2 feature bit on A53 and A57 2017-01-20 11:15:10 +00:00
cpu64.c target-arm: Enable EL2 feature bit on A53 and A57 2017-01-20 11:15:10 +00:00
crypto_helper.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
gdbstub.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
gdbstub64.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
helper-a64.c target-arm: Use clrsb helper 2017-01-10 08:47:48 -08:00
helper-a64.h target-arm: Use clrsb helper 2017-01-10 08:47:48 -08:00
helper.c armv7m: MRS/MSR: handle unprivileged access 2017-01-27 15:20:20 +00:00
helper.h target-arm: Use clz opcode 2017-01-10 08:06:11 -08:00
internals.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
iwmmxt_helper.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
kvm-consts.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
kvm-stub.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
kvm.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
kvm32.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
kvm64.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
kvm_arm.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
machine.c migration: extend VMStateInfo 2017-01-24 17:54:47 +00:00
Makefile.objs Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
monitor.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
neon_helper.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
op_addsub.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
op_helper.c target-arm: Log AArch64 exception returns 2016-12-27 14:59:25 +00:00
psci.c target/arm/psci.c: If EL2 implemented, start CPUs in EL2 2017-01-20 11:15:10 +00:00
trace-events Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
translate-a64.c target/arm: Fix ubfx et al for aarch64 2017-01-13 09:48:20 -08:00
translate.c armv7m: Replace armv7m.hack with unassigned_access handler 2017-01-27 15:20:21 +00:00
translate.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00