On 29/03/2016 10:14, Paolo Bonzini wrote: > > > On 29/03/2016 00:12, Richard Henderson wrote: >>> There is also a case where a TB jumps to itself; it then appears twice >>> in the list with different values in the low bits, such as this: >>> >>> tb->jmp_list_first = tb | 0; >>> .--------------------' | >>> | .-------' >>> tb->jmp_list_next[0] = tb | 2; >> >> Of course, it begs the question of why TB would be in its own list, even >> if it does jump to itself. We only need the points-to list in order to >> invalidate a TB and unlink it. But if TB is being invalidated, we don't >> need to reset the jump within TB itself. > > Isn't it just because TB acts as the list head in the circular list? Or > am I misunderstanding you?
Ok, that was dumb. :) Understood it now. Paolo