unicorn/qemu
Paolo Bonzini 3dab621825
target-i386: do not duplicate page protection checks
x86_cpu_handle_mmu_fault is currently checking twice for writability
and executability of pages; the first time to decide whether to
trigger a page fault, the second time to compute the "prot" argument
to tlb_set_page_with_attrs.

Reorganize code so that first "prot" is computed, then it is used
to check whether to raise a page fault, then finally PROT_WRITE is
removed if the D bit will have to be set.

Backports commit 76c64d33601a4948d6f72022992574a75b6fab97 from qemu
2018-02-17 20:59:54 -05:00
..
crypto Drop unused crypto source files 2018-02-17 15:23:57 -05:00
default-configs arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
docs docs: clarify memory region lifecycle 2018-02-12 15:11:21 -05:00
fpu softfloat: expand out STATUS macro 2018-02-12 13:43:13 -05:00
hw osdep.h: Move some compiler-specific things to compiler.h 2018-02-17 15:23:28 -05:00
include error: Improve documentation 2018-02-17 20:52:49 -05:00
qapi qstring: Make conversion from QObject * accept null 2018-02-17 15:24:12 -05:00
qobject qstring: Make conversion from QObject * accept null 2018-02-17 15:24:12 -05:00
qom qom: Introduce ObjectPropertyIterator struct for iteration 2018-02-17 18:39:00 -05:00
scripts Save copies of generated qapi files. 2017-01-21 00:30:50 +11:00
target-arm target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00
target-i386 target-i386: do not duplicate page protection checks 2018-02-17 20:59:54 -05:00
target-m68k target-*: Advance pc after recognizing a breakpoint 2018-02-17 15:24:11 -05:00
target-mips target-mips: flush QEMU TLB when disabling 64-bit addressing 2018-02-17 19:06:43 -05:00
target-sparc sparc: allow CASA with ASI 0xa from user space 2018-02-17 19:23:35 -05:00
tcg tcg: Fix highwater check 2018-02-17 18:53:18 -05:00
util error: Improve documentation 2018-02-17 20:52:49 -05:00
aarch64.h target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00
aarch64eb.h target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00
accel.c Automated leading tab to spaces conversion. 2017-01-21 12:28:22 +11:00
arm.h target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00
armeb.h target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00
CODING_STYLE import 2015-08-21 15:04:50 +08:00
configure tcg: Drop ia64 host support 2018-02-04 18:33:02 -05:00
COPYING import 2015-08-21 15:04:50 +08:00
COPYING.LIB import 2015-08-21 15:04:50 +08:00
cpu-exec-common.c cpu-exec: Migrate some generic fns to cpu-exec-common 2018-02-17 15:23:51 -05:00
cpu-exec.c cpu-exec: Fix compiler warning (-Werror=clobbered) 2018-02-17 15:24:15 -05:00
cpus.c cpu-exec: Purge all uses of ENV_GET_CPU() 2018-02-17 15:23:18 -05:00
cputlb.c cputlb: Change tlb_set_dirty() arg to cpu 2018-02-17 15:23:52 -05:00
exec.c memory: try to inline constant-length reads 2018-02-17 20:44:39 -05:00
gen_all_header.sh arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
glib_compat.c crypto: introduce new module for computing hash digests 2018-02-17 15:23:17 -05:00
HACKING import 2015-08-21 15:04:50 +08:00
header_gen.py target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00
ioport.c ioport: do not use CPU_LOG_IOPORT 2018-02-17 15:24:15 -05:00
LICENSE import 2015-08-21 15:04:50 +08:00
m68k.h target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00
Makefile crypto: move crypto objects out of libqemuutil.la 2018-02-17 15:23:50 -05:00
Makefile.objs crypto: move crypto objects out of libqemuutil.la 2018-02-17 15:23:50 -05:00
Makefile.target tcg: split tcg_op_defs to -common 2018-02-17 15:23:51 -05:00
memory_mapping.c memory_mapping: Rework cpu related includes 2018-02-17 15:23:15 -05:00
memory.c memory: inline a few small accessors 2018-02-17 20:35:28 -05:00
mips64.h target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00
mips64el.h target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00
mips.h target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00
mipsel.h target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00
powerpc.h target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00
qapi-schema.json import 2015-08-21 15:04:50 +08:00
qemu-log.c import 2015-08-21 15:04:50 +08:00
qemu-timer.c timer is redundant 2017-01-20 16:46:58 +08:00
rules.mak import 2015-08-21 15:04:50 +08:00
softmmu_template.h softmmu: remove now unused functions 2018-02-17 15:23:38 -05:00
sparc64.h target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00
sparc.h target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00
tcg-runtime.c platform.h move #3 2017-01-21 00:13:21 +11:00
translate-all.c translate-all: ensure host page mask is always extended with 1's 2018-02-17 19:17:19 -05:00
translate-all.h translate-all: remove unnecessary argument to tb_invalidate_phys_range 2018-02-13 09:04:51 -05:00
translate-common.c translate-all: Move tcg_handle_interrupt() to -common 2018-02-17 15:23:51 -05:00
unicorn_common.h This code should now build the x86_x64-softmmu part 2. 2017-01-19 22:50:28 +11:00
VERSION import 2015-08-21 15:04:50 +08:00
vl.c vl.c: Remove periods and exclamation points from error messages 2018-02-17 15:24:14 -05:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h target-arm: Use the right MMU index in arm_regime_using_lpae_format 2018-02-17 20:56:32 -05:00