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

Reply via email to