unicorn/qemu/target/arm
Peter Maydell 5e8e8b9bf8
target/arm: Set page (region) size in get_phys_addr_pmsav7()
We want to handle small MPU region sizes for ARMv7M. To do this,
make get_phys_addr_pmsav7() set the page size to the region
size if it is less that TARGET_PAGE_SIZE, rather than working
only in TARGET_PAGE_SIZE chunks.

Since the core TCG code con't handle execution from small
MPU regions, we strip the exec permission from them so that
any execution attempts will cause an MPU exception, rather
than allowing it to end up with a cpu_abort() in
get_page_addr_code().

(The previous code's intention was to make any small page be
treated as having no permissions, but unfortunately errors
in the implementation meant that it didn't behave that way.
It's possible that some binaries using small regions were
accidentally working with our old behaviour and won't now.)

Backports commit e5e40999b5e03567ef654546e3d448431643f8f3 from qemu
2018-07-03 00:49:51 -04:00
..
arm-powerctl.c ARM: Factor out ARM on/off PSCI control functions 2018-03-01 23:31:47 -05:00
arm-powerctl.h ARM: Factor out ARM on/off PSCI control functions 2018-03-01 23:31:47 -05:00
arm_ldst.h Fix Thumb-1 BE32 execution and disassembly. 2018-03-02 00:20:11 -05:00
cpu-qom.h target/arm: Add "-cpu max" support 2018-03-12 10:11:49 -04:00
cpu.c target/arm: Introduce ARM_FEATURE_M_MAIN 2018-06-29 14:14:18 -05:00
cpu.h target/arm: Introduce ARM_FEATURE_M_MAIN 2018-06-29 14:14:18 -05:00
cpu64.c target/arm: Enable ARM_FEATURE_V8_ATOMICS for user-only 2018-05-14 08:29:59 -04:00
crypto_helper.c target/arm/cpu and crypto_helper: Correct bad merge and adjust to qemu code style 2018-03-12 11:57:24 -04:00
helper-a64.c tcg: Fix helper function vs host abi for float16 2018-06-02 10:10:12 -04:00
helper-a64.h target/arm: Implement FCMP for fp16 2018-05-15 22:24:39 -04:00
helper-sve.h target/arm: Implement SVE Floating Point Arithmetic - Unpredicated Group 2018-06-15 14:10:16 -04:00
helper.c target/arm: Set page (region) size in get_phys_addr_pmsav7() 2018-07-03 00:49:51 -04:00
helper.h target/arm: Implement SVE Floating Point Arithmetic - Unpredicated Group 2018-06-15 14:10:16 -04:00
internals.h target/arm: Add pre-EL change hooks 2018-04-26 09:21:54 -04:00
iwmmxt_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
kvm-consts.h arm: better stub version for MISMATCH_CHECK 2018-03-02 00:13:45 -05:00
Makefile.objs target/arm: Implement SVE predicate test 2018-05-20 01:16:16 -04:00
neon_helper.c target/*/cpu.h: remove softfloat.h 2018-03-08 09:58:47 -05:00
op_addsub.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
op_helper.c target/arm: Add pre-EL change hooks 2018-04-26 09:21:54 -04:00
psci.c fix WFI/WFE length in syndrome register 2018-03-05 11:21:51 -05:00
sve.decode target/arm: Implement SVE Floating Point Arithmetic - Unpredicated Group 2018-06-15 14:10:16 -04:00
sve_helper.c target/arm: Implement SVE Integer Wide Immediate - Unpredicated Group 2018-06-15 14:05:11 -04:00
translate-a64.c tcg: Pass tb and index to tcg_gen_exit_tb separately 2018-06-07 11:56:32 -04:00
translate-a64.h target/arm: Extend vec_reg_offset to larger sizes 2018-06-15 12:23:35 -04:00
translate-sve.c target/arm: Implement SVE Floating Point Arithmetic - Unpredicated Group 2018-06-15 14:10:16 -04:00
translate.c target/arm: Strict alignment for ARMv6-M and ARMv8-M Baseline 2018-06-29 14:15:33 -05:00
translate.h target/arm: convert conversion helpers to fpst/ahp_flag 2018-05-19 22:58:25 -04:00
unicorn.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
unicorn_aarch64.c unicorn/aarch64: Use qemu-provided helpers for accessing VFP/NEON/SIMD registers 2018-03-07 11:25:41 -05:00
unicorn_arm.c Use DEFINE_MACHINE() to register all machines 2018-03-11 15:12:46 -04:00
vec_helper.c target/arm: Implement SVE Floating Point Arithmetic - Unpredicated Group 2018-06-15 14:10:16 -04:00