src/cpu/x86/vm/templateTable_x86_64.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8048721 Cdiff src/cpu/x86/vm/templateTable_x86_64.cpp

src/cpu/x86/vm/templateTable_x86_64.cpp

Print this page

        

*** 1749,1761 **** // r14: locals pointer // r13: bcp __ testptr(rax, rax); // test result __ jcc(Assembler::zero, dispatch); // no osr if null // nmethod may have been invalidated (VM may block upon call_VM return) ! __ movl(rcx, Address(rax, nmethod::entry_bci_offset())); ! __ cmpl(rcx, InvalidOSREntryBci); ! __ jcc(Assembler::equal, dispatch); // We have the address of an on stack replacement routine in eax // We need to prepare to execute the OSR method. First we must // migrate the locals and monitors off of the stack. --- 1749,1760 ---- // r14: locals pointer // r13: bcp __ testptr(rax, rax); // test result __ jcc(Assembler::zero, dispatch); // no osr if null // nmethod may have been invalidated (VM may block upon call_VM return) ! __ cmpb(Address(rax, nmethod::state_offset()), nmethod::in_use); ! __ jcc(Assembler::notEqual, dispatch); // We have the address of an on stack replacement routine in eax // We need to prepare to execute the OSR method. First we must // migrate the locals and monitors off of the stack.
src/cpu/x86/vm/templateTable_x86_64.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File