unicorn/qemu
Peter Maydell 928f226ed6
target/arm: v8M MPU should use background region as default, not always
The "background region" for a v8M MPU is a default which will be used
(if enabled, and if the access is privileged) if the access does
not match any specific MPU region. We were incorrectly using it
always (by putting the condition at the wrong nesting level). This
meant that we would always return the default background permissions
rather than the correct permissions for a specific region, and also
that we would not return the right information in response to a
TT instruction.

Move the check for the background region to the same place in the
logic as the equivalent v8M MPUCheck() pseudocode puts it.
This in turn means we must adjust the condition we use to detect
matches in multiple regions to avoid false-positives.

Backports commit cff21316c666c8053b1f425577e324038d0ca30d from qemu
2019-02-22 18:30:44 -05:00
..
accel cputlb: update TLB entry/index after tlb_fill 2019-02-12 11:48:48 -05:00
crypto
default-configs
docs docs/devel/memory.txt: Document _with_attrs accessors 2018-10-04 04:46:26 -04:00
fpu include/fpu/softfloat: Fix compilation with Clang on s390x 2019-01-24 18:37:51 -05:00
hw hw/mips/mips_r4k: Fix initialization of MIPS target CPUs 2018-09-03 17:40:08 -04:00
include target/arm: expose remaining CPUID registers as RAZ 2019-02-15 17:48:37 -05:00
qapi qapi: Rewrite string-input-visitor's integer and list parsing 2018-12-18 04:57:25 -05:00
qobject qstring: Move qstring_from_substr()'s @end one to the right 2018-08-02 21:24:19 -04:00
qom qom/cpu: Add cluster_index to CPUState 2019-01-30 12:59:59 -05:00
scripts qapi: Prepare for system modules other than 'builtin' 2019-02-21 09:58:54 -05:00
target target/arm: v8M MPU should use background region as default, not always 2019-02-22 18:30:44 -05:00
tcg target/mips: reimplement SC instruction emulation and use cmpxchg 2019-02-15 17:10:16 -05:00
util mmap-alloc: fix hugetlbfs misaligned length in ppc64 2019-02-05 16:52:39 -05:00
aarch64.h target/arm: Use vector operations for saturation 2019-02-15 18:14:09 -05:00
aarch64eb.h target/arm: Use vector operations for saturation 2019-02-15 18:14:09 -05:00
accel.c
arm.h target/arm: Use vector operations for saturation 2019-02-15 18:14:09 -05:00
armeb.h target/arm: Use vector operations for saturation 2019-02-15 18:14:09 -05:00
CODING_STYLE
configure configure: Force the C standard to gnu99 2019-01-22 20:18:58 -05:00
COPYING
COPYING.LIB
cpus.c Include qapi/error.h exactly where needed 2018-03-07 12:26:38 -05:00
exec.c exec.c: Use correct attrs in cpu_memory_rw_debug() 2019-01-29 17:05:50 -05:00
gen_all_header.sh
glib_compat.c target/arm: expose remaining CPUID registers as RAZ 2019-02-15 17:48:37 -05:00
HACKING HACKING: document preference for g_new instead of g_malloc 2018-05-22 00:30:50 -04:00
header_gen.py target/arm: Use vector operations for saturation 2019-02-15 18:14:09 -05:00
ioport.c
LICENSE
m68k.h target/arm: Use vector operations for saturation 2019-02-15 18:14:09 -05:00
Makefile Revert "Makefile: Rename TARGET_DIRS to TARGET_LIST" 2018-07-05 17:40:24 -04:00
Makefile.objs qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-09 11:35:11 -05:00
Makefile.target configure: Remove old -fno-gcse workaround for GCC 4.6.x and 4.7.[012] 2018-12-18 03:52:36 -05:00
memory.c memory: learn about non-volatile memory region 2018-11-11 08:50:39 -05:00
memory_ldst.inc.c exec: Fix MAP_RAM for cached access 2018-07-03 01:11:12 -04:00
memory_mapping.c
mips.h target/arm: Use vector operations for saturation 2019-02-15 18:14:09 -05:00
mips64.h target/arm: Use vector operations for saturation 2019-02-15 18:14:09 -05:00
mips64el.h target/arm: Use vector operations for saturation 2019-02-15 18:14:09 -05:00
mipsel.h target/arm: Use vector operations for saturation 2019-02-15 18:14:09 -05:00
powerpc.h target/arm: Use vector operations for saturation 2019-02-15 18:14:09 -05:00
qemu-timer.c
riscv32.h target/arm: Add v8M stack checks on ADD/SUB/MOV of SP 2018-10-08 14:15:15 -04:00
riscv64.h target/arm: Add v8M stack checks on ADD/SUB/MOV of SP 2018-10-08 14:15:15 -04:00
rules.mak build-sys: silence make by default or V=0 2018-03-06 08:58:03 -05:00
sparc.h target/arm: Use vector operations for saturation 2019-02-15 18:14:09 -05:00
sparc64.h target/arm: Use vector operations for saturation 2019-02-15 18:14:09 -05:00
unicorn_common.h unicorn_common: Fix unicorn memory functions failing 2018-09-03 10:40:14 -04:00
VERSION Open 4.0 development tree 2018-12-11 20:33:45 -05:00
vl.c Use cpu_create(type) instead of cpu_init(cpu_model) 2018-03-20 14:20:30 -04:00
vl.h
x86_64.h target/arm: Use vector operations for saturation 2019-02-15 18:14:09 -05:00