]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/arm/atomic.h
xnu-6153.81.5.tar.gz
[apple/xnu.git] / osfmk / arm / atomic.h
index a6b4c2b8c6f568609bb3e47b4f82589fafff1c06..0382aa23349723c06bb2f8bb3c907ca063ba8006 100644 (file)
 #define OS_ATOMIC_USE_LLSC  0
 #endif
 
+#if defined(__ARM_ARCH_8_4__) && defined(__arm64__)
+/* on armv8.4 16-byte aligned load/store pair is atomic */
+#undef os_atomic_load_is_plain
+#define os_atomic_load_is_plain(p) \
+               (sizeof(*(p)) <= 16 && _Alignof(typeof(*(p))) >= sizeof(*(p)))
+#endif
 
 /*
  * On armv7 & arm64, we do provide fine grained dependency injection, so