--- old/src/cpu/arm/vm/macroAssembler_arm.cpp 2017-08-14 18:56:54.718241214 -0400 +++ new/src/cpu/arm/vm/macroAssembler_arm.cpp 2017-08-14 18:56:54.489530889 -0400 @@ -2887,6 +2887,11 @@ return offset(); } +// ((OopHandle)result).resolve(); +void MacroAssembler::resolve_oop_handle(Register result) { + // OopHandle::resolve is an indirection. + ldr(result, Address(result, 0)); +} void MacroAssembler::load_mirror(Register mirror, Register method, Register tmp) { const int mirror_offset = in_bytes(Klass::java_mirror_offset()); @@ -2896,6 +2901,7 @@ ldr(mirror, Address(tmp, mirror_offset)); } + /////////////////////////////////////////////////////////////////////////////// // Compressed pointers