]> git.proxmox.com Git - mirror_qemu.git/commit - target-i386/translate.c
target-i386: fix icount processing for repz instructions
authorPavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
Fri, 5 Dec 2014 09:11:13 +0000 (12:11 +0300)
committerRichard Henderson <rth@twiddle.net>
Sun, 14 Dec 2014 22:48:38 +0000 (16:48 -0600)
commitc4d4525c38cd93cc5d1a743976eb25ac571d435f
treee6c24b236447d4447bc64b1bd46f26f002764cc5
parent18b41f95d20ac6dbf918c73e704d4ca1fbc1a62f
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>
target-i386/translate.c