Peter Maydell <peter.mayd...@linaro.org> writes:
> On Fri, 19 Jun 2020 at 13:37, Paolo Bonzini <pbonz...@redhat.com> wrote: >> >> On 19/06/20 14:18, Peter Maydell wrote: >> > On Fri, 19 Jun 2020 at 12:16, Paolo Bonzini <pbonz...@redhat.com> wrote: >> >> >> >> On 19/06/20 07:46, Pavel Dovgalyuk wrote: >> >>> I think, that we need some efforts from target maintainers to remove all >> >>> such calls. >> >> >> >> I'll take care of target/i386 (which does need one of the three >> >> gen_io_end calls that are left). >> > >> > So why does it need it ? Why can't it just rely on "TB going to >> > end anyway which will clear the can_do_io flag" ? >> >> Because the TB is not always going to end in that case that is left. > > OK, so when is it valid not to end the TB after an IO instruction ? > My initial belief was that the TB should *always* end. It has to be because the value of icount is either assumes: - having executed all instructions in the block or - done a re-compile, re-crediting the execution not done if not you could associate an io event with the wrong icount value. -- Alex Bennée