unicorn/qemu/target-arm
Ralf-Philipp Weinmann 893b9f7f96
target-arm: Only trap SRS from S-EL1 if specified mode is MON
Commit cbc0326b6fb9 caused SRS instructions executed from Secure
EL1 to trap to EL3 even if the specified mode was not monitor mode.

According to the ARMv8 Architecture reference manual [F6.1.203], ALL
of the following conditions need to be met for SRS to trap to EL3:
* It is executed at Secure PL1.
* The specified mode is monitor mode.
* EL3 is using AArch64.

Correct the condition governing the trap to EL3 to check the
specified mode.

Backports commit ba63cf47a93041137a94e86b7d0cd87fc896949b from qemu
2018-02-21 02:49:28 -05:00
..
arm_ldst.h target-arm: implement SCTLR.B, drop bswap_code 2018-02-21 02:08:05 -05:00
cpu-qom.h target-arm: Make reserved ranges in ID_AA64* spaces RAZ, not UNDEF 2018-02-20 22:49:43 -05:00
cpu.c target-arm: Add the pmceid0 and pmceid1 registers 2018-02-20 15:22:41 -05:00
cpu.h target-arm: implement BE32 mode in system emulation 2018-02-21 02:47:22 -05:00
cpu64.c target-arm: Add the pmceid0 and pmceid1 registers 2018-02-20 15:22:41 -05:00
crypto_helper.c target-arm: Clean up includes 2018-02-17 21:09:32 -05:00
helper-a64.c target-arm: Move aarch64_cpu_do_interrupt() to helper.c 2018-02-18 22:23:06 -05:00
helper-a64.h import 2015-08-21 15:04:50 +08:00
helper.c target-arm: implement SCTLR.EE 2018-02-21 02:14:56 -05:00
helper.h target-arm: implement setend 2018-02-21 02:39:13 -05:00
internals.h target-arm: Move get/set_r13_banked() to op_helper.c 2018-02-20 15:09:07 -05:00
iwmmxt_helper.c target-arm: Clean up includes 2018-02-17 21:09:32 -05:00
kvm-consts.h import 2015-08-21 15:04:50 +08:00
Makefile.objs delete sparc32_dma.h & arm-semi.c 2017-01-19 15:10:41 +08:00
neon_helper.c target-arm: Clean up includes 2018-02-17 21:09:32 -05:00
op_addsub.h import 2015-08-21 15:04:50 +08:00
op_helper.c target-arm: implement setend 2018-02-21 02:39:13 -05:00
psci.c import 2015-08-21 15:04:50 +08:00
translate-a64.c target-arm: introduce tbflag for endianness 2018-02-21 02:35:34 -05:00
translate.c target-arm: Only trap SRS from S-EL1 if specified mode is MON 2018-02-21 02:49:28 -05:00
translate.h target-arm: introduce disas flag for endianness 2018-02-21 02:20:50 -05:00
unicorn.h arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
unicorn_aarch64.c target-arm: Add write_type argument to cpsr_write() 2018-02-20 22:15:53 -05:00
unicorn_arm.c target-arm: Add write_type argument to cpsr_write() 2018-02-20 22:15:53 -05:00