unicorn/qemu/target/mips
Jakub Jermář 5b25eb80af
mips: Decide to map PAGE_EXEC in map_address
This commit addresses QEMU Bug #1825311:

mips_cpu_handle_mmu_fault renders all accessed pages executable

It allows finer-grained control over whether the accessed page should
be executable by moving the decision to the underlying map_address
function, which has more information for this.

As a result, pages that have the XI bit set in the TLB and are accessed
for read/write, don't suddenly end up being executable.

Fixes: https://bugs.launchpad.net/qemu/+bug/1825311
Fixes: 2fb58b73746e ('target-mips: add RI and XI fields to TLB entry')

Backports commit 7353113fa482e697a77575086a41f429a01f8dc0 from qemu
2019-05-28 19:44:28 -04:00
..
cp0_timer.c mips: introduce internal.h and cleanup cpu.h 2018-03-05 00:25:56 -05:00
cpu-qom.h mips: MIPSCPU model subclasses 2018-03-05 00:42:29 -05:00
cpu.c target/mips: Convert to CPUClass::tlb_fill 2019-05-16 17:19:47 -04:00
cpu.h target/mips: reimplement SC instruction emulation and use cmpxchg 2019-02-15 17:10:16 -05:00
dsp_helper.c
helper.c mips: Decide to map PAGE_EXEC in map_address 2019-05-28 19:44:28 -04:00
helper.h target/mips: Refactor and fix INSERT.<B|H|W|D> instructions 2019-05-28 19:42:28 -04:00
internal.h target/mips: Convert to CPUClass::tlb_fill 2019-05-16 17:19:47 -04:00
lmi_helper.c
Makefile.objs
mips-defs.h target/mips: Define a bit for MXU in insn_flags 2018-11-11 05:52:18 -05:00
msa_helper.c target/mips: Refactor and fix INSERT.<B|H|W|D> instructions 2019-05-28 19:42:28 -04:00
op_helper.c target/mips: Fix MSA instructions ST.<B|H|W|D> on big endian host 2019-05-28 19:29:27 -04:00
TODO
translate_init.c target/mips: Restore Qemu's organization of CPU definitions 2019-03-08 01:40:50 -05:00
translate.c target/mips: Refactor and fix INSERT.<B|H|W|D> instructions 2019-05-28 19:42:28 -04:00
unicorn.c Use DEFINE_MACHINE() to register all machines 2018-03-11 15:12:46 -04:00
unicorn.h