unicorn/qemu/target-i386
Radim Krčmář f2d3607831
target-i386: emulate CPUID level of real hardware
W10 insider has a bug where it ignores CPUID level and interprets
CPUID.(EAX=07H, ECX=0H) incorrectly, because CPUID in fact returned
CPUID.(EAX=04H, ECX=0H); this resulted in execution of unsupported
instructions.

While it's a Windows bug, there is no reason to emulate incorrect level.

I used http://instlatx64.atw.hu/ as a source of CPUID and checked that
it matches Penryn Xeon X5472, Westmere Xeon W3520, SandyBridge i5-2540M,
and Haswell i5-4670T.

kvm64 and qemu64 were bumped to 0xD to allow all available features for
them (and to avoid the same Windows bug).

Backports commit 3046bb5debc8153a542acb1df93b2a1a85527a15 from qemu.
2018-02-17 15:23:21 -05:00
..
arch_memory_mapping.c Switch non-CPU callers from ld/st*_phys to address_space_ld/st* 2018-02-12 19:27:02 -05:00
bpt_helper.c target-i386: Make check_hw_breakpoints static 2018-02-11 12:28:08 -05:00
cc_helper_template.h
cc_helper.c
cpu-qom.h target-i386: create a separate AddressSpace for each CPU 2018-02-13 12:36:26 -05:00
cpu.c target-i386: emulate CPUID level of real hardware 2018-02-17 15:23:21 -05:00
cpu.h i386: Introduce ARAT CPU feature 2018-02-17 15:23:21 -05:00
excp_helper.c
fpu_helper.c target-i386: fbld instruction doesn't set minus sign 2018-02-17 15:23:20 -05:00
helper.c target-i386: Use correct memory attributes for memory accesses 2018-02-13 11:54:12 -05:00
helper.h target-i386: Use correct memory attributes for ioport accesses 2018-02-13 12:27:43 -05:00
int_helper.c
Makefile.objs target-i386: Move breakpoint related functions to new file 2018-02-11 12:25:24 -05:00
mem_helper.c
misc_helper.c target-i386: Use correct memory attributes for ioport accesses 2018-02-13 12:27:43 -05:00
ops_sse_header.h
ops_sse.h target-i386: simplify AES emulation 2018-02-17 15:23:19 -05:00
seg_helper.c target-i386: Use correct memory attributes for memory accesses 2018-02-13 11:54:12 -05:00
shift_helper_template.h
smm_helper.c target-i386: set G=1 in SMM big real mode selectors 2018-02-13 12:31:18 -05:00
svm_helper.c target-i386: Use correct memory attributes for memory accesses 2018-02-13 11:54:12 -05:00
svm.h
TODO
topology.h
translate.c i386: do not cross the pages boundaries in replay mode 2018-02-17 15:23:20 -05:00
unicorn.c target-i386: make xmm_regs 512-bit wide 2018-02-12 12:38:43 -05:00
unicorn.h