Re: [OMPI users] Solaris10/SPARC: atomic_cmpset_64 broken
We're in process of analyzing this issue. I'll keep you updated. george. On Nov 13, 2010, at 08:40 , Nicolai Stange wrote: > Hi everybody, > > gcc 4.5.1 with -O2 optimizes the 'ret = newval' away because %0 is > declared as being write only. > Fix is attached. > > Regards > > Nicolai > <02_fix_atomic_cmpset_64.diff>___ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users
[OMPI users] Solaris10/SPARC: atomic_cmpset_64 broken
Hi everybody, gcc 4.5.1 with -O2 optimizes the 'ret = newval' away because %0 is declared as being write only. Fix is attached. Regards Nicolai --- a/openmpi-1.4.3/opal/include/opal/sys/sparcv9/atomic.h 2009-12-08 21:36:02.0 +0100 +++ openmpi-1.4.3/opal/include/opal/sys/sparcv9/atomic.h 2010-11-12 21:20:28.356657500 +0100 @@ -159,7 +159,7 @@ "ldx %2, %%g2 \n\t" /* g2 = oldval */ "casxa [%1] " ASI_P ", %%g2, %%g1 \n\t" "stx %%g1, %0 \n" - : "=m"(ret) + : "+m"(ret) : "r"(addr), "m"(oldval) : "%g1", "%g2" );