diff --git a/storage/innobase/sync/cache.cc b/storage/innobase/sync/cache.cc index 43d642d05b51b..c5e67709e22b2 100644 --- a/storage/innobase/sync/cache.cc +++ b/storage/innobase/sync/cache.cc @@ -82,7 +82,12 @@ static void pmem_cvap(const void* buf, size_t size) for (uintptr_t u= uintptr_t(buf) & ~(CPU_LEVEL1_DCACHE_LINESIZE), end= uintptr_t(buf) + size; u < end; u+= CPU_LEVEL1_DCACHE_LINESIZE) +#if defined __ARM_ARCH && __ARM_ARCH == 9 + __asm__ __volatile__(".arch armv9.4-a\n dc cvap, %0" :: "r"(u) : "memory"); +#else __asm__ __volatile__(".arch armv8.2-a\n dc cvap, %0" :: "r"(u) : "memory"); +#endif + __asm__ __volatile__("dmb ishst" ::: "memory"); }