[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 8/8] tcg: Clean up tb_jmp_unlink()
From: |
Sergey Fedorov |
Subject: |
Re: [Qemu-devel] [PATCH 8/8] tcg: Clean up tb_jmp_unlink() |
Date: |
Thu, 24 Mar 2016 18:52:03 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 |
On 24/03/16 18:42, Sergey Fedorov wrote:
> On 24/03/16 18:36, Alex Bennée wrote:
>>> diff --git a/translate-all.c b/translate-all.c
>>>> index 8b4bfa713bf7..56c77a72773d 100644
>>>> --- a/translate-all.c
>>>> +++ b/translate-all.c
>>>> @@ -962,25 +962,21 @@ static inline void tb_reset_jump(TranslationBlock
>>>> *tb, int n)
>>>> /* remove any jumps to the TB */
>>>> static inline void tb_jmp_unlink(TranslationBlock *tb)
>>>> {
>>>> - uintptr_t tb1, tb2;
>>>> + TranslationBlock *tb1;
>>>> + uintptr_t *ptb;
>>>> unsigned int n1;
>>>>
>>>> - tb1 = tb->jmp_list_first;
>>>> + ptb = &tb->jmp_list_first;
>>>> for (;;) {
>>>> - TranslationBlock *tmp_tb;
>>>> - n1 = tb1 & 3;
>>>> + n1 = *ptb & 3;
>>>> + tb1 = (TranslationBlock *)(*ptb & ~3);
>> I would hope the compiler saw through the duplicate indirect accesses
>> but maybe:
>>
>> uintptr_t *ptb, ntb;
>>
>> and
>>
>> ntb = *ptb;
>> n1 = ntb & 3;
>> tb1 = (TranslationBlock *)(ntb & ~3);
>>
>> would be clearer?
>>
> Why not? :) Will do this.
I'll do the same in tb_remove_from_jmp_list(). It will go to the patch 8
"tcg: Use uintptr_t type for jmp_list_{next|first} fields of TB".
-Sergey
[Qemu-devel] [PATCH 7/8] tcg: Extract removing of jumps to TB from tb_phys_invalidate(), sergey . fedorov, 2016/03/24
Re: [Qemu-devel] [PATCH 0/8] tcg: Direct block chaining clean-up, Paolo Bonzini, 2016/03/24