< prev index next >

src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp

Print this page

        

*** 669,684 **** } #endif // ASSERT // get synchronization object { ! Label done; __ movl(rax, access_flags); __ testl(rax, JVM_ACC_STATIC); // get receiver (assume this is frequent case) __ movptr(rax, Address(rlocals, Interpreter::local_offset_in_bytes(0))); ! __ jcc(Assembler::zero, done); __ load_mirror(rax, rbx); #ifdef ASSERT { Label L; --- 669,684 ---- } #endif // ASSERT // get synchronization object { ! Label check_value_recv, done; __ movl(rax, access_flags); __ testl(rax, JVM_ACC_STATIC); // get receiver (assume this is frequent case) __ movptr(rax, Address(rlocals, Interpreter::local_offset_in_bytes(0))); ! __ jcc(Assembler::zero, (EnableValhalla) ? check_value_recv : done); __ load_mirror(rax, rbx); #ifdef ASSERT { Label L;
*** 686,696 **** __ jcc(Assembler::notZero, L); __ stop("synchronization object is NULL"); __ bind(L); } #endif // ASSERT ! __ bind(done); } // add space for monitor & lock __ subptr(rsp, entry_size); // add space for a monitor entry --- 686,703 ---- __ jcc(Assembler::notZero, L); __ stop("synchronization object is NULL"); __ bind(L); } #endif // ASSERT ! __ jmp(done); ! if (EnableValhalla) { ! __ bind(check_value_recv); ! __ test_oop_is_not_value(rax, rbx, done); ! __ call_VM(noreg, CAST_FROM_FN_PTR(address, ! InterpreterRuntime::throw_illegal_monitor_state_exception)); ! __ should_not_reach_here(); ! } __ bind(done); } // add space for monitor & lock __ subptr(rsp, entry_size); // add space for a monitor entry
< prev index next >