*** atomic.hpp Tue Aug 8 18:57:58 2017 --- atomic.hpp.orig Sun Apr 16 20:22:21 2017 *************** *** 218,228 **** { boost::uint32_t prev, temp; ! asm volatile ("L1.%=:\n\t" "lwarx %0,0,%2\n\t" "add %1,%0,%3\n\t" "stwcx. %1,0,%2\n\t" ! "bne- L1.%=" : "=&r" (prev), "=&r" (temp) : "b" (mem), "r" (val) : "cc", "memory"); --- 218,228 ---- { boost::uint32_t prev, temp; ! asm volatile ("1:\n\t" "lwarx %0,0,%2\n\t" "add %1,%0,%3\n\t" "stwcx. %1,0,%2\n\t" ! "bne- 1b" : "=&r" (prev), "=&r" (temp) : "b" (mem), "r" (val) : "cc", "memory"); *************** *** 240,252 **** { boost::uint32_t prev; ! asm volatile ("L1.%=:\n\t" "lwarx %0,0,%1\n\t" "cmpw %0,%3\n\t" ! "bne- L2.%=\n\t" "stwcx. %2,0,%1\n\t" ! "bne- L1.%=\n\t" ! "L2.%=:" : "=&r"(prev) : "b" (mem), "r" (with), "r" (cmp) : "cc", "memory"); --- 240,252 ---- { boost::uint32_t prev; ! asm volatile ("1:\n\t" "lwarx %0,0,%1\n\t" "cmpw %0,%3\n\t" ! "bne- 2f\n\t" "stwcx. %2,0,%1\n\t" ! "bne- 1b\n\t" ! "2:" : "=&r"(prev) : "b" (mem), "r" (with), "r" (cmp) : "cc", "memory");