Skip to content

Commit c4c38f9

Browse files
committed
Add arm64 support to leveldb.
1 parent cea9b10 commit c4c38f9

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

port/atomic_pointer.h

+10
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
#define ARCH_CPU_X86_FAMILY 1
3636
#elif defined(__ARMEL__)
3737
#define ARCH_CPU_ARM_FAMILY 1
38+
#elif defined(__aarch64__)
39+
#define ARCH_CPU_ARM64_FAMILY 1
3840
#elif defined(__ppc__) || defined(__powerpc__) || defined(__powerpc64__)
3941
#define ARCH_CPU_PPC_FAMILY 1
4042
#endif
@@ -92,6 +94,13 @@ inline void MemoryBarrier() {
9294
}
9395
#define LEVELDB_HAVE_MEMORY_BARRIER
9496

97+
// ARM64
98+
#elif defined(ARCH_CPU_ARM64_FAMILY)
99+
inline void MemoryBarrier() {
100+
asm volatile("dmb sy" : : : "memory");
101+
}
102+
#define LEVELDB_HAVE_MEMORY_BARRIER
103+
95104
// PPC
96105
#elif defined(ARCH_CPU_PPC_FAMILY) && defined(__GNUC__)
97106
inline void MemoryBarrier() {
@@ -215,6 +224,7 @@ class AtomicPointer {
215224
#undef LEVELDB_HAVE_MEMORY_BARRIER
216225
#undef ARCH_CPU_X86_FAMILY
217226
#undef ARCH_CPU_ARM_FAMILY
227+
#undef ARCH_CPU_ARM64_FAMILY
218228
#undef ARCH_CPU_PPC_FAMILY
219229

220230
} // namespace port

0 commit comments

Comments
 (0)