Rev 861 | Rev 1024 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 861 | Rev 863 | ||
|---|---|---|---|
| Line 51... | Line 51... | ||
| 51 | "0:\n" |
51 | "0:\n" |
| 52 | "ldx %0, %1\n" |
52 | "ldx %0, %1\n" |
| 53 | "add %1, %3, %2\n" |
53 | "add %1, %3, %2\n" |
| 54 | "casx %0, %1, %2\n" |
54 | "casx %0, %1, %2\n" |
| 55 | "cmp %1, %2\n" |
55 | "cmp %1, %2\n" |
| 56 | "bne 0b\n" |
56 | "bne 0b\n" /* The operation failed and must be attempted again if a != b. */ |
| 57 | "nop\n" |
57 | "nop\n" |
| 58 | : "=m" (*((__u64 *)x)), "=r" (a), "=r" (b) |
58 | : "=m" (*((__u64 *)x)), "=r" (a), "=r" (b) |
| 59 | : "r" (i) |
59 | : "r" (i) |
| 60 | ); |
60 | ); |
| 61 | 61 | ||