--- old/src/cpu/sparc/vm/macroAssembler_sparc.cpp 2017-08-14 18:58:07.159721208 -0400 +++ new/src/cpu/sparc/vm/macroAssembler_sparc.cpp 2017-08-14 18:58:06.930888141 -0400 @@ -3822,6 +3822,12 @@ card_table_write(bs->byte_map_base, tmp, store_addr); } +// ((OopHandle)result).resolve(); +void MacroAssembler::resolve_oop_handle(Register result) { + // OopHandle::resolve is an indirection. + ld_ptr(result, 0, result); +} + void MacroAssembler::load_mirror(Register mirror, Register method) { const int mirror_offset = in_bytes(Klass::java_mirror_offset()); ld_ptr(method, in_bytes(Method::const_offset()), mirror);