boost/boost-ppc-asm.patch

62 lines
1.3 KiB
Diff

--- 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;