On 18/07/16 20:28, Paolo Bonzini wrote:
>
> On 18/07/2016 19:25, Sergey Fedorov wrote:
>>>> @@ -753,14 +753,14 @@ static inline void
>>>> cpu_get_invalid_tb_cpu_state(target_ulong *pc,
>>>> target_ulong *cs_base,
>>>> uint32_t *flags)
>>>> {
>>>> - *cs_base = -1; /* npc must be a multible of 4 */
>>>> + *flags = TB_FLAG_MMU_MASK;
>>>> }
>> Hmm, not sure if it is really simpler to follow. Maybe " |= 1;" anyway?
> |= 1 has the problem that tb_mark_invalid doesn't pass TB's tuple into
> cpu_get_invalid_tb_cpu_state, and I didn't want to change that. I'll
> add a comment,
>
> /* TB_FLAG_MMU_MASK is not a valid MMU index, which makes it is an
> * impossible flag combination for valid TBs.
> */
>
I wonder if using a dedicated field to mark TBs invalid would be so slow
that we couldn't afford it...
Kind regards,
Sergey