8202978: Incorrect tmp register passed to MacroAssembler::load_mirror()

Reviewed-by: kvn, coleenp
This commit is contained in:
Per Lidén 2018-05-17 09:35:38 +02:00
parent 01b0f9ea7d
commit 81494ca92d
2 changed files with 3 additions and 1 deletions

View File

@ -6276,6 +6276,8 @@ void MacroAssembler::restore_cpu_control_state_after_jni() {
// ((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.

View File

@ -973,7 +973,7 @@ address TemplateInterpreterGenerator::generate_native_entry(bool synchronized) {
__ 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);