--- old/src/cpu/x86/vm/templateTable_x86.cpp 2017-09-21 10:12:33.426906393 -0400 +++ new/src/cpu/x86/vm/templateTable_x86.cpp 2017-09-21 10:12:33.162896318 -0400 @@ -999,7 +999,7 @@ // Get the value we will store __ movptr(rax, at_tos()); // Now store using the appropriate barrier - do_oop_store(_masm, Address(rdx, 0), rax, ACCESS_IN_HEAP); + do_oop_store(_masm, Address(rdx, 0), rax, ACCESS_IN_HEAP | ACCESS_IN_HEAP_ARRAY); __ jmp(done); // Have a NULL in rax, rdx=array, ecx=index. Store NULL at ary[idx] @@ -1007,7 +1007,7 @@ __ profile_null_seen(rbx); // Store a NULL - do_oop_store(_masm, element_address, noreg, ACCESS_IN_HEAP); + do_oop_store(_masm, element_address, noreg, ACCESS_IN_HEAP | ACCESS_IN_HEAP_ARRAY); // Pop stack arguments __ bind(done); @@ -3017,7 +3017,7 @@ __ pop(atos); if (!is_static) pop_and_check_object(obj); // Store into the field - do_oop_store(_masm, field, rax, ACCESS_IN_HEAP | ACCESS_IN_HEAP_ARRAY); + do_oop_store(_masm, field, rax, ACCESS_IN_HEAP); if (!is_static && rc == may_rewrite) { patch_bytecode(Bytecodes::_fast_aputfield, bc, rbx, true, byte_no); } @@ -3270,7 +3270,7 @@ // access field switch (bytecode()) { case Bytecodes::_fast_aputfield: - do_oop_store(_masm, field, rax, ACCESS_IN_HEAP | ACCESS_IN_HEAP_ARRAY); + do_oop_store(_masm, field, rax, ACCESS_IN_HEAP); break; case Bytecodes::_fast_lputfield: #ifdef _LP64