mirror_qemu/target-i386
Pavel Dovgalyuk c4d4525c38 target-i386: fix icount processing for repz instructions
TCG generates optimized code for i386 repz instructions in single step mode.
It means that when ecx becomes 0, execution of the string instruction breaks
immediately without an additional iteration for ecx==0 (which will only check
ecx and set the flags). Omitting this iteration leads to different
instructions counting in singlestep mode and in normal execution.
This patch disables optimization of this last iteration for icount mode
which should be deterministic.

v2: inverted the condition and formatted the comment

Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
Signed-off-by: Richard Henderson <rth@twiddle.net>
2014-12-14 16:48:38 -06:00
..
Makefile.objs Makefile.target: CONFIG_NO_* variables removed 2013-10-16 18:21:00 +02:00
TODO target-i386: fix {min,max}{pd,ps,sd,ss} SSE2 instructions 2012-01-11 09:55:28 +01:00
arch_dump.c dump: rebase from host-private RAMBlock offsets to guest-physical addresses 2013-08-08 11:01:46 -04:00
arch_memory_mapping.c exec: Make ldq/ldub_*_phys input an AddressSpace 2014-02-11 22:57:00 +10:00
cc_helper.c tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
cc_helper_template.h target-i386: Implement BLSR, BLSMSK, BLSI 2013-02-18 15:52:05 -08:00
cpu-qom.h target-i386: Use cpu_exec_interrupt qom hook 2014-09-25 18:54:22 +01:00
cpu.c apic: avoid getting out of halted state on masked PIC interrupts 2014-11-24 14:37:30 +01:00
cpu.h target-i386: fix Coverity complaints about overflows 2014-11-13 16:13:27 +01:00
excp_helper.c tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
fpu_helper.c target-i386: fbld instruction doesn't set minus sign 2014-12-14 16:34:29 -06:00
gdbstub.c target-i386: update fp status fix 2014-09-18 17:06:12 +02:00
helper.c target-i386: Use cpu_exec_enter/exit qom hooks 2014-09-25 18:54:21 +01:00
helper.h tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
int_helper.c tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
ioport-user.c exec: move include files to include/exec/ 2012-12-19 08:31:31 +01:00
kvm-stub.c target-i386: Fix build by providing stub kvm_arch_get_supported_cpuid() 2013-11-21 17:39:11 +01:00
kvm.c target-i386: add Intel AVX-512 support 2014-10-24 18:03:14 +02:00
kvm_i386.h kvm: forward INIT signals coming from the chipset 2014-05-13 13:12:40 +02:00
machine.c target-i386: add Intel AVX-512 support 2014-10-24 18:03:14 +02:00
mem_helper.c softmmu: introduce cpu_ldst.h 2014-06-05 16:10:33 +02:00
misc_helper.c target-i386: move check_io helpers to seg_helper.c 2014-06-05 16:10:34 +02:00
ops_sse.h target-i386: Use Common ShiftRows and InvShiftRows Tables 2014-06-16 13:24:33 +02:00
ops_sse_header.h target-i386: add AES-NI instructions 2013-04-13 13:51:57 +02:00
seg_helper.c target-i386: eliminate dead code and hoist common code out of "if" 2014-11-12 12:43:45 +01:00
shift_helper_template.h target-i386: compute eflags outside rcl/rcr helper 2013-02-18 15:03:56 -08:00
smm_helper.c Merge remote-tracking branch 'remotes/kvm/uq/master' into staging 2014-06-05 19:16:28 +01:00
svm.h Use new macro QEMU_PACKED for packed structures 2011-09-03 10:45:59 +00:00
svm_helper.c Merge remote-tracking branch 'remotes/bonzini/softmmu-smap' into staging 2014-06-05 21:06:14 +01:00
topology.h target-i386: Inline bitops_flsl 2013-02-16 11:12:29 +00:00
translate.c target-i386: fix icount processing for repz instructions 2014-12-14 16:48:38 -06:00