On 02/28/2018 02:50 PM, Emilio G. Cota wrote:
> Is this any better?
>
> #define TB_FOR_EACH_TAGGED(head, tb, n, field) \
> for (n = (head) & 1, tb = (TranslationBlock *)((head) & ~1);\
> tb; tb = (TranslationBlock *)tb->field[n], n = (uintptr_t)tb &
On Wed, Feb 28, 2018 at 13:40:15 -0800, Richard Henderson wrote:
> On 02/26/2018 09:39 PM, Emilio G. Cota wrote:
> > +/* list iterators for lists of tagged pointers in TranslationBlock */
> > +#define TB_FOR_EACH_TAGGED(head, tb, n, field) \
> > +for (n = (head) & 1,
On 02/26/2018 09:39 PM, Emilio G. Cota wrote:
> +/* list iterators for lists of tagged pointers in TranslationBlock */
> +#define TB_FOR_EACH_TAGGED(head, tb, n, field) \
> +for (n = (head) & 1,\
> + tb = (TranslationBlock
This commit does several things, but to avoid churn I merged them all
into the same commit. To wit:
- Use uintptr_t instead of TranslationBlock * for the list of TBs in a page.
Just like we did in (c37e6d7e "tcg: Use uintptr_t type for
jmp_list_{next|first} fields of TB"), the rationale is