< prev index next >

src/cpu/aarch64/vm/interp_masm_aarch64.cpp

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

*** 22,31 **** --- 22,32 ---- * questions. * */ #include "precompiled.hpp" + #include "gc/shared/barrierSetCodeGen.hpp" #include "interp_masm_aarch64.hpp" #include "interpreter/interpreter.hpp" #include "interpreter/interpreterRuntime.hpp" #include "logging/log.hpp" #include "oops/arrayOop.hpp"
*** 273,283 **** ldr(result, Address(result, ConstantPool::cache_offset_in_bytes())); ldr(result, Address(result, ConstantPoolCache::resolved_references_offset_in_bytes())); 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))); } void InterpreterMacroAssembler::load_resolved_klass_at_offset( Register cpool, Register index, Register klass, Register temp) { add(temp, cpool, index, LSL, LogBytesPerWord); --- 274,285 ---- ldr(result, Address(result, ConstantPool::cache_offset_in_bytes())); ldr(result, Address(result, ConstantPoolCache::resolved_references_offset_in_bytes())); resolve_oop_handle(result); // Add in the index add(result, result, tmp); ! BarrierSetCodeGen *code_gen = BarrierSet::barrier_set()->code_gen(); ! code_gen->load_at(this, ACCESS_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( Register cpool, Register index, Register klass, Register temp) { add(temp, cpool, index, LSL, LogBytesPerWord);
< prev index next >