unicorn/qemu/target-arm
Peter Maydell 91941f8d3c
target-arm: Fix "no 64-bit EL2" assumption in arm_excp_unmasked()
The code in arm_excp_unmasked() suppresses the ability of PSTATE.AIF
to mask exceptions from a lower EL targeting EL2 or EL3 if the
CPU is 64-bit. This is correct for a target of EL3, but not correct
for targeting EL2. Further, we go to some effort to calculate
scr and hcr values which are not used at all for the 64-bit CPU
case.

Rearrange the code to correctly implement the 64-bit CPU logic
and keep the hcr/scr calculations in the 32-bit CPU codepath.

Backports commit 7cd6de3bb1ca55dfa8f53fb9894803eb33f497b3 from qemu
2018-02-17 15:24:07 -05:00
..
arm_ldst.h import 2015-08-21 15:04:50 +08:00
cpu64.c target-arm: Fix REVIDR reset value 2018-02-13 14:24:08 -05:00
cpu-qom.h target-arm: Refactor CPU affinity handling 2018-02-17 15:23:34 -05:00
cpu.c target-arm: Refactor CPU affinity handling 2018-02-17 15:23:34 -05:00
cpu.h target-arm: Fix "no 64-bit EL2" assumption in arm_excp_unmasked() 2018-02-17 15:24:07 -05:00
crypto_helper.c crypto: move built-in AES implementation into crypto/ 2018-02-17 15:23:17 -05:00
helper-a64.c target-arm: Log the target EL when taking exceptions 2018-02-17 15:23:36 -05:00
helper-a64.h import 2015-08-21 15:04:50 +08:00
helper.c target-arm: Add MDCR_EL2 2018-02-17 15:24:02 -05:00
helper.h target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
internals.h target-arm: Wire up HLT 0xf000 as the A64 semihosting instruction 2018-02-17 15:23:34 -05:00
iwmmxt_helper.c import 2015-08-21 15:04:50 +08: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 Arm support ported. (#736) 2017-01-23 23:30:57 +08:00
op_addsub.h import 2015-08-21 15:04:50 +08:00
op_helper.c target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
psci.c import 2015-08-21 15:04:50 +08:00
translate-a64.c target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
translate.c target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
translate.h tcg: Remove gen_intermediate_code_pc 2018-02-17 15:23:59 -05:00
unicorn_aarch64.c target-arm: rename c1_coproc to cpacr_el1 2018-02-12 20:46:00 -05:00
unicorn_arm.c target-arm: Add registers for PMSAv7 2018-02-17 15:22:43 -05:00
unicorn.h arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00