Reported by: patrick@os.amperecomputing.com
https://mail.openjdk.java.net/pipermail/aarch64-port-dev/2019-February/006942.html
===================
Perhaps TemplateTable::fast_storefield needs the additional " | MacroAssembler::LoadStore" as well, please double check, thanks.
http://hg.openjdk.java.net/jdk/jdk/file/f41793b5b83f/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp#l2984
===================
Proposed fix: https://mail.openjdk.java.net/pipermail/aarch64-port-dev/2019-February/006947.html
diff -r 2a78b2963793 src/hotspot/cpu/aarch64/templateTable_aarch64.cpp
--- a/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp Wed Feb 13 13:27:17 2019 +0100
+++ b/src/hotspot/cpu/aarch64/templateTable_aarch64.cpp Fri Feb 22 17:18:20 2019 +0800
@@ -2981,7 +2981,7 @@
{
Label notVolatile;
__ tbz(r3, ConstantPoolCacheEntry::is_volatile_shift, notVolatile);
- __ membar(MacroAssembler::StoreStore);
+ __ membar(MacroAssembler::StoreStore | MacroAssembler::LoadStore);
__ bind(notVolatile);
}