wtf-i586/wtf.c
2025-04-25 12:24:26 +10:00

14 lines
530 B
C

#include <stdint.h>
_Static_assert(__atomic_always_lock_free(sizeof(uintptr_t), 0),
"Implementation assumes lock-free pointer-size cmpxchg");
int example_atomic_load(int size, void *src, void *dest, int model) {
if ((__atomic_always_lock_free(8, src) || (__atomic_always_lock_free(8, 0) && ((uintptr_t)src % 8) == 0))) {
*((uint64_t *)dest) = __atomic_load_n((uint64_t *)src, model);
return 1;
}
else {
return 0;
}
}