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~