The function was actually performing an OR instead of a store.
ok kettenis@
-/* $OpenBSD: atomic.h,v 1.4 2022/08/29 02:01:18 jsg Exp $ */
+/* $OpenBSD: atomic.h,v 1.5 2024/01/24 12:25:50 jca Exp $ */
/* Public Domain */
: "memory");
}
-static inline void
-atomic_store_64(volatile uint64_t *p, uint64_t v)
-{
- __asm volatile("amoor.d zero, %1, %0"
- : "+A" (*p)
- : "r" (v)
- : "memory");
-}
-
/*
* Clear bits
* *p = *p & (~v)