# HG changeset patch # User pliden # Date 1526542538 -7200 # Node ID bd198a98f3c50a91879bfa1a2821fcd2cda23ecf # Parent 6d6fe94168647cbd3a736e75356297bf6723b8e2 8202978: Incorrect tmp register passed to MacroAssembler::load_mirror() Reviewed-by: kvn, coleenp diff -r 6d6fe9416864 -r bd198a98f3c5 src/hotspot/cpu/x86/macroAssembler_x86.cpp --- a/src/hotspot/cpu/x86/macroAssembler_x86.cpp Thu May 17 00:23:28 2018 -0700 +++ b/src/hotspot/cpu/x86/macroAssembler_x86.cpp Thu May 17 09:35:38 2018 +0200 @@ -6276,6 +6276,8 @@ // ((OopHandle)result).resolve(); void MacroAssembler::resolve_oop_handle(Register result, Register tmp) { + assert_different_registers(result, tmp); + // Only 64 bit platforms support GCs that require a tmp register // Only IN_HEAP loads require a thread_tmp register // OopHandle::resolve is an indirection like jobject. diff -r 6d6fe9416864 -r bd198a98f3c5 src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp --- a/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp Thu May 17 00:23:28 2018 -0700 +++ b/src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp Thu May 17 09:35:38 2018 +0200 @@ -973,7 +973,7 @@ __ testl(t, JVM_ACC_STATIC); __ jcc(Assembler::zero, L); // get mirror - __ load_mirror(t, method); + __ load_mirror(t, method, rax); // copy mirror into activation frame __ movptr(Address(rbp, frame::interpreter_frame_oop_temp_offset * wordSize), t);