RFR: 8146416: java.lang.OutOfMemoryError triggers: assert(current_bci == 0) failed: bci isn't zero for do_not_unlock_if_synchronized
Roland Westrelin
rwestrel at redhat.com
Thu Jun 2 08:17:23 UTC 2016
>> So given uncommon traps are unaffected and only deopts are, isn't the
>> change below good enough?
> uncommon traps are affected in JVMCI case. pending exception check is
> after jvmci lock code.
That code in TemplateInterpreterGenerator::generate_deopt_entry_for()?
#if INCLUDE_JVMCI
// Check if we need to take lock at entry of synchronized method.
if (UseJVMCICompiler) {
Label L;
__ cmpb(Address(thread, JavaThread::pending_monitorenter_offset()), 0);
__ jcc(Assembler::zero, L);
// Clear flag.
__ movb(Address(thread, JavaThread::pending_monitorenter_offset()), 0);
// Satisfy calling convention for lock_method().
__ get_method(rbx);
// Take lock.
lock_method();
__ bind(L);
}
#endif
Roland.
More information about the hotspot-compiler-dev
mailing list