[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC v3 PATCH 14/14] target-i386: Generate fences for x
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [RFC v3 PATCH 14/14] target-i386: Generate fences for x86 |
Date: |
Tue, 21 Jun 2016 18:33:51 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 |
On 21/06/2016 18:23, Richard Henderson wrote:
> On 06/21/2016 09:12 AM, Paolo Bonzini wrote:
>>
>>
>> On 21/06/2016 17:57, Richard Henderson wrote:
>>>>>
>>>>> || (prefixes & PREFIX_LOCK)) {
>>>>> goto illegal_op;
>>>>> }
>>>>> + tcg_gen_mb(TCG_MO_ST_ST | TCG_BAR_SC);
>>>>> break;
>>>>> case 0xe8 ... 0xef: /* lfence */
>>>>> + tcg_gen_mb(TCG_MO_LD_LD | TCG_BAR_SC);
>>>>> + break;
>>>>
>>>> These are unnecessary. On the other hand, _each and every load_
>>>> must be
>>>> followed by a LD_LD | LD_ST barrier, and each and every store must be
>>>> preceded by a LD_ST | ST_ST barrier.
>>>
>>> They're not unnecessary if we (1) add those barriers for normal loads
>>> and stores and (2) omit them from the non-temporal loads and stores.
>>
>> When does TCG generate non-temporal loads and stores?
>
> I was talking about the guest non-temporal loads and stores.
Oh, you're right---sorry, I confused target-i386 and tcg/i386.
Thanks,
Paolo