src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp
changeset 49748 6a880e576856
parent 49480 d7df2dd501ce
child 49753 46f2dc7c4c39
--- a/src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp	Wed Apr 11 10:05:02 2018 -0400
+++ b/src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp	Wed Apr 11 16:07:42 2018 +0200
@@ -24,6 +24,7 @@
  */
 
 #include "precompiled.hpp"
+#include "gc/shared/barrierSetAssembler.hpp"
 #include "interp_masm_aarch64.hpp"
 #include "interpreter/interpreter.hpp"
 #include "interpreter/interpreterRuntime.hpp"
@@ -277,9 +278,8 @@
   resolve_oop_handle(result);
   // Add in the index
   add(result, result, tmp);
-  load_heap_oop(result, Address(result, arrayOopDesc::base_offset_in_bytes(T_OBJECT)));
-  // The resulting oop is null if the reference is not yet resolved.
-  // It is Universe::the_null_sentinel() if the reference resolved to NULL via condy.
+  BarrierSetAssembler *bs = BarrierSet::barrier_set()->barrier_set_assembler();
+  bs->load_at(this, IN_HEAP, T_OBJECT, result, Address(result, arrayOopDesc::base_offset_in_bytes(T_OBJECT)), /*tmp1*/ noreg, /*tmp_thread*/ noreg);
 }
 
 void InterpreterMacroAssembler::load_resolved_klass_at_offset(