unicorn/qemu/target-arm
Peter Maydell 806d72035e
target-arm: Don't try to set ESR IL bit in arm_cpu_do_interrupt_aarch64()
Remove some incorrect code from arm_cpu_do_interrupt_aarch64()
which attempts to set the IL bit in the syndrome register based
on the value of env->thumb. This is wrong in several ways:
* IL doesn't indicate Thumb-vs-ARM, it indicates instruction
length (which may be 16 or 32 for Thumb and is always 32 for ARM)
* not every syndrome format uses IL like this -- for some IL is
always set, and for some it is always clear
* the code is changing esr_el[new_el] even for interrupt entry,
which is not supposed to modify ESR_ELx at all

Delete the code, and instead rely on the syndrome value in
env->exception.syndrome having already been set up with the
correct value of IL.

Backports commit 78f1edb19fe11fa0c5d0bf484db59a384f455d3c from qemu
2018-02-24 16:49:53 -05:00
..
arm_ldst.h cpu: move exec-all.h inclusion out of cpu.h 2018-02-24 02:39:08 -05:00
cpu-qom.h target-arm: make cpu-qom.h not target specific 2018-02-24 00:48:59 -05:00
cpu.c cpu: move exec-all.h inclusion out of cpu.h 2018-02-24 02:39:08 -05:00
cpu.h target-arm: A64: Create Instruction Syndromes for Data Aborts 2018-02-24 16:46:44 -05:00
cpu64.c target-arm: Get rid of unused variable warnings 2018-02-23 12:43:09 -05:00
crypto_helper.c target-arm: Clean up includes 2018-02-17 21:09:32 -05:00
helper-a64.c cpu: move exec-all.h inclusion out of cpu.h 2018-02-24 02:39:08 -05:00
helper-a64.h import 2015-08-21 15:04:50 +08:00
helper.c target-arm: Don't try to set ESR IL bit in arm_cpu_do_interrupt_aarch64() 2018-02-24 16:49:53 -05:00
helper.h target-arm: Implement MRS (banked) and MSR (banked) instructions 2018-02-21 21:50:42 -05:00
internals.h target-arm: Set IL bit in syndromes for insn abort, watchpoint, swstep 2018-02-24 16:48:59 -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: A64: Create Instruction Syndromes for Data Aborts 2018-02-24 16:46:44 -05:00
psci.c cpu: move exec-all.h inclusion out of cpu.h 2018-02-24 02:39:08 -05:00
translate-a64.c target-arm: A64: Create Instruction Syndromes for Data Aborts 2018-02-24 16:46:44 -05:00
translate.c target-arm: A64: Create Instruction Syndromes for Data Aborts 2018-02-24 16:46:44 -05:00
translate.h target-arm: A64: Create Instruction Syndromes for Data Aborts 2018-02-24 16:46:44 -05:00
unicorn.h arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
unicorn_aarch64.c qemu-common: push cpu.h inclusion out of qemu-common.h 2018-02-24 01:50:56 -05:00
unicorn_arm.c qemu-common: push cpu.h inclusion out of qemu-common.h 2018-02-24 01:50:56 -05:00