--- boost/detail/sp_counted_base_gcc_ppc.hpp +++ boost/detail/sp_counted_base_gcc_ppc.hpp @@ -41,14 +41,13 @@ __asm__ ( "0:\n\t" - "lwarx %1, 0, %2\n\t" + "lwarx %1, %y0\n\t" "addi %1, %1, 1\n\t" - "stwcx. %1, 0, %2\n\t" + "stwcx. %1, %y0\n\t" "bne- 0b": - "=m"( *pw ), "=&b"( tmp ): - "r"( pw ), "m"( *pw ): - "cc" + "+Z"( *pw ), "=&b"( tmp ):: + "memory", "cc" ); } @@ -62,14 +61,13 @@ ( "sync\n\t" "0:\n\t" - "lwarx %1, 0, %2\n\t" + "lwarx %1, %y0\n\t" "addi %1, %1, -1\n\t" - "stwcx. %1, 0, %2\n\t" + "stwcx. %1, %y0\n\t" "bne- 0b\n\t" "isync": - "=m"( *pw ), "=&b"( rv ): - "r"( pw ), "m"( *pw ): + "+Z"( *pw ), "=&b"( rv ):: "memory", "cc" ); @@ -86,17 +84,16 @@ __asm__ ( "0:\n\t" - "lwarx %1, 0, %2\n\t" + "lwarx %1, %y0\n\t" "cmpwi %1, 0\n\t" "beq 1f\n\t" "addi %1, %1, 1\n\t" "1:\n\t" - "stwcx. %1, 0, %2\n\t" + "stwcx. %1, %y0\n\t" "bne- 0b": - "=m"( *pw ), "=&b"( rv ): - "r"( pw ), "m"( *pw ): - "cc" + "+Z"( *pw ), "=&b"( rv ):: + "memory", "cc" ); return rv;