aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraph <none@none>2014-02-25 12:29:58 -0500
committeraph <none@none>2014-02-25 12:29:58 -0500
commit42004042dc1fc943a6a1be31d0109173385f1b43 (patch)
tree55ea829658fa79e616a68f3434558caffbde062c
parentd4959c45d3f332b93a0ada2b7c2cde618a753e72 (diff)
C1: Memory barriers for object creationjdk8_b128_aarch64_rc3
-rw-r--r--src/cpu/aarch64/vm/c1_MacroAssembler_aarch64.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/cpu/aarch64/vm/c1_MacroAssembler_aarch64.cpp b/src/cpu/aarch64/vm/c1_MacroAssembler_aarch64.cpp
index 03a62356e..f28d8d6e8 100644
--- a/src/cpu/aarch64/vm/c1_MacroAssembler_aarch64.cpp
+++ b/src/cpu/aarch64/vm/c1_MacroAssembler_aarch64.cpp
@@ -354,6 +354,8 @@ void C1_MacroAssembler::initialize_object(Register obj, Register klass, Register
}
+ membar(StoreStore);
+
if (CURRENT_ENV->dtrace_alloc_probes()) {
assert(obj == r0, "must be");
call(RuntimeAddress(Runtime1::entry_for(Runtime1::dtrace_object_alloc_id)));
@@ -386,6 +388,8 @@ void C1_MacroAssembler::allocate_array(Register obj, Register len, Register t1,
const Register len_zero = len;
initialize_body(obj, arr_size, header_size * BytesPerWord, len_zero);
+ membar(StoreStore);
+
if (CURRENT_ENV->dtrace_alloc_probes()) {
assert(obj == r0, "must be");
bl(RuntimeAddress(Runtime1::entry_for(Runtime1::dtrace_object_alloc_id)));