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 |