qemu-e2k/target/arm
Peter Maydell 7c0ed88e7d target/arm: Add v8M stack checks for Thumb2 LDM/STM
Add the v8M stack checks for:
 * LDM (T2 encoding)
 * STM (T2 encoding)

This includes the 32-bit encodings of the instructions listed
in v8M ARM ARM rule R_YVWT as
 * LDM, LDMIA, LDMFD
 * LDMDB, LDMEA
 * POP (multiple registers)
 * PUSH (muliple registers)
 * STM, STMIA, STMEA
 * STMDB, STMFD

We perform the stack limit before doing any other part
of the load or store.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20181002163556.10279-10-peter.maydell@linaro.org
2018-10-08 14:55:04 +01:00
..
arch_dump.c
arm_ldst.h target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
arm-powerctl.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
arm-powerctl.h
arm-semi.c target/arm: Remove a handful of stray tabs 2018-08-24 13:17:48 +01:00
cpu64.c target/arm: Handle SVE vector length changes in system mode 2018-10-08 14:55:02 +01:00
cpu-qom.h
cpu.c target/arm: Start AArch32 CPUs with EL2 but not EL3 in Hyp mode 2018-09-25 15:13:24 +01:00
cpu.h target/arm: Define new EXCP type for v8M stack overflows 2018-10-08 14:55:04 +01:00
crypto_helper.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
gdbstub64.c
gdbstub.c
helper-a64.c
helper-a64.h
helper-sve.h target/arm: Rewrite vector gather first-fault loads 2018-10-08 14:55:03 +01:00
helper.c target/arm: Add v8M stack limit checks on NS function calls 2018-10-08 14:55:04 +01:00
helper.h target/arm: Add v8M stack checks on ADD/SUB/MOV of SP 2018-10-08 14:55:04 +01:00
idau.h
internals.h target/arm: Add v8M stack limit checks on NS function calls 2018-10-08 14:55:04 +01:00
iwmmxt_helper.c target/arm: Untabify iwmmxt_helper.c 2018-08-24 13:17:48 +01:00
kvm32.c target/arm: Remove redundant DIV detection for KVM 2018-06-29 15:11:18 +01:00
kvm64.c
kvm_arm.h target/arm: fix code comments error 2018-10-08 14:55:02 +01:00
kvm-consts.h
kvm-stub.c
kvm.c target/arm: fix code comments error 2018-10-08 14:55:02 +01:00
machine.c target/arm: Add dummy needed functions to M profile vmstate subsections 2018-08-06 16:19:33 +01:00
Makefile.objs
monitor.c
neon_helper.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
op_addsub.h
op_helper.c target/arm: Add v8M stack limit checks on NS function calls 2018-10-08 14:55:04 +01:00
psci.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
sve_helper.c target/arm: Pass TCGMemOpIdx to sve memory helpers 2018-10-08 14:55:03 +01:00
sve.decode target/arm: Implement SVE dot product (indexed) 2018-06-29 15:11:15 +01:00
trace-events
translate-a64.c target/arm: Adjust aarch64_cpu_dump_state for system mode SVE 2018-10-08 14:55:03 +01:00
translate-a64.h target/arm: Extend vec_reg_offset to larger sizes 2018-06-15 15:23:34 +01:00
translate-sve.c target/arm: Pass TCGMemOpIdx to sve memory helpers 2018-10-08 14:55:03 +01:00
translate.c target/arm: Add v8M stack checks for Thumb2 LDM/STM 2018-10-08 14:55:04 +01:00
translate.h target/arm: Define new TBFLAG for v8M stack checking 2018-10-08 14:55:04 +01:00
vec_helper.c target/arm: Implement SVE dot product (indexed) 2018-06-29 15:11:15 +01:00