xemu/target-i386
Paolo Bonzini 76c64d3360 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.

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-01-15 18:57:50 +01:00
..
arch_dump.c x86: Fuse g_malloc(); memset() into g_malloc0() 2014-12-15 12:21:02 +01:00
arch_memory_mapping.c Switch non-CPU callers from ld/st*_phys to address_space_ld/st* 2015-04-26 16:49:24 +01:00
bpt_helper.c target-i386: Ensure always-1 bits on DR6 can't be cleared 2015-10-23 12:59:27 -02:00
cc_helper_template.h target-i386: Implement BLSR, BLSMSK, BLSI 2013-02-18 15:52:05 -08:00
cc_helper.c target-i386: exception handling for other helper functions 2015-09-15 12:31:59 -07:00
cpu-qom.h target-i386/kvm: Hyper-V SynIC timers MSR's support 2015-12-17 15:24:35 +01:00
cpu.c kvm: x86: add support for KVM_CAP_SPLIT_IRQCHIP 2015-12-17 17:33:47 +01:00
cpu.h target-i386/kvm: Hyper-V SynIC timers MSR's support 2015-12-17 15:24:35 +01:00
excp_helper.c target-i386: introduce new raise_exception functions 2015-09-15 12:28:16 -07:00
fpu_helper.c target-i386: exception handling for FPU instructions 2015-09-15 12:28:16 -07:00
gdbstub.c target-i386: update fp status fix 2014-09-18 17:06:12 +02:00
helper.c target-i386: do not duplicate page protection checks 2016-01-15 18:57:50 +01:00
helper.h target-i386: Check CR4[DE] for processing DR4/DR5 2015-10-23 12:59:27 -02:00
hyperv.c target-i386/hyperv: Hyper-V SynIC SINT routing and vcpu exit 2015-12-17 15:24:34 +01:00
hyperv.h target-i386/hyperv: Hyper-V SynIC SINT routing and vcpu exit 2015-12-17 15:24:34 +01:00
int_helper.c target-i386: exception handling for div instructions 2015-09-15 12:28:16 -07:00
kvm_i386.h kvm: x86: add support for KVM_CAP_SPLIT_IRQCHIP 2015-12-17 17:33:47 +01:00
kvm-stub.c pc: add SMM property 2015-07-06 18:39:59 +02:00
kvm.c target-i386: kvm: clear unusable segments' flags in migration 2015-12-17 17:33:49 +01:00
machine.c target-i386/kvm: Hyper-V SynIC timers MSR's support 2015-12-17 15:24:35 +01:00
Makefile.objs target-i386/hyperv: Hyper-V SynIC SINT routing and vcpu exit 2015-12-17 15:24:34 +01:00
mem_helper.c target-i386: exception handling for memory helpers 2015-09-15 12:31:49 -07:00
misc_helper.c target-i386: Move breakpoint related functions to new file 2015-10-02 16:22:01 -03:00
monitor.c hmp: implemented io apic dump state for TCG 2015-09-25 12:04:42 +02:00
ops_sse_header.h target-i386: add AES-NI instructions 2013-04-13 13:51:57 +02:00
ops_sse.h target-i386: fix pcmpxstrx equal-ordered (strstr) mode 2015-11-04 15:02:30 +01:00
seg_helper.c target-i386: Introduce cpu_x86_update_dr7 2015-10-23 12:59:27 -02:00
shift_helper_template.h target-i386: compute eflags outside rcl/rcr helper 2013-02-18 15:03:56 -08:00
smm_helper.c target-i386: allow any alignment for SMBASE 2015-10-23 12:59:26 -02:00
svm_helper.c target-i386: Use correct memory attributes for memory accesses 2015-06-05 17:10:00 +02:00
svm.h Use new macro QEMU_PACKED for packed structures 2011-09-03 10:45:59 +00:00
TODO target-i386: fix {min,max}{pd,ps,sd,ss} SSE2 instructions 2012-01-11 09:55:28 +01:00
translate.c target-i386: Fix mulx for identical target regs 2015-11-17 17:05:59 -02:00