[PATCH, AArch64 v2 05/11] aarch64: Emit LSE st<op> instructions
Richard Henderson
rth@twiddle.net
Wed Oct 31 11:13:00 GMT 2018
On 10/30/18 8:32 PM, James Greenhalgh wrote:
> On Tue, Oct 02, 2018 at 11:19:09AM -0500, Richard Henderson wrote:
>> When the result of an operation is not used, we can ignore the
>> result by storing to XZR. For two of the memory models, using
>> XZR with LD<op> has a preferred assembler alias, ST<op>.
>
> ST<op> has different semantics to LD<op>, in particular, ST<op> is not
> ordered by a DMB LD; so this could weaken the LDADD and break C11 semantics.
>
> The relevant Arm Arm text is:
>
> If the destination register is not one of WZR or XZR, LDADDA and
> LDADDAL load from memory with acquire semantics
You're quite right. I must have glossed over that clause when looking at this
before. I'll make sure there's a temp register to clobber for v2.
r~
More information about the Gcc-patches
mailing list