Index: uspace/libc/arch/sparc64/include/atomic.h
===================================================================
--- uspace/libc/arch/sparc64/include/atomic.h	(revision 06e1e95342d7b9a9c85c7492529a309d51a3fb6c)
+++ uspace/libc/arch/sparc64/include/atomic.h	(revision 16529d53af40d438671e67b8969cbe09086dc68f)
@@ -52,9 +52,7 @@
 
 	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);
 
