unicorn/qemu/target-arm
Peter Maydell 93386e2dd4
target-arm/translate.c: Handle non-executable page-straddling Thumb insns
When the memory we're trying to translate code from is not executable we have
to turn this into a guest fault. In order to report the correct PC for this
fault, and to make sure it is not reported until after any other possible
faults for instructions earlier in execution, we must terminate TBs at
the end of a page, in case the next instruction is in a non-executable page.
This is simple for T16, A32 and A64 instructions, which are always aligned
to their size. However T32 instructions may be 32-bits but only 16-aligned,
so they can straddle a page boundary.

Correct the condition that checks whether the next instruction will touch
the following page, to ensure that if we're 2 bytes before the boundary
and this insn is T32 then we end the TB.

Backports commit 541ebcd401ee47f3c1a3ce503ef5466b75e9d20a from qemu
2018-02-17 15:24:07 -05:00
..
arm_ldst.h
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
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
kvm-consts.h
Makefile.objs
neon_helper.c
op_addsub.h
op_helper.c target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
psci.c
translate-a64.c target-arm: Fix CPU breakpoint handling 2018-02-17 15:24:02 -05:00
translate.c target-arm/translate.c: Handle non-executable page-straddling Thumb insns 2018-02-17 15:24:07 -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