--- old/src/share/vm/opto/memnode.hpp 2014-12-10 05:39:28.656382161 -0500 +++ new/src/share/vm/opto/memnode.hpp 2014-12-10 05:39:28.436401644 -0500 @@ -503,6 +503,10 @@ // Conservatively release stores of object references in order to // ensure visibility of object initialization. static inline MemOrd release_if_reference(const BasicType t) { + // AArch64 doesn't need a release store here because object + // initialization contains the necessary barriers. + AARCH64_ONLY(return unordered); + const MemOrd mo = (t == T_ARRAY || t == T_ADDRESS || // Might be the address of an object reference (`boxing'). t == T_OBJECT) ? release : unordered;