unicorn/qemu/target/i386
Paolo Bonzini bc7a9ccfbd
target-i386: defer VMEXIT to do_interrupt
Paths through the softmmu code during code generation now need to be audited
to check for double locking of tb_lock. In particular, VMEXIT can take tb_lock
through cpu_vmexit -> cpu_x86_update_cr4 -> tlb_flush.

To avoid this, split VMEXIT delivery in two parts, similar to what is done with
exceptions. cpu_vmexit only records the VMEXIT exit code and information, and
cc->do_interrupt can then deliver it when it is safe to take the lock.

Backports commit 10cde894b63146139f981857e4eedf756fa53dcb from qemu
2018-03-02 12:49:18 -05:00
..
arch_memory_mapping.c
bpt_helper.c
cc_helper_template.h
cc_helper.c
cpu-qom.h
cpu.c i386: Reorganize and document CPUID initialization steps 2018-03-02 10:55:00 -05:00
cpu.h target-i386: defer VMEXIT to do_interrupt 2018-03-02 12:49:18 -05:00
excp_helper.c
fpu_helper.c
helper.c
helper.h
int_helper.c
Makefile.objs
mem_helper.c
misc_helper.c
mpx_helper.c
ops_sse_header.h
ops_sse.h
seg_helper.c target-i386: defer VMEXIT to do_interrupt 2018-03-02 12:49:18 -05:00
shift_helper_template.h
smm_helper.c
svm_helper.c target-i386: defer VMEXIT to do_interrupt 2018-03-02 12:49:18 -05:00
svm.h
TODO
topology.h
translate.c
unicorn.c
unicorn.h