Index: uspace/libc/arch/sparc64/include/atomic.h
===================================================================
--- uspace/libc/arch/sparc64/include/atomic.h	(revision dd655970297ee2f6828bb8e35ef9b3c181b18b45)
+++ uspace/libc/arch/sparc64/include/atomic.h	(revision 69e9dd2f7155aa5c481a39cd38d3d9bc2e03423b)
@@ -52,7 +52,9 @@
 
 	do {
-		a = val->count;
+		volatile uintptr_t x = (uint64_t) &val->count;
+
+		a = *((uint64_t *) x);
 		b = a + i;
-		asm volatile ("casx %0, %2, %1\n" : "+m" (*val), "+r" (b) : "r" (a));
+		asm volatile ("casx %0, %2, %1\n" : "+m" (*((uint64_t *)x)), "+r" (b) : "r" (a));
 	} while (a != b);
 
