Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 1889 → Rev 1890

/trunk/uspace/libc/arch/sparc64/include/atomic.h
51,11 → 51,9
uint64_t a, b;
 
do {
volatile uintptr_t x = (uint64_t) &val->count;
 
a = *((uint64_t *) x);
a = val->count;
b = a + i;
__asm__ volatile ("casx %0, %1, %2\n": "+m" (*((uint64_t *)x)), "+r" (a), "+r" (b));
__asm__ volatile ("casx %0, %2, %1\n" : "+m" (*val), "+r" (b) : "r" (a));
} while (a != b);
 
return a;