< prev index next >

src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp

Print this page
rev 50098 : 8202714: Create a MacroAssembler::access_load/store_at wrapper for AArch64
rev 50100 : 8203172: Primitive heap access for interpreter BarrierSetAssembler/aarch64

*** 265,286 **** // Load object from cpool->resolved_references(index) void InterpreterMacroAssembler::load_resolved_reference_at_index( Register result, Register index, Register tmp) { assert_different_registers(result, index); - // convert from field index to resolved_references() index and from - // word index to byte offset. Since this is a java object, it can be compressed - lslw(index, index, LogBytesPerHeapOop); get_constant_pool(result); // load pointer for resolved_references[] objArray ldr(result, Address(result, ConstantPool::cache_offset_in_bytes())); ldr(result, Address(result, ConstantPoolCache::resolved_references_offset_in_bytes())); resolve_oop_handle(result, tmp); // Add in the index ! add(result, result, index); ! 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); --- 265,283 ---- // Load object from cpool->resolved_references(index) void InterpreterMacroAssembler::load_resolved_reference_at_index( Register result, Register index, Register tmp) { assert_different_registers(result, index); get_constant_pool(result); // load pointer for resolved_references[] objArray ldr(result, Address(result, ConstantPool::cache_offset_in_bytes())); ldr(result, Address(result, ConstantPoolCache::resolved_references_offset_in_bytes())); resolve_oop_handle(result, tmp); // Add in the index ! add(index, index, arrayOopDesc::base_offset_in_bytes(T_OBJECT) >> LogBytesPerHeapOop); ! load_heap_oop(result, Address(result, index, Address::uxtw(LogBytesPerHeapOop))); } void InterpreterMacroAssembler::load_resolved_klass_at_offset( Register cpool, Register index, Register klass, Register temp) { add(temp, cpool, index, LSL, LogBytesPerWord);
< prev index next >