hotspot/src/share/vm/opto/library_call.cpp
changeset 29076 4a5f7c1e6ed7
parent 28957 75ca61f0b7c7
child 29341 dedd5ddb0f95
equal deleted inserted replaced
29075:ad5e1490d635 29076:4a5f7c1e6ed7
  2596 
  2596 
  2597   // Memory barrier to prevent normal and 'unsafe' accesses from
  2597   // Memory barrier to prevent normal and 'unsafe' accesses from
  2598   // bypassing each other.  Happens after null checks, so the
  2598   // bypassing each other.  Happens after null checks, so the
  2599   // exception paths do not take memory state from the memory barrier,
  2599   // exception paths do not take memory state from the memory barrier,
  2600   // so there's no problems making a strong assert about mixing users
  2600   // so there's no problems making a strong assert about mixing users
  2601   // of safe & unsafe memory.  Otherwise fails in a CTW of rt.jar
  2601   // of safe & unsafe memory.
  2602   // around 5701, class sun/reflect/UnsafeBooleanFieldAccessorImpl.
       
  2603   if (need_mem_bar) insert_mem_bar(Op_MemBarCPUOrder);
  2602   if (need_mem_bar) insert_mem_bar(Op_MemBarCPUOrder);
  2604 
  2603 
  2605   if (!is_store) {
  2604   if (!is_store) {
  2606     MemNode::MemOrd mo = is_volatile ? MemNode::acquire : MemNode::unordered;
  2605     MemNode::MemOrd mo = is_volatile ? MemNode::acquire : MemNode::unordered;
  2607     Node* p = make_load(control(), adr, value_type, type, adr_type, mo, is_volatile);
  2606     Node* p = make_load(control(), adr, value_type, type, adr_type, mo, is_volatile);