|
From: | Richard Henderson |
Subject: | Re: [Qemu-devel] [PATCH 4/5] tcg: reorder removal from lists in tb_phys_invalidate |
Date: | Mon, 28 Mar 2016 17:17:41 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 |
On 03/28/2016 01:58 PM, Paolo Bonzini wrote:
On 28/03/2016 20:42, Sergey Fedorov wrote:On 17/03/16 16:46, address@hidden wrote:First the translation block is invalidated, for which a simple write to tb->pc is enough. This means that cpu-exec will not pick up anymore the block, though it may still execute it through chained jumps. This also replaces the NULLing out of the pointer in the CPUs' local cache.Although, using 'tb->pc' to mark a TB as invalid is probably not such a good idea. There may be some cases when PC could become equal to -1. For example, ARMv6-M uses PC >= 0xFFFFFFF0 to perform exception return. So we'd better introduce a separate 'tb->valid' or 'tb->invalid' flag.It is also possible to use tb->flags for that. I suspect that all-ones tb flags is never valid, but it could also be a #define.
That might work by accident, but it might not. You'd need to reserve a bit across all of the targets.
r~
[Prev in Thread] | Current Thread | [Next in Thread] |