8209408: Primitive heap access for interpreter BarrierSetAssembler/arm32

Reviewed-by: rkennke
This commit is contained in:
Boris Ulasevich 2018-09-03 13:42:58 +03:00
parent bf7cd96146
commit d2e84521c0
5 changed files with 205 additions and 117 deletions

View file

@ -302,8 +302,9 @@ void InterpreterMacroAssembler::load_resolved_reference_at_index(
// Add in the 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
add(cache, cache, AsmOperand(index, lsl, LogBytesPerHeapOop));
load_heap_oop(result, Address(cache, arrayOopDesc::base_offset_in_bytes(T_OBJECT)));
logical_shift_left(index, index, LogBytesPerHeapOop);
add(index, index, arrayOopDesc::base_offset_in_bytes(T_OBJECT));
load_heap_oop(result, Address(cache, index));
}
void InterpreterMacroAssembler::load_resolved_klass_at_offset(