Mercurial > hg > openjdk > aarch64-port > hotspot
changeset 7546:b5dc2da31ba5
Backout 7167:6298eeefbb7b
author | aph |
---|---|
date | Tue, 09 Sep 2014 09:32:14 -0400 |
parents | bdd6cf8f4f10 |
children | e97a048e045a |
files | src/share/vm/opto/memnode.hpp src/share/vm/opto/parse2.cpp |
diffstat | 2 files changed, 1 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/opto/memnode.hpp Tue Sep 09 09:30:42 2014 -0400 +++ b/src/share/vm/opto/memnode.hpp Tue Sep 09 09:32:14 2014 -0400 @@ -488,12 +488,6 @@ // 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 because if there is an - // address dependency between a read and a write, then those - // memory accesses are observed in program order by all observers - // within the shareability domain. - 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;
--- a/src/share/vm/opto/parse2.cpp Tue Sep 09 09:30:42 2014 -0400 +++ b/src/share/vm/opto/parse2.cpp Tue Sep 09 09:32:14 2014 -0400 @@ -1744,7 +1744,7 @@ a = pop(); // the array itself const TypeOopPtr* elemtype = _gvn.type(a)->is_aryptr()->elem()->make_oopptr(); const TypeAryPtr* adr_type = TypeAryPtr::OOPS; - Node* store = store_oop_to_array(control(), a, d, adr_type, c, elemtype, T_OBJECT, StoreNode::release_if_reference(T_OBJECT)); + Node* store = store_oop_to_array(control(), a, d, adr_type, c, elemtype, T_OBJECT, MemNode::release); break; } case Bytecodes::_lastore: {