X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/4ba76501152d51ccb5647018f3192c6096367d48..c6bf4f310a33a9262d455ea4d3f0630b1255e3fe:/osfmk/arm/atomic.h diff --git a/osfmk/arm/atomic.h b/osfmk/arm/atomic.h index a6b4c2b8c..0382aa233 100644 --- a/osfmk/arm/atomic.h +++ b/osfmk/arm/atomic.h @@ -74,6 +74,12 @@ #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