qemu/target-arm
Peter Maydell cbc0326b6f target-arm: Clean up trap/undef handling of SRS
The SRS instruction is:
 * UNDEFINED in Hyp mode
 * UNPREDICTABLE in User or System mode
 * UNPREDICTABLE if the specified mode isn't accessible
 * trapped to EL3 if EL3 is AArch64 and we are at Secure EL1

Clean up the code to handle all these cases cleanly, including
picking UNDEF as our choice of UNPREDICTABLE behaviour rather
blindly trusting the mode field passed in the instruction.
As part of this, move the check for IS_USER into gen_srs()
itself rather than having it done by the caller.

The exception is that we don't UNDEF for calls from System
mode, which need a runtime check. This will be dealt with in
the following commits.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Sergey Fedorov <serge.fdrv@gmail.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
2016-02-18 14:16:16 +00:00
..
arch_dump.c arm: Clean up includes 2016-01-29 15:07:23 +00:00
arm_ldst.h softmmu: introduce cpu_ldst.h 2014-06-05 16:10:33 +02:00
arm-semi.c target-arm: Clean up includes 2016-01-18 16:33:32 +00:00
cpu64.c target-arm: Enable EL3 for Cortex-A53 and Cortex-A57 2016-02-11 11:17:31 +00:00
cpu-qom.h target-arm: Use a single entry point for AArch64 and AArch32 exceptions 2016-01-21 14:15:08 +00:00
cpu.c target-arm: Implement checking of fired watchpoint 2016-02-11 11:17:32 +00:00
cpu.h target-arm: Report correct syndrome for FPEXC32_EL2 traps 2016-02-18 14:16:16 +00:00
crypto_helper.c target-arm: Clean up includes 2016-01-18 16:33:32 +00:00
gdbstub64.c target-arm: Clean up includes 2016-01-18 16:33:32 +00:00
gdbstub.c target-arm: Clean up includes 2016-01-18 16:33:32 +00:00
helper-a64.c target-arm: Move aarch64_cpu_do_interrupt() to helper.c 2016-01-21 14:15:08 +00:00
helper-a64.h target-arm: A64: Implement CRC instructions 2014-06-09 16:06:12 +01:00
helper.c target-arm: Report correct syndrome for FPEXC32_EL2 traps 2016-02-18 14:16:16 +00:00
helper.h target-arm: Add isread parameter to CPAccessFns 2016-02-11 11:17:31 +00:00
internals.h target-arm: Implement checking of fired watchpoint 2016-02-11 11:17:32 +00:00
iwmmxt_helper.c target-arm: Clean up includes 2016-01-18 16:33:32 +00:00
kvm32.c target-arm: Clean up includes 2016-01-18 16:33:32 +00:00
kvm64.c target-arm: Clean up includes 2016-01-18 16:33:32 +00:00
kvm_arm.h target-arm: kvm - add support for HW assisted debug 2015-12-17 13:37:15 +00:00
kvm-consts.h target-arm/kvm64: Add cortex-a53 cpu support 2015-06-15 18:06:08 +01:00
kvm-stub.c target-arm: Clean up includes 2016-01-18 16:33:32 +00:00
kvm.c target-arm: Clean up includes 2016-01-18 16:33:32 +00:00
machine.c target-arm: Clean up includes 2016-01-18 16:33:32 +00:00
Makefile.objs target-arm: support QMP dump-guest-memory 2016-01-15 14:40:25 +00:00
neon_helper.c target-arm: Clean up includes 2016-01-18 16:33:32 +00:00
op_addsub.h Correct spelling of licensed 2011-07-23 11:26:12 -05:00
op_helper.c target-arm: Report correct syndrome for FPEXC32_EL2 traps 2016-02-18 14:16:16 +00:00
psci.c target-arm: Clean up includes 2016-01-18 16:33:32 +00:00
translate-a64.c target-arm: Add isread parameter to CPAccessFns 2016-02-11 11:17:31 +00:00
translate.c target-arm: Clean up trap/undef handling of SRS 2016-02-18 14:16:16 +00:00
translate.h tcg: Remove gen_intermediate_code_pc 2015-10-07 20:36:52 +11:00