|
From: | Paolo Bonzini |
Subject: | Re: [Qemu-devel] [RFC v3 PATCH 14/14] target-i386: Generate fences for x86 |
Date: | Tue, 21 Jun 2016 18:12:56 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 |
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? Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |