icount: clean up cpu_can_io at the entry to the block
commitba3e7926691ed33e1164fafbd4fb2e8e50e7c4cd
authorPavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
Thu, 25 Jul 2019 08:44:49 +0000 (25 11:44 +0300)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 20 Aug 2019 15:26:22 +0000 (20 17:26 +0200)
treefc8de5c6231394051bde1be8b89e52be0fe05032
parent13f267133f349f8a322b5385a58688f0dcdf9ed2
icount: clean up cpu_can_io at the entry to the block

Most of IO instructions can be executed only at the end of the block in
icount mode. Therefore translator can set cpu_can_io flag when translating
the last instruction.
But when the blocks are chained, then this flag is not reset and may
remain set at the beginning of the next block.
This patch resets the flag at the entry of any translation block,
making I/O operations impossible by default.

Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
--

v2 changes:
 - reset can_do_io at the start of every TB (suggested by Paolo Bonzini)
Message-Id: <156404428943.18669.15747009371169578935.stgit@pasha-Precision-3630-Tower>

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
accel/tcg/cpu-exec.c
include/exec/gen-icount.h