Index: src/atomic.h ================================================================== --- src/atomic.h +++ src/atomic.h @@ -637,13 +637,12 @@ __asm__ ( "xorl %0, %0\n\t" "lock\n\t" "cmpxchg %2, %3\n\t" - "jne 0\n\t" - "incl %0\n" - "0:" + "sete %b0\n\t" + "movzbl %b0, %0" : "=&r"(r) : "a"(o), "r"(n), "m"(*p) ); return r; @@ -669,13 +668,12 @@ __asm__ ( "xorl %0, %0\n\t" "lock\n\t" "cmpxchg %2, %3\n\t" - "jne 0\n\t" - "incl %0\n" - "0:" + "sete %b0\n\t" + "movzbl %b0, %0" : "=&r"(r) : "a"(o), "r"(n), "m"(*p) ); return r; @@ -701,13 +699,12 @@ __asm__ ( "xorl %0, %0\n\t" "lock\n\t" "cmpxchg %2, %3\n\t" - "jne 0\n\t" - "incl %0\n" - "0:" + "sete %b0\n\t" + "movzbl %b0, %0" : "=&r"(r) : "a"(o), "r"(n), "m"(*p) ); return r;