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 Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
bpt_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
cc_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
cc_helper_template.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
cpu-qom.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
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 Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
fpu_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
helper.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
int_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
Makefile.objs Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
mem_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
misc_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
mpx_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
ops_sse.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
ops_sse_header.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
seg_helper.c target-i386: defer VMEXIT to do_interrupt 2018-03-02 12:49:18 -05:00
shift_helper_template.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
smm_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
svm.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
svm_helper.c target-i386: defer VMEXIT to do_interrupt 2018-03-02 12:49:18 -05:00
TODO Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
topology.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
translate.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
unicorn.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
unicorn.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00