* Richard Henderson (r...@twiddle.net) wrote: > On 03/03/2015 07:47 AM, Dr. David Alan Gilbert wrote: > > That works for ARM where you have to terminate a ldrex with a strex or > > clrex, > > but not all architectures have the equivalent of a clrex; most as I remember > > just let you do an ldrex equivalent, decide you don't want to do the strex > > equivalent > > and get on with life. > > > I'm pretty sure that's not the case. In fact, I can guarantee you that GCC > never issues clrex, but does in fact simply do nothing like you describe for > other architectures if we decide not to do the store.
Oh well, that means this technique won't work even for ARM, where I thought it might stand a chance for ARM but nothing else. I've still got a vague memory that some ARM docs at one point told you that you should terminate an LDREX by either an STREX or a CLREX; but it's ~3.5 years since I did any arm wrestling. Dave > r~ -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK