From 91ec2bb646ca1ef14a86232da2aa80a9c9f46d40 Mon Sep 17 00:00:00 2001 From: Gabriel Baraldi Date: Wed, 24 Jan 2024 10:20:40 -0300 Subject: [PATCH] Apple silicon has 128 byte alignment so fix our defines to match (#52996) https://github.com/JuliaLang/julia/blob/8a69745bdcb06409ab7e4fc84718f34d7d54a7f9/base/lock.jl#L33-L50 this probably also needs a fix, and maybe other places as well --- src/julia_internal.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/julia_internal.h b/src/julia_internal.h index 4f92c3eb500e3..d8e9a909f1761 100644 --- a/src/julia_internal.h +++ b/src/julia_internal.h @@ -485,7 +485,11 @@ STATIC_INLINE uint8_t JL_CONST_FUNC jl_gc_szclass_align8(unsigned sz) JL_NOTSAFE } #define JL_SMALL_BYTE_ALIGNMENT 16 +#if defined(_CPU_AARCH64_) && defined(_OS_DARWIN_) // Apple silicon has 128 cache lines +#define JL_CACHE_BYTE_ALIGNMENT 128 +#else #define JL_CACHE_BYTE_ALIGNMENT 64 +#endif // JL_HEAP_ALIGNMENT is the maximum alignment that the GC can provide #define JL_HEAP_ALIGNMENT JL_SMALL_BYTE_ALIGNMENT #define GC_MAX_SZCLASS (2032-sizeof(void*))