changeset 6718:6e7512a54bc6 icedtea-2.6.18

8221220, PR3726: AArch64: Add StoreStore membar explicitly for Volatile Writes in TemplateTable Reviewed-by: aph
author qpzhang
date Tue, 16 Apr 2019 04:44:36 +0100
parents 4a6c33ce009c
children 5428c90434ec
files src/cpu/aarch64/vm/templateTable_aarch64.cpp
diffstat 1 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/aarch64/vm/templateTable_aarch64.cpp	Tue Apr 16 04:38:49 2019 +0100
+++ b/src/cpu/aarch64/vm/templateTable_aarch64.cpp	Tue Apr 16 04:44:36 2019 +0100
@@ -2846,7 +2846,8 @@
   {
     Label notVolatile;
     __ tbz(r5, ConstantPoolCacheEntry::is_volatile_shift, notVolatile);
-    __ membar(MacroAssembler::Membar_mask_bits(MacroAssembler::StoreLoad));
+    __ membar(MacroAssembler::Membar_mask_bits(MacroAssembler::StoreLoad |
+                                               MacroAssembler::StoreStore));
     __ bind(notVolatile);
   }
 }
@@ -2937,7 +2938,8 @@
   {
     Label notVolatile;
     __ tbz(r3, ConstantPoolCacheEntry::is_volatile_shift, notVolatile);
-    __ membar(MacroAssembler::Membar_mask_bits(MacroAssembler::StoreStore | MacroAssembler::LoadStore));
+    __ membar(MacroAssembler::Membar_mask_bits(MacroAssembler::StoreStore |
+                                               MacroAssembler::LoadStore));
     __ bind(notVolatile);
   }
 
@@ -2984,7 +2986,8 @@
   {
     Label notVolatile;
     __ tbz(r3, ConstantPoolCacheEntry::is_volatile_shift, notVolatile);
-    __ membar(MacroAssembler::Membar_mask_bits(MacroAssembler::StoreLoad));
+    __ membar(MacroAssembler::Membar_mask_bits(MacroAssembler::StoreLoad |
+                                               MacroAssembler::StoreStore));
     __ bind(notVolatile);
   }
 }
@@ -3067,7 +3070,7 @@
     Label notVolatile;
     __ tbz(r3, ConstantPoolCacheEntry::is_volatile_shift, notVolatile);
     __ membar(MacroAssembler::Membar_mask_bits(MacroAssembler::LoadLoad |
-                                                      MacroAssembler::LoadStore));
+                                               MacroAssembler::LoadStore));
     __ bind(notVolatile);
   }
 }