qemu-e2k/target-i386
Andreas Gustafsson f7e80adf3c target-i386: fix cmpxchg instruction emulation
When the i386 cmpxchg instruction is executed with a memory operand
and the comparison result is "unequal", do the memory write before
changing the accumulator instead of the other way around, because
otherwise the new accumulator value will incorrectly be used in the
comparison when the instruction is restarted after a page fault.

This bug was originally reported on 2010-04-25 as
https://bugs.launchpad.net/qemu/+bug/569760

Signed-off-by: Andreas Gustafsson <gson@gson.org>
2011-12-12 00:46:32 +04:00
..
cpu.h i386: wire up MSR_IA32_MISC_ENABLE 2011-10-24 21:33:32 -02:00
cpuid.c x86/cpuid: Tighten parsing of tsc_freq=FREQ 2011-11-28 16:20:52 -06:00
helper_template.h
helper.c Fix X86 CPU topology in KVM mode 2011-11-02 07:55:05 -05:00
helper.h target-i386: implement lzcnt emulation 2009-10-23 17:10:36 +02:00
kvm.c Fix typo: runnning -> running 2011-11-17 12:57:41 +00:00
machine.c i386: wire up MSR_IA32_MISC_ENABLE 2011-10-24 21:33:32 -02:00
op_helper.c i386: wire up MSR_IA32_MISC_ENABLE 2011-10-24 21:33:32 -02:00
ops_sse_header.h tcg: Optionally sign-extend 32-bit arguments for 64-bit hosts. 2010-06-16 11:29:11 +02:00
ops_sse.h x86: fix pcmpestrm and pcmpistrm 2011-11-19 13:51:27 +00:00
svm.h Use new macro QEMU_PACKED for packed structures 2011-09-03 10:45:59 +00:00
TODO Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
translate.c target-i386: fix cmpxchg instruction emulation 2011-12-12 00:46:32 +04:00