1 | *** atomic.hpp Tue Aug 8 18:57:58 2017
|
---|
2 | --- atomic.hpp.orig Sun Apr 16 20:22:21 2017
|
---|
3 | ***************
|
---|
4 | *** 218,228 ****
|
---|
5 | {
|
---|
6 | boost::uint32_t prev, temp;
|
---|
7 |
|
---|
8 | ! asm volatile ("L1.%=:\n\t"
|
---|
9 | "lwarx %0,0,%2\n\t"
|
---|
10 | "add %1,%0,%3\n\t"
|
---|
11 | "stwcx. %1,0,%2\n\t"
|
---|
12 | ! "bne- L1.%="
|
---|
13 | : "=&r" (prev), "=&r" (temp)
|
---|
14 | : "b" (mem), "r" (val)
|
---|
15 | : "cc", "memory");
|
---|
16 | --- 218,228 ----
|
---|
17 | {
|
---|
18 | boost::uint32_t prev, temp;
|
---|
19 |
|
---|
20 | ! asm volatile ("1:\n\t"
|
---|
21 | "lwarx %0,0,%2\n\t"
|
---|
22 | "add %1,%0,%3\n\t"
|
---|
23 | "stwcx. %1,0,%2\n\t"
|
---|
24 | ! "bne- 1b"
|
---|
25 | : "=&r" (prev), "=&r" (temp)
|
---|
26 | : "b" (mem), "r" (val)
|
---|
27 | : "cc", "memory");
|
---|
28 | ***************
|
---|
29 | *** 240,252 ****
|
---|
30 | {
|
---|
31 | boost::uint32_t prev;
|
---|
32 |
|
---|
33 | ! asm volatile ("L1.%=:\n\t"
|
---|
34 | "lwarx %0,0,%1\n\t"
|
---|
35 | "cmpw %0,%3\n\t"
|
---|
36 | ! "bne- L2.%=\n\t"
|
---|
37 | "stwcx. %2,0,%1\n\t"
|
---|
38 | ! "bne- L1.%=\n\t"
|
---|
39 | ! "L2.%=:"
|
---|
40 | : "=&r"(prev)
|
---|
41 | : "b" (mem), "r" (with), "r" (cmp)
|
---|
42 | : "cc", "memory");
|
---|
43 | --- 240,252 ----
|
---|
44 | {
|
---|
45 | boost::uint32_t prev;
|
---|
46 |
|
---|
47 | ! asm volatile ("1:\n\t"
|
---|
48 | "lwarx %0,0,%1\n\t"
|
---|
49 | "cmpw %0,%3\n\t"
|
---|
50 | ! "bne- 2f\n\t"
|
---|
51 | "stwcx. %2,0,%1\n\t"
|
---|
52 | ! "bne- 1b\n\t"
|
---|
53 | ! "2:"
|
---|
54 | : "=&r"(prev)
|
---|
55 | : "b" (mem), "r" (with), "r" (cmp)
|
---|
56 | : "cc", "memory");
|
---|