The following patches fix stability issues with running QEMU on Apple Hypervisor Framework (HVF): - non-RAM, non-ROMD areas need to trap so accesses can be correctly emulated. - Current TSC synchronization implementation is insufficient: when running with more than 1 core, TSC values can go backwards. Until a correct implementation can be written, remove calls to hv_vm_sync_tsc(). Pass through TSC to guest OS. - Fix REX emulation in relation to legacy prefixes. - More correctly match SDM when setting CR0 and PDPTE registers. - Save away exception type as well as vector in hvf_store_events() so they can be correctly reinjected in hvf_inject_interrupts(). Under heavy loads, exceptions got misrouted.
Changes in v2: - Fix code style errors. Cameron Esfahani (5): hvf: non-RAM, non-ROMD memory ranges are now correctly mapped in hvf: remove TSC synchronization code because it isn't fully complete hvf: correctly handle REX prefix in relation to legacy prefixes hvf: more accurately match SDM when setting CR0 and PDPTE registers hvf: save away type as well as vector so we can reinject them target/i386/hvf/hvf.c | 79 ++++++++++++++++++++++++++---------- target/i386/hvf/vmx.h | 18 ++++---- target/i386/hvf/x86_decode.c | 64 ++++++++++++++++------------- target/i386/hvf/x86_decode.h | 20 ++++----- target/i386/hvf/x86_emu.c | 3 -- target/i386/hvf/x86hvf.c | 26 +++++------- 6 files changed, 124 insertions(+), 86 deletions(-) -- 2.24.0