< prev index next >
src/share/vm/memory/allocation.inline.hpp
Print this page
@@ -35,12 +35,12 @@
void trace_heap_free(void *p);
#ifndef PRODUCT
// Increments unsigned long value for statistics (not atomic on MP).
inline void inc_stat_counter(volatile julong* dest, julong add_value) {
-#if defined(SPARC) || defined(X86)
- // Sparc and X86 have atomic jlong (8 bytes) instructions
+#if defined(SPARC) || defined(X86) || defined(AARCH64)
+ // Sparc, X86 and AArch64 have atomic jlong (8 bytes) instructions
julong value = Atomic::load((volatile jlong*)dest);
value += add_value;
Atomic::store((jlong)value, (volatile jlong*)dest);
#else
// possible word-tearing during load/store
< prev index next >