< prev index next >

src/cpu/x86/vm/templateTable_x86.cpp

Print this page
rev 13551 : imported patch gcinterface-aarch64-5.patch

@@ -997,19 +997,19 @@
   __ bind(ok_is_subtype);
 
   // 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]
   __ bind(is_null);
   __ 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);
   __ addptr(rsp, 3 * Interpreter::stackElementSize);
 }

@@ -3015,11 +3015,11 @@
   // atos
   {
     __ 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);
     }
     __ jmp(Done);
   }

@@ -3268,11 +3268,11 @@
   const Address field(rcx, rbx, Address::times_1);
 
   // 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
   __ movq(field, rax);
 #else
< prev index next >